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