利用單片機實現按鍵控制數碼管顯示。單片機是所有微處理機中性價比最高的一種,隨著種類的不斷全面功能不斷完善,其應用領域也迅速擴大。單片機在智能儀表、實時控制機電一體化、辦公機械、家用電器等方面都有相當的應用領域。當前8位單片機主要用于工業控制,如溫度、壓力、流量、計量和機械加工的測量和控制場合;
高效能的16位單片機(如MCS-96、MK-68200)可用在更復雜的計算機網絡??梢哉f,微機測控技術的應用已滲透國民經濟的各個部門,微機測控技術的應用是產品提高檔次和推陳出新的有效途徑。
51單片機最小系統中有4個獨立按鍵,4個共陽極數碼管,我想對應著用一個按鍵去控制一個數碼管,比如按以下1號按鍵,對應的數碼管顯示0,再按一下顯示1,有點像計數功能,這樣的換憑借4個按鍵就可以顯示出我需要的4位數
鍵盤電路作為單片機的輸入部分,數碼顯示電路作為單片機的輸出部分,由鍵盤電路通過單片機控制數碼管顯示電路的八路鍵控數碼管電路。按下S0到S7號按鍵時,數碼管顯示立刻顯示數字0到7。電子制作的好課題下面是單片機最小系統_按鍵控制數碼管顯示原理圖,實作時,按原理圖焊好電路,單片機中寫入程序。
ORG 0000H ;隨后的指令代碼從0000H單元開始存放。
LJMP START ;轉到標號START處
ORG 0030H ;隨后的指令代碼從0030H單元開始存放。
START:MOV P0,#00H ;關閉數碼管,不顯示任何內容。
SAOMIAO:MOV P2,#0FFH ;對P2口所有位寫1,也就是處于讀狀態,確保讀數正確。
CLR A ;對累加器A清零。
MOV A,P2 ;第一次讀取P2口的數據,并送入累加器A中。
CPL A ;對A按位取反,如果沒有鍵按下, A為00H,如果有鍵按下,相應的位為1。
JZ SAOMIAO ;如果A=00H,說明沒有鍵按下,跳到標號SAOMIAO處繼續掃描。如果A不等于00H,說明有鍵按下,應該調用10MS的延時去抖子程序。
LCALL DELAY10MS ;調用10MS的延時去抖子程序。
MOV A,P2 ;第二次讀取P2口的數據,并送入累加器A中。
CPL A ;對A按位取反,如果沒有鍵按下, A為00H,如果有鍵按下,相應的位為1。
JZ SAOMIAO ;如果A=00H,說明沒有鍵按下,跳到標號SAOMIAO處繼續掃描。如果A不等于00H,說明確實有鍵按下,順序執行下面的程序,判斷是哪個鍵按下了。
JB ACC.0,SZ0 ;如果S0鍵按下,則ACC.0=1,轉去執行顯示數字0,否則順序執行。
JB ACC.1,SZ1 ;如果S1鍵按下,則ACC.1=1,轉去執行顯示數字1,否則順序執行。
JB ACC.2,SZ 2 ;如果S2鍵按下,則ACC.2=1,轉去執行顯示數字2,否則順序執行。
JB ACC.3,SZ 3 ;如果S3鍵按下,則ACC.3=1,轉去執行顯示數字3,否則順序執行。
JB ACC.4,SZ 4 ;如果S4鍵按下,則ACC.4=1,轉去執行顯示數字4,否則順序執行。
JB ACC.5,SZ 5 ;如果S5鍵按下,則ACC.5=1,轉去執行顯示數字5,否則順序執行。
JB ACC.6,SZ 6 ;如果S6鍵按下,則ACC.6=1,轉去執行顯示數字6,否則順序執行。
JB ACC.7,SZ 7 ;如果S7鍵按下,則ACC.7=1,轉去執行顯示數字7,否則順序執行。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描。
SZ0:MOV P0,#3FH ;顯示數字0。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ1:MOV P0,#06H ;顯示數字1。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ2:MOV P0,#5BH ;顯示數字2。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ3:MOV P0,#4FH ;顯示數字3。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ4:MOV P0,#66H ;顯示數字4。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ5:MOV P0,#6DH ;顯示數字5。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ6:MOV P0,#7DH ;顯示數字6。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
SZ7:MOV P0,#07H ;顯示數字7。
LJMP SAOMIAO;跳轉到SAOMIAO處繼續掃描按鍵。
DELAY10MS:MOV R7,#20 ;從本行開始,到RET結束,為10MS延時去抖子程序。
D1:MOV R6,#250
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END