📄 idle.asm
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;本程序实现七段码动态显示并在个位为零时进入省电模式,
;当外中断0管脚来一个下降沿触发时,退出省电模式功能.
;///////////////////////////////////////////
org 0000h
ajmp main
org 0003h
ajmp int0prog
org 0030h
main:
mov ie,#81h
mov tcon,#01h ;设置成边沿触发方式
mov dptr,#tab
mov 30h,#06h
mov 31h,#07h
mov 32h,#08h
mov 33h,#09h
loop:
mov r4,#25
tt1:
lcall display
djnz r4,tt1
lcall update
jnb 10h,loop
mov pcon,#01h
nop
nop
ajmp loop
int0prog:
mov pcon,#00h
clr 10h
nop
reti
display:
mov r7,#100
dd1:
mov a,30h
movc a,@a+dptr
mov p0,a
clr p2.0
lcall delay100us
setb p2.0
mov a,31h
movc a,@a+dptr
mov p0,a
clr p2.1
lcall delay100us
setb p2.1
mov a,32h
movc a,@a+dptr
mov p0,a
clr p2.2
lcall delay100us
setb p2.2
mov a,33h
movc a,@a+dptr
mov p0,a
clr p2.3
lcall delay100us
setb p2.3
djnz r7,dd1
ret
update:
inc 30h
mov a,30h
cjne a,#10,exit
mov 30h,#00h
setb 10h
inc 31h
mov a,31h
cjne a,#10,exit
mov 31h,#00h
inc 32h
mov a,32h
cjne a,#10,exit
mov 32h,#00h
inc 33h
mov a,33h
cjne a,#10,exit
mov 33h,#00h
exit:
ret
delay100us:
mov r5,#50
djnz r5,$
ret
delay10ms:
mov r6,#100
tt2:
mov r5,#50
djnz r5,$
djnz r6,tt2
ret
tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -