第五章 MCS-51中断系统 一、中断请求源 MCS-51提供5个中断请求源,即INT0、INT1、TF0、 TF1和串行口发送与接收中断请求源TI或RI。这些 中断请求源分别由TCON与SCON的相应位锁存。
1.TCON寄存器 TCON寄存器中与中断有关的位如下: D7 D6 D5 D4 D3 D2 D1 D0 TF1 TF0 IE1 IT1 IE0 IT0 TF1:T1溢出中断标志 (溢出后,由硬件置“1”; 响应中断后置“0”/ 也可软件查询清0) TF0:T0溢出中断标志 (溢出后,由硬件置“1”, 响应中断后置“0”/也可软件查询清0) IE1:外部中断请求源 (INT1) 标志 IE1=1,表示外中断1请求中断,当CPU响应中断 后,由硬件清“0”。
IT1:外部中断源1触发控制位 IT1=0:为电平触发方式(INT0=0时,1IE1)必 须在中断服务程序结束前 INT1变高。 IT1=1:为边沿触发方式(INT1由高变低1IE1) 高低电平时间应大于12个振荡周期。 IE0:外部中断0请求源 (INT0) 标志 IT0:外部中断0触发方式控制位 2.SCON寄存器 SCON寄存器中与中断有关位如下: D7 D6 D5 D4 D3 D2 D1 D0 TI RI TI:串行口发送中断标志 RI:串行口接收中断标志
二、中断控制 1.中断使能控制 CPU对中断是否开放,由中断允许寄存器IE控制,其 格式如下: D7 D6 D5 D4 D3 D2 D1 D0 EA / ES ET1 EX1 ET0 EX0 EA:CPU的中断开放标志 (EA=1开放,EA=0关所有中断) ES:串行口中断允许位 (ES=1允许串行口中断) ET1:定时器T1的溢出中断允许位 (ET1=1为允许) EX1:外中断1中断允许位 (EX1=1为允许) ET0:T0的溢出中断允许位 (ET0=1为允许) EX0:外部中断0中断允许位 (EX0=1为允许)
2.中断源优先级控制 MCS-51有二个中断优先级,每一个中断源可编程为高 级中断或低级中断,实现二级中断嵌套。 A.中断优先级寄存器IP 中断优先级寄存器IP的格式如下: D7 D6 D5 D4 D3 D2 D1 D0 / PS PT1 PX1 PT0 PX0 PS:串行口中断优先级控制位,PS=1定义为高级中断否 则为低 PT1:定时器T1中断优先级控制位,PT1=1定义为高级中 断,否则为低 PT0:定时器T0中断优先级控制位,PT0=1定义为高级中
PX1:外部中断1中断优先级控制位,PX1=1定义为高级 中断,否则为低 PX0:外部中断0中断优先级控制位,PX0=1定义为高级 中断,否则为低 注:MCS-51复位后,IP被清0,用户可根据需要来设置 中断级别。 B.同级中断请求处理 在CPU接到同样优先级的几个中断请求源时,将由 查询(硬件)序列来确定响应那个中断,其查询次序 如下: 外部中断0 先、中断优先级高 定时器T0中断 外部中断1 定时器T1中断 串行口中断 后、中断优先级低
三、中断响应过程 1.响应中断的条件 CPU在每一个周期的“S6”采样并按优先级处理所有 被激活的中断请求,如果没有下述条件所阻止,则 将在下一个机器周期(S1)响应激活了的高级中断。 A.CPU在处理同级或更高级的中断 B.现行机器周期不是指令的最后一个机器周期 C.正在执行的指令是RETI或访问IE或IP指令 2.MCS-51中断源服务程序入口地址 A.外部中断0 0003H B.定时器0 000BH C.外部中断1 0013H D.定时器1 001BH E.串行口中断 0023H
3.中断响应过程 CPU完成中断响应的步骤: A. 1 相应的优先级状态触发器 B 3.中断响应过程 CPU完成中断响应的步骤: A. 1 相应的优先级状态触发器 B. 0 中断请求源标志(TI和RI除外) C.保护断点 入口地址 → PC ↓ 保护现场 中服程序 恢复现场 ↓ RETI 返回断点 0 → 相应的优先级状态触发器
四、应用举例 1. 采用T1定时,使P1. 0上的灯一秒亮,一秒灭。 2. 采用T1定时,使P1. 0上的灯按下面规律点亮 四、应用举例 1.采用T1定时,使P1.0上的灯一秒亮,一秒灭。 2.采用T1定时,使P1.0上的灯按下面规律点亮.F晶=6MHZ 第1秒 第2秒 第3秒 第4秒 第5秒 第6秒 第7秒 第8秒 L1.3 L2.4 L5.7 L6.8 L1234 L5678 全 全 亮 亮 亮 亮 亮 亮 亮 灭 3.试设计一个时钟程序:设F晶=6MHZ,用T0产生10mS 定时中断时钟单元为: 30H(时),31H(分),32H(秒),33H(10ms)
第六章 MCS-51串行接口 51系列单片机提供了一个全双工的串行接口,可用 于各种场合下的串行数据传送,其串行通信的信息 传送如图所示: RXD 8031 TXD GND RXD TXD 外设 GND
在微机应用系统中常用异步通信方式 在异步通信中,每一个字符用一个起始位(低电平0) 表示字符开始,接着从低位开始依次传送数据位,最 后以一个停止位(高电平1)表示字符结束,构成一帧 信息。 如传送55H字符, 8位异步通信格式如图所示: 在串行通信中,每秒钟传送的数据位数称为波特率, 设发送一位的时间为t,则波特率为1/t。
一、串行口控制寄存器 在MCS-51中,具有2个独立的发送缓冲器和接收缓冲 器,具有2个控制寄存器,以控制串行口的工作方式 和波特率。其波特率发生器由定时器T1承担。 1.SCON寄存器 SCON寄存器的格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0、SM1:方式选择位 00H:方式0,移位寄存器方式 01H:方式1,8位异步通信接口(UART) 波特率可变,为T1溢出率/N 10H:方式2,9位异步通信接口 波特率为f/64或f/32晶振 11H:方式3,9位异步通信接口 波特率可变,为T1溢出率/N SM2:允许方式2和3的多机通信控制位 在方式2/3中,当SM2=1时,则接收到的第9位数据 (RB8),只有为1才会激活RI。 REN:允许串行接收位 由软件置位REN以允许接收,由软件清“0”以禁 止接收。
TB8:在方式2/3里,发送的第9位数据,由软件置位或 复位。 RB8:在方式2/3里,是接收到的第9位数据。 在方式1时,如SM2=0,RB8是接收到的停止位; 在方式0中不使用RB8。 TI:发送中断标志 由硬件在发送完时置位,必须由软件清“0” RI:接收中断标志 由硬件在发送完时置位,必须由软件清“0”
2.PCON寄存器 PCON寄存器的格式如下 D7 D6 D5 D4 D3 D2 D1 D0 SMOD SMOD:串行口波特率系数控制位 对方式1、3:当SMOD=0时:系数N=32 当SMOD=1时:系数N=16 对方式2:当SMOD=0时:系数N=64 当SMOD=1时:系数N=32 3. SBUF寄存器: 串行口数据缓冲寄存器
二、串行口工作方式 1、方式0 方式0为移位寄器I/O方式。 A.方式0输出 串行口以方式0发送时,数据从RXD端串行输出,TXD 端输出同步信号,其波特率为f/12。 MCS-51的串行接口可外接74LS164串行输入并行输出 移位寄存器,其接口逻辑如图所示:
B.方式0输入 当串行口定义为方式0并置位REN后,便启动串行口以 方式0接收数据,此时RXD为数据输入端,TXD为同步 信号输出端。当接收到8位数据时,将置“1”中断标 志RI。波特率为f/12。MCS-51串行口可外接并行输入 串行输出移位寄存器作为输入口。 接口逻辑如图所示:
2、方式1 串行口定义为工作方式1时,则被程控为8位异步通信 接口,传送一帧信息为10位,其中1位起始位,8位数 据位(先低后高), 1位停止位。 方式1的波特率是可变的,它由T1的溢出率控制。 A.方式1输出 串行口以方式1发送时,数据由TXD端输出。CPU执行 一条数据写入发送缓冲器SBUF指令 ( MOV SBUF,A) 数据字节写入SBUF后,便启动串行口发送器发送,发 送完一帧信息,将置“1”发送中断标志TI。
B.方式1输入 a.串行口以方式1接收时,数据从RXD端输入。 b. 工作流程: 以F波 B.方式1输入 a.串行口以方式1接收时,数据从RXD端输入。 b. 工作流程: 以F波*16 复位16分 REN=1 采样RXD RXD由1变0 频计数器 检测起始位 把一位分成16份,在7、 N Y 8、9个计数状态, 3次 起始位为0否 接收本帧 采样把2次相同的值作 其余信息 为采样值 (方法同上) 1)当RI=0,接收到停止位为1时 停止位进入RB8 2)接收的8位数据缓冲器SBUF 3)置位RI中断标志