微机原理及应用 10 定时计数器I 2015(1)_第1页
微机原理及应用 10 定时计数器I 2015(1)_第2页
微机原理及应用 10 定时计数器I 2015(1)_第3页
微机原理及应用 10 定时计数器I 2015(1)_第4页
微机原理及应用 10 定时计数器I 2015(1)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理及应用 Principle and Applications of Micro-Computers 第10讲 MCS-51单片机定时/计数器(教材5.3节)教学目的: 了解MCS-51单片机的定时/计数器的结构, 掌握其工作方式和模式及它们的编程控制要求: 掌握MCS-51单片机定时/计数器的4种工作方式的编程控制方法 难点: 定时/计数器的编程控制(初始化程序和初始值计算)本讲的主要内容pMCS-51单片机的定时/计数器的内部结构p定时/计数器编程控制的几个寄存器pTCON, TMOD, THi, TLip四种工作方式下定时/计数器的工作原理p构成, 编程控制方法(初始化和初始值计算

2、方法)p定时/计数器的应用p方波发生器, 脉冲宽度测量, 周期性任务调度器实现定时的方法p软件定时p软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。例如延时程序。p采用时基电路定时p例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程,且定时时间容易漂移。p可编程定时器定时p最方便的办法是利用单片机内部的定时器/计数器。结合了软件定时精确和硬件定时电路独立的特点。2022-6-8MCS-51单片机的定时/计数器p基于8051内核的MCS-51单片机具有2个定时/计数器p16位定时/计

3、数器, 可编程作为8位, 13位和16位的定时/计数器p每个定时/计数器包含2个独立的8位寄存器, 储存定时/计数器的值p作定时器时, 时钟源来自系统的晶体振荡器, 频率为系统频率的1/12倍p作计数器时, 时钟源来自连接在2个引脚(Ti)的外部脉冲信号, 最大计数频率为系统频率的1/24倍p定时/计数器以递加方式累计计数p基于8052内核的增强型MCS-51单片机至少具有3个定时/计数器, 为了满足某些特殊应用, 许多增强型MCS-51单片机还具有可编程计数器阵列(PCA)p如Silicon Lab.的C8051F系列MCS-51单片机的定时/计数器结构外部计数脉冲输入引脚外部计数脉冲输入引

4、脚方式和模式控制寄存器方式和模式控制寄存器启启/停控制寄存器停控制寄存器溢出中断信号溢出中断信号p定时定时/计数器的计数器的实质实质是是加一计数器加一计数器(16位),由高位),由高8位和低位和低8位两个寄位两个寄存器组成存器组成。定时定时/计数器值的寄存器计数器值的寄存器定时定时/计数器值的寄存器计数器值的寄存器定时/计数器控制寄存器 TCONINT0/1的触发方式控制的触发方式控制(1:下降沿下降沿; 0:低电平低电平)INT0/1的中断请求标志的中断请求标志(1:有效有效; 0:无效无效)T0/1的中断请求标志的中断请求标志(1:有效有效; 0:无效无效)T0/1的启动的启动/停止控制位

5、停止控制位(1:启动启动; 0:停止停止)T0工作方式选择控制工作方式选择控制00B: 方式方式0; 01B:方式方式110B: 方式方式2; 11B:方式方式3定时器定时器/计数器选择控制计数器选择控制(1:计数器计数器; 0:定时器定时器)定时定时/计数器启计数器启/停方式控制选择位停方式控制选择位(简称门控位简称门控位)1: INTi引脚为高电平引脚为高电平,且且TRi=1, 则启动则启动, 否则停止否则停止;0: 启启/停与停与INTi引脚电平无关引脚电平无关, TRi=1启动启动, TRi=0停止停止定时/计数器控制寄存器 TMODD7D6D5D4D3D2D1D0TMOD GATEC

6、/TM1M0GATEC/TM1M0T1工作模式和方式控制位工作模式和方式控制位T0工作模式和方式控制位工作模式和方式控制位T1工作方式选择控制工作方式选择控制00B: 方式方式0; 01B:方式方式110B: 方式方式2; 11B:方式方式3本讲的主要内容pMCS-51单片机的定时/计数器的内部结构p定时/计数器编程控制的几个寄存器pTCON, TMOD, THi, TLip四种工作方式下定时/计数器的工作原理p构成, 编程控制方法(初始化和初始值计算方法)p定时/计数器的应用p方波发生器, 脉冲宽度测量, 周期性任务调度器存储定时/计数器值的寄存器p定时/计数器0 (T0)pTH0 (高8位

7、), TL0 (低8位)p定时/计数器1 (T1)pTH1 (高8位), TL1 (低8位)pTHi和TLi组成一个16位的寄存器, 范围: 065535p方式0 (13位定时/计数器): THi(高8位)+TLi(低5位) (08191)p方式1 (16位定时/计数器): THi(高8位)+TLi(低8位) (065535)p方式2 (8位自动重装定时/计数器): TLi (0255) (THi(重装值)p方式3 (仅对T0): TL0(第1个8位定时/计数器), TH0(第2个定时器) 定时/计数器的工作原理 方式0 ?1. 什么情况时为定时什么情况时为定时/计计数器溢出数器溢出? 2.

8、作为递加的计数器作为递加的计数器, 计计划划10个脉冲后溢出个脉冲后溢出, 应从应从何时何时(初始值初始值)开始计数开始计数? 定时/计数器的编程控制 方式0编程控制包括如下操作设置工作方式设置工作方式, 选择定时器或计数器模式选择定时器或计数器模式 (TMOD)作为定时器作为定时器, 需根据待定时时间和系统晶体频率需根据待定时时间和系统晶体频率(或机器周期或机器周期)来来确定初始值确定初始值 (THi和和TLi)启动和停止控制启动和停止控制 (单独设置单独设置TRi位或直接写位或直接写TCON)若使用中断若使用中断, 需设置相应的中断和优先级控制寄存器需设置相应的中断和优先级控制寄存器(IE

9、,IP)13位定时/计数器的初始值计算方法13 _132, PMPMTInitialValBTTT定时周期(或定时时间)机器周期 ?这里的这里的InitialVal_13B的的有效数据位为有效数据位为13位位, 自然自然保存在一个保存在一个16位变量中位变量中, 那么如何给那么如何给THi和和TLi赋赋值值?定时/计数器的工作原理 方式116(_16 ) _162, (_16 ) , HighPLowMPMTHiInitialValBTInitialValBTLiInitialValBTTT定时周期(或定时时间)机器周期16位定时位定时/计数器的初始值计算方法计数器的初始值计算方法16位定时位

10、定时/计数器的构成计数器的构成见教材见教材p.155图图5-7定时/计数器的工作原理 方式28位自动重位自动重装定时装定时/计计数器的构成数器的构成见教材见教材p.156图图5-88 2, , PMPMTTLiTHiTLiTTT自动重装寄存器 定时周期(或定时时间)机器周期8位自动重装定时位自动重装定时/计数器的初始值计算方法计数器的初始值计算方法8位自动重装定位自动重装定时时/计数器一般应计数器一般应用于用于UART的波的波特率发生器特率发生器(教材教材p.157图图5-11)(下一讲说下一讲说UART)方式0示例 某系统使用某系统使用12MHz晶体振荡器晶体振荡器, 其其机器周期为机器周期

11、为 s? 设计一个方波发生器设计一个方波发生器, 在在P1.0 引脚输出周期为引脚输出周期为1ms的方波的方波, 现要求用现要求用T1作为定时器作为定时器, 且工作在方式且工作在方式0.(用(用定时中断定时中断方式来实现)方式来实现)开开 始始P1.7置置1T1模式设置模式设置T1初值设置初值设置(0.5ms)中断设置中断设置开中断开中断循环等待中断循环等待中断启动定时器启动定时器T1中断入口中断入口T1初值设置初值设置(0.5ms)中断返回中断返回P1.7取反取反主程序流程主程序流程中断服务子程序流程中断服务子程序流程采用方式采用方式0:N=8192-500/1=7692=1E0CH数据格式

12、为:数据格式为:1111000000001100B=0F00CH所以(所以(TH1)=0F0H,(,(TL1)=0CH方式0示例 某系统使用某系统使用12MHz晶体振荡器晶体振荡器, 其其机器周期为机器周期为 s? 设计一个方波发生器设计一个方波发生器, 在在P1.0 引脚输出周期为引脚输出周期为1ms的方波的方波, 现要求用现要求用T1作为定时器作为定时器, 且工作在方式且工作在方式0.(用(用定时中断定时中断方式来实现)方式来实现)P1 ORG 0000HRESERT: AJMP MAIN ORG 001BH AJMP IT1P ORG 0100H MAIN: MOV SP,#60H AC

13、ALL PT1M0 HERE: AJMP HERE Step1:计算初始值Step2:1)TMOD 2) TCON 3) Thx,Tlx 4) 开中断 5)启动C/TPT1M0: MOV TMOD, #00H MOV TL1,#0CH MOV TH1,#0F0H SETB ET1 SETB EA SETB TR1 RET IT1P: MOV TL1,#0CH MOV TH1,#0F0H CPL P1.0 RETI定时/计数器的编程控制 方式0示例 某系统使用某系统使用12MHz晶体振荡器晶体振荡器, 其其机器周期为机器周期为 s? 设计一个方波发生器设计一个方波发生器, 在在P1.0 引脚输出

14、周期为引脚输出周期为1ms的方波的方波, 现要求用现要求用T1作为定时器作为定时器, 且工作在方式且工作在方式0. (分别用分别用查询溢出标志位查询溢出标志位TF1和和定时中断定时中断两种方式来实现两种方式来实现)P2 #include void main(void) while(1); /主程序 interrupt 0 x1B void T1_ISR(void) TR1 = 0; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; TH1 = ; TL1 = ; TR1 = 1; P1 #include void main(void) /主程序 while(TF1

15、!= 1); TF1 = 0; TR1 = 0; TR1 = 1; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; 定时/计数器的编程控制 方式1示例 某系统使用某系统使用12MHz晶体振荡器晶体振荡器, 如果用如果用T0作为定时器作为定时器, 且工作在方式且工作在方式1, 现要求现要求P1.0产生周期为产生周期为20ms的方波的方波, 如何实现?如何实现? #include void main(void) TMOD = 0 x01 ; TH0 = 0 xD8 ; TL0 = 0 xF0 ; IE = 0 x82; IP = 0 x02; TR0 = 1; P1.

16、0 = 1; while(1); /主程序 interrupt 0 x0B void T0_ISR(void) TR0 = 0; if (P1.0 = 1) P1.0 = 0; else P1.0 = 1; TH0 = 0 xD8 ; TL0 = 0 xF0 ; TR0 = 1; ?如果希望在该系统如果希望在该系统实现实现1s的定时周期的定时周期, 应该怎么实现应该怎么实现? 能能实现实现10s或更长的或更长的定时周期吗定时周期吗? 方式2的应用 假设系统的单片机使用假设系统的单片机使用6MHz的晶体振荡器的晶体振荡器.把把T0作为一个特殊外部中断请作为一个特殊外部中断请求输入线求输入线,要求

17、要求T0引脚发生负跳变时向引脚发生负跳变时向CPU申请中断申请中断.以以T0工作在方式工作在方式2计数计数器模式器模式,计数器的初始值为计数器的初始值为FFH,一旦一旦T0引脚出现负跳变时引脚出现负跳变时,计数器的计数值计数器的计数值加加1,立即产生立即产生T0计数器溢出中断标志计数器溢出中断标志 TF0=1,向向CPU申请中断申请中断.每发生一次每发生一次T0中断后中断后,P1.0脚的脚的LED亮亮50ms然后关闭然后关闭,直到再次出现直到再次出现T0中断中断LED再亮再亮50ms,如此重复如此重复. (1) TMOD (2) 初始值初始值 (3) 编写初始化程序编写初始化程序,装入初始值装

18、入初始值,开放中断开放中断 (4) 编写中断服务程序编写中断服务程序方式2的应用 程序代码 ORG 0000H AJMP MAIN ORG 000B AJMP ITOP ORG 001B AJMP IT1P ORG 0100H MAIN: MOV SP, #60H ACALL PT0M2 HERE: AJMP HEREIT0P: CLR P1.0 SETB TR1 RETIIT1P: MOV TH1,#58H MOV TH1,#9EH SETB P1.0 CLR TR1 RETIPT0M2: MOV TMOD, #16H MOV TL0, #16H MOV TH0, #0FFH MOV TL0, #0FFH MOV HL1,#58H MOV TH1,#9EH SERB TR0 SETB ET0 SETB P1.0 SETB EA RET方式3的应用(P163) 程序代码总结p MCS-51的定时的定时/计数器结构计数器结构: p定时定时/计数器值的寄存器计数器值的寄存器, 启启/停控制寄存器停控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论