您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > LED点阵显示程序(带汉字移动)
LED点阵显示程序(带汉字移动).txt-//自私,让我们只看见自己却容不下别人。如果发短信给你喜欢的人,他不回,不要再发。看着你的相片,我就特冲动的想P成黑白挂墙上!有时,不是世界太虚伪,只是,我们太天真。LED点阵显示程序(带汉字移动)#includeAT89x51.Hunsignedintzimo,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);//分屏、上移发送数据charcodesw[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00};/*8行段码*//*百强电子世界网:*//***********主程序******************/voidmain(void){unsignedcharee;SCON=0;P1=0;yid=0;zimo=0;while(1){fen();//分屏显示for(ee=30;ee0;ee--)//清屏幕3秒{qing();}zuo();//左移显示for(ee=30;ee0;ee--){qing();}}}/**********清屏幕*******************/voidqing(void){unsignedcharzz,xx=0x0ff;for(zz=33;zz0;zz--){out_rxd(&xx);}P1=0xff;P1=0;//锁存为高,74HC595锁存信号P2=0;//清74LS138的使能端}/**********分屏显示***********/voidfen(void){do{xianshi();}while(xx++=5);//调用单屏显示xx=0;}/************单屏显示*************/voidxianshi(void){unsignedcharii,jj;unsignedintkk,aa;for(kk=500;kk0;kk--)//每屏显示500次{for(ii=1;ii16;ii+=2)//每个汉字分8行扫描{for(jj=0;jj8;jj++)//每次要发送8个汉字的2个字节,发送8次{aa=(xx*8+jj)*32+ii;out_rxd(&hanzi[aa]);//从串口输出第1个字的第1字节。out_rxd(&hanzi[aa-1]);//从串口输出第1个字的第1字节。}for(jj=0;jj8;jj++)//每次要发送8个汉字的2个字节,发送8次{aa=(xx*8+jj)*32+ii;out_rxd(&hanzi[aa+16]);//从串口输出第1个字的第17字节。out_rxd(&hanzi[aa+15]);//从串口输出第1个字的第18字节}P2=0x0ff;P1=0xff;P1=0;//锁存为高,74HC595锁存信号P2=sw[h];//输出行信号h++;//行加一if(h==8)h=0;}}}/***************左移显示************/voidzuo(void){unsignedchari,d=5;//d为移动的时候一个汉字的扫描显示次数xianshi();//调用单屏显示while(zimo=1450){while(yid16)//数据移位。{for(i=0;id;i++)//移动速度{for(h=0;h8;h++)//8行扫描{in_data();//调整数据rxd_data();//串口发送数据P2=sw[h];//送段码P1=0xff;//锁存为高,595锁存信号P1=0;}}yid++;//移动一步}yid=0;zimo=zimo+32;//后移一个字,}zimo=0;}/*************分屏显示的数据发送************/voidout_rxd(unsignedchar*d)/*从串口发送数据*/{SBUF=*d;while(!TI);//等待发送完毕TI=0;}/*******左移显示读取数据并调整**************/voidin_data(void){chars,w;unsignedintqqq;for(s=8;s=0;s--){w=s+s;qqq=zimo+h+h+s*32;BUFF[w+1]=hanzi[qqq];BUFF[w]=hanzi[qqq+1];BUFF2[w+1]=hanzi[qqq+16];BUFF2[w]=hanzi[qqq+17];}}/**********左移显示的数据调整发送***************/voidrxd_data(void)//串行发送数据{unsignedcharinc,s,tempyid,temp;if(yid8)inc=0;elseinc=1;for(s=0+inc;s16+inc;s++)//发送数据{if(yid8)tempyid=yid;elsetempyid=yid-8;temp=(BUFF[s]tempyid)|(BUFF[s+1](8-tempyid));SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。while(!TI);TI=0;//等待发送中断}for(s=0+inc;s16+inc;s++)//发送8字节数据{if(yid8)tempyid=yid;elsetempyid=yid-8;temp=(BUFF2[s]tempyid)|(BUFF2[s+1](8-tempyid));SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。while(!TI);TI=0;//等待发送中断}}unsignedcharcodehanzi[]={/*自己的汉字编码请放在这里*/};/*欢迎加入中国电子工程师在线群号71880007*/本文来自:电子工程师之家
本文标题:LED点阵显示程序(带汉字移动)
链接地址:https://www.777doc.com/doc-3406775 .html