下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机定时器的应用与误差纠正 论文关键字:计数器 定时器 误差 中断 单片机 设置 计数 方式 应用 工 作单片机定时器的应用与误差纠正王暄 ( 陕西师范大学物理学与信息 技术学院,陕西西安710062)摘 要:对MCS-51单片机定时器的原理与使用中 的几个关键问题进行了讨论,给出定时器的使用方法与误差补偿方法,并给出 了实现程序。1 前言定时器是MCS-51单片机非常重要的组成部分,由于其应用与单片机的其他硬件 相关,存在着一定的复杂性 1 。而定时器是单片机应用中解决某类复杂问题的 最有为效的方法,应用非常广泛。随着定时要求的提高,在定时处理过程中所 带来的误差需要校正2,本文就MCS-
2、51单片机的使用方法与误差校正方法进 行了讨论,并给出通用算法与程序。2 定时器工作方式与方式设置MCS-51单片机有两路独立的定时器,每路定时器有 4种工作方式(03),方 式0是13位计数结构,计数器由TH全部8位与TL的低5位构成;方式1是 16位计数结构,计数器由TH与TL全部8位共16位组成;方式2是8位计数 结构方式,计数器由 TL8 位组成,与其他方式不同的是 , 当定时溢出时,硬件自 动将TH的值装入TL中,有自动加载功能。前三种工作方式,两路定时器的设 置与使用完全相同,但在工作方式 3下,两路定时器有很大差别,只有 0路定 时器可以工作在方式 3下, 1 路定时器只能工作在
3、方式 02下,在工作方式 3 下,0路定时器被拆分成两个独立的8位计数器TL0与TH1,其中0路定时器的 各控制位和引脚信号全归TL0使用,因此TH0只能做简单的定时器使用,其控 制位占用了 1路定时器的控制位,如果 0路定时器工作在方式 3下, 1路定时 器由于让出了所属控制位,通常作为串行口波特率发生器 3 。定时器的工作方式选择主要依靠设置 TMOD寄存器的值,其各位定义如下:位序 B7 B6 B5 B4 B3 B2 B1 B0 位符号 GATE C/T M1 M0 GATE C/T M1 M0 其中,B0B3用来控制0路定时器,B4B7用来控制1路定时器。GATE位为门控位,主要确定定
4、时器启动的方式,如果GATE=0则用TR0 (TR1)位启动/关闭定时器,如果GATE=1则以外中断请求信号(INT0或INT1)启动 定时器。C/T位为定时与计数选择位,C/T=0为定时方式,C/T=1为计数方式。M0 M1为工作方式选择位M1M0=0方式 0M1M0=1方式 2M1M0=0方式 1M1M0=1 方式 3选择定时器工作方式,应根据上述规定向寄存器 TMO中写入相应数,如设置0 路定时器工作在定时方式 0 下, 1 路定时器工作在方式 1 下,则应用下列指令设置:MOVTMOD,10H 3定时器的处理方式与计数初值的计算MCS-51单片机的定时器采用增值计数法,在定时工作方式下
5、,启动定时器后, 每机器周期CPU硬件会自动给相应计数器加1,直至超出对应计数器所能表示 的最大值,发生定时溢出,硬件自动将 TFO (TF1)置位,用户可以通过查询 TFO(TF1)位判断定时是否溢出,如果此时定时中断处于开放状态,将引发相 应定时中断,MCS-51响应中断,根据相应中断地址(0路定时中断的中断入口 地址为000B, 1路为001B)执行中断处理程序。 定时编程有两种基本方式,一种方式为查询方式,在启动定时时关闭相应定时 中断,然后循环检测TF0 (TF1 )进行相应处理;另一种方式为中断方式,启动 定时时开放相应定时中断,并将定时溢出处理程序编写为中断处理程序形式通 过在相
6、应中断入口地址(000B, 001B)放置跳转指令转入定时溢出处理程序。 定时器工作方式选定后,定时溢出时间唯一取决于计数器的初值,如何根据应 用需要确定计数器初值,也是定时器应用的一个重要问题。假定单片机机器周 期为K0,所选定的定时方式计数器为 n位,所实现的定时时间长度为 T,则有:( 2nx) K0=T(1)其中 x 为计数器的初值,根据式 1 可以求出初值 x 为: x=2n(T/K0)(2)4 定时器的编程步聚和各步聚的通用程序 定时器应用编程主要分为以下几个步聚。4.1 步骤 1 根据定时要求求计数初值 x 首先根据单片机时钟频率 f 确定单片机机器周期 k0, 即: k0=12
7、/f(3)在实际应用中,单片机时钟频率f 一般为6mHz或 12mHz所以单片机机器周期 k0=2卩s或1卩s,然后根据选定的工作方式确定计数器位数 n,将所得k0与n 代入式2,求出计数初值x,并根据所选择的计数方式将x的值分入TH0(TH1) 与 TL0( TL1 )。4.2 步骤 2 编写初始化程序 初始化程序与定时编程方式有关,中断方式初始化程序如下(以 0路定时器为 例):movTMOD, n( 规定定时工作方式 ) movTH0,n1( 设置计数器低位 ) movTL1,n2( 设置计数器高位 )setBEA (开放中断) setBET0 (开放定时中断0) setBTR0(启动定
8、时) 查询方式初始化程序如下: movTMODf n(规定定时工作方式) movTH0,# n1(设置计数器低位) movTL1,# n2(设置计数器高位)clrET0 (开放定时中断 0)setBTRO(启动定时)其中# n1和# n2与计数初值x有关,如果采用方式2,有# n仁# n2,所有初 始化程序都以 O 路定时器为例,如果用 1 路定时器,则将程序中的寄存器和控 制位的下标 1 改为 O。4.3 步骤 3 编制定时处理程序中断方式处理程序如下:orgOOOB1jmpb1b1:clrEAmovTHO,n1movTH 1 , n2定时处理语句段reti其中,0路定时器为000B,如果为
9、1路定时器为001B,如果定时器工作在方式 2,则不需要给 THO、TH1 重新赋值。查询方式处理程序如下:L1:jbcTF0,LO1sjmpL1LO1:movTH0,n1movTH 1 , n2定时处理语句段sjmpL15 定时的误差校准由于单片机的机器周期为1 1 s2卩s,定时误差一般应在0卩s20卩s之内, 对于一般应用,此误差可以忽略,但是对于精确度要求比较高的应用场合,此 误差必须进行校正。定时误差是定时溢出后转入执行定时处理语句段之间所耗 费的时间,此时间主要由定时溢出转入定时处理语句段所必须执行的指令或硬 件过程产生。定时误差校准的简单原理是:在定时溢出响应后,停止定时器计数,读出当时 计数值(它反映了定时响应的延迟时间),然后将完成这一任务的程序段执行 时间考虑进去,作为修正因子校正定时初值,以下程序段以中断处理方式为例: clrEAclrTR1clrcmovA, n 0clrTR0subbA,TL0subbA,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《固定义齿修复工艺技术》考试复习题库(含答案)
- 吊顶工程施工工艺及要求
- 《2025年涂装工(高级技师)职业技能鉴定试卷及答案》
- 配管配线安装工艺
- 农村电商成本核算职业能力认证试题
- 省市统考化学实验操作规范测试试卷及答案
- 生态学知识传播效果评价试题及真题
- 2025年小学语文古诗词背诵技巧分享真题
- 2025年初中数学平面几何性质解题技巧考点真题
- 2025年大四艺术史考试复习笔记试题及答案
- 特警应急安保预案
- 北斗导航在铁路运输中的作用-洞察及研究
- 电厂安全生产隐患排查
- 标准预防及个人防护课件
- 成人氧气吸入疗法护理标准解读
- 家畜生态学全套课件
- 二手房买卖第三方垫资协议书
- 传播学纲要(第3版)课件 第七章 文艺传播
- 精神科暴力行为的防范和护理
- 2024年10月自考13140财务会计中级试题及答案含评分参考
- 部编五下语文《刷子李》公开课教案教学设计【一等奖】
评论
0/150
提交评论