![]() |
發布時間: 2018-6-13 14:40
正文摘要:同樣的數字,四位數碼管正常,二位數碼管有亂碼,同時,顯示的數字順序與實際要顯示的數字順序不符合,單片機代碼如下: #include<reg52.h> #define uchar unsigned char #define uint unsigned int u ... |
顯示的時候還原下引腳原來狀態,俗稱清屏。就好了。也就是在賦值端口顯示后全部口置1.然后再顯示下一位數。 |
zhb2004xp 發表于 2018-6-14 10:11 初學者,正在努力,我想顯示的其實是兩個倒計時,順序應該是a的十位,a的個位,b的十位,b的個位,上面的二位數碼管a倒計時,下面那個b倒計時,圖中四位數碼管是正確的顯示順序,倒計時也是對的,但是如果程序按照我想的順序寫,結果順序就是亂的,只有按上面代碼里的這個錯誤的順序,四位數碼管才有正確的順序。另外,我也試過加消影,就是在延時后加P0=0x00,或者P0=0xff,但是加前者,數碼管只顯示8和9,加后者只顯示”9“左下角缺的一節,而如果加P2=0x00,就什么都不顯示了。實在想不明白,所以請求各路大神幫幫忙。 |
樓主的程序寫的天馬行空,排序有點亂,我倒是擼了半天,82行為什么是“c1,c0,c2,c3”,而不是大家習慣的C0,C1,C2,C3 ?數碼管顯示的排序也是01H,04H,08H最后是02H![]() 至于為什么顯示亂碼,可能是P0口電流過大的原因,建議樓主在P0口和數碼管位選中間也加上一個74HC593試試; 再問問樓主,為啥不寫中斷服務程序,而習慣用TF0的查詢法 ![]() |
顯示下一組數字前,先把之前的數字清了。亂碼這個現象就是視覺暫存 |
顯示的時候還原下引腳原來狀態,俗稱清屏。就好了。也就是在賦值端口顯示后全部口置1.然后再顯示下一位數。 |
顯示的時候還原下引腳原來狀態,俗稱清屏。就好了。也就是在賦值端口顯示后全部口置1.然后再顯示下一位數。 |
選用不同類型的數碼管顯示出現亂碼也正常,就算用相同的數碼管顯示相同內容,有時軟件也可能出現一些小異常 |