现在正在对一块ST7920的LCD进行编程,可是程序烧写后,无论如何,LCD都没有反应,只有背光,下面是与LCD相关的程序,请各位高人帮忙指点迷津,谢谢。<br /><br />#define StartLCMData PORTA |= 0X10<br />#define StopLCMData PORTA &= 0XEF<br />#define LCMParaMode PORTF |= 0X20<br />#define LCMInstruction PORTF &= 0XF7<br />#define LCMData PORTF |= 0X08<br />#define LCMWrite PORTF &= 0XEF<br />#define LCMRead PORTF |= 0X10<br />#define StartResetLCM PORTF &= 0XBF<br />#define StopResetLCM PORTF |= 0X40<br /><br />void InitializeLCM(void)<br />{<br /> unsigned int i = 0;<br /> <br /> StartResetLCM;<br /> for(i=0;i<=400;i++)<br /> {<br /> Delay();<br /> }<br /> StopResetLCM;<br /> Delay();<br /> <br /> DisableLatch;<br /> <br /> LCMParaMode;<br /> LCMWriteCommand(0X30); //功能设定<br /> LCMWriteCommand(0X30); //根据ST7920手册,再次功能设定<br /> LCMWriteCommand(0X02); //位址归位<br /> LCMWriteCommand(0X0C); //显示状态设定<br /> LCMWriteCommand(0X01); //清屏<br /> LCMWriteCommand(0X06); //进入点设定<br /> LCMWriteCommand(0X80); //设定DDRAM地址<br /> <br /> return;<br />}<br /><br />void LCMWriteCommand(unsigned char command)<br />{<br /> unsigned int i;<br /> <br /> LCMInstruction;<br /> LCMWrite;<br /> StartLCMData;<br /> PORTB = command;<br /><br /> Delay();<br /> <br /> if((0x01 == portb)&&(0x00 == portg))<br /> {<br /> for(i=0;i<=20;i++)<br /> {<br /> Delay();<br /> }<br /> }<br /> <br /> StopLCMData;<br /> return;<br />}<br /><br />void LCMWriteData(unsigned char data)<br />{<br /> LCMData;<br /> LCMWrite;<br /><br /> PORTB = data;<br /> StartLCMData;<br /> Delay();<br /> StopLCMData;<br /> return;<br />}<br /><br />void main()<br />{<br /> InitializeLCM();<br /> LCMWriteData(0x41); //显示"A"<br /> while(1)<br /> {;}<br />} |
|