?? display.asm
字號:
;*****************************************************
;
; This programme is for study Ver2.0.0 beta
;This programme must be run in 12MHz standard settings
; Display programmer
; Designer: Mr.Koii
; Copyright 2002-2003 koiistudio
; 2003.03.31 at Changsha. H.N. P.R.China
;
;*****************************************************
;*****************************************************
;數(shù)碼管顯示
;*****************************************************
digital: mov a,digital_bit ;根據(jù)顯示位置讀取不同的顯示內(nèi)容
jb acc.0,digital_check0
jb acc.1,digital_check1
jb acc.2,digital_check2
jb acc.3,digital_check3
jb acc.4,digital_check4
jb acc.5,digital_check5
jb acc.6,digital_check6
jb acc.7,digital_check7
call beep2
ret
digital_check0: mov r0,#digital_byte
mov a,@r0 ;秒
jmp digital_display
digital_check1: mov r0,#digital_byte
inc r0
mov a,@r0
jmp digital_display
digital_check2: mov r0,#digital_byte ;分
inc r0
inc r0
mov a,@r0
setb acc.4 ;加小數(shù)點(diǎn)
jmp digital_display
digital_check3: mov a,#digital_byte
add a,#3
mov r0,a
mov a,@r0
jmp digital_display
digital_check4: mov a,#digital_byte ;時(shí)
add a,#4
mov r0,a
mov a,@r0
setb acc.4 ;加小數(shù)點(diǎn)
jmp digital_display
digital_check5: mov a,#digital_byte
add a,#5
mov r0,a
mov a,@r0
anl a,#83h ;屏蔽無效位
jmp digital_display
digital_check6: mov a,#digital_byte
add a,#6
mov r0,a
mov a,#20h
jmp digital_display
digital_check7: mov a,#digital_byte
add a,#7
mov r0,a
mov a,#20h
digital_display: push a
mov a,digital_flash_time
anl a,#7fh ;最高位表示顯示狀態(tài):1為顯示;0為不顯示;其余位為記數(shù)值
cjne a,#80,digital_display_00
mov a,digital_flash_time
cpl acc.7
anl a,#80h
mov digital_flash_time,a
jmp digital_display_01
digital_display_00: inc digital_flash_time
digital_display_01: pop a
jb acc.7,digital_display_1 ;最高位表示現(xiàn)在是否選擇了該位,若是則閃爍
digital_display_0: mov dptr,#data_tab_digital
movc a,@a+dptr
cpl a ;數(shù)據(jù)是共陰數(shù)碼管的,用在共陽數(shù)碼管上就需要取反
mov p2,#0
mov p0,a
mov a,digital_bit
mov p2,a
rl a
mov digital_bit,a
call time2_5ms
ret
digital_display_1: push a
mov a,digital_flash_time
jb acc.7,digital_display_2
pop a ;若最高位為零則消隱
mov a,#20h
jmp digital_display_0
digital_display_2: pop a ;否則正常顯示
clr acc.7
jmp digital_display_0
;*****************************************************
;共陰數(shù)碼管顯示數(shù)據(jù)
;排列為:0-F, 0.-F.
;端口排列:p07 p06 p05 p04 p03 p02 p01 p00
;段排列為: d dp e c g b f a
;*****************************************************
data_tab_digital: db 0b7h,014h,0adh,09dh,01eh,09bh,0bbh,015h
db 0bfh,09fh,03fh,0bah,0a8h,0bch,0abh,02bh
db 0f7h,054h,0edh,0ddh,05eh,0dbh,0fbh,055h
db 0ffh,0dfh,07fh,0fah,0e8h,0fch,0ebh,06bh
db 000h
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -