8051程式燒出來 lcd顯示黑格 但重側面看有HELLO TIME 會跑 不知道怎把黑格消掉讓字顯示出來 請會8051的大大為我解惑要怎麼改程式?

已更新項目:

可以請問大大你的信箱嗎 ? 還有些事情想問你

之前在知識+問過lcd 黑格的問題 現在已經解決了 現在有新的問題 希望你也能幫我解答 小的感激不盡

這是我做的 程式 跟接線圖

https://mega.nz/#!0lsyAICJ!RLAdCCtAZ-uTkOb0qW8fBn2...

8051兩顆 都有接上 石英震盪器 跟reset部份 8051兩顆 13接14 14接13 20gnd 40vcc 都有接

現在問題 時鐘那邊有顯示 可是時間一到 時間就會卡住 然後蜂鳴器 一接電源 就一直叫 led 打地鼠 也沒有動作

想知道是程式 問題 還是 接線的問體 拜託了

1 個解答

評分
  • 4 年前
    最佳解答

    目前看到 void T0_int(void) interrupt 2 這一行敘述 有誤 ...... interrupt 2 是外部中斷 應改成 void T0_int(void) interrupt 1...

    你改後測試 看看....

    如果每次重新上電...噘皆有顯示提示字元 ,,那表示 void InitialLCD(void) 這個函是不需要修正

    用這個函數

    void InitialLCD(void)

    {

    delay(20000);

    WriteIns(0x38);

    delay(500);

    WriteIns(0x38);

    delay(500);

    WriteIns(0x38);

    delay(500);

    WriteIns(0x08);

    WriteIns(0x01);

    WriteIns(0x06);

    WriteIns(0x0c);

    }

    會比較穩定 ,不訪試試看,,,

    你的程式在顯示最先顯示 HELLO TIME 後有清除顯示幕 ...

    再來是顯示時間 第一列: TIME  第二列:12:00:00

    應當不會有黑格的情況呀 !!!

    硬體測試結果是:在 第一列: TIME後會有不明字元,原因在於 程式中 WriteString(5,MSG3); 這個敘述導致 ... 這個敘述是要顯示幕顯示MSGˇ陣列5個字元 ,而在陣列宣告char MSG3[]="Time"; 故程式顯示Time後還會顯是一個字元 造成黑格 ....修改 MSG3[] 在Time後加間格字元char MSG3[]="Time "可改善 ,,

    然而程式中是利用time0 中斷來處理時間的計時 , 中斷編號 是 1 ,不是目前 void T0_int(void) interrupt 2 建議修訂,,否則是不會計時的....修改後理論上應該會計時顯示。

    另外程式執行一段時間會多餘的字元,

    其原因在於:void WriteIns(char i)函數 ,void WriteData(char i),void CheckBusy(void) EN太早送..... EN 應當在RS RW data 之後 ,,,,,

    理由是:EN先 LCD 已是致能狀態了 ,,,再執行RS RW data 有可能使LCD誤動作....

    如還有問題再來信,相互研究....

還有問題?馬上發問,尋求解答。