




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用,2012-2013-1,2,第七章定时器/计数器,学习要求,理解定时器/计数器的工作原理及其控制的含义,掌握4种工作方式的功能及其初值的计算,掌握定时器/计数器初始化编程,3,定时器/计数器作用:可以实现定时控制、定时扫描、延时控制、计数、信号测量等。,实现定时或计数时,通称采用以下三种方法:,1.硬件法,硬件定时功能完全由硬件电路完成,不占用CPU时间。但当要求改变定时时间时,只能通过改变电路中的元件参数来实现,很不灵活。,2.软件法,软件法定时是执行一段循环程序进行时间延时。优点:时间比较精确,且不需外加硬件电路。但占用CPU,定时的时间不宜太长。,4,3.可编程定时器/计数器,51单片机内部提供2个可编程的定时器/计数器T0和T1,它们可以用于定时或对外部脉冲计数,还可以作为串口的波特率发生器。定时器达到预定定时时间或者计数器计满数时,给出溢出标志,还可以发出内部中断。,特点:计数值通过程序设定,改变计数值,也改变了定时时间,灵活、方便。注:51系列单片机采用的是可编程定时器定时方法。,5,第一节定时器/计数器的工作原理及组成,一.工作原理,每来一个脉冲,计数值加1,直到计满溢出,系统时钟振荡器,定时方式,计数方式,外部脉冲源,决定加1计数器的运行与停止,定时器/计数器的核心是一个加1计数器,6,1、计数器,如图,脉冲不等间隔,记录外界发生的事情。对单片机,对外部脉冲进行计数,外部脉冲的下降沿有效。其最大容量为65536,实例:电度表,汽车的里程表、录音机的计数器等,确认一次负跳变需两个机器周期。,CPU在一个周期采样高电平,下个周期采样低电平。然后第三个机器周期计数加1,所以,计数频率最高为fosc/24。,7,2、定时器,等间隔,次数已定,时间确定即对机器周期进行计数。,左图定时时间为Tn。,实例:闹钟(若定时1小时,说明秒针走了3600次),由单片机提供一个稳定的计数源,如工作原理图,其计数源为:单片机晶振经过12分频之后的一个脉冲源,其时间间隔与晶振有关。若晶振为12MHz,则计数间隔为1微秒。,8,二.组成,则用于控制定时计数器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。,特殊功能寄存器TMOD控制定时计数器的工作方式,T0/T1,16位,可定时和计数,有4种工作方式,9,1.定时器的控制寄存器TCON,T1字段,T0字段,外部中断控制字,定时器T1的溢出中断标志位。,定时器T0的溢出中断标志位。,定时器T1的运行控制位。由软件置1或清零,定时器T0的运行控制位。,10,2.定时器的方式寄存器TMOD,GATE门控位。,GATE=0时,只要TRx=1,定时器/计数器开始工作,不受INTx的影响。(内部控制),GATE=1,只有TRx为1且INTx输入为高电平时,定时器Tx才允许启动工作。(外部控制),11,C/T=1,选择开关接外部脉冲源Tx,用作计数方式,C/T=0,选择开关接内部时钟源,用作定时方式,12,M1、M0:工作方式选择位。,当M1M0=00时,方式0,13位定时器/计数器;,=01时,方式1,16位定时器/计数器;,=10时,方式2,8位自动重装定时器/计数器,=11时,方式3,两个独立的8位定时器/计数器,13,第二节定时器/计数器的工作方式,一.方式0(M1M0=00),TH的高8位和TL的低5位构成13位的脉冲计数器,而TL的高3位不用,脉冲信号送到TL1,每输入一个脉冲信号TL0加1,当TL1的低5位溢出时就向TH1进位,13位计数器计满溢出时就向TF1进位,TF11,向CPU发出中断请求,如果中断允许,就进入中断响应。,14,二.方式1(M1M0=01),两个8位寄存器TH和TL构成16位脉冲计数器,TL计满溢出向TH进位,16位计满,TF置1,15,三.方式2(M1M0=10),TH1为初值常数寄存器,TL1为8位寄存器,16,方式2与方式0、1的区别:,工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。,工作方式2就具有自动重新装载功能,即自动加载计数初值。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。,方式2在串口通讯时,常用作串行口波特率发生器。,17,三.方式3,使用本身的控制位GATE、C/T、TF0、TR0和/INT0,并占用T0的中断源。,而TH0只有内部定时时,占用定时器T1的TR1、TF1。,说明:方式3只能用于T0,而T1只有方式0,1,2,(M1M0=11),(TH0和TL0是两个独立的8位计数器),(TL0可作为定时器和计数器),(TH0只能作定时器使用),18,第三节定时器/计数器的应用,一.定时器/计数器的编程方法,编程基本步骤如下,1.计算计数器初值,初值X2N定时时间/机器周期,N的取值:方式0,N=13;方式1,N=16方式2,N=8;方式3,N=8,19,2.确定控制字,1)方式寄存器TMOD的确定,2)控制寄存器TCON的确定,20,3.编制初始化程序,1)确定工作方式,对TMOD赋值,MOVTMOD,#XXH,2)预置定时或计数的初值X,MOVTLX,#XXH,MOVTHX,#XXH,3)根据需要开放定时器/计数器的中断,MOVIE,#XXH,4)启动、停止定时器/计数器的工作,SETBTRX,CLRTRX,21,二.方式0的应用,例1,设晶振fosc=6MHz;要求由P1.0端输出一个周期为500s的方波信号,由定时器T1采用查询方式实现。,解:1.确定计数初值X,则计数初值X2N定时时间/机器周期=213-250/2=8067=1111110000011B,TH1=11111100B=FCHTL1=00011B=03H,22,2.确定控制字,TMOD,TCON,23,3.编写程序,ORG0000H,MOVTMOD,#00H,MOVTH1,#0FCH,MOVTL1,#03H,MOVIE,#00H,SETBTR1,LOOP:JBCTF1,LOOP1,AJMPLOOP,LOOP1:MOVTH1,#0FCH,MOVTL1,#03H,CPLP1.0,AJMPLOOP,;T1方式0,;计数初值,;禁止中断,;启动定时,;查询计数溢出位TR1,;重新赋计数初值,;信号跳变,查询负半周期,程序初始化,24,三.方式1的应用,解:1.确定计数初值X,X2N定时时间/机器周期=216-250/2=65536=1111111110000011B,TH1=11111111B=FFHTL1=10000011B=83H,例2,设单片机利用定时器T1,工作方式1;设晶振f=6MHz;要求在引脚为高电平时,以中断方式由P1.0端输出一个周期为500s的方波信号。,25,2.确定控制字,TMOD,故:TMOD=90H,IE,TCON,26,ORG0000HLJMPMAIN;跳转到主程序ORG001BH;T1的中断入口地址LJMPDVT1;转向IT1中断服务程序ORG0100H;主程序MAIN:MOVTMOD,#90H;MOVTH1,0FFH;装入计数初值MOVTL1,#83;SETBET1;T1开中断SETBEA;CPU开中断SETBTR1;启动T1SJMP$;等待中断,MOVIE,84,3.编写程序,27,OGR0100HDVT0:CPLP1.0;P1.0取反输出MOVTH0,#0FFH;重新装入计数值MOVTL0,83H;RETI;中断返回END,28,四.方式2的应用,例3:用定时器T1,采用工作方式2,计数,要求每计满156次,将P1.7取反。,思路:T1工作于计数方式,外部计数脉冲由T1(P3.5)引脚引入,每来一个负跳变计数器加1,由程序查询TF1的状态。,由题意知:TMOD=60H计数初值:X2815610064H故TH1=TL1=64H,29,程序设计:,ORG2000HMOVTMOD,#60H;T1方式2,计数MOVTH1,#64H;T1计数初值MOVTL1,#64HSETBTR1;启动T1LOOP:JBCTF1,REPSJNPLOOPREP:CPLP1.7SJMPLOOP,30,五.方式3的应用,例4,要求使用定时器T0工作在方式3情况下,使P1.0引脚上产生400s的方波,P1.1引脚上产生800s的方波。设单片机的晶振频率为6MHz。,解:1.确定计数初值X,TL0=X2N定时时间/机器周期=28-200/2=156=10011100B,所以TL0=9CH,所以:TH0=38H,2.确定控制字,T0工作在方式3,故TMOD=03H,TH0=X2N定时时间/机器周期=28-400/2=56=00111000B,31,3.编程,ORG0000HREST:LJMPMAINORG000BHLJMPIT0;转T0中断服务程序ORG001BHLJMPIT1;转T1中断服务程序,ORG0100HMAIN:MOVSP,#60HACALLMAIN1HERE:AJMPHERE,32,MAIN1:MOVTMOD,#03H;方式3MOVTL0,#9CHMOVTH0,38HSETBET0SETBET1SETBEASETBTR0SETBTR1RET,T0初始化程序,33,IT0:MOVTL0,#0CEH;T0中断处理程序CPLP1.0RETIIT1:MOVTH0,#9CHCPLP1.1TETI,34,六.运行中读定时器/计数器,方法:先读THX,后读TLX,再读THX。若前后两次读取的THX相同,则两次读得的数据时正确的,如不相同,再重复读取,直到重读的内容相同为止。,ORG0300HRDTIME:MOVA,TH0MOVT0,TL0CJNEA,TL0,RDTIMEMOVR1,ARET,在读取运行中的定时器/计数器时,注意:若恰好出现TLX溢出向THX进位的情况,则读得的TLX值就完全不对。同样,先读THX,在读TLX也可能出错。,35,随堂练习(中断和定时/计数),一、填空题,1、MCS-51单片机有()个中断源,有()个中断优先级,优先级由软件填写特殊功能寄存器()加以选择,2、MCS-51单片机中,T0中断服务程序入口地址为(),3、外部中断请求标志位是()和(),4、MCS-51单片机外部有()种断信号触发方式,若选用外部中断0为边沿触发方式,则需用指令(),5、MCS-51单片机中断系统选用外部中断1和定时器/计数器T1中断为高优先级,则(IP)=,6、MCS-51单片机有()个16位可编程定时器/计数器,有()种工作方式。,36,7、MCS-51单片机最大计数值(),此时工作于方式(),8、若定时器/计数器工作方式0,为()位的,TL的低()计满溢出时,向高()位的TH进位。,9、当定时器/计数器工作方式3时,要占用T1的()和()两个控制位,10、当T0作为一个科自动重装初值的8位定时器/计数器时,()作为8位计数器,()为常数寄存器。,11、当T0工作方式3,TH0溢出时,()将被硬件置1请求中断。,12、T0和T1两引脚也可作为外部中断输入引脚,这时TMOD中的C/T位应当为()。,13、要使T1停止工作,则指令();在工作方式3下,要使TH0开始工作,应执行指令()。,37,二、选择题,1、中断服务程序的最后一条指令必须是(),A.ENDB.RETC.RETID.AJMP,2、串行口中断的入口地址是(),A.0003HB.000BHC.001BHD.0023H,3、MCS-51中断允许触发器内容为83H,CPU将响应中断请求(),4、执行指令:MOVIE,#03H后,CPU将响应的中断有(),A.1个B.2个C.3个D.0个,5、各中断源发出的中断请求信号,都会标记在单片机系统中(),A.IEB.TMODC.TCON/SCOND.IP,38,6、下面哪一种工作方式仅适用于定时器T0(),A.方式0B.方式1C.方式2D.方式3,7、若晶振12MHz,利用T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训教具课件
- High-density-lipoprotein-human-HDL-human-生命科学试剂-MCE
- 房屋抵顶工程款协议书6篇
- 2025年ABS专用料合作协议书
- 2025甘肃天水市武山县人力资源和社会保障局招聘城镇公益性岗位人员7人模拟试卷完整答案详解
- 2025年菏泽单县教体系统第四次引进高层次人才(110名)考前自测高频考点模拟试题及答案详解(新)
- 2025年光导纤维导光环项目发展计划
- 确保信息安全和隐秘保护承诺书5篇范文
- 小学交通安全培训签到表课件
- 2025广东华兴银行实习生招聘模拟试卷附答案详解(黄金题型)
- 2023年11月成都市龙泉驿区天鹅湖小学招聘笔试历年高频考点难、易错点荟萃附答案带详解
- 飞行员日常保健知识讲座
- 规划核实测绘标书
- 培训课件:矿山供电安全
- 骨科皮牵引压疮发生原因分析鱼骨图对策拟定
- 消防救援-水域救援-冰域救援技术课件
- GRR测量系统分析报告范例
- 中海、万科、万达限额设计对比表
- 江苏高考数学历年真题及答案
- 2023年北京市石景山区苹果园街道社区工作者招聘笔试题库及答案解析
- 直播电商基础PPT完整全套教学课件
评论
0/150
提交评论