?? idle.asm
字號:
;///////////////////////////////////////////
;本程序源代碼由單片機培訓(xùn)網(wǎng)提供.
;單片機培訓(xùn)網(wǎng),讓更多人學(xué)習(xí)單片機更容易.
;第一網(wǎng)址----www.mcuedu.com
;第二網(wǎng)址----http://51_train.nease.net
;創(chuàng)辦人------劉永忠
;熱線電話----(0755)27529998
;email-------aa815@163.com
;本程序?qū)崿F(xiàn)七段碼動態(tài)顯示并在個位為零時進入省電模式,
;當(dāng)外中斷0管腳來一個下降沿觸發(fā)時,退出省電模式功能.
;///////////////////////////////////////////
org 0000h
ajmp main
org 0003h
ajmp int0prog
org 0030h
main:
mov ie,#81h
mov tcon,#01h ;設(shè)置成邊沿觸發(fā)方式
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -