#include<AT89x51.H>unsignedintzimo,xx=0;//zimo是字模计数器,xx为分屏显示的时候的字数。unsignedcharyid,h;//yid为移动计数器,h为行段计数器unsignedcharcodehanzi[];//汉字字模unsignedcharBUFF[18],BUFF2[18];//左移显示的缓存voidqing(void);voidxianshi(void);voidfen(void);voidzuo(void);voidin_data(void);//调整数据voidrxd_data(void);//左移发送数据voidout_rxd(unsignedchar*d);//分屏、上移发送数据charcod
#include &
lt;AT89x51.H>
unsigned int zimo,xx=0; //zimo是字模
计数器,xx为分屏显示的时候的字数。
unsigned char yid,h; //yid为移动计数器,h为行段计数器
unsigned char code hanzi[]; //汉字字模
unsigned char BUFF[18],BUFF2[18]; //左移显示的缓存
void qing(void); void xianshi(void);
void fen(void); void zuo(void);
void in_data(void); //调整数据
void rxd_data(void); //左移发送数据
void out_rxd(unsigned char *d); //分屏、上移发送数据
char code sw[]={0
x01,0
x02,0x03,0x04,0x05,0x06,0x07,0x00}; /*8行段码*/
/***********主程序******************/
void main(void)
{ unsigned char ee;
SCON=01=0;yid=0;zimo=0;
while(1)
{ fen(); //分屏显示
for(ee=30;ee>0;ee--)//清屏幕3秒
{qing();}
zuo(); //左移显示
for(ee=30;ee>0;ee--)
{qing();}
}
}
/**********清屏幕*******************/
void qing (void)
{ unsigned char zz,xx=0x0ff;
for (zz=
33;zz>0;zz--)
{out_rxd(&
amp;xx);}
P1=0xff; P1=0; //锁存为高,74HC595锁存信号
P2=0; //清74
LS138的使能端
}
/**********分屏显示***********/
void fen(void)
{ do{ xianshi(); }while(xx++<=5); //调用单屏显示
xx=0;
}
/************单屏显示*************/
void xianshi(void)
{ unsigned char ii,jj;
unsigned int
kk,aa;
for (kk=500;kk>0;kk--) //每屏显示500次
{for(ii=1;ii<
16;ii+=2) //每个汉字分8行扫描