《第四章mcs-51的片内接口》由会员分享,可在线阅读,更多相关《第四章mcs-51的片内接口(54页珍藏版)》请在金锄头文库上搜索。
1、第四章 MCS-51的片内接口内容提要 :4-1 MCS-51中断系统4-2 定时 / 计数器4-4 MCS-51片内串行接口4-3 定时 / 计数器的应用4-1 MCS-51中断系统 一、概述与上对比,单片机中也有同样的问题。CPU正 在执行原程序,突然,被意外事情打断,转去执行 新程序。CPU执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫 。中断中断什么叫中断?举例:某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。 对突发事故,做出紧急处理。 根据现场随时变化的各种参数、信息,做出实时监控 。 CPU与外部设备并行工作,以中断方式相联系,提高
2、工 作效率。 解决快速CPU与慢速外设之间的矛盾。 在多项外部设备同时提出中断请求情况下,CPU能根 据轻重缓急响应外设的中断请求。 中断的作用:对于MCS-51单片机中断系统的组成可以用一句话来讲,叫做:“五源中断,两级管理” 五个中断源: 入口地址外部中断0(/INT0) 0003HT0溢出中断 000BH外部中断1(/INT1) 0013HT1溢出中断 001BH串口中断 0023H 二、中断请求源(“五源中断”)中断源的中断请 求,如何通知 CPU?利用中断请求标志位来通知!以上6个中断请求标志位分别分布在TCON、SCON两个寄存器中 。TCONIT0IE0IT1IE1TR0TF0T
3、R1TF1TF1 T1的溢出中断标志硬件置1,硬件清0(也可软件清0) TF0 T0的溢出中断标志。(同TF1,只是针对T0的)IE1 外部中断1(/INT1)请求标志。外部有中断请求时,硬件使IE1置1,硬件清0。IE0 外部中断0(/INT0)请求标志。IT1 外部中断1(/INT1)触发类型控制位。IT1 = 0 ,低电平触发。IT1 = 1 , 下降沿触发。 IT0 外中断0(/INT0)触发类型控制位,用法同IT1。 SCON RI TIRB8TB8RENSM2SM1SM0TI 串口发送中断标志位。发送完数据,硬件使TI置1,软件清0(CLR TI) RI 串行口接收中断标志位。硬件
4、置1,软件清0。 在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其 中第一级为一个总开关,第二级为五个分开关,由IE控制。 三、中断控制(两级管理)1、中断屏蔽(第一级管理)IEEX0ET0EX1ET1 ES EAEA 总控制位 “” 未定义位ES 串口控制位 ET1 T1中断控制位 EX1 /INT1控制位 ET0 T0中断控制位 EX0 /INT0控制位 若为“1”,开关接通,允许例如 SETB EA若为“0”,开关断开,不允 许例如 CLR IE.72、中断优先级(第二级管理)为什么要有 中断优先级 ?CPU同一时间只能响应一个中断请求。若同时来了两个或两个 以上中断请求,就
5、必须有先有后。 !为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。 IPPX0PT0PX1PT1 PSP S 串口的中断优先级别PT1 定时 / 计数器T1的中断优先级别PX1 外部中断1 的中断优先级别PT0 定时 / 计数器T0的中断优先级别PX0 外部中断0 的中断优先级别该位是“1”时,为高级优先级该位是“ 0”时,为低级优先级同一级中的5个中断源的优先顺序是:/INT0中断 T0溢出中断 /INT1中断 T1溢出中断串口中断 高低出厂前已由厂家固化顺序 事先约定中断优先原则:(概括为四句话)1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。
6、 事件1事件2子程序2子程序1中断嵌套的概念: 主程序中断 中断四、MCS-51中断的响应过程 CPU每个机器周期都需要顺序检查每个中断源,当检测到有中 断请求时,能否响应,还要看下述情况是否存在: (1)CPU正处理相同级别或更高级别的中断;(2)正在执行指令,还未到最后一个机器周期;(3)正在执行的指令是RETI或访问IP、IE指令,则执行完上述指令后,再执行一条指令后,才会响应新中断。 日常生活中的中断与单片机中断的比较:某同学 单片机 过程说明 正在看书 执行主程序 有人找出去 中断信号 中断请求 暂停看书 暂停执行主程序 中断响应 书中作记号 当前PC入栈 保护断点 出去做事 执行中
7、断程序 中断服务 回来继续看 返回主程序 中断返回响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用,1)硬件清零相应中断请求标志(TI、RI除外)2)将当前PC内容压入堆栈保护断点;3)将中断服务子程序入口地址送PC转移。 返回过程:(RETI执行后)(1)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送PC恢复断点。(3)CPU接着中断处继续执行原程序。 注意:1)保护断点与保护现场以及恢复断点与恢复现场的区别。2)外部中断响应时间在3 8个机器周期之间。利用外部中断实现单步操作: 8031+5v 在主程序中:CLR
8、 IT0SETB EASETB PX0SETB EX0在中断服务子程序中:JNB P3.2 , $JB P3.2 , $RETI小结:1、MCS-51单片机中断系统有几个中断源?分别是什么?事先约定的优先顺序是怎样的?2、如何进行中断允许控制?如何进行中断优先级控制?3、中断优先的规则是什么? 4-2 定时 / 计数器一、定时/ 计数器的结构51子系列单片机内有两个十六位增一 定时 / 计数器TH0计数值高八位 TL0计数值低八位TH1计数值高八位 TL1计数值低八位TMOD TCON工作方式 定时 / 计数控制控制控制1、工作方式控制寄存器 TMOD TMOD M0 M1C / GATE M
9、0 M1C / GATET1T0GATE 门控位。GATE = 0 启动不受 /INT0或 /INT1的控制;GATE = 1 启动受 /INT0 或 /INT1 的控制。 C/T 外部计数器 / 定时器方式选择位C/T = 0 定时方式;C /T = 1 计数方式。 M1M0 工作模式选择位(编程可决定四种工作模式) 。 2、定时 / 计数器控制寄存器TCON TCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0能否启动定时 / 计数器工作与GATE有关,分两种情况:GATE = 0 时,若TRi = 1,开启Ti计数工作;(i = 0或1)若TRi = 0,停止Ti计数。GAT
10、E = 1 时,若TRi = 1 且/INTi = 1时开启Ti计数;若TRi = 1 且/INTi = 0时不能开启Ti计数。若TRi = 0, 停止Ti计数。 TR0 定时 / 计数器0运行控制位。软件置位,软件复位。 TR1 定时 / 计数器1运行控制位。(用法与TR1类似) 二、定时 / 计数器的四种工作模式M1 M0 模式 说明0 0 0 13位定时/计数器高八位TH(7 0)+ 低五位TL(4 0)0 1 1 16位定时/计数器TH(7 0)+ TL(7 0)1 0 2 8位计数初值自动重装TL(7 0) TH(7 0)1 1 3 T0运行,而T1停止工作,8位定时/计数。 1、模
11、式0计数寄存器TLi 低5位 + THi8位 (T1、T0的等效逻辑结构) TLi(5位)THi(8位)TFi中断控制BAC/T=0振荡器1/12TL0 = 0CHT1模式1、计数:N = 1000则 X = 655361000 = 64536 = 0FC18H(若选模式0也可以,此时X = 7192=1C18H) 程序:ORG 0000HLJMP MAINORG 000BHLJMP TOSORG 1000H MAIN: MOV TMOD,#50H;T0定时,模式0;T1计数,模式1MOV TL0,#0CHMOV TH0,#0F0HMOV TL1,#18HMOV TH1,#0FCH SETB
12、TR1SETB TR0SETB ET0SETB EAWAIT: JNB TF1,WAIT;查询1000个脉冲计够没有到?CLR EACLR ET0ANL TCON,#0FH ; 停T0、T1SJMP TOS: MOV TL0,#0CHMOV TH0,#0F0HCPL P10RETIEND 例3、脉冲参数测量GATE功能的使用。脉冲高电平(计数)长度值存于21H、20H中,脉冲低电平长度存于23H、22H中。电路连接如下图所示。解: 复习GATE的用法:GATE = 0时,TRi = 1,即可启动Ti定时 / 计数GATE = 1时,TRi = 1,且 =1,才启动定时 / 计数。8031P3.
13、2P3.11被测信号 21a3T0计数T1计数ORG 0000HLJMP MAINORG 2000HMAIN:MOV TMOD,#99H ;T0、T1均工作在定时,;模式1,GATE=1MOV A,#00H ;T0、T1赋计数初值00H,; 定时最长时间为0000 65536MOV TL0,A MOV TH0,AMOV TL1,AMOV TH1,A TEST0: JB P32,TEST0 ;检测是否到a点SETB TR0 ;到a点,TR0 = 1,做好取计时值准备。TEST1: JNB P32,TEST1 ;检测是否到1点SETB TR1 ;到1点T0计时;TR1 = 1,做好T1计时准备。T
14、EST2:JB P32,TEST2 ;检测是否到2点CLR TR0 ;到2点,停止T0计时,T1开始计时。MOV 20H,TH0 ;保存T0计时结果MOV 21H,TL0TEST3:JB P33,TEST3 ;检测是否到3点CLR TR1 ;到3点,停止T1计数MOV 22H,TH1 ;保存T1计数结果MOV 23H,TL1 LCALL DISPSJMP 小结:1、定时/计数的四种方式是怎样的?2、如何计算计数初值?如何编程送入计数初值?3、GATE的用法是怎样的? 布置作业:P141 10、 11 4-4 MCS-51单片机串行接口一、串行通信概述1、什么叫串行通信? 在生活中同学们排横队行走 并行;排纵队行走 串行。计算机中在传输信息、数据时也有并行、串行的问题。0010001001P1.0 P1.1 P1.2 P1.3RXDTXD单片机外设1外设2111111 0 1