




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MC9S12XS单片机原理及嵌入式系统开发 MC9S12XS单片机原理及嵌入式系统开发 张阳 吴晔 滕勤Email TEL MC9S12XS单片机原理及嵌入式系统开发 第10章MC9S12XS128周期性中断定时器模块及其应用实例 PIT模块概述PIT模块结构和工作原理PIT模块寄存器及设置PIT模块应用实例智能车系统中PIT模块的应用 MC9S12XS单片机原理及嵌入式系统开发 10 1PIT模块概述 周期性中断定时器 PeriodicInterruptTimer PIT 模块是一组24位的定时器 由8位微定时器和16位定时器共同组成 该模块一般用来触发外围模块或者唤醒周期性中断 PIT是一个模数递减计数器 首先给计数寄存器设定一个初值 每经过一个总线时钟 8位微定时计数器做1次减1操作 当8位微定时计数器自减为0时 触发被控端16位定时计数器做1次减1操作 以此类推 当16位定时计数器超时 即自减为0 时 触发对应中断 确定的总线时钟通过计数器自减可实现定时器功能 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 MC9S12XS128的PIT模块结构框图如图10 1所示 10 2 1PIT模块结构 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 由图10 1可知 PIT模块是由两级24位定时器 2个8位递减计数器和4个16位递减计数器 结构和一个中断 触发接口组成 16位定时器的时钟由2个可选的微定时基准提供 微定时基准的时钟由8位模数递减计数器产生 每个16位定时器都通过置位PIT复用寄存器PITMUX中的PMUX0 3来连接微定时基准0或微定时基准1 10 2 1PIT模块结构 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 PIT模块具有以下基本特征 4个独立的具有超时周期功能的模数递减计数器 超时周期可编程为总线时钟周期的1 224倍 超时时间等于m n倍的总线时钟周期 1 m 256 1 n 65536 每个定时器独立使能 4个超时中断 4个触发外围模块的超时触发输出信号 可配置定时器起始通道 10 2 1PIT模块结构 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 MC9S12XS128的PIT模块详细功能框图如图10 2所示 PIT模块主要由状态 控制和数据寄存器 两级结构的24位定时器 2个8位递减计数器和4个16位递减计数器 和1个中断 触发接口组成 10 2 2PIT模块工作原理 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 16位定时器的时钟由2个可选的微时间基准提供 微时间基准的时钟由8位模数递减计数器产生 每个16位定时器都通过设置PIT复用寄存器 PITMUX 中的PMUX0 3确定使用微时间基准0或基准1 如果PIT控制和强制装载微定时寄存器PITCFLMT中的PITE位置1 并且PIT通道使能寄存器PITCE中相应的PCE位置1 则该定时器通道使能 2个8位模数递减计数器可产生2个微时间基准 一旦微时间基准被定时器通道使能 就会启动相应的微定时器模数递减计数器 由PITMTLD0和PITMTLD1寄存器确定装载初值 当微定时模数递减计数器计数到0时 PITMTLD寄存器将重新装载初值 同时相应的16位模数递减计数器计数一个周期 当16位定时计数器和相应的8位微定时计数器计数到0时 PITLD寄存器将重新装载初值 且相应的PIT超时标志寄存器PITTF中的超时标志位PTF被置1 超时周期是定时装载寄存器PITLD 微定时装载寄存器PITMTLD和总线时钟fBus的函数 超时周期 PITMTLD 1 PITLD 1 fBus 10 2 2PIT模块工作原理 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 读取PITCNT寄存器值可获取16位模数递减计数器的当前值 但微定时递减计数器值不可读 PIT控制和强制装载微定时寄存器PITCFLMT中相应的强制装载微定时器位PFLMT写 1 操作 可重新启动8位微定时器 PIT强制装载定时寄存器PITFLT中相应的强制装载定时器位PFLT写 1 操作 可重新启动16位定时器 如果需要同时重新启动一组定时器和微定时器 只要向相应的PITCFLMT寄存器和PITFLT寄存器写入16位数据设置相关的寄存器位即可 每个超时事件都可触发中断服务请求 对于每个定时器通道 PIT中断使能寄存器PITINTE中的PINTE位使能中断功能 当PIT超时标志寄存器PITTF中的相应超时标志位PTF置1 且PINTE 1时 将产生中断服务请求 PTF标志位通过写 1 清零 注意 为了避免错误的中断请求发生 当PIT中断请求被挂起时 请务必重新设置PITE位 PINTE位和PITCE位 PIT模块有四路硬件触发信号PITTRIG0 3 对应于四个定时器通道 四路触发信号也可使能其他功能模块 例如实现ATD连续转换模式功能 10 2 2PIT模块工作原理 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 当定时器通道超时时 相应的PTF标志位置1 同时相应的外部触发信号PITTRIG触发上升沿信号 触发信号需要的最小超时周期为两个总线时钟 装载寄存器PITLD 0 x0001和微定时装载寄存器PITMTLD 0 x0002进行相关标志设置 强制装载的触发时序和重启时序如图10 3所示 10 2 2PIT模块工作原理 MC9S12XS单片机原理及嵌入式系统开发 10 2PIT模块结构和工作原理 PITCFLMT寄存器中的PITE位置1之前 需要先设置配置寄存器 即需要在PITE位置1之前 写操作配置寄存器 当PITCE寄存器中 PITINTE寄存器中和PITCFLMT寄存器中的位或PITE位任意一位清零时 相应的PIT中断标志位清零 如果PIT中断请求被挂起 那么可能会产生伪中断 下面推荐两种方法避免伪中断发生 只在中断服务子程序 ISR 中清除PIT中断标志位 当进入中断服务子程序时 CCR寄存器中的I可屏蔽位自动置1 PIT位清零之前 I可屏蔽位不能被清零 使用SEI指令置位I可屏蔽位之后 PIT中断标志位才可清零 然后使用CLI指令清零I可屏蔽位重新使能中断 所有标志位通过写 1 清零 相应标志位可使用存储或移动指令写 1 操作该标志位 不允许使用BSET指令 也不允许使用任何编译成BSET指令的C语句 因为BSET指令是读 改 写指令 举例来说 MOVB 01 PITTF 则实现了标志位0的清零 10 2 2PIT模块工作原理 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 MC9S12XS128的PIT模块共有28个寄存器 其中10个是系统保留寄存器 PIT模块的内存映射表如表10 1所示 表中给出了这些寄存器的地址 用途和访问权限 对于每个寄存器 所列的地址是绝对地址 每个寄存器的绝对地址是PIT模块的基本地址与每个寄存器地址偏移量之和 PIT模块基本地址是0 x0340 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 1PIT控制和强制装载微定时寄存器 PITCFLMT PIT控制和强制装载微定时寄存器 PITControlandForceLoadMicroTimerRegister PITCFLMT 用来使能PIT模块 冻结PIT模块 控制功耗 设置PIT工作模式 并强制装载微定时器的初始值 如图10 4所示 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 1PIT控制和强制装载微定时寄存器 PITCFLMT PITE PIT模块使能位 当PITE为0时 则禁止PIT模块功能 PIT超时标志寄存器PITTF中的标志位清零 当置位PITE时 能够使能相应定时器位PCE 相应装载寄存器开始向下递减计数 0表示禁用PIT模块 低功耗模式 1表示使用PIT模块 PITSWAI 等待模式下PIT停止位 0表示等待模式下 PIT模块正常运行 1表示等待模式下 PIT模块停止产生时钟信号 冻结PIT模块 PITFRZ 冻结模式下PIT计数器冻结位 冻结模式下 PITFRZ位确定PIT工作状态 冻结模式下 断点调试时 该位冻结PIT计数器 可有效避免中断的发生 0表示冻结模式下 PIT模块正常运行 1表示冻结模式下 PIT模块停止计数 PFLMT1 PFLMT0 PIT微定时器1和PIT微定时器0强制装载位 如果相应的微定时器激活且PIT模块使能 PITE 1 时 PFLMT 1 则相应的8位微定时器的装载寄存器值将立即装载到8位微定时器的递减计数器 写0操作无效 读取这2位 总是返回0 注意 强制装载微定时器值会影响到使用该微定时基准的所有定时器通道 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 2PIT强制装载定时寄存器 PITFLT PIT强制装载定时寄存器 PITForceLoadTimerRegister PITFLT 用来设置强制装载定时器的装载初值 如图10 5所示 PFLT3 PFLT2 PFLT1 PFLT0 PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的强制装载位 如果相应的定时器通道和PIT模块均使能 PCE 1 PTIE 1 则PFLT位写1操作 相应的16位定时器的装载寄存器值将装载到16位递减计数器 写0操作无效 读取这4位 总是返回0 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 3PIT通道使能寄存器 PITCE PIT通道使能寄存器 PITChannelEnableRegister PITCE 用来使能PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0通道 如图10 6所示 PCE3 PCE2 PCE1 PCE0 PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的通道使能位 如果PCE位清零 则禁用PIT通道 PITTF寄存器中的相应标志位也会清零 当PCE位置1 且PIT模块使能 PITE 1 时 则16位定时计数器将装载初始计数值 从该初始值开始向下递减计数 0表示禁用相应的PIT通道 1表示使用相应的PIT通道 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 4PIT复用寄存器 PITMUX PIT复用寄存器 PITMultiplexRegister PITMUX 用来选择PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0通道的复用位 如图10 7所示 PMUX3 PMUX2 PMUX1 PMUX0 PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的通道复用选择位 这些位选择相应的16位定时器连接的是微定时基准1还是微定时基准0 修改PMUX位 则相应的16位定时器将会立即切换微定时基准 0表示相应的16位定时器使用微定时基准0计数 1表示相应的16位定时器使用微定时基准1计数 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 5PIT中断使能寄存器 PITINTE PIT中断使能寄存器 PITInterruptEnableRegister PITINTE 用来使能PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的超时中断 如图10 8所示 PINTE3 PINTE2 PINTE1 PINTE0 PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的超时中断使能位 该位使能 一旦相应PIT通道的PTF标志位置位 则允许产生相应的中断服务请求 当中断被挂起时 该位使能 PTF 1将会立即产生中断 为了避免该中断发生 必须先清零相应的PTF标志位 0表示禁止相应的PIT通道中断请求 1表示允许相应的PIT通道中断请求 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 6PIT超时标志寄存器 PITTF PIT超时标志寄存器 PITTime OutFlagRegister PITTF 用来表示PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的超时标志 如图10 9所示 PTF3 PTF2 PTF1 PTF0 PIT定时器3 PIT定时器2 PIT定时器1 PIT定时器0的超时标志位 当相应的16位定时模数递减计数器和所选择的8位微定时模数递减计数器计数到0时 PTF位置1 该标志位通过写 1 清零 写0无效 如果通过写1清零该标志位和置位该标志位在同一个总线时钟周期发生 则该标志位仍保持置位状态 如果禁用PIT模块或禁用相应的定时器通道 则该标志位清零 0表示相应的PIT通道超时未发生 1表示相应的PIT通道超时已发生 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 7PIT微定时装载寄存器0和1 PITMTLD0 1 PIT微定时装载寄存器0和1 PITMicroTimerLoadRegister0和1 PITMTLD0 1 用来设置PIT微定时器的初始值 如图10 10所示 PMTLD7 0 PIT微定时器装载初值 这8位用来设置8位微定时器的模数递减计数器的装载初值 PITMTLD寄存器写入新的数值不会重新启动微定时器 当微定时器的计数值减到零时 则重新装载PMTLD寄存器值 如果想要立即装载初值 只要PITCFLMT寄存器中的PFLMT置位就会立即更新新的初值到递减计数器 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 8PIT装载寄存器0 3 PITLD0 3 PIT装载寄存器0 3 PITLoadRegister0to3 PITLD0 3 用来设置16位模数递减计数器的装载初值 如图10 11所示 PLD15 0 PIT模块的16位模数递减计数器的装载初值 为了确保数据的一致性 写入PITLD寄存器的新值必须按照16位访问进行操作 否则不会重启定时器 当定时器向下递减计数到0时 则PTF超时标志位置1 重新装载该寄存器值 如果想要立即装载初值 只要PITFLT寄存器中的PFLT置位就会立即更新新的初值至计数器 MC9S12XS单片机原理及嵌入式系统开发 10 3PIT模块寄存器及设置 10 3 9PIT计数寄存器0 3 PITCNT0 3 PIT计数寄存器0 3 PITCountRegister0to3 PITCNT0 3 中存放的是16位模数递减计数器的当前值 如图10 12所示 PCNT15 0 该寄存器中的16位表示16位模数递减计数器的当前值 读取该计数寄存器的值必须在一个时钟周期内按照16位访问进行操作 MC9S12XS单片机原理及嵌入式系统开发 10 4PIT模块应用实例 本实例利用PIT模块实现1s精确定时 假设fBus为8MHz 当定时时间到 使MC9S12XS128的PB口连接的低4位LED灯左移一位显示控制 实例硬件电路图如图10 13所示 PORTB端口的低4位连接4只LED 编程实现定时4只流水灯控制操作 MC9S12XS单片机原理及嵌入式系统开发 10 4PIT模块应用实例 程序清单如下所示 MC9S12XS单片机原理及嵌入式系统开发 10 4PIT模块应用实例 MC9S12XS单片机原理及嵌入式系统开发 10 4PIT模块应用实例 MC9S12XS单片机原理及嵌入式系统开发 10 5智能车系统中PIT模块的应用 本节首先简单介绍使用的编码器 Encoder 编码器是一种将信号或数据进行编码 转换为可传输和存储的信号形式的设备 光电编码器是编码器众多分类中的一种 它是通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器 由光栅盘和光电检测装置组成 是一种得到广泛应用的传感器 光栅盘 也称为光电码盘 在一定直径的圆板上等分有环形通 暗的刻线 使用时将光电码盘与直流电动机同轴安装 电动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 异种材料焊接接头的相变行为与残余应力预测模型优化
- 城市供水管网管材选择与安装方案
- 美妆集合店门店选址与区域布局2025年研究报告
- 四、学生实验:测量速度教学设计-2025-2026学年初中物理北师大版北京八年级全一册-北师大版北京2013
- 高中地理 第五章 海洋开发 5.1 海岸带的开发说课稿 中图版选修2
- 农光互补项目工期管理与进度控制方案
- 2025年吉他过级考试题及答案
- 2025医师定期考核模考模拟试题附答案详解(研优卷)
- 黑龙江省烟草公司2025秋招合规管理岗位高频笔试题库含答案
- 中国邮政集团2025太原市秋招笔试特色知识题专练及答案
- 红帽认证管理员RHCSA(习题卷1)
- 2021地质灾害治理工程施工质量验收规范
- 《小英雄雨来》读书分享会
- 婚恋工作室交友计划书
- 经典安徒生童话故事100篇
- 冰箱温度监测登记表
- 08878动漫产业概论模拟试题答案
- 5G边缘云计算技术
- 现代市场营销(第四版) 课件全套 单元1-12 认知市场营销-市场营销计划、组织、执行与控制
- 《水声学原理》8.1.1噪声和混响背景下信号的检测 - 噪声和混响背景下信号的检测
- 病历复制授权委托书
评论
0/150
提交评论