任务五主动红外对射探测器在单片机中的应用.ppt

上传人:xt****7 文档编号:5173926 上传时间:2020-01-22 格式:PPT 页数:55 大小:1.21MB
返回 下载 相关 举报
任务五主动红外对射探测器在单片机中的应用.ppt_第1页
第1页 / 共55页
任务五主动红外对射探测器在单片机中的应用.ppt_第2页
第2页 / 共55页
任务五主动红外对射探测器在单片机中的应用.ppt_第3页
第3页 / 共55页
点击查看更多>>
资源描述
任务五主动红外对射探测器在单片机中的应用 任务描述 利用红外发射及接收模块并结合单片机8051 来设计一个简易的红外线探测报警系统 此系统可以作为周界报警探测使用 当有人非法穿过警戒线时 系统会发出报警信号 并显示报警区域号 学习目标 过学习任务五的完成方法熟悉单片机的中断与定时计数器功能等 第五章MCS 51单片机的中断系统及定时器 5 1输入 输出的控制方式5 2MCS 51单片机的中断系统5 3MCS 51单片机中断处理过程5 4中断服务程序设计5 5MCS 51单片机的定时 计数器思考题 5 1输入 输出的控制方式 无条件传送方式 程序查询传送方式 中断传送方式 DMA传送方式 返回本章 无条件传送方式在传送信息时 已知外部设备是准备好的状态 所以输入输出时都不需要查询外部设备的状态 在输入或输出时 相应给出指令即可 但这种方式必须确信外部设备已准备好的状态才可使用 否则就会出错 故很少使用 程序查询传送方式以CPU为中心 数据传送的控制来自CPU 在执行输入 输出指令前 CPU要先查询接口中状态寄存器的状态 输入时 由它指示要输入的数据是否已经 准备就绪 而输出时 由它指示输出设备是否 空闲 中断传送方式 当外设准备好后 外设接口便主动向CPU发 中断请求 信号 CPU响应这样这一请求 则暂停正在执行的程序 而转入与外设操作有关的中断服务程序 在中断服务程序中完成数据的输入或输出 中断服务程序执行完毕 CPU返回到原来程序的断点继续执行 DMA传送方式基本思想 在存储器和外设之间建立起直接的数据传送通路 即不经由CPU 而由专门的DMA控制器实现存储器和外设之间的操作 于是 传送就不必进行保护现场等一系列额外操作 从而减轻了CPU的负担 因此特别适合于高速度大批量数据传送的场合 但是 这种方式要增设DMA控制器 硬件电路比前两种方式更为复杂 存储器 CPU 外设 5 2MCS 51单片机的中断系统 一 中断的概念二 MCS 51中断系统的结构三 8051的中断源及入口地址四 中断请求标志五 中断控制 返回本章 中断 指CPU正在处理某一事件A时 外部发生了另一事件B 请求CPU迅速去处理 CPU暂时中断当前的工作 转去处理事件B 待CPU将事件B处理完毕后 再回到原来事件A被中断的地方 继续处理事件A 这样的过程称为中断 一 中断的概念 举例 某同学正在教室里看书 忽然被人叫出去 回来后 继续看书 这就是生活中中断的例子 中断源 引起CPU中断的根源 事件B 中断请求 中断源向CPU提出的处理请求 中断响应过程 CPU暂时中断自身的事务 转去处理事件B的过程 中断服务 CPU对事件B的整个处理过程 中断返回 处理B后 再返回A原来被中断的地方 返回本节 二 MCS 51中断系统的结构 图5 28051的中断系统 中断源的中断请求 如何通知CPU 利用中断请求标志位来通知 返回 中断请求标志 1 高级 低级 内部查询 内部查询 入口地址 入口地址 中断允许控制 中断优先级 EA 中断源 返回本节 8051共有5个中断源 分为2个中断优先级 可实现IE控制CPU是否响应中断请求IP安排各中断源的优先级 二级中断嵌套 五个中断源入口地址外部中断0 INT0 0003HT0溢出中断000BH外部中断1 INT1 0013HT1溢出中断001BH串口中断0023H 三 8051的中断源及入口地址 中断源及入口地址 外部中断源 INT0 INT1由P3 2端口线引入 低电平或下降沿引起 由P3 3端口线引入 低电平或下降沿引起 返回本节 外部中断源与内部中断源 内部中断源T0 定时 计数器0中断 由T0回零溢出引起 T1 定时 计数器1中断 由T1回零溢出引起 TI RI 串行I O中断 完成一帧字符发送 接收引起 四 中断请求标志 1 控制寄存器TCON MSB LSB IT0 外部中断INT0触发方式控制位 IT0 0 INT0为电平触发 CPU每个机器周期采样INT0输入电平 当采样到低电平时 置IE0 1 表示INT0向CPU请求中断 INT0为高电平时 将IE0清零 IT0 1 INT0为边沿触发 CPU每个机器周期采样INT0输入电平 如果连续两个机器周期检测到INT0由高电平变为低电平 置IE0 1 表示INT0向CPU请求中断 CPU响应中断后 由硬件自动清除IE0标志 IE0 外部中断INT0中断请求标志 表示INT0向CPU请求中断 由硬件置位 进入中断服务程序后由硬件自动清除 IT1 外部中断INT1触发方式控制位 功能同IT0 IE1 外部中断INT1中断请求标志 表示INT1向CPU请求中断 由硬件置位 进入中断服务程序后由硬件自动清除 TF0 定时 计数器0溢出中断请求标志位 溢出时由硬件置位 进入中断服务程序后由硬件自动清除 TF1 定时 计数器1溢出中断请求标志位 溢出时由硬件置位 进入中断服务程序后由硬件自动清除 2 串行口控制寄存器控制寄存器SCON TI 串行发送中断标志位 当CPU将一个发送数据写入串行发送缓冲器时 就动发送 每发送完一个串行帧 由硬件将TI置1 必须由软件清零 RI 串行接收中断标志位 当允许串行口接收数据时 每接收完一个串行帧 由硬件将TI置1 必须由软件清零 返回本节 五 中断控制 1 中断允许寄存器IE A8H IE在特殊功能寄存器中 字节地址A8H 位地址分别是A8H AFH IE控制CPU对中断源总的开放或禁止以及每个中断源是否允许中断 MSB LSB 若为 1 开关接通 允许例如SETBEA若为 0 开关断开 不允许例如CLRIE 7 2 中断优先级寄存器IP B8H 该位是 1 时 为高级优先级该位是 0 时 为低级优先级 同一优先级的中断优先排队顺序 中断源同级自然优先级外部中断0最高级定时 计数器T0中断外部中断1定时 计数器T1中断串行中断最低级 例 若 IP 15H 请列出相应的优先级 答 00010101同高优先级的有PX0 PX1 PS同低优先级的有PT1 PT0PX0 PX1 PS PT0 PT1 返回本节 1 中断源有请求 相应的中断标志 1 2 CPU允许所有的中断 EA 1 3 相应的源中断允许位为14 没有同级或高级的中断正在服务5 现行指令已执行完毕6 如果现行指令为RETI或操作IE IP指令 则应执行完该指令后 还要执行完紧随其后的另一条指令 5 3MCS 51单片机中断处理过程 一 中断响应的条件 CPU每个机器周期都需要顺序检查每个中断源 当检测到有中断请求时 能否响应 还要看下述情况是否存在 二 中断响应过程 返回本章 响应过程 假设已使某中断请求标志置1 1 先使相应优先级状态触发器置1 2 执行一个硬件子程序的调用 1 硬件清零相应中断请求标志 TI RI除外 2 将当前PC内容压入堆栈 保护断点 3 将中断服务子程序入口地址送PC 转移 返回过程 RETI执行后 1 使相应优先级状态触发器清0 2 从堆栈中弹出栈顶的两个字节内容送PC 恢复断点 3 CPU接着中断处继续执行原程序 三 中断响应时间 从单片机检测到中断至响应中断需要3 8个机器周期 1 编制中断初始化程序设置堆栈 选择中断触发方式 设置IE及IP等 单片机系统复位或上电后 SP 07H TCON IE IP等都为0 2 在中断服务程序中安排一条跳转指令 由于入口地址之间只相差8个字节 放不下一个完整的中断服务程序 3 保护现场 在中断服务程序中 4 编制服务程序5 恢复现场6 恢复断点 RETI 5 4中断服务程序设计 设计步骤 例 下图为一个检测报警电路 图中检测电路为一个按钮开关 P1 0 P1 1分别驱动声光报警电路 P1 0 P1 1输出 1 时电路工作 试设计一程序 当按键按下一次后 P1 0 P1 1输出报警信号10S 并使内部RAM55H单元数据加1 10S延时子程序为DELLAY ORG0000HLJMPMAINOGR0003HLJMPBJORG0030HMAIN MOV55H 00HCLRP1 0CLRP1 1MOVSP 30HSETBIT0SETBEASETBEX0HERE SJMPHERE ORG00A0HBJ PUSHACCMOVA 03HMOVP1 ALCALLDELLAYMOVA 00HMOVP1 AINC55HPOPACCRETIEND 解 中断触发方式 边沿IT0 1允许中断 EA 1 EX0 1中断入口地址 0003H 返回本章 5 5MCS 51单片机的定时 计数器 一 定时 计数器的功能二 定时 计数的结构及工作原理三 定时 计数器的控制四 定时 计数器的工作方式五 例题 返回本章 一 定时 计数器的功能1 定时器的功能例如某机械零件的热处理工艺曲线为 实际控制可以由单片机定时发出信号控制自动完成整个工艺过程 常用的定时方法1软件定时DJNZRi relNOP2不可编程的硬件定时5553可编程的定时器 2 计数功能 对外界发生的事件计数 当达到程序规定的计数值时 可以输出一脉冲信号 申请中断 例如一啤酒生产线 如下图所示 返回本节 二 定时 计数的结构及工作原理 1 定时 计数器的结构 T0T1TMOD 定时 计数器工作方式寄存器 设置工作方式与功能 有4种工作方式 TCON 定时 计数器的控制寄存器 控制T0 T1启动和停止以及设置溢出等标志的 TH0 TL0 TH1 TL1 2 工作原理 定时器 对内部机器周期进行计数 每过一个机器周期 计数器加1 直到计数器计满溢出 定时时间 计数值 机器周期振荡频率计数频率 12 11111111 100000000 计数器 对来自输入引脚T0 P3 4 T1 P3 5 的外部信号计数 每个机器周期对外部信号进行采样 若前一机器周期采样值为1 后一机器周期采样值为0 则计数器加1 直到计数器计满溢出 完成一次计数至少要2个机器周期 返回本节 振荡频率最高计数频率 24 1 工作方式控制寄存器 TMOD 89H 三 定时 计数器的控制 2 定时器控制寄存器 TCON 88H 返回本节 1 方式0 四 定时 计数器的工作方式 M1M0 0013位计数器TH1的8位和TL1的低5位 当溢出时 TF1置1 11111111111110000000000000 定时器初值a的计算在定时器模式下 计数器由单片机主脉冲经12分频后计数 因此 定时器定时时间T的公式 T M a 12 振荡周期 213 a 12 1 fosc式中 M为模值 和定时器的工作方式有关 方式0下M 213 fosc是单片机振荡频率 计数器初值的计算把计数器计满为零所需要的计数值设定为C 计数初值设定为a 由此可得到公式 a M C式中 M为计数器模值 该值和计数器工作方式有关 在方式0时M为213 2 方式1 M1M0 0116位计数器TH1的8位 TL1的8位 当溢出时 TF1置1 11111111111111110000000000000000 定时器初值a的计算在定时器模式下 计数器由单片机主脉冲经12分频后计数 因此 定时器定时时间T的公式 T M a 12 振荡周期 216 a 12 1 fosc式中 M为模值 和定时器的工作方式有关 方式1下M 216 fosc是单片机振荡频率 计数器初值的计算把计数器计满为零所需要的计数值设定为C 计数初值设定为a 由此可得到公式 a M C式中 M为计数器模值 该值和计数器工作方式有关 在方式1时M为216 3 方式2 M1M0 10自动重装载初值的8位计数器TL1的8位 TH1作为保存计数初值 一旦溢出 TF1置1 并将TH1的初值再装给TL1 进入新一轮的计数 1111111100000000 定时器初值a的计算在定时器模式下 计数器由单片机主脉冲经12分频后计数 因此 定时器定时时间T的公式 T M a 12 振荡周期 28 a 12 1 fosc式中 M为模值 和定时器的工作方式有关 方式2下M 28 fosc是单片机振荡频率 计数器初值的计算把计数器计满为零所需要的计数值设定为C 计数初值设定为a 由此可得到公式 a M C式中 M为计数器模值 该值和计数器工作方式有关 在方式2时M为28 3 方式3 M1M0 11T0分成两个8位计数器 T1停止计数 0 4 定时间隔和计数的范围 以6MHZ晶振为例方式013位计数器最大定时间隔为 当a 0000H时213 2 10 6 16 384ms最小定时间隔为 当13位计数器全1 即a FF1FH2 s计数范围 1 8192方式116位计数器最大定时间隔为 当a 0000H时216 2 10 6 65536 2 10 6 131 072ms最小定时间隔为 当X FFFFH时2 s计数范围 1 65536方式2和方式38位计数器定时间隔为 2 s 512 s计数范围 1 256 返回本节 例 选择T1方式0用于定时 在P1 1输出周期为1ms的方波 晶振fosc 6MHZ 根据题意 只要使P1 1每隔500 s取反一次即可得到1ms方波 因而T1的定时时间为500 s 解 1 T1工作方式的设定 选择方式0 13位方式 最大定时16ms 2 定时常数的设定 机器周期T 12 fosc 12 6 106 2 s设初值为a则 213 a 2 10 6s 500 10 6sa 7942D 1111100000110B因为在作13位计数器用时 TL1高3位未用 应写0 a的低5位装入TL1的低5位 所以TL1 06H a的高8位应装入TH1 所TH1 F8H 3 启动定时器T0 SETBTR14 动态停机 SJMP 5 程序如下 例 前述的啤酒生产线 计数24瓶后将R0内容加1 P1 0取反转入装箱程序 解 选T1方式0计数 TMOD的高4位为 0100初始常数X的计算 213 a 24a 8192 24 81688168 1FE8H0001111111101000B1111111100001000TH1 FFHTL1 08H加24次即溢出中断 程序如下 ORG0000HAJMPMAINORG0100HMAIN MOVSP 60HMOVTMOD 40H T0方式0定时 T1方式0计数MOVTH1 0FFHMOVTL1 08H T1计数24次初始常数MOVR0 00H SETBTR1 启动T1开始计数HERE JBCTF1 L1SJMPHERE 等待L1 MOVTH1 0FFHMOVTL1 08HINCR0CPLP1 0 P1 0求反 提示装箱SJMPHEREEND 例 试用中断技术设计一发光二极管 使其闪烁 要求亮1ms 灭1ms 晶振fosc 6MHZ T0的方式0实现 解 1 T0工作方式的设定 选择方式0 13位方式 最大定时16ms 2 定时常数的设定 机器周期T 12 fosc 12 6 106 2 s设初值为X则 213 a 2 10 6s 1 10 3sa 7692D 1111000001100B因为在作13位计数器用时 TL0高3位未用 应写0 a的低5位装入TL0的低5位 所以TL0 0CH a的高8位应装入TH0 所TH0 F0H ORG0030HMAIN MOVSP 60HMOVTMOD 00H T0方式0定时MOVTH0 0F0HMOVTL0 0CH T0定时1ms时间常数SETBTR1 启动T1开始计数HERE JBCTF0 L1SJMPHERE 等待L1 MOVTH0 0F0H 重装时间常数MOVTL0 0CHCPLP1 0 P1 0求反 输出方波SJMPHEREEND 返回本节 图5 1中断过程示意图 返回 事件A 事件B 中断请求 中断响应 中断服务程序 返回主程序 继续执行主程序 执行主程序 ORG0000HAJMPMAINORG000BHAJMPIT0PMAIN MOVSP 60HMOVTMOD 40H T0方式0定时 T1方式0计数MOVTH1 0FFHMOVTL1 08H T1计数24次初始常数SETBTR1 启动T1开始计数SETBEA 允许CPU中断SETBET1 允许T1中断HERE AJMPHERE 等待IT0P MOVTH1 0FFHMOVTL1 08HCPLP1 0 P1 0求反 输出方波RETI ORG0000HAJMPMAINORG000BHAJMPSHORG0030HMAIN MOVSP 60HMOVTMOD 00H T0方式0定时MOVTH0 0F0HMOVTL0 0CH T0定时1ms时间常数SETBTR1 启动T1开始计数SETBEA 允许CPU中断SETBET1 允许T1中断HERE AJMPHERE 等待ORG00C0HSH MOVTH0 0F0H 重装时间常数MOVTL0 0CHCPLP1 0 P1 0求反 输出方波RETI 事件1 事件2 子程序2 子程序1 中断嵌套的概念 主程序 中断 中断 返回 1 MCS 51单片机中断系统有几个中断源 分别是什么 事先约定的优先顺序是怎样的 2 如何进行中断允许控制 如何进行中断优先级控制 思考题
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!