📄 k3_three.asm
字号:
k2_60_90: rjmp m_k2_press
d60_90: rcall delay
sbic PIND,7
rjmp display60_90
rcall change_disp
display70_90: cpi r27,2
brne display80_90
rcall disp_70
rcall delay1
sbic PIND,7
rjmp c70_90
rjmp d70_90
c70_90: cpi r17,0
breq k2_70_90
rjmp m_wait_k1
k2_70_90: rjmp m_k2_press
d70_90: rcall delay
sbic PIND,7
rjmp display70_90
rcall change_disp
display80_90: cpi r27,3
brne display90_90
rcall disp_80
rcall delay1
sbic PIND,7
rjmp c80_90
rjmp d80_90
c80_90: cpi r17,0
breq k2_80_90
rjmp m_wait_k1
k2_80_90: rjmp m_k2_press
d80_90: rcall delay
sbic PIND,7
rjmp display80_90
rcall change_disp
display90_90:rcall disp_90
rcall delay1
sbic PIND,7
rjmp c90_90
rjmp d90_90
c90_90: cpi r17,0
breq k2_80_90
rjmp m_wait_k1
k2_90_90: rjmp m_k2_press
d90_90: rcall delay
sbic PIND,7
rjmp display90_90
rcall change_disp
;-----------------------------------------------
display120:ser r16
out DDRC,r16 ;portc is output mode and turn off all LEDS
ldi r21,$00
out PORTC,r21 ;turn off "50" display
ldi r21,$06
out SPDR , r21
ldi r17,0b0000100
out PORTC,r17 ;PC.2 display "1"
; wait0:sbis SPSR,7
; rjmp wait0
rcall delay
ldi r17,0b0000000
out PORTC,r17
ldi r21,$5b
out SPDR , r21
ldi r17,0b0001000
out PORTC,r17
out PORTC,r17 ;PC.3 display "2"
; wait0:sbis SPSR,7
; rjmp wait0
rcall delay
ldi r17,0b0000000
out PORTC,r17
ldi r21,$3f
out SPDR , r21
ldi r17,0b0010000
out PORTC,r17 ;PC.4 display "0"
; wait0:sbis SPSR,7
; rjmp wait0
rcall delay
ldi r17,0b0000000
out PORTC,r17
ret
;-----------------------------------------------
;-----------------------------
b1_d0: rcall turn_off
rcall display_0
rcall dispbyte_1
; rcall trans_wait
rcall delay
rcall turn_off
ret
;-----------------------------
disp_10: rcall display_1
rcall dispbyte_0
; rcall trans_wait
rcall delay
rcall b1_d0
rcall delay
rcall turn_off
ldi r27,-4
ret
;-----------------------------
disp_20: rcall display_2
rcall dispbyte_0
; rcall trans_wait
rcall delay
rcall b1_d0
rcall delay
rcall turn_off
ldi r27,-3
ret
;-----------------------------
disp_30: rcall display_3
rcall dispbyte_0
; rcall trans_wait
rcall delay
rcall b1_d0
rcall delay
rcall turn_off
ldi r27,-2
ret
;-----------------------------
disp_40: rcall display_4
rcall dispbyte_0
; rcall trans_wait
rcall delay
rcall b1_d0
rcall delay
rcall turn_off
ldi r27,-1
ret
;-----------------------------
disp_50: rcall display_5
rcall dispbyte_0
; rcall trans_wait
rcall delay
rcall b1_d0
ldi r27,0
ret
;-----------------------------
disp_60: rcall turn_off
rcall display_6
rcall dispbyte_0
; rcall trans_wait
rcall delay
rcall b1_d0
ldi r27,1
ret
;------------------------------
disp_70:rcall turn_off
rcall display_7
rcall dispbyte_0
;rcall trans_wait
rcall delay
rcall b1_d0
ldi r27,2
ret
;-----------------------------
disp_80:rcall turn_off
rcall display_8
rcall dispbyte_0
;rcall trans_wait
rcall delay
rcall b1_d0
ldi r27,3
ret
;-------------------------------
disp_90: rcall turn_off
rcall display_9
rcall dispbyte_0
;rcall trans_wait
rcall delay
rcall b1_d0
ldi r27,4
ret
;-----------------------------
b4_d0: rcall turn_off
rcall display_0
rcall dispbyte_4
; rcall trans_wait
rcall delay
rcall turn_off
ret
;----------------------------
tad_030:rcall turn_off
rcall display_0
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_3
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,-3
ret
;----------------------------
tad_060:rcall turn_off
rcall display_0
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_6
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,-2
ret
;----------------------------
tad_090:rcall turn_off
rcall display_0
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_9
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,-1
ret
;----------------------------
tad_120:rcall turn_off
rcall display_1
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_2
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,0
ret
;----------------------------
tad_150:rcall turn_off
rcall display_1
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_5
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,1
ret
;----------------------------
tad_180:rcall turn_off
rcall display_1
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_8
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,2
ret
;----------------------------
tad_210:rcall turn_off
rcall display_2
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_1
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,3
ret
;----------------------------
tad_240:rcall turn_off
rcall display_2
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_4
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,4
ret
;----------------------------
tad_270:rcall turn_off
rcall display_2
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_7
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,5
ret
;----------------------------
tad_300:rcall turn_off
rcall display_3
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_0
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,6
ret
;----------------------------
tad_330:rcall turn_off
rcall display_3
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_3
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,7
ret
;----------------------------
tad_360:rcall turn_off
rcall display_3
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_6
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,8
ret
;----------------------------
tad_390:rcall turn_off
rcall display_3
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_9
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,9
ret
;----------------------------
tad_420:rcall turn_off
rcall display_4
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_2
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,10
ret
;----------------------------
tad_450:rcall turn_off
rcall display_4
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_5
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,11
ret
;----------------------------
tad_480:rcall turn_off
rcall display_4
rcall dispbyte_2
rcall delay
rcall turn_off
rcall display_8
rcall dispbyte_3
;rcall trans_wait
rcall delay
rcall b4_d0
ldi r26,12
ret
;************************************************
seg_code:.db $3f,$06,$5b,$4f,$66,$6d,$7d,$07
.db $7f,$6f,$77,$7c,$39,$5e,$79,$71
display_0:ldi r21,$3f
out SPDR , r21
ret
display_1:ldi r21,$06
out SPDR , r21
ret
display_2:ldi r21,$5b
out SPDR , r21
ret
display_3:ldi r21,$4f
out SPDR , r21
ret
display_4:ldi r21,$66
out SPDR , r21
ret
display_5:ldi r21,$6d
out SPDR , r21
ret
display_6:ldi r21,$7d
out SPDR , r21
ret
display_7:ldi r21,$07
out SPDR , r21
ret
display_8:ldi r21,$7f
out SPDR , r21
ret
display_9:ldi r21,$6f
out SPDR , r21
ret
turn_off: ser r16
out DDRC,r16
ldi r17,0b0000000
out PORTC,r17
ret
dispbyte_0:ldi r17,0b00000001
out PORTC,r17
ret
dispbyte_1:ldi r17,0b00000010
out PORTC,r17
ret
dispbyte_2:ldi r17,0b00000100
out PORTC,r17
ret
dispbyte_3:ldi r17,0b00001000
out PORTC,r17
ret
dispbyte_4:ldi r17,0b00010000
out PORTC,r17
ret
trans_wait:sbis SPSR,7
rjmp trans_wait
ret
m_min: ret
t_add: ret
t_min: ret
change_disp: ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -