谁能给我讲讲单片机的中断程序

来源:百度知道 编辑:UC知道 时间:2024/05/29 06:14:10
比如下面这个例子 ORG 0000H
AJMP MAIN
ORG 0003H
AJMP EXINT0
MAIN: MOV TCON,#01H
MOV IE,#81H
MOV IP,#01H
MOV SP<#03FH
.....
EXINT0:
.....
这个程序种一来就跳转到MAIN下一句的ORG 0003H和 AJMP EXINT0应该就不会执行,请告诉这条程序执行的顺序并讲解一下希望能详细点谢谢。

程序一开始就跳转到MAIN,但是我还是希望你到MAIN之前加一条语句:
ORG 0050H 也就是说跳转到MAIN的时候的地址是0050H,为什么样这样做呢,是因为你不加的话会将中断的地址给占用了。
到MAIN后,你的程序将往下运行,
MOV TCON,#01H
MOV IE,#81H
MOV IP,#01H
这些都是设置中断的,当你中断后,(51好象有5个中断源吧)姑且当中断是跳到0003H,那么将执行AJMP EXINT0 这条指令,跳转到EXINT0 这个程序中去运行,执行完后,退出,返回到你中断的地方继续运行程序,就这样!!!

一开始是跳到main了,但中断的意思就是:
不管主程序在忙什么,只要有中断信号发生(接在单片机的INT0口有低电平)就会马上中断响应,立即跳到 ORG 0003H这个单元
开始AJMP EXINT0执行,执行完EXINT0后,原先主程序在忙什么还继续忙什么(中断返回)
就是说如果,AJMP EXINT0不会执行就不存在中断这个概念了

所谓的中断就是指当中断条件满足的时候,打断正在运行的程序,程序跳转到中断入口程序开始运行,本例程中,ORG 0003H就是外部中断0的入口地址

该说的他们都说了
我再给你讲点别的
http://www.51hei.com/mcuteach/234.html