读LCD数据不成可能是什么原因?有哪位高手指点一下,做LCD的读写实验时,用的是HD44770的LCD片,按正常的时序读的,却不成功,程序如下,帮我看一下:<br />void rd_lcd_data(void)<br />{TRISDATA|=0x00FF;<br /> asm volatile("nop");<br /> RS=1;<br /> RW=1;<br />//U2TXREG=DATA;<br /> E=1; <br /> aaaa=DATA;<br /> asm volatile("nop");<br /> asm volatile("nop");<br /> asm volatile("nop");<br /> E=0;<br /> aaaa&=0x00FF;<br /> delay(delay_200us_count);<br />}<br />void __attribute__((__interrupt__)) _U2TXInterrupt(void)<br />{<br /> //for(j=0;j<i;j++)<br /> // {lcd_cmd(0x04);<br /> // }<br /> //for(j=0;j<33;j++)<br /> // {<br /> // rd_lcd_data();<br /> // readb&=0x0F;<br /> lcd_cmd(0x80);<br /> cursor_right();<br /> rd_lcd_state();<br />/* a=state;<br /> a&=0x0080;<br /> if(a==0)<br />{PORTAbits.RA1=~PORTAbits.RA1;<br /> rd_lcd_data();<br /> U2TXREG=aaaa;<br />IFS1bits.U2TXIF=0;<br />}<br />else<br />{IFS1bits.U2TXIF=0;<br />PORTAbits.RA1=~PORTAbits.RA1;<br /> rd_lcd_data();<br /> 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 />有经验的路过的指导一下,不胜感激 |
|