欢迎来到天天文库
浏览记录
ID:56721287
大小:1.18 MB
页数:36页
时间:2020-07-06
《STM32液晶屏驱动程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、附录2整个设计全部源程序:/*以下是32x64点阵LED电子显示屏的源程序,采用C语言编写,在KeilμVisionV2.38a(C51.ExeV7.06)以及MedWin3.0版环境下均测试通过。*/#includeunsignedintzimo,xx=0;//zimo是字模计数器,xx为分屏显示的时候的字数。unsignedcharyid,h;//yid为移动计数器,h为行段计数器unsignedcharcodehanzi[];//汉字字模unsignedcharBUFF[18],BUFF2[18];//左移显示的缓存voidqing(voi
2、d);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;zim
3、o=0;while(1){fen();//分屏显示for(ee=30;ee>0;ee--)//清屏幕3秒{qing();}zuo();//左移显示for(ee=30;ee>0;ee--){qing();}}}/**********清屏幕*******************/voidqing(void){unsignedcharzz,xx=0x0ff;for(zz=33;zz>0;zz--){out_rxd(&xx);}P1=0xff;P1=0;//锁存为高,74HC595锁存信号P2=0;//清74LS138的使能端}/**********分屏显示*********
4、**/voidfen(void){do{xianshi();}while(xx++<=5);//调用单屏显示xx=0;}/************单屏显示*************/voidxianshi(void){unsignedcharii,jj;unsignedintkk,aa;for(kk=500;kk>0;kk--)//每屏显示500次{for(ii=1;ii<16;ii+=2)//每个汉字分8行扫描{for(jj=0;jj<8;jj++)//每次要发送8个汉字的2个字节,发送8次{aa=(xx*8+jj)*32+ii;out_rxd(&hanzi[aa]
5、);//从串口输出第1个字的第1字节。out_rxd(&hanzi[aa-1]);//从串口输出第1个字的第1字节。}for(jj=0;jj<8;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;}}}/*****
6、**********左移显示************/voidzuo(void){unsignedchari,d=5;//d为移动的时候一个汉字的扫描显示次数xianshi();//调用单屏显示while(zimo<=1450){while(yid<16)//数据移位。{for(i=0;i7、o+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]=ha
7、o+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]=ha
此文档下载收益归作者所有