- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
org 0000h
ajmp main
org 000bh ;T0溢出中断入口地址·
ajmp time0
org 0020h
main: clr p1.5
mov r1,#0ffh
mov r2,#00h ;给计数器r2赋初值0
mov sp,#70h ;设置堆栈
mov tmod,#01h ;设置T0工作方式
mov th0,#3ch ;T0置计数初值
mov tl0,#0b0h
setb et0 ;允许T0溢出中断
setb ea ;cpu开中断
setb tr0 ;启动T0开始计数
wait: cjne r2,#20,wait ;定时时间未到,继续查询等待
acall light ;定时时间到,调用查表求灯光子程序
ajmp wait
;以下是查表求灯光子程序
light: mov r2,#00h ;计数器重新赋初值
inc r1 ;查表求灯光,详细解释见试验5“多位数码显示”
mov a,r1
mov dptr,#tab
movc a,@a+dptr
mov p0,a
cjne a,#0ffh,next
mov r1,#0ffh
next: ret ;子程序返回
;以下是中断服务程序
time0: inc r2 ;计数器加1
mov th0,#3ch ;重置计数初值
mov tl0,#0b0h
reti ;中断返回
tab: db 0fah,0f5h,0ebh,0d7h ;灯光变换表格
db 0afh,5fh,0aah,055h,0f0h,0fh,0ffh
end |
|