第四章 MCS-51的功能部件§4-1 中断系统 §4-2 定时器/计数器 §4-3 串行接口
§4-1 中断系统 MCS-51单片机允许有五个中断源,提供两个中断 优先级。 每一个中断源的优先级由中断优先级寄存器IP中的 各位来确定,可以通过编程来设定。 中断源的中断请求是否能得到响应,受中断允许寄 存器IE的控制。 同一优先级中的各中断源同时请求中断时,由内部 的查询逻辑来确定响应的次序。
MCS-51中断系统
中断系统分以下几个内容:一、中断请求源和中断请求标志 二、中断控制 三、中断优先级结构 四、中断响应过程
一、中断请求源和中断请求标志1. 中断请求源 8051提供5个中断源: !INT0 来自P3.2引脚上的外部中断请求(外中断0) !INT1 来自P3.3引脚上的外部中断请求(外中断1) T0 片内定时器/计数器0溢出(TF0)中断请求 T1 片内定时器/计数器1溢出(TF1)中断请求 串行口 片内串行口完成一帧发送或接收中断请求源 TI或RI
说明: 每一个中断源都对应有一个中断请求标志位,设在 SFR的TCON和SCON中。
2. TCON——定时器/计数器控制寄存器(88H)位地址 TCON 8F TF1 8E 8D TF0 8C 8B 8A 89 88 IE1 IT1 IE0 IT0外部中断0(!INT1) 触发方式控制位外中断0请求标志
T1中断请求标志 T0中断请求标志 外中断1请求标志 外部中断1(!INT1)触发方式控制位
若ITi=1(边沿触发),置位IEi、在 CPU响应该中断时由硬件清0。 若ITi=0(电平触发),低电平必须保持 到该中断被响应。同时在中断返回前必须使 电平变高,否则将会再次产生中断。
3. SCON-串行口控制寄存器(98H)位地址 9F SCON发送中断标志 9E 9D 9C 9B 9A 99 98 TI RI 接收中断标志
当发送和接收中任何一个标志被置位时,都可以 向CPU提出申请。事实上,CPU在响应串行口中 断时,并不清楚中断是由RI还是TI引起,必须在 中断服务程序中判断。同时RI和TI只能由软件清 零。
二、中断控制1. IE-中断允许寄存器(A8H)位地址AF AE AD AC AB AA A9 A8
IE EA - - ES ET1 EX1中断允许标志 0 禁止 所有中断 1 开放中断
ET0 EX0外部中断0 1 允许中断 T0的溢出中断 1 允许中断 外部中断1 1 允许中断
串行口中断允许位 1 允许中断
T1的溢出中断 1 允许中断
2. IP-中断优先级寄存器(B8H) 中断系统提供两个中断优先级位地址 BF BE BD BC BB IP - - - PS PT1BA PX1 B9 PT0 B8 PX0外部中断0 1 设高优先级 0 设低优先级 T0中断优先级 1 设高优先级 0 设低优先级 外部中断1 1 设高优先级 0 设低优先级
串行口中断优先级 1 设高优先级 0 设低优先级
T1中断优先级 1 设高优先级 0 设低优先级
三、中断优先级结构 中断系
统内具有两级优先级,遵循以下两条基本规则: (1)低优先级中断源可被高优先级中断源所中断。 (2)一种中断源一旦得到响应,与它同级的中断源不 能再中断它。 当同时收到几个同一优先级的中断,其优先级排列如 下: 中断源 同级内的中断优先级 外部中断0 最高 T0溢出中断 外部中断1 T1溢出中断 串行口中断 最低
四、中断响应过程 CPU在每个机器周期的S5P2时刻采样中断标志,而 在下一个机器周期对采样到的中断进行处理。 按优先级高低进行中断处理,中断系统将控制程序 转入相应的中断服务程序。 封锁CPU对中断响应的条件: (1)CPU正在处理同级的或高一级的中断 (2)现行的机器周期不是当前所执行指令的最后 一个机器周期(保证当前执行的指令的完整性)。 (3)当前正在执行的指令是返回(RETI)指令或 是对IE或IP进行读/写的指令(这种情况下,至少再 执行完一条指令后才能响应中断)。
例.如图所示,发生故障时,对应的故障源 输入端X1~X3会变为高电平,从而引起 MCS-51单片机中断,编写程序点亮对应 的发光二极管LED1~LED3。
主程序为:
ORG 0000HAJMP MAIN ORG 0003H AJMP SERVICE MAIN: SETB IT0 SETB EX0 ;选择边沿触发方式 ;允许INT0中断
SETB EAAJMP $
;CPU开中断;等待中断
中断服务子程序为:SERVICE: JNB P1. 0 , L1 CLR P1. 3 L1: JNB P1. 1 , L2 CLR P1. 4 L2: JNB P1. 2 , L3 CLR P1. 5 ;若X1无故障,跳 ;点亮LED1 ;若X2有故障,跳 ;点亮LED2 ;若X3有故障,跳 ;点亮 LED3
L3:
RETI
§4-2 定时器/计数器 MCS-51内部有两个16位可编程的定时器/计 数器(T0、T1)。 基本部件 一、结构P3.5(T1) T1 T0
P3.4(T0) 7 0 TH0 7 0 TL0
7 0 TH1微 处 理 器
7 0 TL1
TCON
TMOD
功能:作定时器时: 对内部时钟脉冲(晶体振荡器的输出经12分频后得 到)计数,即一个机器周期加1.
作计数器时: 对外部输入引脚T0(P3.4)或T1(P3.5)上的脉冲计数。 最高计数频率为晶振频率的1/24。 例如:fosc=6MHz, 则最高计数频率=6M/24=250KHz。