设计一个接口电路,并在这一电路的基础上设计一段程序,完成下列功能 1 该电路中包括一个8位的LED数码管 2 在程序的控制下将20130614这8个数显示在LED数码管上
TLOW EQU 00H
THIGH EQU 0EEH
COUN0 EQU 200 ;5ms * 200 = 1S
COUN_WEI EQU 3CH ;显示位
; EQU 3BH ;
DISP_BUF EQU 50H ;8字节缓存
VALUE EQU 30H ;8字节
VALUE0 EQU 30H
VALUE1 EQU 31H
VALUE2 EQU 32H
VALUE3 EQU 33H
VALUE4 EQU 34H
VALUE5 EQU 35H
VALUE6 EQU 36H
VALUE7 EQU 37H
LED_WEI EQU P3 ;数码管位选
LED_DAT EQU P0 ;数码管数据
;EQU 20H.0 ;20H.0 为 标记
;EQU 20H.1 ;20H.1为 标记
;EQU 20H.2 ;20H.2 为 标记
;EQU 20H.3 ;20H.3为 标记
;EQU 20H.4 ;20H.4为 标记
;EQU 20H.5 ;20H.5为 标记
;EQU 20H.6 ;20H.6 为 标记
C__ EQU 22 ;"-";22
C_DIE EQU 24 ;"熄灭";24
DELAY_VAL EQU 50
;--------------------------------------------------
ORG 0000H
JMP MAIN
ORG 0BH
JMP T0_INT
;--------------------------------------------------
MAIN:
MOV SP,#60H
CALL INIT_TIMER
SETB TR0
MOV VALUE0,#2
MOV VALUE1,#0
MOV VALUE2,#1
MOV VALUE3,#3
MOV VALUE4,#0
MOV VALUE5,#6
MOV VALUE6,#1
MOV VALUE7,#4
CALL LED_SHOW
LOOP1:
JMP LOOP1
;;-------------------------
;;显示子程序
;;使用寄存器组:第2组寄存器
;;出口:
;;入口:
;;--------------------------
DISPLAY:
PUSH ACC
PUSH PSW
CLR PSW.3 ;RS1、RS0(PSW.4、PSW.3): 1 0
SETB PSW.4
MOV A,COUN_WEI
CJMP0:
CJNE A,#0,CJMP1
JMP DISP_WEI1
CJMP1:
CJNE A,#1,CJMP2
JMP DISP_WEI2
CJMP2:
CJNE A,#2,CJMP3
JMP DISP_WEI3
CJMP3:
CJNE A,#3,CJMP4
JMP DISP_WEI4
CJMP4:
CJNE A,#4,CJMP5
JMP DISP_WEI5
CJMP5:
CJNE A,#5,CJMP6
JMP DISP_WEI6
CJMP6:
CJNE A,#6,CJMP7
JMP DISP_WEI7
CJMP7:
CJNE A,#7,DISP_WEI0
JMP DISP_WEI8
DISP_WEI0:
MOV COUN_WEI,#0
DISP_WEI1:
MOV LED_WEI,#01H ;P3
JMP DISP_WEI_END
DISP_WEI2:
MOV LED_WEI,#02H ;P3
JMP DISP_WEI_END
DISP_WEI3:
MOV LED_WEI,#04H ;P3
JMP DISP_WEI_END
DISP_WEI4:
MOV LED_WEI,#08H ;P3
JMP DISP_WEI_END
DISP_WEI5:
MOV LED_WEI,#10H ;P3
JMP DISP_WEI_END
DISP_WEI6:
MOV LED_WEI,#20H ;P3
JMP DISP_WEI_END
DISP_WEI7:
MOV LED_WEI,#40H ;P3
JMP DISP_WEI_END
DISP_WEI8:
MOV LED_WEI,#80H ;P3
; JMP DISP_WEI_END
DISP_WEI_END:
MOV R0,#DISP_BUF
MOV A,COUN_WEI
ADD A,R0
MOV R0,A
MOV A,@R0
MOV DPTR,#LED_TAB
MOVC A,@A+DPTR
MOV LED_DAT,A
INC COUN_WEI
POP PSW
POP ACC
RET
LED_TAB:
DB 0C0H ;"0"
DB 0F9H ;"1"
DB 0A4H ;"2"
DB 0B0H ;"3"
DB 99H ;"4"
DB 92H ;"5"
DB 82H ;"6"
DB 0F8H ;"7"
DB 80H ;"8"
DB 90H ;"9"
DB 88H ;"A"
DB 83H ;"B"
DB 0C6H ;"C"
DB 0A1H ;"D"
DB 86H ;"E"
DB 8EH ;"F";15
DB 89H ;"H";16
DB 0C7H ;"L";17
DB 0C8H ;"n";18;11001000
DB 0C1H ;"u";19
DB 8CH ;"P";20
DB 0A3H ;"o";21
DB 0BFH ;"-";22
DB 0AFH ;"r";23
DB 0FFH ;"熄灭";24
DB 091H ;"y" ;25
DB 0FFH ;"自定义"
LED_SHOW: ;在LED显示输入的值
MOV 50H,30H; ;23
MOV 51H,31H;
MOV 52H,32H;
MOV 53H,33H;
MOV 54H,34H;
MOV 55H,35H;
MOV 56H,36H;
MOV 57H,37H;
RET
;;-------------------------
INIT_TIMER: ;初始化定时器
MOV TMOD,#01H ;设置定时器0 工作模式为模式1
MOV IE, #82H ;启用定时器0 中断产生
MOV TL0,#TLOW
MOV TH0,#THIGH
RET
;;-------------------------
T0_INT:
PUSH ACC
PUSH PSW
MOV TL0,#TLOW
MOV TH0,#THIGH
CALL DISPLAY
T0_INT_EXIT:
POP PSW
POP ACC
RETI
;;-------------------------
END