基于单片机的LED单色显示屏控制系统设计 源程序.doc
附录2整个设计全部源程序:/*以下是32x64点阵LED电子显示屏的源程序,采用C语言编写,在KeilVisionV2.38a(C51.ExeV7.06)以及MedWin3.0版环境下均测试通过。*/#include<AT89x51.H>unsignedintzimo,xx=0;/zimo是字模计数器,xx为分屏显示的时候的字数。unsignedcharyid,h;/yid为移动计数器,h为行段计数器unsignedcharcodehanzi;/汉字字模unsignedcharBUFF18,BUFF218;/左移显示的缓存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;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的使能端/*分屏显示*/voidfen(void)doxianshi();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(&hanziaa);/从串口输出第1个字的第1字节。out_rxd(&hanziaa-1);/从串口输出第1个字的第1字节。for(jj=0;jj<8;jj+)/每次要发送8个汉字的2个字节,发送8次aa=(xx*8+jj)*32+ii;out_rxd(&hanziaa+16);/从串口输出第1个字的第17字节。out_rxd(&hanziaa+15);/从串口输出第1个字的第18字节P2=0x0ff;P1=0xff;P1=0;/锁存为高,74HC595锁存信号P2=swh;/输出行信号h+;/行加一if(h=8)h=0;/*左移显示*/voidzuo(void)unsignedchari,d=5;/d为移动的时候一个汉字的扫描显示次数xianshi();/调用单屏显示while(zimo<=1450)while(yid<16)/数据移位。for(i=0;i<d;i+)/移动速度for(h=0;h<8;h+)/8行扫描in_data();/调整数据rxd_data();/串口发送数据P2=swh;/送段码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;BUFFw+1=hanziqqq;BUFFw=hanziqqq+1;BUFF2w+1=hanziqqq+16;BUFF2w=hanziqqq+17;/*左移显示的数据调整发送*/voidrxd_data(void)/串行发送数据unsignedcharinc,s,tempyid,temp;if(yid<8)inc=0;elseinc=1;for(s=0+inc;s<16+inc;s+)/发送数据if(yid<8)tempyid=yid;elsetempyid=yid-8;temp=(BUFFs>>tempyid)|(BUFFs+1<<(8-tempyid);SBUF=temp;/把BUFF中的字节从大到小移位相或后发送输出。while(!TI);TI=0;/等待发送中断for(s=0+inc;s<16+inc;s+)/发送8字节数据if(yid<8)tempyid=yid;elsetempyid=yid-8;temp=(BUFF2s>>tempyid)|(BUFF2s+1<<(8-tempyid);SBUF=temp;/把BUFF中的字节从大到小移位相或后发送输出。while(!TI);TI=0;/等待发送中断/*汉字编码信息*/unsignedcharcodehanzi=/*-文字:勤-*/0xFB,0xBB,0xFA,0x00,0xFB,0xBB,0xFB,0x83,0xC0,0xEF,0xDB,0x01,0xDB,0x6D,0xDB,0x01,0xDB,0xEF,0xDB,0x01,0xDB,0xEF,0xDB,0x83,0xDD,0xEF,0xDD,0x0F,0xD6,0xE0,0xEF,0x7D,/*-文字:奋-*/0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x80,0x00,0xFE,0xBF,0xFD,0xDF,0xF3,0xEF,0x8F,0xF3,0xD0,0x04,0xF7,0x77,0xF7,0x77,0xF0,0x07,0xF7,0x77,0xF7,0x77,0xF0,0x07,0xF7,0xF7,/*-文字:求-*/0xFB,0x7F,0xF7,0x7F,0xF7,0x7F,0xC0,0x01,0xFF,0x7F,0xEF,0x7B,0xF7,0x77,0xFA,0x6F,0xFD,0x7F,0xFB,0x5F,0xF7,0x6F,0x8F,0x77,0xDF,0x79,0xFF,0x7F,0xFF,0x5F,0xFF,0xBF,/*-文字:实-*/0xFF,0x7F,0xFE,0xFF,0x80,0x01,0xDF,0xFD,0xEE,0xEE,0xFE,0xDF,0xFE,0xDF,0xFE,0xF7,0xFE,0xEF,0xFE,0xEF,0xC0,0x01,0xFD,0x7F,0xFB,0xBF,0xF7,0xDF,0xCF,0xE7,0xDF,0xF9,/*-文字:献-*/0xF7,0xEF,0xF7,0xEF,0xE7,0xEF,0xD6,0x00,0xD7,0xEF,0xF7,0xEF,0x81,0x01,0xF7,0x55,0xF7,0x6D,0xF7,0x01,0xEB,0x6D,0xEB,0x01,0xEB,0x6D,0xDD,0x6D,0xDD,0x4D,0xBE,0xBD,/*-文字:身-*/0xFF,0x7F,0xFF,0xBF,0xF0,0x0F,0xF7,0xEF,0xF0,0x0F,0xF7,0xEF,0xB0,0x0F,0xD7,0xEF,0xE7,0xEF,0xF0,0x01,0xF5,0xFF,0xF6,0xFF,0xF7,0x3F,0xF7,0xC7,0xF5,0xF8,0xFB,0xFF,/*-文字:开-*/0xFF,0xFF,0xC0,0x03,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0x80,0x01,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xEF,0xFB,0xEF,0xFB,0xF7,0xFB,0xFB,/*-文字:拓-*/0xFF,0xF7,0xFF,0xF7,0x80,0x37,0xFD,0xF7,0xFD,0xC0,0xFE,0xF7,0xFE,0xD7,0xC0,0x67,0xDE,0xB3,0xDE,0xD4,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xC0,0xF7,0xDE,0xF5,0xFF,0xFB,/*-文字:桂-*/0xFB,0xF7,0xFB,0xF7,0xC0,0x77,0xFB,0xF7,0xFB,0xC0,0xFB,0xF7,0x80,0x33,0xFB,0xE3,0xFB,0xD5,0xFB,0xD5,0xC0,0x76,0xFB,0xF7,0xFB,0xF7,0xFB,0xF7,0x80,0x37,0xFF,0xF7,/*-文字:林-*/0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xC0,0x81,0xFB,0xEF,0xF9,0xE7,0xF1,0xC7,0xEA,0xAB,0xEA,0xAB,0xDB,0x6D,0xBB,0xAE,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,/*-文字:工-*/0xFF,0xFF,0xFF,0xFF,0xC0,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x80,0x00,0xFF,0xFF,0xFF,0xFF,/*-文字:学-*/0xF7,0xBB,0xF7,0x77,0xFB,0x77,0xFD,0xFF,0x80,0x01,0xDF,0xFD,0xEF,0xFE,0xF8,0x07,0xFD,0xFF,0xFE,0x7F,0x80,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x5F,0xFF,0xBF,/*-文字:院-*/0xFD,0xFF,0xFB,0xC1,0x80,0x1D,0xBF,0xAD,0xFF,0xED,0xC0,0x75,0xFF,0xED,0xFF,0xED,0x80,0x1D,0xF6,0xDD,0xF6,0xDD,0xF6,0xE9,0xB6,0xF5,0xB7,0x7D,0x8F,0x7D,0xFF,0xBD,/*-文字:电-*/0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xC0,0x7F,/*-文字:计-*/0xFB,0xFF,0xFB,0xF7,0xFB,0xEF,0xFB,0xEF,0xFB,0xFF,0xFB,0xFF,0x80,0x21,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0xEF,0xFB,0x6F,0xFB,0xAF,0xFB,0xCF,0xFB,0xEF,0xFB,0xFF,/*-文字:系-*/0xE1,0xFF,0xFE,0x01,0xFF,0xBF,0xFB,0xDF,0xFD,0xEF,0xFE,0x03,0xFF,0x7F,0xFB,0x9F,0xF7,0xEF,0xE0,0x03,0xEF,0x77,0xFF,0x7F,0xF7,0x77,0xEF,0x7B,0xEF,0x5D,0xFF,0xBF,/*-文字:电-*/0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xF7,0xBD,0xF0,0x01,0xF7,0xBD,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xC0,0x7F,/*-文字:信-*/0xFE,0xEF,0xFD,0xEF,0xFD,0xEF,0xC0,0x17,0xFF,0xF7,0xFF,0xF3,0xE0,0x35,0xFF,0xF6,0xE0,0x37,0xFF,0xF7,0xE0,0x37,0xEF,0xB7,0xEF,0xB7,0xEF,0xB7,0xE0,0x37,0xEF,0xB7,/*-文字:-*/0xFC,0x1F,0xFB,0xEF,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFB,0xEF,0xFC,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*-文字:-*/0xFE,0x1F,0xFD,0xEF,0xFB,0xF7,0xFB,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF,0xFF,0x7F,0xFF,0xBF,0xFF,0xDF,0xFF,0xEF,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*-文字:-*/0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*-文字:-*/0xF0,0x0F,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF,0xFC,0x7F,0xFB,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xFB,0xEF,0xFC,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*-文字:班-*/0xFE,0xFF,0xFE,0xFF,0x82,0xC0,0xEE,0xF7,0xEE,0xF7,0xEE,0xB7,0xEE,0xA1,0x82,0xB7,0xEE,0xD7,0xEE,0xF7,0xEE,0xF7,0xEF,0x47,0xEF,0x70,0x81,0xBD,0xFF,0xDF,0xFF,0xE7,/*-文字:张-*/0xFF,0x7F,0xEF,0x60,0xEF,0x6F,0xF7,0x6F,0xFB,0x6F,0xFD,0x61,0xFF,0x7D,0x80,0x1D,0xFD,0x7D,0xFD,0x61,0xFB,0x6F,0xFB,0x6F,0xF7,0x6F,0x8D,0x6F,0xDE,0x75,0xFF,0x7B,/*-文字:涛-*/0xFE,0xFF,0xFE,0xFB,0xC0,0x17,0xFE,0xF7,0xE0,0x3E,0xFE,0xFD,0x80,0x0D,0xEF,0x7F,0xEF,0x77,0x80,0x3B,0xEF,0xB8,0xEF,0x5B,0xEE,0xEB,0xEE,0xF3,0xEB,0xFB,0xF7,0xFF,/*-文字:制-*/0xDF,0xDF,0xDF,0xDB,0xDF,0xDB,0xDA,0x03,0xDB,0xDB,0xDB,0xDD,0xD8,0x00,0xDB,0xDF,0xDB,0xDF,0xDA,0x03,0xDA,0xDB,0xDE,0xDB,0xDE,0x9B,0xDF,0x5B,0xD7,0xDF,0xEF,0xDF,/*-文字:作-*/0xFF,0x6F,0xFF,0x6F,0xFF,0x6F,0x80,0x77,0xFE,0xB7,0xFE,0xB3,0xFE,0xD5,0xE0,0xE6,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,0xC0,0xF7,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,0xFE,0xF7,/*-文字:谢-*/0xEF,0x7F,0xEF,0xBD,0xEE,0x13,0xEE,0xDB,0x80,0x1F,0xEE,0xDF,0xEC,0x18,0xEA,0xDB,0xEA,0x0B,0xEE,0x7B,0xEE,0xBB,0xEE,0xAB,0xEE,0xD3,0xEE,0xEB,0xEA,0xB7,0xF7,0x7F,/*-文字:谢-*/0xEF,0x7F,0xEF,0xBD,0xEE,0x13,0xEE,0xDB,0x80,0x1F,0xEE,0xDF,0xEC,0x18,0xEA,0xDB,0xEA,0x0B,0xEE,0x7B,0xEE,0xBB,0xEE,0xAB,0xEE,0xD3,0xEE,0xEB,0xEA,0xB7,0xF7,0x7F,/*-文字:各-*/0xFF,0xDF,0xFF,0xDF,0xF0,0x1F,0xFB,0xCF,0xFB,0xB7,0xFD,0xB9,0xFE,0x7F,0xF9,0x9F,0x87,0xE7,0xD0,0x08,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF0,0x0F,0xFF,0xFF,/*-文字:位-*/0xFF,0x6F,0xFC,0xCF,0xFD,0xF7,0xC0,0x17,0xFF,0xFB,0xF7,0xD3,0xE7,0xB5,0xF7,0xB5,0xF7,0x76,0xFB,0x77,0xFB,0x77,0xFB,0xF7,0xFD,0xF7,0x80,0x07,0xFF,0xF7,0xFF,0xFF,/*-文字:老-*/0xFF,0xBF,0xEF,0xBF,0xC0,0x01,0xEF,0xBF,0xF7,0xBF,0xFB,0xBF,0x80,0x00,0xFE,0x7F,0xFF,0xBF,0xF3,0xCF,0xFC,0xD3,0xFF,0x1C,0xDF,0xDF,0xDF,0xDF,0xC0,0x3F,0xFF,0xFF,/*-文字:师-*/0xFF,0xEF,0x80,0x2F,0xFB,0xED,0xFB,0xED,0x80,0x2D,0xBB,0xAD,0xBB,0xAD,0xBB,0xAD,0xBB,0xAD,0xBB,0xB5,0xAB,0xB5,0xDB,0xB7,0xFB,0xFB,0xFB,0xFD,0xFB,0xFE,0xFB,0xFF,/*-文字:!-*/0xFE,0x3F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFE,0x3F,0xFE,0x3F,0xFF,0x7F,0xFF,0xFF,0xFF,0x7F,0xFE,0x3F,0xFE,0x3F,0xFF,0x7F,0xFF,0xFF;