1、 */uchar code Hzk=/左屏幕第1页0xFF,0xFF,0xFF,0xFF,0x7F,0xBF,0x3F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,/左屏幕第2页0xFF,0xFF,0xFF,0xAB,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xA
2、A,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,/左屏幕第3页0xFF,0xFF,0xFF,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xC0,0xAA,0x00,0xAA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0x80,0xAA,0x00,0xAA,0x00,0xAA,0xC0,0xEA,0xE0,0xEA,0
3、xE0,0xEA,0xE0,0xEA,0xC0,0xEA,0x80,0xAA,0x00,0xAA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,/左屏幕第4页0xFF,0xFF,0xFF,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0xFF,0xFF,0xFF,0xFF,0x38,0xBA,0x38,0xBF,0x3F,0xBF,0x1F,0xAF,0x00,0xAA,0xFF,0xFF,0xFF,0xFF,0xFF,0xBA,0x78,0xFA,0xFD,0xFF,0xDF,0xBF,0x0F,0xAA,0x00,0xFE,0xFF
4、,0xFF,0xFF,0xFF,0x01,0xAA,0x00,0xAA,0x01,0xEF,0xFF,0xFF,0xFF,0xFE,0x00,0xAA,0x00,0xAA,0x00,0xAA,0xFF,0xFF,/左屏幕第5页0xFF,0xFF,0xFF,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x0F,0xAF,0x0F,0xAF,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x0F,0xAF,0x0F,0xAF,0x0F,0xAA,0x00,0xAA,0x03,0xAF,0x0F,0x
5、AF,0x0F,0xAE,0x00,0xAA,0x01,0xAB,0x07,0xAF,0x0F,0xAE,0x0E,0xAE,0x0F,0xAF,0x07,0xAF,0x03,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x0F,0xAF,/左屏幕第6页0xFF,0xFF,0xFF,0xEA,0x80,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,/左屏幕第7页0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xF
6、E,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,/左屏幕第8页0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,/右屏幕第1页0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x1F,0xBF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,/右屏幕第2页0x00,0xAA,0x00,0xAA,0x00,0xAA,0x
7、00,0xAA,0x00,0xAA,0x01,0xFF,0xFF,0xFF,0xFF,0x00,/右屏幕第3页0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xAA,0x00,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,0xAA,0x00,0xAA,0xE0,0xEA,0xE0,0xEA,0x00,0xAA,0x00,0xAA,0x00,0xEA,0xE0,0xEA,0xE0,0xAA,0x00,0xAA,0x80,0xEA,0xC0,0xEA,0xE0,0xEA,0xE0,0xEA,0xE0,
8、0xEA,0x80,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xFF,0xFF,0xFF,0xFF,0x00,/右屏幕第4页0xFF,0xFF,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xFF,0xFF,0xFF,0xFF,0xBA,0x38,0xBA,0x38,0xBA,0x38,0xBA,0x00,0xAA,0x00,0xAA,0xFF,0xFF,0xFF,0xFF,0x00,0xAA,0x00,0xAA,0x00,0xFF,0xFF,0xFF,0xFF,0xAA,0x00,0xAA,0x8F,0xAF,0x9F,0xB
9、F,0x3C,0xBE,0x38,0xFB,0xFB,0xFB,0xF3,0xEB,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xFF,0xFF,0xFF,0xFF,0x00,/右屏幕第5页0x0F,0xAF,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAF,0x0F,0xAF,0x0F,0xAE,0x0E,0xAE,0x0E,0xAE,0x0E,0xAE,0x0E,0xAA,0x00,0xAA,0x03,0xAF,0x07,0xAF,0x0F,0xAE,0x0E,0xAE,0x0F,0xAF,0x07,0xAB,0x01,0xAA,0
10、x00,0xAB,0x03,0xAF,0x07,0xAF,0x0E,0xAE,0x0E,0xAF,0x0F,0xAF,0x07,0xAB,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xFF,0xFF,0xFF,0xFF,0x00,/右屏幕第6页0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0x00,0xAA,0xE0,0xFF,0xFF,0xFF,0xFF,0x00,/右屏幕第7页0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x
11、00,/右屏幕第8页0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x00,;/*状态检查,LCD是否忙*/void CheckState() uchar dat;/状态信息(判断是否忙) RS=0; / 数据指令选择,D/I(RS)=“L” ,表示 DB7DB0 为显示指令数据 RW=1; /R/W=“H” ,E=“H”数据被读到DB7DB0 do DATA=0x00; EN=1; /EN下降源 _nop_(); /一个时钟延时 dat=DATA; EN=0; dat=dat7; /仅当第
12、7位为0时才可操作(判别busy信号) while(!(dat=0x00);/*写命令到LCD中*/SendCommandToLCD(uchar com) CheckState();/状态检查,LCD是否忙 /向LCD发送命令。RS=0写指令,RS=1写数据 RW=0;/R/W=“L” ,E=“HL”数据被写到 IR 或 DR DATA=com; /com :命令/EN下降源 /*设置页 0xb8是页的首地址*/void SetLine(uchar page) page=0xb8|page; /1011 1xxx 0=page=7 设定页地址-X 0-7,8行为一页64/8=8,共8页Send
13、CommandToLCD(page);/*设定显示开始行,0xc0是行的首地址*/void SetStartLine(uchar startline) startline=0xc0|startline; /1100 0000SendCommandToLCD(startline); /设置从哪行开始:0-63,一般从0 行开始显示/*设定列地址-Y 0-63 ,0x40是列的首地址*/void SetColumn(uchar column) column=column &0x3f; /column最大值为64,越出 0=column=63column= 0x40|column; /01xx xx
14、xxSendCommandToLCD(column);/*开关显示,0x3f是开显示,0x3e是关显示*/void SetOnOff(uchar onoff)onoff=0x3e|onoff; /0011 111x,onoff只能为0或者1SendCommandToLCD(onoff);/*写显示数据 */void WriteByte(uchar dat) RS=1; /RS=0写指令,RS=1写数据/R/W=“L” ,E=“HL”数据被写到 IR 或 DR DATA=dat;/dat:显示数据/*选择屏幕screen: 0-全屏,1-左屏,2-右屏*/void SelectScreen(uc
15、har screen) switch(screen) case 0: cs1=0;/全屏 cs2=0; break; case 1:/左屏 cs2=1; case 2: cs1=1;/右屏 /*清屏screen: 0-全屏,1-左屏,2-右*/void ClearScreen(uchar screen) uchar i,j; SelectScreen(screen);for(i=0;i8;i+) /控制页数0-7,共8页 SetLine(i); SetColumn(0); for(j=0;j64;j+) /控制列数0-63,共64列 WriteByte(0x00); /写点内容,列地址自动加1
16、/*延时程序*/void delay(uint z)uint i,j; iz; i+) for(j = 0; j 110; j+);/*向上滚屏*/*这里用做滚动显示*/void lcd_rol() uint i;for(i = 0; i 64; SendCommandToLCD(0xc0+i);/ 片选2 /SendCommandToLCD(0xc0+62-i); delay(100);/*初始化LCD*/void InitLCD() CheckState();SelectScreen(0);SetOnOff(0); /关显示SetOnOff(1); /开显示ClearScreen(0);/
17、清屏SetStartLine(0); /开始行:/*显示单屏幕一页*/void Display(uchar ss,uchar page,uchar column,uchar number)int i; /ss 选屏参数,page 选页参数,column选列参数 number 区块 共计8页2屏幕=16 取值015SelectScreen(ss);column=column&SetLine(page); /SetColumn(column); /控制列i+) /控制64列的数据输出WriteByte(Hzki+64*number); /64个数据输出 /*主函数*/void main()uint
18、 i; InitLCD();/初始12864 ClearScreen(0);/清屏 SetStartLine(0);/显示开始行 while(1) /*Display(选屏参数(cs0,cs1),pagr选页参数,column选列参数,number选第几汉字输出)*/ for(i=0;i+) Display(2,i,0,i); /左屏幕 i页,0列 i块 Display(1,i,0,i+8); /右屏幕 i页,0列 i+8块 /delay(5000);/ 停住/ lcd_rol(); /滚动/*这里用做滚动显示*/* while(1) lcd_rol(); delay(1000);*/显示效果:仿真电路图:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1