📄 sevseg1.asm
字号:
;-------------------4 Digit 7-Segments ---------------------
; Microcontroller connections to DAC0808
DATANE EQU P0 ; data lines P0-P3
D1 EQU P0.4 ; display 1
D2 EQU P0.5 ; display 2
D3 EQU P0.6 ; display 3
D4 EQU P0.7 ; display 4
;----------------------------------------------------------
; Register definitions.
BUF1 EQU 00h ; first two digits
BUF2 EQU 01h ; last two digits
;----------------------------------------------------------
ORG 0000H
JMP on_reset
;-----------------------Timer-0 intrrupt-------------------
ORG 000BH
ACALL display ; display
CLR TF0
RETI
;----------------------------------------------------------
ORG 00FFH
on_reset:
;Initialize interrupt
MOV DATANE,#00H ; display in off state
MOV IE,#82H ; timer-0 interrupt enable
MOV TMOD,#09H ; timer-0 16-bit mode
MOV TH0,0ECH ; 5msec delay at 12MHz
MOV TL0,078H
SETB D4 ; turn on digiT-4
SETB TCON.4 ; timer running
ENDLESS:
MOV BUF1,#12H ; 12 on display
MOV BUF2,#34H ; 34 on display
JMP ENDLESS
;----------------------------------------------------------
display:
;destroy A
JB D4,DISP1
JB D3,DISP4
JB D2,DISP3
JB D1,DISP2
DISP1:
CLR D4
MOV A,BUF1 ; digit 1 display
ANL A,#0FH
MOV DATANE,A
SETB D1
DISP2:
CLR D1
MOV A,BUF1 ; digit 2 display
ANL A,#0F0H
RR A
RR A
RR A
RR A
MOV DATANE,A
SETB D2
DISP3:
CLR D2
MOV A,BUF2 ; digit 3 display
ANL A,#0FH
MOV DATANE,A
SETB D3
DISP4:
CLR D3
MOV A,BUF2 ; digit 4 display
ANL A,#0F0H
RR A
RR A
RR A
RR A
MOV DATANE,A
SETB D4
RET
;----------------------------------------------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -