单片机上拉过强导致液晶屏不显示的解决

使用的是长沙博强的51最小系统板(STC89C52),TS1620-1液晶屏,SDCC编译器。
连接液晶屏,运行静态显示例程,显示一排黑块。
 
将LCD_Check_Busy换50ms延时后,显示出现。
 
LCD_Check_Busy的逻辑是看BUSY信号,高电平返回真。逆转逻辑后,显示出现。
看示波器,发现BUSY有拉低,但是最低电压有1.6V,不会识别为低,处理器认为总是高(BUSY)。
 
LCD_Check_Busy逆转逻辑其实相当与一个延时。这意味着BUSY信号是无用的。
分析电路,发现P0口上有一个10K上拉排阻,连在P0上的LED灯有1K上拉排阻。
 
计算得出下拉电流有5mA,查LCD的数据手册,低电平只能驱动1.2mA。此上拉对于LCD的驱动能力过强。
 
断开LED的1K上拉后,BUSY信号逻辑达到0.8V以下,LCD_Check_Busy的BUSY信号高返回真逻辑工作正常,液晶显示正常,但LED无法点亮。将10K上拉换到LED上,LED可以点亮(亮度较弱),液晶也显示正常。
 
对开发板电路的修改建议:
取消单独的P0口10K上拉排阻,P0口上的LED灯的上拉电阻本身具有对P0的上拉排阻功能,为限制拉低时的电流在1mA以下,建议LED灯的上拉排阻应在5K以上。否则,一些液晶屏的BUSY等输出信号将无法正常工作。

你可能感兴趣的:(无法显示,单片机,液晶屏)