- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
org 0000h
ljmp start
org 0013h
ljmp ext1
org 0030h
start:
mov r7,#0ffh
setb ea ;cpu开放中断
setb ex1 ;允许外部中断1申请中断
setb it1 ;设置外部中断1触发方式为跳变触发
lcall play1 ;调用初始状态显示子程序
ajmp $ ;等待按键发出中断申请
ext1: clr ea ;进入中断,先关闭中断
lcall play2 ;调用键识别子程序
pass: setb ea ;返回主程序之前先开中断
reti ;中断返回指令,
play1: mov a,#0C0H ;让最右面的数码管显示0的子程序
mov p0,a
mov p2,0
ret
play2: inc r7 ;查表求段码,然后送到P0口的子程序.
mov a,r7
mov dptr,#tab
movc a,@a+dptr
mov p0,a
mov p2,0
cjne a,#06fH,next;如果没有显示到最后一个数字0,就继续查表显示
mov r7,#0ffh ;否则,重新从表头开始显示
next: ret
del10ms: mov r5,#10 ;延时10ms子程序
del1: mov r4,#02h
del2: mov r3,#0ffh
del3: djnz r3,del3
djnz r4,del2
djnz r5,del1
ret
tab: db 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ;存放0~9的段码表
end |
|