⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 是介绍使用单片机控制数码管显示的程序,可以显示多种样式.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*****************************************************

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 + -