一.51单片机各引脚功能回顾
二.中断的基本概念
三、51单片机的中断系统
51单片机各引脚功能回顾
我们QX-MCS51开发板上面使用的是DIP封装(双列直插式)有40只引脚!
40只引脚按其功能来分,可分为3类:
◆电源引脚接入单片机工作电源
1.Vcc(40脚):接+5V 电源; 2.Vss(20脚):接地。
◆时钟引脚
XTAL1和XTAL2分别接的我们开发板的外部晶振,为单片机提供工作频率节拍。
二、控制引脚。
三、I/O口引脚
P0三态IO口,P1口内部有上拉普通准双向IO口,P2口内部有上拉普通准双向
IO口,P3口内部有上拉普通准双向IO口(有第二功能,可以通过配置特殊功能寄存
来实现)。
P3第二功能各引脚功能定义:
P3.0:RXD串行口输入
P3.1:TXD串行口输出
P3.2:INT0外部中断0输入
P3.3:INT1外部中断1输入
P3.4:T0定时器0外部输入
P3.5:T1定时器1外部输入
P3.6:WR外部写控制
P3.7:RD外部读控制
中断的基本概念
中断
基本解释:
计算机执行某程序时,发生了紧急事件或有特殊请求,CPU暂停某程序的执行,
转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程叫做中断。
为了让我们更加方便的理解中断这个概念,让我们打个比方:假设你在上网,突然楼下传来你的朋友要你去踢足球的声音,这就是中断请求。然后你对他喊道:“我就来!等一等!”这就是中断响应。接着你就和他踢足球去了,这就是中断处理。踢完足球以后,你再回到你的计算机前面接着上网,这就叫做中断返回。从以上可以看出,中断分为4个步骤:中断请求->中断响应->中断处理->中断返回。
1、数据的输入/输出传送方式
v无条件传送方式:
一方对另一方来说总是准备好的。
v查询传送方式(LOOK UP):
传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待。
v中断传送方式(IRQ):
一方通过申请中断的方式与另一方进行数据传送。
v直接存储器存取方式(DMA):
双方直接通过总线传送数据, 不经CPU中转。适用于数据量大高速通讯的设备不占用CPU时间。
2、中断传送方式特点
数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号提出申请,乙方接到申请后若同意传送,安排好当前的工作,再响应与甲方发生数据传送。完事后,回去继续做打断前的工作。
中断功能强弱是计算机性能优劣的重要标志
a提高CPU效率 a解决速度矛盾 a实现并行工作 a应付突发事件……
引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。
51子系列允许5个中断源:
外部中断源(2个):
INT0——由P3.2端口线引入,低电平或下降沿引起。
INT1——由P3.3端口线引入,低电平或下降沿引起。
这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低4位控制。
内部中断源(3个):
T0——定时器/计数器0中断,由T0回零溢出引起。
T1——定时器/计数器1中断,由T1回零溢出引起。
TI/RI——串行I/O中断,串行端口完成一帧字符发送/接收后引起。
这3个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。
1、中断请求标志TCON(88H)可位寻址
TCON:Timer控制寄存器,低4位管理外部中断
作用:设置外部中断触发方式,标注外部中断请求。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
IE0/IE1:外部中断申请标志位:
=0:没有外部中断申请;
=1:有外部中断申请。
IT0/IT1:外部中断请求的触发方式选择位:
=0:在INT0/INT1端申请中断的信号低电平有效;
=1:在INT0/INT1端申请中断的信号负跳变有效。
外部中断及中断请求的撤除
低电平/负脉冲→INT0/INT1引脚可触发中断
IT0/IT1:INT0/1的触发方式选择位:
IT0/IT1 =0 时,INT0/INT1是低电平有效;
IT0/IT1 =1 时,INT0/INT1是负跳变有效。
低电平触发 引脚上的低电平须持续到中断发生。若中断返回前仍未及时撤除低电平,将再次中断。
负脉冲触发 CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低才认为是一次中断请求。CPU 可记忆申请、可自动撤除中断申请。
1、中断允许控制寄存器IE(A8H)
作用:CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
符号 | EA |
|
| ES | ET1 | EX1 | ET0 | EX0 |
EA , CPU中断允许(总允许)位; =0 时禁止全部中断;=1 时允许中断。
ES,串行口中断允许位;=0 时禁止中断; =1 时允许中断。
ET1,定时/计数器T1中断允许位;=0 时禁止中断; =1 时允许中断。
EX1,外部中断1允许位;=0 时禁止中断; =1 时允许中断。
ET0,定时/计数器T0中断允许位;=0 时禁止中断; =1 时允许中断。
EX0,外部中断0允许位; =0 时禁止中断; =1 时允许中断。
51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套 。
中断优先级控制寄存器IP (B8H)可位寻址
— — — PS PT1 PX1 PT0 PX0
PX0/PX1:INT0/1优先级控制位:
=0 时属低优先级; =1 时属高优先级。
PT0/PT1:T0/1中断优先级控制位:
=0 时属低优先级; =1 时属高优先级。
PS1:串行口中断优先级控制位:
=0 时属低优先级; =1 时属高优先级。
中断优先级处理原则
对同时发生多个中断申请时:
☞不同优先级的中断同时申请(很难遇到)
——先高后低
☞相同优先级的中断同时申请(很难遇到)
——按序执行
☞正处理低优先级中断又接到高级别中断
——高打断低
☞正处理高优先级中断又接到低级别中断
——高不理低
单片机同优先级中内部查询顺序
内部查询顺序: 在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一优先级内,还同时存在另一辅助优先级结构,其查询顺序如下:
中断响应条件
此中断源的中断允许位为1。
总中断CPU中断打开(EA = 1)。
中断源有中断请求。
外部中断0初始化例:
•EX0 = 1; //开外部中断0
•IT0 = 0; //低电平触发
•EA = 1; //开总中断
中断处理函数
void int0() interrupt 0
{
.....
}
使用定时器中断实现让8个LED灯亮1000MS灭1000MS
要求:不能使用软件延时;
使用定时器1中断让8个LED循环右移,间隔500ms,同时使用定时器0中断方式
让数码管前2位间隔1000ms从0显示到60,如果有外部中断产生则停止数码管走数
(外部中断0低电平触发方式)