ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:64.47KB ,
资源ID:26914551      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26914551.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AT89S52定时器计数器.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AT89S52定时器计数器.docx

1、AT89S52定时器计数器第6章 AT89S52定时器/计数器本章要点: 掌握定时器/计数器的定义 理解定时器/计数器的内部结构 掌握4种工作方式的初始化编程方法 学会使用定时器/计数器编写计数、定时应用程序的方法AT89S52单片机内部有三个16位可编程的定时器/计数器,即定时器T0、定时器T1和定时器T2。它们既可用作定时器方式,又可用作计数器方式,且都有4种工作方式可供选择。但T0、T1与T2的4种工作方式不同,将在本节内详细介绍。 定时器/计数器的结构与功能主要介绍定时器0T0和定时器1T1的结构与功能。图是定时器/计数器的结构框图。由图可知,定时器/计数器由定时器0、定时器1、定时器

2、方式存放器TMOD和定时器控制存放器TCON组成。定时器0,定时器1是16位加法计数器,分别由两个8位专用存放器组成:定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。图6.1 定时器/计数器结构框图TL0、TL1、TH0、TH1的访问地址依次为8AH8DH,每个存放器均可单独访问。定时器0或定时器1用作计数器时,对芯片引脚T0或T1上输入的脉冲计数,每输入一个脉冲,加法计数器加1;其用作定时器时,对内部机器周期脉冲计数,由于机器周期是定值,故计数值确定时,时间也随之确定。TMOD、TCON与定时器0、定时器1间通过内部总线与逻辑电路连接,TMOD用于设置定时器的工作方式,TCON用

3、于控制定时器的启动与停止。 计数功能计数方式时,T的功能是计来自T0(P3.4)T1(P3.5)的外部脉冲信号的个数。输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。外部输入信号的下降沿将触发计数,识别一个从“1到“0的跳变需2个机器周期,所以,对外部输入信号最高的计数速率是晶振频率的1/24。假如晶振频率为6MHz,如此计数脉冲频率应低于1/4MHz。当计数器满后,再来一个计数脉冲,计数器全部回0,这就是溢出。脉冲的计数长度与计数器预先装入的初值有关。初值越大,计数长度越小;初值越小,计数长度越大。最大计数长度为65536216个脉冲初值为0。 定时方

4、式定时方式时,T记录单片机内部振荡器输出的脉冲(机器周期信号)个数。 每一个机器周期使T0或T1的计数器增加1,直至计满回零自动产生溢出中断请求。定时器的定时时间不仅与定时器的初值有关,而且还与系统的时钟频率有关。在机器周期一定的情况下,初值越大,定时时间越短;初值越小,定时时间越长。最长的定时时间为65536216个机器周期初值为0。 定时器/计数器控制存放器与对定时器/计数器有关的控制存放器共有4个:TMOD、TCON、IE、IP。IE、IP已在中断一节中介绍,这里不再赘述。 定时器/计数器控制存放器TCON特殊功能存放器TCON用于控制定时器的操作与对定时器中断的控制。其各位定义格式如下

5、。其中D0D3位与外部中断有关,已在中断系统一节中介绍。TF0和TF1:定时器/计数器溢出标志位。当定时器/计数器0或定时器/计数器1溢出时,由硬件自动使TF0或TF1置1,并向CPU申请中断。CPU响应中断后,自动对TF1清零。TF1也可以用软件清零。TR0和TR1:定时器/计数起运行控制位。TR0或TR1=0,停止定时器/计数器0或定时器/计数器1工作。TR0或TR1=1,启动定时器/计数器0或定时器/计数器1工作。可由软件置1或清0来启动或关闭定时器/计数器,使定时器/计数器开始计数。用指令SETB 或CLR使运行控制位置1或清0。 工作方式存放器TMODTMOD用于控制定时器/计数器的

6、工作方式。字节地址为89H,不可位寻址,只能用字节设置其内容。其格式如下:定时器/计数器1定时器/计数器0位序D7D6D5D4D3D2D1D0位标志GATEC/M1M0GATEC/M1M0其中,低4位用于T0,高4位用于T1的。GATE:门控位。GATE0,只要用软件使TR0或TR1置1就能启动定时器/计数器0或定时器/计数器1;GATE1,只有在或引脚为高电平的情况下,且由软件使TR0或TR1置1时,才能启动定时器/计数器0或定时器/计数器1工作。不管GATE处于什么状态,只要TR0或TR1=0定时器/计数器便停止工作。C/:定时器/计数器工作方式选择位。C/0,为定时工作方式;C/1,为计

7、数工作方式。M0、M1:工作方式选择位,确定4种工作方式。如表所示。表6.1 定时器/计数器工作方式选择M1M0工作方式功能说明00113位计数器01216位计数器103自动再装入8位计数器114定时器0:分成两个8位计数器定时器1:停止计数【例】设置定时器1工作于方式1,定时工作方式与外部中断无关,如此M1=0,M0=1,GATE=0,因此,高4位应为0001;定时器0未用,低4位可随意置数,但低两位不可为11因方式3时,定时器1停止计数,一般将其设为0000。因此,指令形式为:MOV TMOD,#10H 定时器/计数器工作方式与程序设计通过对特殊功能存放器TMOD中的设置M1、M0两位的设

8、置来选择四种工作方式,定时器/计数器0、1和2的工作方式一样,方式3的设置差异较大。 工作方式0工作方式存放器TMOD中的M1M0为:00。定时器/计数器T0工作在方式0时,16位计数器只用了13位,即TH0的高8位和TL0的低5位,组成一个13位定时器/计数器。当TL0的低5位计满溢出时,向TH0进位,TH0溢出时,对中断标志位TF0置位,向CPU申请中断。定时器/计数器0方式0的逻辑结构如下列图。1工作在定时方式C/0,定时器对机器周期计数。定时器在工作前,应先对13位的计数器赋值,开始计数时,在初值的根底上进展减1计数。定时时间的计算公式为:定时时间213 计数初值晶振周期12或 定时时

9、间213 计数初值机器周期假如晶振频率为12MHz,如此最短定时时间为213(2131)(1/12)106121 s最长定时时间为21301/12106128 192 s2工作在计数方式C/1,13位计数器对外部输入信号进展加1计数。利用由0变为1时,开始计数,由1变为0时,停止计数,可以测量在端出现的正脉冲的宽度。计数值的X围是1213=8192 (个外部脉冲)。【例】假设AT89S52单片机晶振频率为12MHz,要求定时时间8ms,使用定时器T0,工作方式0,计算定时器初值X。解: t = 213 X机器周期 当单片机晶振频率为12MHz时,机器周期=1s 8103 = 213 X1 X

10、= 8192-8000 = 192 转换成二进制数为:11000000B 【例】假设AT89S52单片机晶振频率为12MHz,所需定时时间为250s,当T0工作在方式0时T0计数器的初值是多少?解: t = 213 X机器周期 当单片机晶振频率为12MHz时,机器周期=1s 250 = 213 X01 X 0= 8192-250 = 7942 转换成二进制数为:【例】利用T0方式0产生1ms的定时,在引脚上输出周期为2ms的方波。设单片机晶振频率fosc12MHz。解:1解题思路要在引脚输出周期为2ms的方波,只要使每隔1ms取反一次即可。执行指令为。2确定工作方式 : 方式0 TMOD=00

11、HC/0:T0为定时功能;D2位GATE0,只要用软件使TR0或TR1置1就能启动定时器T0或T1; M1M0 = 00,工作方式0 TMOD的值为 = 00H可取任意值,因T1不用,这里取0值。 使用 MOV TMOD , #00H 即可设定T0的工作方式3计算1 ms定时时T0的初值机器周期 T = 1fosc12 = 1s计数个数:X =1ms/ls = 1000设T0的计数初值为x0,如此 x0 (213一X)s 81921000 7192D 转换成二进制数为:11100000 11000B 高8位 低5位 将高8位11100000 = 0E0H装入TH0 将低5位11000 = 18

12、H装入TL0 1 1 EA = 1 ,CPU开放中断; ET0 = 1,允许T0中断;4编程可采用中断和查询两种方式编写程序。方法一:中断方式ORG 0000H AJMP MAIN ;转主程序MAIN ORG 000BH AJMP IT0P ;转T0中断服务程序IT0P ORG 1000HMAIN:MOV SP,#60H ;设堆栈指针 MOV TH0 , #0E0H ;给定时器T0送初值 MOV TMOD,#00H ;设置T0为方式0,定时 MOV TL0 , #18H ;送定时初值 MOV TH0,#0E0H SETB EA ;CPU开中断 SETB ET0 ;T0允许中断 SETB TR0

13、 ;启动T0定时HERE: SJMP HERE ;等待中断中断服务程序:IT0P: ORG 1200H ;T0中断入口 MOV TL0,#18H ;重新装入计数初值 MOV TH0,#0E0H CPL P1.2 ;输出方波 RETI ;中断返回END方法二:查询方式 MOV TMOD,#00H ;设置T0为方式0,定时 MOV TL0,#18H ;送初值 MOV TH0,#0E0H SETB TR0 ;启动T0定时LOOP: C TF0,NEXT ;查询定时时间到否? SJMP LOOPNEXT:MOV TL0,#18H ;重新装入计数初值 MOV TH0,#0E0H CPL P1.2 ;输出

14、方波 SJMP LOOP ;重复循环 工作方式1工作方式存放器TMOD中的M1M0为:01。定时器T0工作方式1与工作方式0类同,差异在于其中的计数器的位数。工作方式1以16位计数器参与计数。定时器/计数器0方式1的逻辑结构如下列图。1工作在定时方式C/0,定时器对机器周期计数。定时时间的计算公式为:定时时间213 计数初值晶振周期12或 定时时间213 计数初值机器周期假如晶振频率为12MHz,如此最短定时时间为216(2161)(1/12)106121 s最长定时时间为21601/121061265 536 s65.5 ms2工作在计数方式C/1,16位计数器对外部输入信号进展加1计数。计

15、数值的X围是1216=65 536 (个外部脉冲)。【例】假设AT89S52单片机晶振频率为12MHz,所需定时时间为10ms,当T0工作在方式1时T0计数器的初值是多少?解: t = 216 X0机器周期 当单片机晶振频率为12MHz时,机器周期=1s 10103 = 213 X01 X = 65536-10000 = 55536 转换成二进制数为:【例】假设AT89S52单片机晶振频率为12MHz,定时器T0的定时初值为9800,计算T0工作在方式1时的定时时间。解: t = 216 X0机器周期 当单片机晶振频率为12MHz时,机器周期=1s t = 216 98001 t = 6553

16、6-9800 = 55736s【例】用定时器T0产生50HZ的方波。由输出此方波设时钟频率为12MHZ。采用中断方式。解:50HZ的方波周期T为 T = 1/50 = 20ms可以用定时器产生10ms的定时,每隔10ms改变一次的电平,即可得到50HZ的方波。定时器T0应工作在方式1。1工作在方式1时的T0初值,根据下式计算: t = 216 X机器周期 时钟频率为12MHz,如此机器周期 = 1s 10103 = 216 X 1 X = 65536 10000 = 55536 转换为二进制数:11011000 11001100B 高8位 低8位高8位 = 0D8H装入TH0,低8位 = 0C

17、CH装入TL0。2程序ORG 0000H AJMP MAIN ORG 000BH ;T0的中断入口地址AJMP T0INT ORG 0100HMAIN: MOV TMOD , #01H ;设置T0为工作方式1MOV TH0 , #0D8 H ;装入定时器初值MOV TL0 , #0CC HSETB ET0 ;设置T0允许中断SETB EA ;CPU开中断SETB TR0 ;启动T0SJMP $ ;等待中断中断服务程序;ORG 0300HT0INT:CPL P1.0 ;取反MOV TH0 , #0D8H ;重新装入定时初值MOV TL0 , #0CCHRETI注: SETB ET0 ;设置T0允

18、许中断SETB EA ;CPU开中断这两条指令可以等效为 MOV IE , #82H。 工作方式2定时器/计数器0方式2的逻辑结构如下列图。工作方式存放器TMOD中的M1M0为:10定时器/计数器在工作方式2时,16位的计数器分成了两个独立的8位计数器TH和TL。此时,定时器/计数器构成了一个能重复置初值的8位计数器。其中,TL用作8位计数器,TH用来保存计数的初值。每当TL计满溢出时,自动将TH的初值再次装入TL。1工作在定时方式C/0,定时器对机器周期计数。定时时间的计算公式为:定时时间28 计数初值晶振周期12或 定时时间28 计数初值机器周期假如晶振频率为12MHz,如此最短定时时间为

19、28(281)(1/12)106121 s最长定时时间为2801/1210612256 s2工作在计数方式C/1,8位计数器对外部输入信号进展加1计数。计数值的X围是128=256 (个外部脉冲)。【例】利用T0方式2实现以下功能:当T0(P3.4)引脚每输入一个负脉冲时,使输出一个500s的同步脉冲。设晶振频率为6MHz,请编程实现该功能。其波形如下列图。图6.5 例波形图(1) 确定工作方式首先选T0为方式2,外部事件计数方式。当引脚上的电平发生负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为500s定时工作方式,并使输出由1变为0。T0定时到产生溢出,使引脚恢复输出高电平。T

20、0先计数,后定时,分时操作。根据题目要求方式控制字TMOD是:计数时:(TMOD) = 0000 0110B = 06H定时时:(TMOD) = 0000 0010B = 02H2计算初值机器周期T = 12fosc = 12/6MHZ =2s计数时:计数个数 X = 1计数初值 = (256X) = (2561) =255=0FFH,(TH0)=(TL0)=0FFH定时时:计数个数 X =/ Tm= 500s2s =250定时初值 = 256X = 256250 = 6,(TH0) = (TL0) = 06H 3编程方法采用查询方法START:MOV TMOD,#06H ;T0方式2,外部计

21、数方式 MOV TH0,#0FFH ;T0计数初值 MOV TL0,#0FFH SETB TR0 ;启动T0计数LOOPl:C TF0,PTF01 ;查询T0溢出标志,TF01时转移,且TF00(查负跳变) SJMP LOOPlPTF01:CLR TR0 ;停止计数 MOV TMOD,#02H ;T0方式2,定时 MOV TH0,#06H ;T0定时500s初值 MOV TL0,#06H CLR P1.0 ;清0 SETB TR0 ;启动定时500sLOOP2:C TF0,PTF02 ;查询溢出标志,定时到TF0=l 转移,且TF00(第一个500s到否?) SJMP LOOP2PTF02:S

22、ETB P1 ;置1(到了第一个500s) CLR TR0 ;停止计数 SJMP START 工作方式3工作方式存放器TMOD中的M1M0为:11。工作方式3仅对定时器/计数器0有效,此时,将16位的计数器分为两个独立的8位计数器TH0和TL0。当定时器/计数器0工作在方式3时,定时器/计数器1只能工作在方式02,并且工作在不需要中断的场合。在一般情况下,当定时器/计数器1用作串行口波特率发生器时,定时器/计数器0才设置为工作方式3。此时常把定时器/计数器1设置为方式2,用作波特率发生器。定时器/计数器0在方式3下的逻辑结构如下列图。【例】设某用户系统中已使用了两个外部中断源,并置定时器T1工

23、作在方式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由引脚输出一个5kHz的方波。fosc=12MHz。(1) 确定工作方式T0方式3下,TL0作计数用,而TH0可用作8位的定时器,定时控制引脚输出5kHz的方波信号。T1为方式2,定时。TMOD是: 0010 0111B = 27H(2) 计算初值TL0初值:FFH,TH0初值X0计算如下:的方波频率为5kHz,故周期T1/(5kHz)=0.2ms=200s用TH0定时100s时,X02561001212=1563程序如下:MOV TMOD,#27H ;T0为方式3,计数;T1为方式2,定时 MOV TL0, #0FFH ;置T

24、L0计数初值 MOV TH0, #156 ;置TH0计数初值 MOV THl, #data ;data是根据波特率要求设置的常数(即初值) MOV TLl, #data MOV TCON,#55H ;外中断0,外中断1边沿触发,启动T0,T1 MOV IE,#9FH ;开放全部中断 TL0溢出中断服务程序(由000BH转来)TL0INT: MOV TL0,#0FFH ;TL0重赋初值(中断处理) RETI TH0溢出中断服务程序(由001BH转来)TH0INT:MOV TH0,#156 ;TH0重新装入初值 CPL P1.0 ;输出波形 RETI 定时器/计数器2定时器/计数器2是一个16位定时器/计数器,是定时器或外部事件计数器。定时器2有三种操作方式:捕获方式、自动重装方式和波特速率发生器方式。工作方式由T2CON的控制位选择。1定时器/计数器2控制存放器T2CONT2CON可位寻址,地址为0C8H。其各位定义如下:位 序D7D6D5D4D3D2D1D0位标志TF2EXF2RCLKTCLKEXEN2TR2C/CP/位地址

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1