![]() |
發布時間: 2022-1-29 17:16
正文摘要:本人是菜鳥,自學單片機,因為是音響發燒友,所以DIY音響時會用到單片機做一些簡單的控制。最近在DIY PCM63的DAC,用51單片機進行控制和顯示。結果程序運行失敗。請各位老師幫忙看看,指導一下,謝謝。 基本思路 ... |
先把定時器和外部中斷在main一開始就初始化,EA置1寫在SJMP $前,使程序易讀 |
WriteIR程序沒出現,正常進入后顯示內容怎么給出看不來,也有可能你正常進入后給值邏輯有問題吧。你配個電路連接圖可能更容易讓人看明白 |
自己開發底板和用匯編寫程序,至少要有一顆LED做指示,因為只要一個代碼。SETB或CLR就能看到程序是否運行到那邊,或者死在那里,LCD是個復雜設備,就算MCU不去理他,字符還在那,連光標都會閃呢!所以不能作為除錯之用。 |
sfes1314 發表于 2022-1-30 11:38 Work: JNB KEY, No_work ;0-執行下一行,1-跳轉不工作 CALL Display_1602 JMP Work No_work: JNB KEY,Work ;檢測是否為0 提供你思路 |
zmc419 發表于 2022-1-30 20:37 我不會C啊,尷尬。。。 |
用C寫吧,簡單明了,易于理解 |
dalaoshi 發表于 2022-1-30 13:28 已經明確的說了。1602LCD,為什么還要LED呢? |
看別人寫的匯編有如看天書,不知道我的理解是否有誤:第一次看到純粹靠中斷來運行的程序,開機后什么都沒有設定進入待機,按鍵后進入MAIN,運行到末端就在那空轉等中斷,沒有中斷就沒有運作,也沒有LED會閃來指示“我還活著”,所以才有“不知道是否死機”的疑問,中斷程序里還有“LCALL DELAY”,不知道去了那會被打轉多少次,回來時已是天上人間,這期間是否有其他中斷發生未及處理或處理不當,副程式里還有AJMP到FS44,FS44是干什么的看不到,去了也不懂有沒有回來,如果沒有回來底下那個RET就永遠無法執行,每多一次中斷就積壓一組回歸地址在STACK沒有出來,直到超過極限而崩潰,大概是這樣吧?這里的作者名字全部變成代號了,無名無姓,認不出,不產生情感。![]() |
請各位老師幫忙檢查一下指點一下。謝謝。 |