![]() |
發布時間: 2020-6-26 09:15
正文摘要:我是按照每個元件的原理圖裝的線路,之前也檢查了下午也沒有發現錯誤。那些百度到的方法也試過了,也沒用。程序在仿真的時候沒有問題。 程序 #include<reg51.h> #define uchar unsigned char #define uint unsi ... |
會不會是單片機的引腳沒接對,實物的引腳和仿真的不一樣的要吧程序里的 sbit LCD_E=P1^7; //液晶使能端 sbit LCD_RS=P1^5; //液晶數據命令選擇端 sbit LCD_RW=P1^6; //液晶讀寫選擇端 引腳該為單片機實物上面的引腳 |
這程序和你的單片機硬件不匹配吧 |
旋風拖鞋 發表于 2020-6-26 16:23 這是典型的LCD1602初始化失敗的現象。程序能夠正常仿真,不能用于實際電路最大可能是LCD1602驅動程序的時序有問題。看樓主程序中的延時函數有疑點。 void delay(unsigned char z) { unsigned char x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 從表面看似乎這是1ms延時程序,實際由于數據類型使用unsigned char,delay(5);的延時只有577us,要把延時函數中數據類型改為unsigned int 才能近似1ms。MCU處理不同數據類型耗時也不同! |