单片机原理(3):中断、定时计数、串行通信

单片机原理(3):中断、定时计数、串行通信,第1张

中断(Interrupt)是指在计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

定时器/计数器(TImer/Counter)在实时控制系统中,实现对于外界事件的定时延时及计数功能。

串行通信(Serial Communicate)是计算机与外界交换信息的一种基本通信方式。

中断系统

中断过程中,请求产生中断的事件称为中断源,中断源向CPU提出的请求为中断请求(Interrupt Requst,IRQ),CPU通过上下文切换保存好当前的工作状态后,转而去处理中断请求,也就是产生中断响应。直到处理完中断请求事件,才返回原来的工作状态,继续工作。整个过程如下图所示:

51单片机中断系统的结构图如下:

中断源

51单片机中有5个中断源,如下表所示:

中断号 优先级 中断源 中断入口地址
0   1(最高级)   外部中断0   0003H  
1   2   定时器0   000BH  
2   3   外部中断1   0013H  
3   4   定时器1   001BH  
4   5(最低级)   串口中断   0023H  

每个中断源都分配了对应的中断号及中断服务入口地址,在这个中断入口地址里,存放着跳转到相应中断服务程序的跳转指令。当多个中断源同时向CPU提出中断请求时,CPU将根据中断源的优先级来依次响应中断。

相关寄存器

SFR中与中断有关的寄存器有:

IE

IE(Interrupt Enable),中断允许寄存器,可位寻址,其各位定义如下:

位地址 AFH AEH ADH ACH ABH AAH A9H A8H
定义   EA   -   (ET2)   ES   ET1   EX1   ET0   EX0  

* EA(Enable All):CPU中断总控制位,EA=1,CPU对所有中断开放,EA=0,CPU禁止一切中断响应。
* ES(Enable Serial):串口中断允许控制位,ES=1,允许串行口接受、发送中断。
* ET0/ET1(Enable TImer):定时/计数器0/1中断允许控制位,ET0/ET1=1,允许T0/T1中断。52系列单片机里还有ET2。
* EX0/EX1(Enable Exterior):外部中断INT0/INT1中断允许控制位,EX0/EX1=1,允许外部中断INT0/INT1中断。

IP

IP(Interrupt Priority),中断优先级寄存器,可位寻址,其各位定义如下。未设置时或复位后,IP各位均为”“则按照系统默认的优先级

位地址 BFH BEH BDH BCH BBH BAH B9H B8H
定义   -   -   (PT2)   PS   PT1   PX1   PT0   PX0  

* PS(Priority Serial):串行口优先级设定位,PS=1,串行口为高优先级。
* PT0/PT1(Priority TImer):定时/计数器0/1优先级设定位,PT0/PT1=1,定时/计数器0/1为高优先级。
* PX0/PX1(Priority Exterior):外部中断INT0/INT1优先级设定位,PX0/PX1=1,外部中断INT0/INT1为高优先级。

TCON

TCON(TImer Control),定时/计数器控制寄存器,可位寻址,其各位定义如下:

位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
定义   TF1   TR1   TF0   TR0   IE1   IT1   IE0   IT0  

* TF0/TF1(Timer Flag):定时/计数器0/1溢出标志位,当定时/计数器计满溢出时,由硬件自动置“1”,并申请中断;在进入中断服务程序后,又由硬件自动置“0”。
* TR0/TR1(Timer Run):定时/计数器0/1启停控制位,TR0/TR1=1,启动定时/计数器。
* IE0/IE1(Interrupt Exterior):外部中断INT0/INT1中断请求标志位,外部中断源有请求时,对应的标志位IE0/IE1由硬件置“1”,当CPU响应该中断后,又由硬件自动置“0”。
* IT0/IT1(Interrupt Touch):外部中断INT0/INT1的触发方式选择位,IT0/IT1=0,对应外部中断设置为低电平触发方式,IT0/IT1=1,对应外部中断设置为边沿触发方式。

中断处理过程

51单片机在CPU的每个机器周期的S5 P2期间,将自动查询TCON中各个中断申请标志,若查询到某个中断标志位被置位,将启动中断机制。

中断源发出中断请求后。要使CPU能够响应中断,IE中的中断总允许位EA及对应的中断允许位(ES/ET/EX)都需要置为“1”。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2599357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存