中断服务程序,处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为—中断服务程序.
中断处理过程:
(1)保护被中断进程现场.为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值.
(2)分析中断原因,转去执行相应的中断处理程序.在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求.
(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程.
INT后面是中断处理程序,相当于一个双层循环,r7相当于内层循环变量,r6相当于外层循环变量.
首先,r7减一后若不为零就跳转到finish处退出中断,若为零则说明已经完成一个200次的内循环,则将r7恢复成200再看r6,若减一不为零就跳回here处继续一轮内循环,若为零则说明已经完成一个50次的外循环,即已经中断了10000次,则恢复r6为50,迎接下一个10000次中断,并对p1.0状态取反.
很简单的。在main主程序里面
LOOP GOTO LOOP
这条程序,会不停的执行,到了TMR0溢出的时候就会执行中断程序
ORG 0004H为中断程序的地址
ORG 00H 开始地址JMP MAIN跳转到主程序
ORG 03H 外部中断0地址
JMP EXT1跳转
ORG 13H 外部中断1地址
JMP EXT2跳转
MAIN:
MOV IE, #85H 使能中断 0,1
SETB TCON.2边沿触发
SETB TCON.0边沿触发
SJMP $ --没有这一句,程序,自己就去执行中断函数了
EXT1:
MOV P2, #0清0,点亮发光二极管
RETI
EXT2:
MOV P2, #0FFH 置1,关闭
RETI
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)