如何利用单片机让4位数码管显示?
用c最好 汇编也行 两个都有更好 哈哈。用89c51 打错字了呵呵 展开
下列程序经过实验,可以满足题目要求.
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV 70H, #04H
MOV 71H, #03H
MOV 72H, #02H
MOV 73H, #01H
;-------------------------------
M_LOOP:
LCALL DISP
AJMP M_LOOP
;-------------------------------
DISP:
MOV DPTR, #D_TAB
MOV R2, #01H
MOV R0, #70H
D_LOOP:
MOV A, @R0
MOVC A, @A+DPTR
MOV P2, #0 ;消隐.
MOV P0, A ;输出段码.
MOV P2, R2 ;输出位码.
LCALL DL_1MS
MOV A, R2
RL A
MOV R2, A
INC R0
CJNE R0, #74H, D_LOOP
RET
D_TAB:
DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H
DB 80H, 90H, 88H, 83H, 86H, 0A1H, 86H, 8EH
;-------------------------------
DL_1MS:
DJNZ R7, $
DJNZ R7, $
RET
END
;==============
实验是在某个型号的实验板上进行。
该实验板上共有8位数码显示器,是由两块四位一体的数码管构成。
低四位数码管的电路如下图所示。元件引脚都已经标出。