单片微机原理及应用课件_第5章_MCS-51的片内接口.ppt_第1页
单片微机原理及应用课件_第5章_MCS-51的片内接口.ppt_第2页
单片微机原理及应用课件_第5章_MCS-51的片内接口.ppt_第3页
单片微机原理及应用课件_第5章_MCS-51的片内接口.ppt_第4页
单片微机原理及应用课件_第5章_MCS-51的片内接口.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章MCS 51的片内接口 内容提要 5 1MCS 51中断系统 5 2定时 计数器 5 3定时 计数器的应用 5 1MCS 51中断系统 一 概述 与上对比 单片机中也有同样的问题 CPU正在执行原程序 突然 被意外事情打断 转去执行新程序 CPU执行新程序结束后 又回到原程序中继续执行 这样的过程就叫 什么叫中断 举例 某同学正在教室写作业 忽然被人叫出去 回来后 继续写作业 这就是生活中中断的例子 单片机在某一时刻只能处理一个任务 当多个任务同时要求单片机处理时 这一要求应该怎么实现呢 通过中断可以实现多个任务的资源共享 所谓的中断就是 当CPU正在处理某项事务的时候 如果外界或者内部发生了紧急事件 要求CPU暂停正在处理工作而去处理这个紧急事件 待处理完后 再回到原来中断的地方 继续执行原来被中断的程序 这个过程称作中断 从中断的定义我们可以看到中断应具备中断源 中断响应 中断返回这样三个要素 中断源发出中断请求 单片机对中断请求进行响应 当中断响应完成后应进行中断返回 返回被中断的地方继续执行原来被中断的程序 对突发事故 做出紧急处理 根据现场随时变化的各种参数 信息 做出实时监控 CPU与外部设备并行工作 以中断方式相联系 提高工作效率 解决快速CPU与慢速外设之间的矛盾 在多项外部设备同时提出中断请求情况下 CPU能根据轻重缓急响应外设的中断请求 中断的作用 对于MCS 51单片机中断系统的组成可以用一句话来讲 叫做 五源中断 两级管理 五个中断源 入口地址外部中断0 INT0 0003HT0溢出中断000BH外部中断1 INT1 0013HT1溢出中断001BH串口中断0023H 二 中断请求源 五源中断 高 低 中断源的中断请求 如何通知CPU 利用中断请求标志位来通知 5 1 1MCS 51单片机的中断源1 外部中断源 外部中断0 来自 引脚 采集到低电平或者下降 沿时 产生中断请求 外部中断1 来自 引脚 采集到低电平或者下降 沿时 产生中断请求 2 内部中断源 定时器 计数器0 定时功能时 计数脉冲来自片内 计数功能时 计数脉冲来自片外 引脚 发生溢出时 产生中 定时器 计数器1 定时功能时 计数脉冲来自片内 计数功能时 计数脉冲来自片外 引脚 发生溢出时 产生中 串行口 为完成串行数据传送而设置 单片机完成接受或发送一组数据时 产生中断请求 断请求 断请求 5 1 2中断控制的专用寄存器1 定时器控制寄存器 TCON 该寄存器用于保存外部中断请求以及定时器的计数溢出 进行字节操作时 寄存器地址为88H 按位操作时 各位的地址为88H 8FH 寄存器的内容及位地址表示如下 IT0和IT1 外部中断请求触发方式控制位IT0 IT1 1脉冲触发方式 下降沿有效IT0 IT1 0电平触发方式 低电平有效 IE0和IE1 外中断请求标志位 当CPU采样到 或 端出现有效中断请求时 IE0 IE1 位由硬件置 1 当中断响应完成转向中断服务程序 时 由硬件把IE0 或IE1 清零 TR0和TR1 定时器运行控制位 TR0 TR1 0定时器 计数器不工作 TR0 TR1 1定时器 计数器开始工作 TF0和TF1 计数溢出标志位 当计数器产生计数溢出时 相应的溢出标志位由硬件置 1 当转向中断服务时 再由硬件自动清 0 计数溢出标志位 的使用有两种情况 采用中断方式时 作中断请求标志位 来使用 采用查询方式时 作查询状态位来使用 2 串行口控制寄存器 SCON 进行字节操作时 寄存器地址为98H 按位操作时 各位的地址为98H 9FH 寄存器的内容及位地址表示如下 其中与中断有关的控制位共2位 TI 串行口发送中断请求标志位当发送完一帧串行数据后 由硬件置 1 在转向中断服务程序后 用软件清 0 RI 串行口接收中断请求标志位当接收完一帧串行数据后 由硬件置 1 在转向中断服务程序后 用软件清 0 串行中断请求由TI和RI的逻辑或得到 3 中断允许控制寄存器 IE 进行字节操作时 寄存器地址为0A8H 按位操作时 各位的地 址为0A8H 0AFH 寄存器的内容及位地址表示如下 其中与中断有关的控制位共6位 EA 中断允许总控制位 EA 0中断总禁止 禁止所有中断EA 1中断总允许 总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置 EX0和EX1 外部中断允许控制位 EX0 EX1 0禁止外部中断EX0 EX1 1允许外部中断 ET0和ET1 定时器 计数器中断允许控制位 ET0 ET1 0禁止定时器 计数器中断ET0 ET1 0允许定时器 计数器中断 ES 串行中断允许控制位 ES 0禁止串行中断ES 1允许串行中断 4 中断优先级控制寄存器 IP IP寄存器地址0B8H 位地址为0BFH 0B8H 寄存器的内容 及位地址表示如下 其中 PX0 外部中断0优先级设定位 PT0 定时中断0优先级设定位 PX1 外部中断1优先级设定位 PT1 定时中断1优先级设定位 PS 串行中断优先级设定位 以上各位设置为 0 时 则相应的中断源为低优先级 设置为 1 时 则相应的中断源为高优先级 优先级的控制原则是 低优先级中断请求不能打断高优先级的中断服务 但高优先级 中断请求可以打断低优先级的中断服务 从而实现中断嵌套 如果一个中断请求已被响应 则同级的其它中断服务将被禁止 即同级不能嵌套 如果同级的多个中断同时出现 则按CPU查询次序确定哪个中 断请求被响应 其查询次序为 外部中断0 定时中断0 外部中 断1 定时中断1 串行中断 同一级中的5个中断源的优先顺序是 中断优先原则 概括为四句话 1 低级不打断高级2 高级不理睬低级3 同级不能打断4 同级 同时中断 事先约定 上述四个专用寄存器的用途可以用图6 1说明 图为MCS 51中断系统 TCONSCON IE IP 5 1 3中断处理过程 1 CPU响应中断的条件 1 中断源发出中断申请 2 中断允许位EA 1 3 申请中断的中断允许位为1 2 中断响应过程 当CPU查询到中断请求时 先置位相应的优先级状态触发器 然后由硬件自动产生一条LCALL指令 LCALL指令执行时 首先将PC内容压入堆栈进行断点保护 再把中断入口地址装入PC 使程序转向相应的中断区入口地址 LCALL指令的形式如下 LCALLaddr16 addr16 中断入口地址 入口地址已由系统设定 如下 编写中断服务程序的格式一般如下 ORG0000HSJMPMAINORG0003HAJMP1NJERRVPMAIN HERE SJMPHERE1NJERRVP 中断响应程序RETI 二 中断处理和中断返回 中断处理 中断服务程序从入口地址开始执行 到返回指令RETI为止 中断返回RETI CPU执行这条指令后 对中断响应时置1的优先级状态触发器清0 然后将堆栈中保护的断点地址弹出到PC中 于是CPU返回断点处继续执行主程序 三 中断请求的撤除 定时器0 1和边缘触发的外部中断 在CPU响应中断后 内部硬件自动清除相应的中断请求标志 电平触发的外部中断 在CPU响应中断时不会自动清除相应的中断请求标志 因此 在CPU响应中断后 应立即撤除和引脚上的低电平 对于串行口中断 在CPU响应中断后 内部硬件不会自动清除TI或RI 必须在中断服务程序中用软件来清除中断请求标志TI或RI 例如 使用外部中断0 和外部中断1 为高优先级 电平触发方式 为低优先级 下降沿触发方式 则初始化程序如下 MOVIP 01HMOVTCON 04HSETBEASETBEX0SETBEX1 中断服务程序的关键是 1 保护进入中断时的状态 并在退出中断之前恢复进入时的状态 2 必须在中断程序中设定是否允许中断重入 即设置EX0位 用单次脉冲申请中断 在中断处理程序中对输出信号进行反转 INT0 P3 2 端接单次脉冲发生器 P1 0接LED灯 以查看信号反转 例 程序框图 主程序框图 外部中断子程序框图 Org0000hljmpStartorg0003hInt0 pushPSW 保护现场cplP1 0 取反LEDpopPSW 恢复现场retiStart clrP1 0movTCON 01h 外部中断0下降沿触发movIE 81h 开中断ljmp 等待中断end 小结 1 MCS 51单片机中断系统有几个中断源 分别是什么 事先约定的优先顺序是怎样的 2 如何进行中断允许控制 如何进行中断优先级控制 3 中断优先的规则是什么 5 2定时 计数器 一 定时 计数器的结构 51子系列单片机内有两个十六位增一定时 计数器 TH0 计数值高八位 TL0 计数值低八位 TH1 计数值高八位 TL1 计数值低八位 TMOD TCON 工作方式 定时 计数控制 P3 4 P3 5 5 2 1定时器的控制 1 工作方式控制寄存器TMOD 图5 5定时器工作模式寄存器TMOD 2 定时 计数器控制寄存器TCON 88H TCON 能否启动定时 计数器工作与GATE有关 分两种情况 GATE 0时 若TRi 1 开启Ti计数工作 i 0或1 若TRi 0 停止Ti计数 GATE 1时 若TRi 1且 INTi 1时开启Ti计数 若TRi 1且 INTi 0时不能开启Ti计数 若TRi 0 停止Ti计数 图5 6定时器工作模式寄存器TCON 返回本节 三 定时 计数器的四种工作模式 M1M0模式说明00013位定时 计数器高八位TH 7 0 低五位TL 4 0 01116位定时 计数器TH 7 0 TL 7 0 1028位计数初值自动重装TL 7 0 TH 7 0 113T0运行 而T1停止工作 8位定时 计数 5 2 2定时模式1 模式0计数寄存器TLi低5位 THi8位 TLi 5位 THi 8位 TFi 中断请求 0 40 7 中断允许 T1 T0的等效逻辑结构 C T 0 定时 C T 1 对外计数 定时 fosc 12 1 12 fosc 1 T 波形等间隔 次数已定 时间确定即对机器周期进行计数 左图定时时间为N T N个方波 计数 脉冲不等间隔 每个下降沿计数一次确认一次负跳变需两个机器周期 所以 计数频率最高为fosc 24 能否启动定时 计数器工作与GATE有关 分两种情况 GATE 0时 若TRi 1 开启Ti计数工作 i 0或1 若TRi 0 停止Ti计数 GATE 1时 若TRi 1且 INTi 1时开启Ti计数 若TRi 1且 INTi 0时不能开启Ti计数 若TRi 0 停止Ti计数 内部控制 外部控制 2 模式1与模式0相似 与模式0的区别 计数位数不同 计数寄存器 THi 高8位 TLi 低8位 3 模式2与模式0 1的区别 1 计数位数不同 Tli为8位计数器 2 初值自动重装 THi为常数寄存器 4 模式3 T1关闭 T0定时 计数 而T1停止计数 T0分成两独立定时 计数器TL0和TH0 TL0使用C T GATE TR0 INT0 TF0可进行定时和计数 TH0使用TR1 TF1因此 只能用于定时 a TL0作8位定时 计数器 b TH0作8位定时器 模式3时 T1可定时为模式0 1 2的定时 计数 但不可中断 所以一般只作串口波特率发生器用 a T0模式3时T1模式0 b T0模式3时T1模式1 c T0模式3时T1模式2 编程前确定参数 1 确定工作模式 2 正确设置IP IE TCON和SCON各位的状态 3 设置计数初值 加1计数 计数初值 X 2n fosc 12 T 2n为最大计数值 2n 213 8192 模式0 2n 216 65536 模式1 2n 28 256 模式2 模式3 T表示定时时间 5 2 3定时 计数器的应用 编制初始化程序基本步骤 1 确定工作方式 对TMOD和TCON等赋值 2 确定预置定时或计数的初值X 3 根据需要开放中断 4 启动定时 计数器工作 TRi 一 定时模式0的应用 例 设fosc 6MHZ 要求由P1 0输出一个周期为500微秒的方波信号 该方波的周期用T1确定 采用查询方式实现 1 确定计数初值X晶振频率fosc 6MHZ 机器周期 12 fosc 2微秒定时时间T 500 2 250微秒计数初值X 213 fosc 12 T 8192 125 8067 1111110000011B2 确定TMOD中的控制字T1设置为模式0 则其控制字为00H 3 向TCON写控制字 启动T1工作若TR1 1 开启T1计数工作 若TRi1 0 停止T1计数 1111110000000011B FC03H TL0 TH0 FCH 0CH 高八位放入TH1中 低五位放入TL1中 高3位填0 MOVTMOD 00HMOVTL0 03HMOVTH0 0FCHMOVIE 00HSETBTR1LOOP JBCTF1 LOOP1AJMPLOOPLOOP1 MOVTL0 03HMOVTH0 0FCHCLRTF1CPLP1 0AJMPLOOP 4 程序清单ORG100H 小结 1 MCS 51单片机内有几个定时计数器 如何计数 2 T0 T1有几种工作方式 3 编程应用前要事先确定的参数有几个 布置作业 P1788 3 TCON 复习 例2 设fosc 6MHz 利用单片机内定时 计数器及P1 0口线输出1000个脉冲 脉冲周期为2mas 试编程 T 12 1 fosc 2us选取T0定时 T1计数 设T0采用中断方式产生周期为2ms方波 T1对该方波计数 当输出至第1000个脉冲时 使TF1置1 在主程序中用查询方法 检测到TF1变1时 关掉T0 停止输出方波 T0 T1参数的确定 T0模式0 定时 脉宽为脉冲周期的一半所以 X 213 1ms 2us 0001111000001100BTH0 0F0H TL0 0CHT1模式1 计数 N 1000则X 65536 1000 64536 0FC18H 若选模式0也可以 此时X 7192 1C18H 程序 ORG0000HLJMPMAINORG000BHLJMPTOSORG1000H MAIN MOVTMOD 50H T0定时 模式0 T1计数 模式1MOVTL0 0CHMOVTH0 0F0HMOVTL1 18HMOVTH1 0FCH SETBTR1SETBTR0SETBET0SETBEAWAIT JNBTF1 WAIT 查询1000个脉冲计够没有到 CLREACLRET0ANLTCON 0FH 停T0 T1SJMP TOS MOVTL0 0CHMOVTH0 0F0HCPLP10RETIEND 四 定时模式3的应用 例 用定时器T0的定时模式3 分别产生200us和400us的定时中断 使fosc 6MHZ的单片机的P1 0和P1 1上产生400us和800us的方波 1 计算计数初值机器周期 12 1 fosc 2usT 200us时 X 28 fosc 12 T 256 100 156 9CHT 400us时 X 28 fosc 12 T 256 200 56 38H2 T0定时模式3控制字TMOD 00000011B 程序清单 RESET AJMPMAINORG000BHAJMPITOPORG001BHAJMPITIPORG0100HMAIN MOVSP 60HACALLPTOM3HERE AJMPHEREPTOM3 MOVTMOD 03HMOVTL0 9CHMOVTH0 38H SETBTR0SETBTR1SETBTR1SETBET1SETBEARETITOP MOVTL0 9CHCPLP1 0RETIITIP MOVTH0 38HCPLP1 1RETI 五 GATE功能的使用脉冲高电平 计数 长度值存于21H 20H中 脉冲低电平长度存于23H 22H中 电路连接如下图所示 解 复习GATE的用法 GATE 0时 TRi 1 即可启动Ti定时 计数GATE 1时 TRi 1 且 1 才启动定时 计数 ORG0000HLJMPMAINORG2000HMAIN MOVTMOD 99H T0 T1均工作在定时 模式1 GATE 1MOVA 00H T0 T1赋计数初值00H 定时器最大计数值为0000 65536MOVTL0 A MOVTH0 AMOVTL1 AMOVTH1 A TEST0 JBP3 2 TEST0 检测是否到0点 INT0脚 SETBTR0 到0点 TR0 1 做好取计时值准备 TEST1 JNBP3 2 TEST1 检测是否到1点SETBTR1 到1点T0计时 TR1 1 做好T1计时准备 TEST2 JBP32 TEST2 检测是否到2点CLRTR0 到2点 停止T0计时 T1开始计时 MOV20H TH0 保存T0计时结果MOV21H TL0 TEST3 JBP33 TEST3 检测是否到3点CLRTR1 到3点 停止T1计数MOV22H TH1 保存T1计数结果MOV23H TL1LCALLDISPSJMP 小结 1 定时 计数的四种方式是怎样的 2 如何计算计数初值 如何编程送入计数初值 3 GATE的用法是怎样的 布置作业 P14110 11 4 4MCS 51单片机串行接口 一 串行通信概述1 什么叫串行通信 在生活中同学们排横队行走 并行 排纵队行走 串行 计算机中在传输信息 数据时也有并行 串行的问题 接收设备 发送设备 2 同步通信 异步通信 同步 发送设备时钟与接收设备时钟严格一致 异步 发送时钟与接收时钟不一定相等 3 串行通信的方向 单工 A发 B发 半双工 A发收 B收发 例如 广播电台收音机 例如 对讲机 全双工 A发收 B收发 例如 电话机 4 波特率即串行通信速率 b s bps在异步通信中 单位时间内所传送的有效二进制位数 波特率 举例 设有一帧信息 1个起始位 8个数据位 1个停止位 传输速率为每秒240个字符 求波特率 解 1 8 1 240 2400b s 2400波特 5 串行通信接口 发送 CPU 发送寄存器SBUF 发送时钟 接收 CPU 接收时钟 接收数据寄存器SBUF 二 MCS 51机串行接口单片机内有通用异步接收 发送器UART 全双工 4种工作方式 波特率可编程设置 可中断 1 串口的组成从编程角度讲来看主要由以下寄存器组成 SBUF 串行发送 接收数据缓冲器是两个物理单元 共用一个地址 99H PCON 电源管理寄存器 SCON 串行口控制寄存器 2 串行口的工作方式 1 方式0 同步移位寄存器方式波特率固定为fosc 12RXD 接收发送数据TXD 产生同步移位脉冲接收 发送完 置位RI TI 要求SM2 0 发送 接收 无起始位 无停止位 可用于并口的扩展 2 方式1 8位UART波特率为 2SMOD T1的溢出率

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论