LCD12864液晶显示器C51单片机子程序.doc
- 文档编号:8775740
- 上传时间:2023-05-14
- 格式:DOC
- 页数:3
- 大小:19.50KB
LCD12864液晶显示器C51单片机子程序.doc
《LCD12864液晶显示器C51单片机子程序.doc》由会员分享,可在线阅读,更多相关《LCD12864液晶显示器C51单片机子程序.doc(3页珍藏版)》请在冰点文库上搜索。
#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();{_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&0x80);
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)
{
//while(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!
='\0')
lcd_wdat(*pt++);
}
/*LCD初始化函数*/
voidlcd_init()
{
LCD_PSB=1;//并口方式
lcd_wcmd(0x34);//扩充指令操作
delay1(5);
lcd_wcmd(0x30);//基本指令操作
delay1(5);
lcd_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==3)
{X=0x98;}
pos=X+Y;
lcd_wcmd(pos);//显示地址
}
#endif
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD12864 液晶显示器 C51 单片机 子程序