二手普中A7套裝,STC89C516,晶振12MHz,12T模式,按手冊資料寫LCD1602的簡單模塊,遇到幾個問題:
1. 檢查忙位讀到0跳出死循環,但是寫數據操作只能成功25%。搜到不少中文資料也提到有類似問題,有解決方法嗎?
2. 然后用軟件延時,調參后發現實際需要的時間略小于各種資料上給出的值很多就能穩定。這和主頻有關嗎?換更好的MCU是不是能進一步較小在程序里的軟件延時?
資料250kHz,清屏和復位1640us,寫40us
資料270kHz,清屏和復位1520us,寫37us
實驗12MHz,清屏和復位1400us,寫25us
3. 我手寫的單變量和計算器給出的延時編譯后占用code和data數量一樣。數值調整到穩定后,參數如下,i--和--i的速度是不是差距較大?
unsigned char i, j;
i = 3;j = 182;
do
{
while (--j);
} while (--i);
unsigned char time=255;
while (time--);
4. 不少資料的寫操作中,會在置高電平和置低電平后分別delay,我的實驗中發現只需要在高電平后delay一次,是不是這款MCU才能這樣,不能普遍運用到其他MCU?當然,LCDWrite(CMD,0x01)或LCDWrite(CMD,0x02)之后還是要delay 1.5ms。
5. 十幾年前的一份資料說,初始化時模式要發三次,是不是對于現在的MCU不再適用?
|