求!!!AT89C51单片机16*16C语言编程

P0,P2口控制列,P1,P3口控制行!共阳的
求一段c语言程序,“深圳我爱你”每个字出现一秒,然后一直循环
可以的话附上说明谢谢
急用!!!!
驱动芯片用的是74ls245两个分别控制行信号

先用汉字取模软件,分上下半字,用code定义数组储存。
unsigned char code han1[]={ .....} //深圳我爱你的上半屏
unsigend char code han2[]={......} //下半屏
sbit U15E3=P1^3; //LED点阵屏单元的U14(74HC138)的使能端E3脚接在P1.3口上
sbit U14E3=P1^4; //使能控制端,同上

//LED点阵屏寄存器设置
unsigned char m=15; //设置8位的unsigend char型寄存器用来做汉字显示的索引
unsigned char n; //设置8位的unsigend char型寄存器用来做延时用
unsigned char w; //设置8位的unsigend char型寄存器用来做延时用
unsigned char v; //设置8位的unsigend char型寄存器用来做移动索引
mian()
{
whil(1)
{
for(n=0;n<80;n++); //做一个0-80的循环,不执行其他操作,只为延时
if(++w>220) //再嵌套一个延时,每220个扫描周期将汉字左移一格
{
w=0; //清零,以准备下一个延时
if(++v>176) v=0; //移动索引,限定在0-176,每次V+1,移动一竖。
}
if(++m>15) m=0; //每调用一次函数将m加1,并限制在0-15以内
P1=0; //将LED点阵屏的列控制信号全部清零,准备重置
P0=han1[m+v]; //LED点阵屏的上半屏,按m+v索引查表han1送P0
P2=han2[m+v]; //LED点阵屏的下半屏,按m+v索引查表han2送P2
P1|=m&0x07; //将索引m的低3位送给P1的低3位,以使74HC138去片选
if(m<8) U15E3=1; //前8列需要使能U15(74HC138)
else U14E3=1; //后8列需要使能U14(74HC138)
}
}追问

额..我用的驱动芯片是74LS245按你上面的的程序也是可行的么?不行的话帮忙改改,谢谢!

追答

没看清楚驱动芯片是74ls245,我的LCD驱动芯片是38译码器。我不知道你的电路图,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-11
要用到汉字取模软件,在网上找下看。
大家正在搜