Exit:
程序代码设计
﹛ Timer设置
返回1mov TMOD,#2h• 12MHZ,设定内部定时器T0,每100us溢出中断一次。
• 一次机器周期为t=12*(1/12) us=1us • N=100us/1us=100 • T0初值=28 -N=256-100=156
• 最大计数值为28 =256us,实验要求1S=10000 00us?
断点处理EXIT: ;恢复现场 ;中断返回
谢谢
•
cpl LEDBuf
• exit:
•
恢复现场
•
中断返回
中断处理程序: ;现场保护 ;事务处理 ;判断1万次的低八位,不为0跳到Goon ;为0则高八位-1
Goon: ;低八计数单元减一 ;判断是否完成1万次,高8低8是否都为0 ;没到,则执行“断点处理EXIT” ;若到,则重置计数器,并将LED取反 ;将存10000的低8高8重新赋初值
10000次中断处理
• 中断处理:
•
保存现场
•
mov a,Count+1
•
jnz Goon
•
dec Count
• Goon:
•
dec Count+1
•
mov a,Count
•
orl a,Count+1
•
jnz Exit
•
mov Count,#high(Tick)
•
mov Count+1,#low(Tick)
返回1
启动定时器T0为: setb TR0
返回2
中断等待
循环执行以下代码: mov c,LEDBuf mov LED,c
返回