| 你用的什么单片机?可能是IO口方向的问题。在输出命令或数据后要将IO口转为输入才能检测到忙信号。<br /><br />这是我写的PIC的部份代码:<br /><br />//LCD1602接线引脚定义<br />#define    LCD_RS        RA0        //LCD数据/命令寄存器选择。<br />#define    LCD_RW        RA1        //LCD读/写。<br />#define    LCD_EN        RA2        //LCD使能。<br />#define    LCD_DATA    PORTC    //MCU数据口。<br />#define    LCD_IODIR    TRISC    //MCU数据口方向控制寄存器。<br />#define    LCD_BUSY    RC7        //LCD忙信号。<br /><br />//检测忙标志。<br />void LCD_CheckBusy(void)    //检测LCD忙标志,等待内部操作完成。<br />{<br />    LCD_RS=LOW;<br />    LCD_RW=HIGH;<br />    LCD_EN=HIGH;<br />    LCD_IODIR=IN;<br />    while(LCD_BUSY==HIGH);<br />    LCD_EN=LOW;<br />}<br />//发送一条命令。<br />void LCD_SendCommand(unsigned char command)<br />{<br />    LCD_CheckBusy();<br />    LCD_RS=LOW;<br />    LCD_RW=LOW;<br />    LCD_EN=HIGH;<br />    LCD_IODIR=OUT;<br />    LCD_DATA=command;<br />    LCD_EN=LOW;<br />}<br />//发送一字节数据。<br />void LCD_SendData(unsigned char dat)<br />{<br />    LCD_CheckBusy();<br />    LCD_RS=HIGH;<br />    LCD_RW=LOW;<br />    LCD_EN=HIGH;<br />    LCD_IODIR=OUT;<br />    LCD_DATA=dat;<br />    LCD_EN=LOW;<br />} |