收了两个点阵屏,如何测出驱动板的接口?
08接口吧,貌似可以级连。想自己写个程序,可上面08接口的几根线咋跟MCU相连的呢?
看看是什么芯片的,在查查PDF,能想到的就是这样吧 wadz365 发表于 2012-12-20 00:48 static/image/common/back.gif
看看是什么芯片的,在查查PDF,能想到的就是这样吧
片子是MEGA8 16AU 0847G 这个片子是不是可容易烧锁熔丝?
CK PD2
ST PD4
R1 PC4
G1 PD5
A PC3
B PC2
C PC1
D PC0
MEGA8是有烧锁熔丝的问题,但仔细点一般不会,
这个是控制芯片吧,看看驱动芯片型号,不就知道怎么用了
用这个搞定了一个翻页钟。
有点小BUG,那就是整个字都向下移了一行。不知道改哪了。 CK PD2595时钟
ST PD4138使能(用于控制亮度)
R1 PC4 595数据(红色)
G1 PD5 595数据(绿色)
A PC3 138地址1
B PC2 138地址2
C PC1 138地址3
D PC0 138地址4
猜的。{:biggrin:}
我之前也做过一个点阵时钟,用的是那种32*64单元板,也就这些引脚。 NND想用这个控制板写点程序玩玩,不过在写之前想保存一下里面的数据,万一自己整不成,还可以把原来的程序写进去,这样子原来的东东还有得玩,结果,读出来是个这玩艺儿!
蛋疼的熔丝位啊,加密位啊,哪位能解这个么?
我也有一块屏,80*32双色,用的atmega16。你整体字下移一行,可能是138的控制初始输入是1,应该是0。 用原装MEGA8板点亮1664成功,美中不足的是最底下一行总有一些灯闪动。应该是与我的程序有关,特附上程序,请各位大师指点。
#include <mega8.h>
#include <delay.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long int
#define RCK0 PORTD &= ~(1<<4) //PD4
#define RCK1 PORTD |= (1<<4)
#define SCK0 PORTD &= ~(1<<2) //PD2
#define SCK1 PORTD |= (1<<2)
#define SI_Rdata0 PORTC &= ~(1<<4) //PC4
#define SI_Rdata1 PORTC |= (1<<4)
#define SI_Gdata0 PORTD &= ~(1<<5) //PD5
#define SI_Gdata1 PORTD |= (1<<5)
#define EN0 PORTD &= ~(1<<3) //PD3
#define EN1 PORTD |= (1<<3)
void SendByteR(unsigned char);
//void SendByteG(unsigned char);
unsigned char font[]=
{ //阳码 顺向 列行 20121229 by he
{0xFF,0xEF,0xEF,0xEF,0xE0,0xEF,0xEF,0xEF,0xE0,0xEF,0xEF,0xEF,0xDF,0xDF,0xBF,0x7F},
{0xBF,0xBF,0xBF,0xBB,0x01,0xFF,0xFF,0xFF,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF},/*"片",0*/
{0xFF,0xEF,0xEF,0xEF,0xE0,0xEF,0xEF,0xEF,0xE0,0xEF,0xEF,0xEF,0xDF,0xDF,0xBF,0x7F},
{0xBF,0xBF,0xBF,0xBB,0x01,0xFF,0xFF,0xFF,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF},/*"片",1*/
{0xFF,0x80,0xBF,0xA0,0xBE,0xBE,0xBE,0xB0,0xBE,0xBE,0xBE,0xA0,0xBF,0xBF,0x80,0xBF},
{0xFF,0x03,0xFB,0x0B,0xFB,0xFB,0xFB,0x1B,0xBB,0xDB,0xDB,0x0B,0xFB,0xFB,0x03,0xFB},/*"国",2*/
{0xFF,0xFE,0xFE,0xFE,0xFE,0x80,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF,0xF7,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0x01,0xFF,0xFF},/*"土",3*/
};
void main(void)
{
unsigned char i,j;
// PORTD=0B01011100; //对于开始时不操作的IO口应根据实际硬件电路确定是置为H还是L,如我只要显示红灯,就要给绿灯信号线一个
// DDRD=0B01011111; //强制上拉置1,使绿灯不显示,否则绿灯也是亮
// DDRC=0B00001111;
PORTD=0XFF;
DDRD=0XFF;
PORTC=0XFF;
DDRC=0XFF ;
while(1)
{
for(i=0;i<16;i++)
{
EN1;
RCK0;
for(j=0;j<8;j++) //4M时250us
{
SendByteR(font);
}
RCK1;
delay_us(1);
EN0;
PORTC=i; //注意检查此口连接
}
}
}
void SendByteR(unsigned char dat) //传1BYTE函数 红灯
{
unsigned char i,j=dat;
for(i=0;i<8;i++)
{
SI_Gdata1;
// EN1;
if(j&0x80)
SI_Rdata1;
else
SI_Rdata0;
SCK0;
SCK1;
// EN0;
j=j<<1;
}
}
程序有问题没有啊? 给定138的行选择信号后再打开outenable. mark logsoft 发表于 2013-1-1 09:25 static/image/common/back.gif
给定138的行选择信号后再打开outenable.
while(1)
{
for(i=0;i<16;i++)
{
for(j=0;j<8;j++) //4M时250us
{
SendByteR(font);
// SendByteG(font);
}
RCK0;
RCK1;
PORTC=i&0x0f; //注意检查此口连接
EN1;
delay_us(500);
EN0;
}
}
按您的指示,把使能端改到了主程序的主循环里了。结果是最底层不闪了。但亮度从上往下依次渐暗。。。 关断输出,移位送行数据,锁存(先高后低),行选择,打开输出,按这步骤试试,如果显示亮度不均,那是电源功率不足。 楼主,供电用什么?直接从开发板上扯得电吗?电流够不够? 我想应该还是我的程序的问题,就是当我把上面修改过了的程序烧录好后,再用上了单独的电源(5V1A,2A的都试过),始终达不到原机所带的亮度,也就是最上图的“欢迎光临”。而原装的亮度几乎到了刺眼的地步。 这个问题还有吗?
页:
[1]