單片機上拉過強導致液晶屏不顯示的解決

使用的是長沙博強的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等輸出信號將無法正常工作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章