STM32液晶屏驱动程序.doc
《STM32液晶屏驱动程序.doc》由会员分享,可在线阅读,更多相关《STM32液晶屏驱动程序.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、附录2整个设计全部源程序:/*以下是32x64点阵LED电子显示屏的源程序,采用C语言编写,在Keil VisionV2.38a(C51.Exe V7.06)以及MedWin3.0版环境下均测试通过。*/#include unsigned int zimo,xx=0;/zimo是字模计数器,xx为分屏显示的时候的字数。unsigned char yid,h;/yid为移动计数器,h为行段计数器unsigned char code hanzi;/汉字字模unsigned char BUFF18,BUFF218;/左移显示的缓存void qing(void);void xianshi(void);
2、void fen(void);void zuo(void);void in_data(void);/调整数据void rxd_data(void);/左移发送数据void out_rxd(unsigned char *d);/分屏、上移发送数据char code sw=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x00; /*8行段码*/*主程序*/void main(void)unsigned char ee;SCON=0;P1=0;yid=0;zimo=0;while(1)fen();/分屏显示for(ee=30;ee0;ee-)/清屏幕3秒qing();zuo
3、();/左移显示for(ee=30;ee0;ee-)qing(); /*清屏幕*/void qing (void) unsigned char zz,xx=0x0ff;for (zz=33;zz0;zz-)out_rxd(&xx);P1=0xff; P1=0;/锁存为高,74HC595锁存信号P2=0;/清74LS138的使能端 /*分屏显示*/void fen(void)doxianshi();while(xx+0;kk-)/每屏显示500次for(ii=1;ii16;ii+=2)/每个汉字分8行扫描for (jj=0;jj8;jj+)/每次要发送8个汉字的2个字节,发送8次aa=(xx*8
4、+jj)*32+ii;out_rxd(&hanziaa);/从串口输出第1个字的第1字节。 out_rxd(&hanziaa-1);/从串口输出第1个字的第1字节。for (jj=0;jj8;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;/*左移显示*/void
5、 zuo(void)unsigned char i,d=5;/d为移动的时候一个汉字的扫描显示次数xianshi();/调用单屏显示while(zimo=1450)while(yid16)/数据移位。for(i=0;id;i+)/移动速度for(h=0;h=0;s-)w=s+s;qqq=zimo+h+h+s*32;BUFFw+1=hanziqqq;BUFFw=hanziqqq+1;BUFF2w+1=hanziqqq+16;BUFF2w=hanziqqq+17;/*左移显示的数据调整发送*/void rxd_data(void) /串行发送数据unsigned char inc,s,tempyi
6、d,temp;if(yid8)inc=0;elseinc=1;for(s=0+inc;s16+inc;s+) /发送数据 if(yidtempyid)|(BUFFs+1(8-tempyid);SBUF=temp;/把BUFF中的字节从大到小移位相或后发送输出。while(!TI);TI=0;/等待发送中断for(s=0+inc;s16+inc;s+) /发送8字节数据 if(yidtempyid)|(BUFF2s+1ODR=(GPIOB-ODR&0x807F)|(x & 0x00FF)7) /PE714,作为数据线#define LCD_PAGE_ADDR 0xb8#define LCD_CO
7、L_ADDR 0x40 void LCDPortSet(void); /LCD IO口配置void LcdInit(void); /初始化程序void LcdClear(void); /清屏程序 void WriteChr16x16(u8 pag,u8 col, u8 *chr); /写一个汉字 #endif/*lcd.c*/#include #include lcd.h#include delay.h/LCD IO口配置void LCDPortSet(void)RCC-APB2ENR|=1APB2ENR|=1CRH&=0XF; /PE8-14数据口GPIOE-CRH|=0X;GPIOE-CR
8、L&=0X0FFFFFFF; /PE7数据口GPIOE-CRL|=0X; GPIOE-ODR|=0X7F80; /上拉GPIOF-CRL&=0XF;GPIOF-CRL|=0X; /PF.0 1 2 3 4 5 6推挽输出GPIOF-ODR|=1ODR|=1ODR|=1ODR|=1ODR|=1ODR|=1ODR|=16; /PF.6 输出高void SelectChip1(void) /选择第1屏LCD_CS1=0;LCD_CS2=1;LCD_CS3=1;void SelectChip2(void) /选择第2屏LCD_CS1=1;LCD_CS2=0;LCD_CS3=1;void SelectC
9、hip3(void) /选择第3屏LCD_CS1=1;LCD_CS2=1;LCD_CS3=0;void WriteCommand(u8 cmd) /写命令 LCD_RS=0; /写命令/RW=0;LCD_DATA(cmd);LCD_E=1;delay_us(10);LCD_E=0;void WriteData(u8 dat) /写数据 LCD_RS=1; /写数据/RW=0;LCD_DATA(dat); /数据输出到数据口 LCD_E=1; /写入到LCD delay_us(10); LCD_E=0;void LcdClear(void) /清屏u16 j = 0;u16 k = 0;LCD_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 液晶屏 驱动程序
限制150内