欢迎来到天天文库
浏览记录
ID:50811787
大小:19.50 KB
页数:3页
时间:2020-03-14
《LCD12864液晶显示器C51单片机子程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#ifndef__LCD12864_H__#define__LCD12864_H__#include#defineucharunsignedchar#defineuintunsignedint/*端口定义*/#defineLCD_dataP0//数据口sbitLCD_RS=P2^7;//寄存器选择输入sbitLCD_RW=P2^6;//液晶读/写控制sbitLCD_EN=P2^5;//液晶使能控制sbitLCD_PSB=P1^4;//串/并方式控制#definedelayNOP()
2、;{_nop_();_nop_();_nop_();_nop_();};/*延时函数*/voiddelay1(intms){while(ms--){uchari;for(i=0;i<250;i++){_nop_();_nop_();_nop_();_nop_();}}}/*检查LCD忙状态*//*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。*/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x8
3、0);LCD_EN=0;return(result);}/*写指令到LCD*//*RS=L,RW=L,E=高脉冲,D0-D7=指令码。*/voidlcd_wcmd(ucharcmd){//while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*写数据到LCD*//*RS=H,RW=L,E=高脉冲,D0-D7=数据。*/voidlcd_wdat(uchardat){//whi
4、le(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*显示字符串函数*/voidlcd_string(uchar*pt){while(*pt!=' ')lcd_wdat(*pt++);}/*LCD初始化函数*/voidlcd_init(){LCD_PSB=1;//并口方式lcd_wcmd(0x34);//扩充指令操作delay1(5);lcd_wcmd(0x30);//基本指令操作delay1(5);lcd
5、_wcmd(0x0C);//显示开,关光标delay1(5);lcd_wcmd(0x01);//清除LCD的显示内容delay1(5);}/*延时x*0.14ms子程序*/voiddelay0(ucharx)//x*0.14MS{uchari;while(x--){for(i=0;i<13;i++){}}}/*设定显示位置函数*/voidlcd_pos(ucharX,ucharY){ucharpos;if(X==0){X=0x80;}elseif(X==1){X=0x90;}elseif(X==2){X=0x88;}elseif(X==
6、3){X=0x98;}pos=X+Y;lcd_wcmd(pos);//显示地址}#endif
此文档下载收益归作者所有