电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

定时计数器的初始化编程及应用

13页
  • 卖家[上传人]:mg****85
  • 文档编号:34208012
  • 上传时间:2018-02-21
  • 文档格式:DOC
  • 文档大小:1.07MB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、定时/计数器的初始化编程及应用一 定时/计数器的编程MCS-51 单片机定时/计数器初始化过程如下:1根据要求选择方式,确定方式控制字,写入 方式控制寄存器 TMOD。 (工作方式: 方式 0 方式 1 方式 2 方式 3)2根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器。3根据需要 开放定时/计数器中断(后面须编写中断服务程序) 。4设置 定时/计数器控制寄存器 TCON 的值,启动定时/计数器开始工作。5等待定时/计数时间到,到则执行中断服务程序;如用查询处理则编写查询程序判断溢出标志,溢出标志等于 1,则进行相应处理。二定时/计数器的应用通常利用定时/计数器来产生周期性的波形。利用定时/计数器产生周期性波形的基本思想是:利用定时/计数器产生周期性的定时,定时时间到则对输出端进行相应的处理。如产生周期性的方波只须定时时间到对输出端取反一次即可。 ( 举例 1)如果定时时间大于 65536s,这时用一个定时/ 计数器直接处理不能实现,这时可用两个定时/计数器共同处理或一个定时/ 计数器配合软件计数方式处理。(1 )用寄存器 R2 作计数器软件计数,中断处理方式。

      2、 ( 举例 2.1)(2 )用定时/计数器 T1 计数实现,定时/计数器 T1 工作于计数方式时,计数脉冲通过T1(P3.5 )输入,设定时/计数器 T0 定时时间到对 T1(P3.5 )取反一次,则 T1(P3.5)每20ms 产生一个计数脉冲,那么定时 500ms 只须计数 25 次,设定时/计数器 T1 工作于方式2,初值 X=256-25=231= 11100111B=E7H,TH1=TL1=E7H。因为定时/计数器 T0 工作于方式1,定时,则这时方式控制字为 01100001B(61H) 。定时/计数器 T0 和 T1 都采用中断方式工作。 ( 举例 2.2)定时:设置为定时工作方式时,定时器计数的脉冲是由 8051 片内振荡器输出经 12 分频后产生的。每个机器周期使定时器(T0 或 T1)的数值加 1 直至计计数满产生溢出。如:当 8051 采用 12MHz 晶体时,每个机器周期为 1s,计数额率为 1MHz。 计数:设置为计数工作方式时,通过引脚 T0(P34)和 T1(P35)对外部脉冲信号计数。当输入脉冲信号产生由 1 至 0 的下降沿时,定时器的值加 1,在每个

      3、机器周期的 S5P2 期间采样 T0 和 T1 的输入电平。若前一个机器周期采样值为 1,下一个机器周期采样值为 0,则计数器加 1。此后的机器周期 S3P1 期间,新的数值装入计数器。检测一个 1 至 0 的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。MCS-51 单片机的特殊功能寄存器 从图中我们可以看出,在 51 单片机内部有一个 CPU 用来运算、控制,有四个并行 I/O口,分别是 P0、P1、P2、P3,有 ROM,用来存放程序,有 RAM,用来存放中间结果,此外还有定时/计数器,串行 I/O 口,中断系统,以及一个内部的时钟电路。在一个 51 单片机的内部包含了这么多的东西。对图进行进一步的分析,我们已知,对并行 I/O 口的读写只要将数据送入到相应 I/O口的锁存器就可以了,那么对于定时/计数器,串行 I/O 口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过 P1 这个特殊功能寄存器了,还有哪些呢?看下表下面,我们介绍一下几个常用的 SFR。 1、ACC-是累加器,通常用 A 表示。

      4、这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在 ACC 中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志 Z,若 A0 则 Z1;若 A0 则 z0。该标志常用作程序分枝转移的判断条件。 2、B-一个寄存器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。3、PSW-程序状态字。这是一个很重要的东西,里面放了 CPU 工作时的很多状态,借此,我们可以了解 CPU的当前状态,并作出相应的处理。它的各位功能请看下表:CY:进位标志。8051 中的运算器是一种 8 位的运算器,我们知道,8 位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过 255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY1;无进、借位,CY0 例:78H+97H(01111000+10010111)AC:辅助进、借位(高半字节与低半字节间的进、借位)。 例:57H+3AH(0101

      5、0111+00111010) 下面我们逐一介绍各位的用途F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV0。什么是溢出我们后面的章节会讲到。P:奇偶校验位:它用来表示 ALU 运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则 P=1,否则为 0。 运算结果有奇数个 1,P1;运算结果有偶数个 1,P0。例:某运算结果是 78H(01111000),显然 1 的个数为偶数,所以 P=0。4、P0、P1、P2、P3-这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。5、IE-中断充许寄存器按位寻址,地址:A8H中断禁止(即不产生中断)EA (IE.7):EA=0 时,所有中断禁止(即不产生中断)EA=1 时,各中断的产生由个别的允许位决定- (IE.6 ):保留ET2(IE.5):定时 2 溢出中断充许(8052 用)ES (IE.4):串行口中断充许(ES=1 充许,ES=0 禁止)ET1(IE.3):定时 1

      6、 中断充许EX1(IE.2):外中断 INT1 中断充许ET0(IE.1):定时器 0 中断充许EX0(IE.0):外部中断 INT0 的中断允许7、IP-中断优先级控制寄存器按位寻址,地址位 B8HIP D7 D6 D5 D4 D3 D2 D1 D0 (B8H) PT2 PS PT1 PX1 PT0 PX0 PT2:定时器/计数器 T2 的中断优先级控制位,只用于 52 子系列。PS:串行口的中断优先级控制位。PT1:定时器/计数器 T1 的中断优先级控制位。 PX1:外部中断 INT1 的中断优先级控制位。 PT0:定时器/计数器 T0 的中断优先级控制位。PX0:外部中断 INT0 的中断优先级控制位。 如果某位被置“1”,则对应的中断源被设为高优先级;如果某位被清“0”,则对应的中断源被设为低优先级。对于同级中断源,系统有默认的优先权顺序, 【例 5-10】利用定时/计数器中断抗干扰防死机。利用定时/计数器防止死机的思想是:先估算出系统主程序执行一次循环所需要的时间 t1,然后设置定时/计数器的定时时间为 t2,其中 t2 略大于 t1。在主程序的循环部分包括对定时/计数器初始

      7、化,这样,如果系统正常运行,则由于定时时间比 t2 比 t1 大,所以定时还未到时,主程序已完成一次循环,定时器被重新初始化,定时时间始终不会到,定时/计数器不会溢出中断;只有当系统受干扰死机,主程序不能被重新执行,定时/计数器不会被重新初始化,则经过时间 t2 后,定时时间到,溢出中断,中断后由硬件实现转到中断服务程序。如果用户在中断服务程序中安排回到主程序中的命令,那么系统可以重新运行主程序,这就达到了防止死机的目的。 中断服务程序函数名()interrupt n using m函数内部实现 . 6、指针寄存器(1)程序计数器 PC指明即将执行的下一条指令的地址,16 位,寻址 64KB 范围,复位时 PC = 0000H(2)堆栈指针 SP指明栈顶元素的地址,8 位,可软件设置初值,复位时 SP = 07H(3)数据指针 DPTRR0、R1、DPTR;指明访问的数据存储器的单元地址,16 位,寻址范围 64KB。 DPTR = DPH + DPL。可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。 分成 DPL(低 8 位)和

      8、DPH(高 8 位)两个寄存器。用来存放 16 位地址值,以便用间接寻址或变址寻址的方式对片外数据 RAM 或程序存储器作64K 字节范围内的数据操作。7、定时/计数器(1) 定时器方式寄存器:TMOD(2) 定时器控制寄存器:TCON(3) 计数寄存器:TH0、TL0;TH1、TL1。可用于设定计数初值。8、8052/8032 增设专用寄存器(1) 定时器 2 控制寄存器 T2CON;控制、设置工作方式。(2) 计数寄存器:TH2、TL2(3) 定时器 2 捕获/重装载寄存器:RCAP2H、RCAP2L存放自动重装载到 TH2、TL2 的数据。9、定时/计数器的方式寄存器 TMOD其中:M1、M0 为工作方式选择位 ,用于对 T0 的四种工作方式,T1 的三种工作方式进行选择,选择情况如下 C/T:定时或计数方式选择位,当 C/T=1 时工作于计数方式;当 C/T=0 时工作于定时方式。 GATE:门控位,用于控制定时/ 计数器的启动是否受外部中断请求信号的影响。 定时/ 计数器的工作方式一方式 0方式 1 是 13 位的定时/计数方式,因而最大计数值(满值)为 2 的 13 次幂,

      9、等于 8192。如计数值为 N,则置入的初值 X 为:X=8192-N如定时/计数器 T0 的计数值为 1000,则初值为 7192,转换成二进制数为1110000011000B,则 TH0=11100000B,TL0=00011000B。二方式 1方式 1 的结构与方式 0 结构相同,只是把 13 位变成 16 位, 16 位的加法计数器被全部用上。由于是 16 位的定时/计数方式,因而最大计数值(满值)为 2 的 16 次幂,等于 65536。如计数值为 N,则置入的初值 X 为:X=65536-N如定时/计数器 T0 的计数值为 1000,则初值为 65536-1000=64536,转换成二进制数为1111110000011000B,则 TH0=11111100B,TL0=00011000B。三方式 2方式 2 下,16 位的计数器只用了 8 位来计数,用的是 TL0(或 TL1)的 8 位来进行计数,而 TH0(或 TH1)用于保存初值。当 TL0(或 TL1)计满时则溢出,一方面使TF0(或 TF1)置位,另一方面溢出信号又会触发图 5.5 上的三态门,使三态门导通,TH0(或 TH1)的值就自动装入 TL0(或 TL1) 。 由于是 8 位的定时/计数方式,因而最大计数值(满值)为 2 的 8 次幂,等于 256。如计数值为 N,则置入的初值 X 为:X=256-N如定时/计数器 T0 的计数值为 100,则初值为 256-100=156,转换成二进制数为10011100B,则 TH0= TL0=10011100B。注意:由于方式 2 计满后,溢出信号会触发三态门自动地把 TH0(或 TH1)的值装入TL0(或 TL1)中,因而如果要重新实现 N 个单位的计数,不用重新置入初值。 四方式 3方式 3 只有定时/计数器 T0 才有,当 M1M0 两位为 11 时,定时/计数器 T0 工作于方式 3,方式 3 的结构如下图.方式 3 下,定时/计数器 T0 被分为两个部分 TL0 和 TH0,其中,TL0 可作为定时/计数器使用,占用 T0 的全部控

      《定时计数器的初始化编程及应用》由会员mg****85分享,可在线阅读,更多相关《定时计数器的初始化编程及应用》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.