预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

看电视中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。 采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力。中断解决了快速主机与慢速I/O设备的数据传送,还具有如下优点:图5.1MCS-51中断系统结构框图中断源是指在计算机系统中向CPU发出中断请求的来源,中断可以人为设定,也可以是为响应突发性随机事件而设置。1.中断控制寄存器TCONTF1:定时器T1溢出中断标志位,硬件复位为0,T1溢出中断为1。IE1、IE0:外部中断请求标志位;外部中断请求有 效时自动置位,CPU响应中断请求后,由硬件自动 复位,以等待下次中断。硬件复位为0,来中断则 相应置1。2.串行口控制寄存器SCONTI:发送中断标志位 RI:接收中断标志位 CPU能自动置位,执行中断服务程序后由指令来清除标志位,以便响应下次中断请求。MCS-51单片机有5个(8052有6个)中断源,为了使每个中断源都能独立地被允许或禁止,以便用户能灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器。 只有该触发器无效,它所对应的中断请求信号才能进入CPU,即此类型中断开放。否则,即使其对应的中断标志位置1,CPU也不会响应中断,即此类型中断被屏蔽了。同时CPU内还设置了一个中断允许触发器,它控制CPU能否响应中断。图5.4IE格式EA:中断总控开关。 EA=1,CPU开总中断;EA=0,CPU关总中断。 ET2:定时器2中断允许位。 ET2=1,允许T2中断;ET2=0,禁止T2中断; ES:串行口中断允许位。 ES=1,允许串行口中断; ES=0,禁止串行口中断; ET1:定时器1中断允许位。 ET1=1,允许T1中断;ET1=0,禁止T1中断;EX1:外部中断1INT1允许位。 EX1=1,允许INT1中断; EX1=0,禁止INT1中断; ET0:定时器0中断允许位。 ET0=1,允许T0中断; ET1=0,禁止T0中断; EX0:外部中断1INT0允许位。 EX0=1,允许INT0中断; EX0=0,禁止INT0中断;2.中断优先级的控制(IP)表5.2同级内第二优先级次序中断优先级越高,则响应优先权就越高。当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高级中断申请,待高级中断处理程序完毕再返回原中断程序断点处继续执行,这一过程称为中断嵌套。1.中断响应的条件中断响应受阻的情况:单片机一旦响应中断请求,就由硬件完成以下功能: (1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1; (2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈; (3)清除相应的中断请求标志位(串行口中断请求标 志RI和TI除外); (4)把被响应的中断源所对应的中断服务程序的入口 地址(中断矢量)送入PC,从而转入相应的中断服务程序。表5.3中断服务程序入口地址表分三种不同的情况: (1)TF0,TF1两个标志CPU响应中断后自动清除; (2)串行口的TI,RI必须由软件清除(TI=0;RI=0;); (3)外部中断的撤除: 边沿触发方式: CPU响应中断后自动清除标志位; 电平触发方式: 要求有效低电平应在中断程序返回前变为高电平。5.3MCS-51单片机中断的C语言程序设计方法一、中断初始化: 1、关总中断 2、清除所有中断标志; 3、若为外部中断,则设定触发方式,电平触发还是负边沿触发; 4、若为定时器中断,则设定计数初值; 5、设定中断优先级别; 6、开相应的中断; 7、若为定时器中断,则启动定时器计时; 8、开总中断。 注意:程序设计中虽然不一定要按照上面的步骤,但这样是最可靠的。程序设计中根据需要有些步骤是可以省略的。 中断服务子函数在main函数里不需要人工调用,当有中断 信号到来时,单片机自动调用中断服务子函数,在中断服务子 函数里也可以调用其他用户自定义的子函数,当顺序执行到中 断服务子函数的末尾时则单片机自动跳回原来程序执行的地方。void中断服务子函数名称(void)interrupt中断标号 { [1、清除相应中断标志位或关相应中断;] 2、完成相应中断的服务功能;(在此可以调用其他子函数) [3、打开相应中断。] } 其中,中断标号为0、1、2、3、4分别顺序代表外部中断INT0、定时器中断T0、外部中断INT1、定时器中断T1、串行中断。这是一个很重要的标记,它规定着当前这个子函数是哪个中