📄 main.asm
字号:
;*****************************************************
keys_int: clr ea
clr ie1
mov p2,#0
mov a,p1
cpl a
anl a,#0fh
cjne a,#0,keys_reader
clr ie1
setb ea
reti
keys_reader: call time10ms
mov a,p1
cpl a
anl a,#0fh
mov keys_byte,a
keys_reader_0: mov a,p1
cpl a
anl a,#0fh
cjne a,#0,keys_reader_0
clr ie1
setb ea
reti
;*****************************************************
;按键处理程序
;*****************************************************
keys_management: cjne a,#01h,keys_check_2
sjmp keys_1
keys_check_2: cjne a,#02h,keys_check_3
sjmp keys_2
keys_check_3: cjne a,#04h,keys_check_4
sjmp keys_3
keys_check_4: cjne a,#08h,keys_check_err
sjmp keys_4
keys_check_err: ret
keys_1: ljmp keys_manage_1
keys_2: ljmp keys_manage_2
keys_3: ljmp keys_manage_3
keys_4: ljmp keys_manage_4
;*****************************************************
;1键处理
;*****************************************************
keys_manage_1: lcall beep1
ret
;*****************************************************
;2键处理
;*****************************************************
keys_manage_2: lcall beep3
ret
;*****************************************************
;3键处理
;*****************************************************
keys_manage_3: lcall beep1
lcall digital
lcall digital
lcall digital
lcall digital
lcall digital
lcall digital
lcall beep3
ret
;*****************************************************
;4键处理
;*****************************************************
keys_manage_4: lcall beep3
lcall digital
lcall digital
lcall digital
lcall digital
lcall digital
lcall digital
lcall beep3
ret
;*****************************************************
;延时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 + -