读LCD"HD44770"数据不成可能是什么原因?

[复制链接]
2747|1
 楼主| dazi 发表于 2007-8-28 12:41 | 显示全部楼层 |阅读模式
LCD, CD, abi, TI, TE
读LCD数据不成可能是什么原因?有哪位高手指点一下,做LCD的读写实验时,用的是HD44770的LCD片,按正常的时序读的,却不成功,程序如下,帮我看一下:<br />void&nbsp;rd_lcd_data(void)<br />{TRISDATA|=0x00FF;<br />&nbsp;asm&nbsp;volatile(&quot;nop&quot;);<br />&nbsp;RS=1;<br />&nbsp;RW=1;<br />//U2TXREG=DATA;<br />&nbsp;E=1;&nbsp;<br />&nbsp;aaaa=DATA;<br />&nbsp;asm&nbsp;volatile(&quot;nop&quot;);<br />&nbsp;asm&nbsp;volatile(&quot;nop&quot;);<br />&nbsp;asm&nbsp;volatile(&quot;nop&quot;);<br />&nbsp;E=0;<br />&nbsp;aaaa&=0x00FF;<br />&nbsp;delay(delay_200us_count);<br />}<br />void&nbsp;__attribute__((__interrupt__))&nbsp;_U2TXInterrupt(void)<br />{<br />&nbsp;//for(j=0;j&lti;j++)<br />&nbsp;&nbsp;&nbsp;//&nbsp;{lcd_cmd(0x04);<br />&nbsp;&nbsp;//&nbsp;&nbsp;}<br />&nbsp;//for(j=0;j&lt33;j++)<br />&nbsp;&nbsp;&nbsp;//&nbsp;{<br />&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;rd_lcd_data();<br />&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;readb&=0x0F;<br />&nbsp;lcd_cmd(0x80);<br />&nbsp;cursor_right();<br />&nbsp;rd_lcd_state();<br />/*&nbsp;a=state;<br />&nbsp;a&=0x0080;<br />&nbsp;if(a==0)<br />{PORTAbits.RA1=~PORTAbits.RA1;<br />&nbsp;rd_lcd_data();<br />&nbsp;U2TXREG=aaaa;<br />IFS1bits.U2TXIF=0;<br />}<br />else<br />{IFS1bits.U2TXIF=0;<br />PORTAbits.RA1=~PORTAbits.RA1;<br />&nbsp;rd_lcd_data();<br />&nbsp;U2TXREG=aaaa;<br />}*/<br />rd_lcd_data();<br />U2TXREG=aaaa;<br />U2TXREG=readb[j];<br />j++;<br />if(j==8)j=0;<br />PORTAbits.RA1=~PORTAbits.RA1;<br />IFS1bits.U2TXIF=0;<br />}<br />用的是串行通信的方式,目的是PC读出显示器的当前显示字符<br />上两部分程序是主要的子程序<br />发送数据给LCD显示却可以实现,用的是MICROCHIP的开发板来做的<br />有经验的路过的指导一下,不胜感激
judge 发表于 2007-8-29 22:36 | 显示全部楼层

必须读两次。 说明上有说的。

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部