四川信息职业技术学院毕业设计说明书(论文)
DATAPORT=WDLCM;
LCM_RS=1; // 选中数据寄存器 LCM_RW=0; // 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0; }
/***********lcm内部等待函数*************/ void lcd_wait(void) {
DATAPORT=0xff; LCM_EN=1;
LCM_RS=0; LCM_RW=1; _nop_();
while(DATAPORT&BUSY) { LCM_EN=0; _nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); }
LCM_EN=0; }
/**********LCM初始化子函数***********/
第 31 页 共 33 页
void initLCM( ) {
四川信息职业技术学院毕业设计说明书(论文)
DATAPORT=0; delay_LCM(15);
WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号 delay_LCM(5);
WriteCommandLCM(0x38,0); delay_LCM(5);
WriteCommandLCM(0x38,0); delay_LCM(5);
WriteCommandLCM(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号
WriteCommandLCM(0x08,1); //关闭显示,检测忙信号 WriteCommandLCM(0x01,1); //清屏,检测忙信号
WriteCommandLCM(0x06,1); //显示光标右移设置,检测忙信号 WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号 }
/****************显示指定坐标的一个字符子函数*************/ void DisplayOneChar(uchar X,uchar Y,uchar DData) {
uchar mx,my; my=Y&1; mx=X&0xf;
if(my>0)mx+=0x40; //若y为1(显示第二行),地址码+0X40 mx+=0x80; //指令码为地址码+0X80 WriteCommandLCM(mx,0); WriteDataLCM(DData);
第 32 页 共 33 页
}
四川信息职业技术学院毕业设计说明书(论文)
/***********显示指定坐标的一串字符子函数***********/ void DisplayListChar(uchar X,uchar Y, unsigned char *DData) {
uchar i=0,n; Y&=0x01; X&=0x0f; n=strlen(DData); while(i DisplayOneChar(X,Y,DData[i]); i++; X++; } } 第 33 页 共 33 页