LCD12864液晶屏测试程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

/////LCD12864液晶屏测试程序(已通过)//////////////液晶屏型号:HJ12864M-1//////////#includereg52.h#defineucharunsignedchar#defineuintunsignedint//8bit数据接入IO口#definePartP0//P0接8位数据线//控制数据端sbitLCD_RS=P2^5;//定义12864液晶RS端,寄存器选择信号H:数据寄存器L:指令寄存器sbitLCD_RW=P2^6;//定义12864液晶RW端,读/写信号H:读L:写sbitLCD_EN=P2^7;//定义12864液晶LCDEN端,片选信号下降沿触发,锁存数据sbitLCD_PSB=P3^2;//定义12864液晶PSB端,H:并行L:串行sbitLCD_RST=P3^4;//定义12864液晶RST端,H:不复位L:复位ucharcodedis1[]={床前明月光};ucharcodedis2[]={疑是地上霜};ucharcodedis3[]={举头望明月};ucharcodedis4[]={低头思故乡};//毫秒延时函数voiddelay(uintxms){uinti,j;for(j=0;ixms;j++)for(i=0;i110;i++);}//LCD忙检测函数bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;result=(bit)(Part&0x80);LCD_EN=0;returnresult;}//液晶写命令函数voidlcd_write_cmd(ucharcom){while(lcd_busy());LCD_RS=0;//选择指令寄存器LCD_RW=0;//写LCD_EN=0;Part=com;//指令值赋给P0口delay(5);LCD_EN=1;delay(5);LCD_EN=0;}//液晶写一个字符数据函数voidlcd_write_dat(uchardate){while(lcd_busy());LCD_RS=1;//选择数据寄存器LCD_RW=0;//写LCD_EN=0;P0=date;//数据值赋给P0口delay(5);LCD_EN=1;delay(5);LCD_EN=0;}//液晶写一个字符串函数voidlcd_write_string(uchar*str){while(*str!='\0')//未结束{lcd_write_dat(*str++);delay(5);}}//液晶显示位置函数voidlcd_pos(ucharx,uchary)//从第X行的第Y位置开始显示{ucharpos;if(x==1)//第一行{x=0x80;}elseif(x==2)//第二行{x=0x90;}elseif(x==3)//第三行{x=0x88;}elseif(x==4)//第四行{x=0x98;}pos=x+y-1;//首地址为0X80lcd_write_cmd(pos);}//液晶初始化函数voidlcd_init(){LCD_PSB=1;//并行方式LCD_RST=1;//不复位lcd_write_cmd(0x30);delay(5);lcd_write_cmd(0x0c);//开显示,不显示光标delay(5);lcd_write_cmd(0x06);//写一个字符后地址指针自动加1delay(5);lcd_write_cmd(0x01);//清屏delay(5);}//主函数函数voidmain(){//uchari;lcd_init();while(1){lcd_pos(1,1);//lcd_write_string(dis1);lcd_write_string(床前明月光);delay(5);lcd_pos(2,1);//lcd_write_string(dis2);lcd_write_string(疑是地上霜);delay(5);lcd_pos(3,1);//lcd_write_string(dis3);lcd_write_string(举头望明月);delay(5);lcd_pos(4,1);//lcd_write_string(dis4);lcd_write_string(低头思故乡);delay(500);}}

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功