?? main.asm
字號:
ret
keys_manage_101: mov aleart_byte,#0 ;清除狀態
mov r0,#4
mov a,#digital_byte
add a,#3
mov r1,a
keys_manage_102: mov a,@r1
clr acc.7
mov @r1,a
dec r1
djnz r0,keys_manage_102
mov r0,#digital_byte
mov r1,#aleart_data
mov a,@r0
anl a,#0fh
mov b,a
inc r0
mov a,@r0
anl a,#0fh
swap a
orl a,b
mov @r1,a
inc r1
inc r0
mov a,@r0
anl a,#0fh
mov b,a
inc r0
mov a,@r0
anl a,#0fh
swap a
orl a,b
mov @r1,a
call beep1
setb digital_bit
setb ex0
ret
;*****************************************************
;3鍵處理
;*****************************************************
keys_manage_3: call beep1
mov r0,#digital_byte ;調節閃爍位置的數值
mov r1,#8
keys_manage_30: mov a,@r0
jb acc.7,keys_manage_31
inc r0
djnz r1,keys_manage_30
setb digital_bit
ret
keys_manage_31: anl a,#0f0h
mov b,a
mov a,@r0
anl a,#0fh
cjne a,#9,keys_manage_32
mov a,b
mov @r0,a
inc r0
djnz r1,keys_manage_30
setb digital_bit
reti
keys_manage_32: mov a,@r0
inc a
mov @r0,a
inc r0
djnz r1,keys_manage_30
setb digital_bit
ret
;*****************************************************
;4鍵處理
;*****************************************************
keys_manage_4: clr ex0
call beep1
mov a,digital_flash_bit ;若目前處于時間設置狀態則提示并退出
jnb acc.7,keys_manage_400
call beep2
setb digital_bit
setb ex0
ret
keys_manage_400: mov a,aleart_byte ;設置目前處于鬧鐘設置狀態
setb acc.7
mov aleart_byte,a
anl a,#0fh
cjne a,#0,keys_manage_40
jmp keys_manage_49 ;將鬧鐘數據進行顯示
keys_manage_40: cjne a,#1,keys_manage_41
jmp keys_manage_45 ;第一位數字閃爍
keys_manage_41: cjne a,#2,keys_manage_42
jmp keys_manage_46 ;第二位數字閃爍
keys_manage_42: cjne a,#3,keys_manage_43
jmp keys_manage_47 ;第三位數字閃爍
keys_manage_43: cjne a,#4,keys_manage_44
jmp keys_manage_48 ;第四位數字閃爍
keys_manage_44: call beep2
setb digital_bit
setb ex0
ret
keys_manage_45: mov a,#digital_byte ;第一位數字閃爍
add a,#3
mov r0,a
mov a,@r0
setb acc.7
mov @r0,a
mov r0,#digital_byte
mov a,@r0
clr acc.7
mov @r0,a
inc aleart_byte ;指向下一位數據
setb digital_bit
ret
keys_manage_46: mov a,#digital_byte ;第二位數字閃爍
add a,#2
mov r0,a
mov a,@r0
setb acc.7
mov @r0,a
mov a,#digital_byte
add a,#3
mov r0,a
mov a,@r0
clr acc.7
mov @r0,a
inc aleart_byte ;指向下一位數據
setb digital_bit
ret
keys_manage_47: mov a,#digital_byte ;第三位數字閃爍
add a,#1
mov r0,a
mov a,@r0
setb acc.7
mov @r0,a
mov a,#digital_byte
add a,#2
mov r0,a
mov a,@r0
clr acc.7
mov @r0,a
inc aleart_byte ;指向下一位數據
setb digital_bit
ret
keys_manage_48: mov r0,#digital_byte ;第四位數字閃爍
mov a,@r0
setb acc.7
mov @r0,a
mov a,#digital_byte
add a,#1
mov r0,a
mov a,@r0
clr acc.7
mov @r0,a
mov a,aleart_byte ;指向第一位數據
anl a,#0f0h
inc a
mov aleart_byte,a
setb digital_bit
ret
keys_manage_49: mov r0,#digital_byte ;將鬧鐘數據進行顯示
mov r1,#aleart_data
mov a,@r1
anl a,#0fh
mov @r0,a
inc r0
mov a,@r1
swap a
anl a,#0fh
mov @r0,a
inc r0
inc r1
mov a,@r1
anl a,#0fh
mov @r0,a
inc r0
mov a,@r1
swap a
anl a,#0fh
mov @r0,a
inc r0
mov @r0,#20h
inc r0
mov @r0,#20h
inc r0
mov @r0,#20h
inc r0
mov @r0,#20h
inc aleart_byte
jmp keys_manage_45
;*****************************************************
;時鐘中斷處理程序
;*****************************************************
time_int: clr ea
clr ie1
clr digital_bit
push aCC
push b
call iicread
call aleart_check
pop b
pop aCC
setb digital_bit
setb ea
reti
;*****************************************************
;延時10uS
;*****************************************************
time10us: mov r5,#05h ;11us
djnz r5,$
ret
;*****************************************************
;延時50uS
;*****************************************************
time50us: mov r5,#19h ;51us
djnz r5,$
ret
;*****************************************************
;延時100uS
;*****************************************************
time100us: mov r5,#31h ;99.6us
djnz r5,$
ret
;*****************************************************
;延時200uS
;*****************************************************
time200us: mov r5,#64h ;201us
djnz r5,$
ret
;*****************************************************
;延時250uS
;*****************************************************
time250us: mov r5,#7ch ;249.6us
djnz r5,$
ret
;*****************************************************
;延時350uS
;*****************************************************
time350us: mov r5,#0afh ;351us
time350us_1: djnz r5,time350us_1
ret
;*****************************************************
;延時500uS
;*****************************************************
time500us: mov r5,#0fah ;501us
time500us_1: djnz r5,time500us_1
ret
;*****************************************************
;延時1mS
;*****************************************************
time1ms: mov r5,#0fah ;1001us
time1ms_1: nop
nop
djnz r5,time1ms_1
ret
;*****************************************************
;延時2.5mS
;*****************************************************
time2_5ms: mov r5,#05h ;2.496ms
time2_5ms_1: mov r6,#0f8h ;497us
djnz r6,$
djnz r5,time2_5ms_1
ret
;*****************************************************
;延時10mS
;*****************************************************
time10ms: mov r5,#14h ;10.262ms
time10ms_1: mov r6,#0ffh ;511us
djnz r6,$
djnz r5,time10ms_1
ret
;*****************************************************
;延時50mS
;*****************************************************
time50ms: mov r5,#63h ;49.996ms
time50ms_1: mov r6,#0fbh ;503us
djnz r6,$
djnz r5,time50ms_1
ret
;*****************************************************
;延時100mS
;*****************************************************
time100ms: mov r5,#0c3h ;100.036ms
time100ms_1: mov r6,#0ffh ;511us
djnz r6,$
djnz r5,time100ms_1
ret
;*****************************************************
;延時200mS
;*****************************************************
time200ms: mov r5,#02h ;250.351ms
time200ms_1: mov r6,#0f4h ;125.173ms
time200ms_2: mov r7,#0ffh ;511us
djnz r7,$
djnz r6,time200ms_2
djnz r5,time200ms_1
ret
;*****************************************************
;延時500mS
;*****************************************************
time500ms: mov r5,#04h ;500.701ms
time500ms_1: mov r6,#0f4h ;125.173ms
time500ms_2: mov r7,#0ffh ;511us
djnz r7,$
djnz r6,time500ms_2
djnz r5,time500ms_1
ret
;*****************************************************
;延時1S
;*****************************************************
time1s: mov r5,#08h ;1001.401ms
time1s_1: mov r6,#0f4h ;125.173ms
time1s_2: mov r7,#0ffh ;511us
djnz r7,$
djnz r6,time1s_2
djnz r5,time1s_1
ret
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -