下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、71 定时器/计数器概述,711 定时方法,在单片机控制系统中,定时的方法有: 1. 软件定时 靠执行一个循环程序以进行时间延迟。特点是:时间精确,且不需外加硬件电路。缺点是:定时时要占用CPU,增加CPU的开销。 2硬件定时 使用硬件电路来完成。方法是:定时功能全部由硬件电路完成,不占CPU的时间。缺点是:定时参数一旦设定,修改比较困难。适用于:时间较长的定时 3可编程定时器 通过系统对时钟脉冲的计数来实现。通过程序可以改变计数值,也就改变了定时时间。同时可编程定时器具有定时和计数功能。,7.1.2 定时器/计数器的结构,MCS-51系列单片机有两个16位的定时器,分别为T0和T1。它们都有
2、定时和事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合 。,T0由两个8位特殊功能寄存器TH0和TL0构成; T1由TH1和TL1构成。 T0、T1由软件设置为定时器工作方式或计数方式及其他灵活多样的可控功能方式。 T0、T1的功能都由特殊功能寄存器TMOD和TCON所控制。,AT89C51定时器结构:,定时器工作方式:每个机器周期使定时器(T0或T1)的数值加1直至计数溢出。,计数器工作方式:在每个机器周期的S5P2期间采样T0和T1引脚,若某一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。最高计数频率为振荡频率的1/24。,8位寄存器TMOD和TCON,用来
3、设置T0和T1的操作模式和控制功能。当系统复位时,两个寄存器所有位被清0。,72 定时器/计数器的控制,GATE C / T M1 M0 GATE C / T M1 M0,1.工作模式寄存器TMOD (89H,不能位寻址只能由字节设置定时器工作模式),定时器T0工作模式定义,M1、M0:工作模式控制位 ( 定义4 种方式 ):,0 0: 模式0 13位定时器作用不大 0 1: 模式1 16位定时器经常用到 1 0: 模式2 可自动重装的8位定时器经常用到 1 1: 模式3 T0分为2个8位定时器;T1不工作几乎无用,定时器T1工作模式定义,C/T :计数器/定时器选择位 0 片内时钟定时器。对
4、机器周期脉冲计数定时 1 外部事件计数器。对T0(T1)引脚的负脉冲计数;,GATE C / T M1 M0 GATE C / T M1 M0,T1,T0,GATE门控位: 定时器可由软件与硬件两者控制 GATE = 0 普通用法 定时器的启/停由软件对TR0(TR1)位写“1”/“0”控制,不管INT0、INT1的电平。,(89H), GATE = 1 门控用法 INT0或INT1引脚为高电平且由软件使TR0或TR1置1时,才能启动定时器工作。,2.定时器控制寄存器TCON (88H,可位寻址),TF0(TF1):定时器0/1计数溢出标志位。 =1 计数溢出; =0 计数未满 TF0(TF1
5、) 可用于申请中断或供CPU查询。 在进入中断服务程序时会自动清零; 但在查询方式时必须软件清零。,TR0(TR1): 定时器0/1运行控制位。 =1 启动计数; =0 停止计数 在程序中用指令“SETB TR1”使TR1位置1,定时器T1便开始计数。,IT0,IE0,IT1,IE1,TR0,TF0,TR1,TF1,88H,89H,8AH,8BH,8CH,8DH,8EH,8FH,定时器T0/T1 中断申请过程,在已经开放T0/T1中断允许且已被启动的前提下: T0/T1加满溢出时 TF0/TF1标志位自动置“1” 检测到TCON中TF0/TF1变“1”后,将产生指令: LCALL 000BH/
6、LCALL 001BH 执行中断服务程序, TF0/TF1标志位会自动清“0”,以备下次中断申请。,定时/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数,7.3 定时器计数器的四种工作模式及应用,1. 模式0及应用(以T0为例),振荡器,12,TL0 TH0 (5位) (8位),TF0,申请中断, TR0,GATE,INT0端,1, TMOD=0X00; TL0=0X18; TH0=0XE0; TR0=1; while(1) if(TF0=1) TF0=0; TL0=0X18; TH0=0XE0; P1_0=P1_0; ,(4)定时器溢出中断程序 程序清单如下:
7、主程序: MAIN:MOV TMOD,#00H ;设置T0模式0 MOV TL0,#18H ;送初值 MOV TH0,#0E0H ; SETB EA ;CPU开中断 SETB ET0 ;T0中断允许 SETB TR0 ;启动T0 HERE:SJMP HERE ;等待中断,返回主程序 中断服务程序: ORG 000BH ;T0中断的入口 AJMP CTC0 ;跳转 CTC0: MOV TL0,#18H ;重装初值 MOV TH0,#0E0H ; CPL P1.0 ;输出方波 RETI ;中断返回,#include main() P1_0=0; TMOD=0X00; TL0=0X18; TH0=0
8、XE0; EA=1; ET0=1; TR0=1; while(1); void inte_T0() interrupt 1 TL0=0X18; TH0=0XE0; P1_0=P1_0; ,振荡器,12,TL0 TH0 (8位) (8位),TF0,申请中断,TR0,GATE,INT0端,1, TMOD=0 x10; TH1=0XD8; TL1=0XF0; TR1=1; while(1) if(TF1) TR1=0; TF1=0; TH1=0XD8; TL1=0XF0; P1_1=P1_1; TR1=1; ,分析:已知fosc = 6MHz 则: (振荡周期)1Tc=1/6MHz (机器周期)1T
9、m=12Tc=12/6MHz=2S 粗略地说:Tmin 2S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到: Tmax = 655362 = 131072S131.072mS,若晶振频率为6MHz,计算单片机的最小与最大定时时间:,附录:,振荡器,12,TR0,GATE,INT0端,1, while(1) TMOD=0X06; TH0=0XFF; TL0=0XFF; TR0=1; if(TF0) TR0=0; TF0=0; TMOD=0X02; TH0=0X06; TL0=0X06;,P1_0=0; TR0=1; while(!TF0); /if(
10、TF0) TF0=0; P1_0=1; /TR0=0; ,分析:fosc = 6MHz 1机器周期 = 2 S 1KHz方波周期 = 1 mS 半个方波周期 =500S 500uS2 uS = 250 定时器最大若选择方式2 工作,8位数值为: 28 =256 =0FFH + 1 可以满足要求。 计算初值:256250=6,从P1.0 脚输出频率=1KHz方波。 设:晶振=6MHz。利用T1定时中断。,Th:半周期,T:周期,附录:,ORG 0000H AJMP MAIN ORG 001BH ;T1的中断矢量 CPL P1.0 ;中断服务:P1.0取非 RETI ;中断返回 MAIN: MOV
11、 TMOD,#20H MOV TH0, #6 MOV TL0, #6 SETB ET1 SETB EA SETB TR1 HERE: AJMP HERE ;原地等待中断 END,初始化,;选T1方式2 ;赋重装值 ;赋初值 ;开T1中断 ;开总中断 ;启动T1,#include main() P1_0=1; TMOD=0X20; TH1=0X06; TL1=0X06; EA=1; ET1=1; TR1=1; while(1); void inre_T1(void) interrupt 3 P1_0=P1_0; ,振荡器,12,TL0 (8位),TF0,申请中断,T0端,C/T=0,C/T=1,
12、控制 =1开关接通,TH0 (8位),TF1,申请中断,TR1位,控制 =1,四、模式3及应用,GATE,M0(0),M1(0),C/T,INT0端,1, TL0=0X18; TH0=0XE0; P1_0=0; EA=1; ET0=1; TR0=1; while(1); void inter_T0() interrupt 1 TL0=0X18; TH0=0XE0; P1_0=P1_0; ,例题2:设晶振频率fOSC=6MHz,分别讨论各种工作方式下最长定时时间。,解: 1.由fOSC=6MHz可知,MC=2us; 2.由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。 所以
13、此时有: 方式0: (2130)2us= 214us=16384us=16.384ms,方式1: (2160)2us= 217us=131.072ms,方式2、3 (280)2us= 29us=0.512ms,注意:以上是当fOSC=6MHz,即MC=2us时各种方式下的定时时间,若fOSC=12MHz,则最长定时时间将缩短一半。,第五章上机实验(1),1.分别用2种定时方式使P1口输出信号,轮流点亮8个LED,每个LED点亮时间为50ms。 方式1:利用调用延时子程序方式; 方式2:利用定时器定时50ms,设晶振频率为12MHz;参考习题13。 2.每个LED点亮时间为2s。 参考P9596
14、 接口实训(一)一.定时器/计数器应用实训。,T1控制,T0控制,控制字02H,3.题目中没有指明用T0还是T1,可任意,我 们用T0。,确定TMOD控制字, 计算计数器的计数初值;,(28X)210 -6 =50010 -6 即28X=250 X28-250=100H-FAH 06H 所以,初值为: TH0=06H,TL0=06H, 采用中断方式: 编程时打开全局中断:置位EA 局部中断:置位ET0。, 置位TR0位控制定时器的启动。,程序设计,ORG 0000H LJMP MAIN ;主程序入口 ORG 000BH LJMP INTT0 ;T0中断入口,INTT0: CPL P1.1 ;输
15、出取反 RETI,ORG 1000H MAIN:MOV TMOD, #02H ;T0为方式2 MOV TH0, #06H MOV TL0,#06H ;初值 SETB EA ;允许中断 SETB ET0 SETB TR0 ;启动定时 SJMP $ ;等待中断,主程序:,中断处理程序:,8051,P1.0,P1.7,R,LED7,. . . . .,R,LED0,. . . . .,题13 思路: 1.通过P1.0P1.7分别送“1”给8个灯;,2.每次持续时间20分之一秒,即50ms,,由定时器T0来定时,又知fOSC=6MHz,由例题2可知可用方式1。,T1控制,T0控制,控制字01H,确定T
16、MOD控制字, 计算计数器的计数初值;,(216X)210 -6 =5010 -3 即216X=25000 X216-25000=10000H-61A8H 9E58H 所以,初值为: TH1=9EH,TL1=58H, 采用中断方式: 编程时打开全局中断:置位EA 局部中断:置位ET0。, 置位TR0位控制定时器的启动。,程序设计,ORG 0000H LJMP MAIN ;主程序入口 ORG 000BH LJMP INTT0 ;T0中断入口,ORG 1000H MAIN:MOV TMOD, #01H ;T0为方式1 MOV TH0, #9EH MOV TL0,#58H ;初值 SETB EA ;
17、允许中断 SETB ET0 SETB TR0 ;启动定时 MOV A,#01H ; LED0先亮 MOV P1,A ; SJMP $ ;等待中断,主程序:,中断处理程序:,INTT0: MOV TH0,#9EH ;重新设置初值 MOV TL0,#58H RL A ;依次点亮 RETI,P1.0,P1.7,R,LED3,R,LED0,R,LED1,R,LED2,R,LED4,R,LED5,R,LED6,R,LED7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,8051,上机实验1: 方法1.调用50ms延时子程序。设晶振频率为12MHz,则机器周期为1us。下面为延时子程序清单:
18、,DEL: MOV R7,#200 ;1MC DEL1:MOV R6,#123 ;1MC NOP ;1MC DJNZ R6,$ ;2MC DJNZ R7,DEL1 ;2MC RET ;2MC,延时时间:t=1+200(1+1+2*123+2)+2 50000us=50ms,程序清单:,ORG 1000H MOV A,#01H LOOP:MOV P1,A LCALL DEL RL A SJMP LOOP,ORG 1100H DEL: MOV R7,#200 DEL1:MOV R6,#123 NOP DJNZ R6,$ DJNZ R7,DEL1 RET,主程序,子程序,上机实验2:P9596 接口
19、实训,1.定时器/计数器应用实训,实训内容:利用T0定时,产生2s定时,使得P1口输出信号,控制8个发光二极管循环点亮,设fOSC=12MHz, 。,难点:P1口输出信号,控制8个发光二极管循环点亮的解题思路见习题5-13,但此处由于定时时间长达2s,所以单靠一个定时器不能解决问题。 可以采取硬件定时和软件计数(或硬件计数)结合方式。,方法2:见习题13,但时间常数为3CB0H,硬件定时与软件计数结合方式解题思路: 让T0作定时器用,如T0可以定时50ms,每当定时时间到,在T0中断处理程序中一个寄存器内容加1,同时判断是否加到2000/50=40,如果不到40,则直接返回,如果计到40,说明2s时间到,使P1口循环点亮8个发光二极管后再返回。 T0工作在方式1,控制字01H,计数初值:,(216X)110 -6 =5010 -3 即216X=50000 X216-50000=10000H-C350H 3CB0H 所以,初值为: TH1=3CH,TL1=B0H,程序设计,ORG 0000H LJMP MAIN ;主程序入口 ORG 000BH LJMP INTT0 ;T0中断入口,ORG 1000H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初中化学摸底试卷
- 2026食品冷链物流管理平台技术与市场应用现状分析与行业发展趋势商业规划报告
- 2026南极极地科考设备制造行业技术创新市场需求分析投资审批规划研究可行性文献
- 2026中国智能家居市场调研与发展前景分析研究报告
- 2026人工智能技术应用展望及特别教育领域智能化发展新体系构建解析
- 2026汽车零部件产业链上下游供需关系分析及产能布局优化规划报告
- 2026农业科技行业市场深度调研及发展趋势与投资前景研究报告
- 2026全民马拉松热背景下赛道急救设备配置标准升级研究报告
- 2026中国医药流通行业市场拓展与运营管理研究评估报告
- 2026中国稀土储氢行业市场需求供应分析及投资评估规划分析研究报告
- 2025年昆明市晋宁区招聘协管员考试真题及答案
- 2026年中医技术操作综合提升练习试题附完整答案详解(夺冠)
- TCPPIA 16-2022交联聚乙烯(PE-X)管用加强环冷扩式管件(扫描版)
- 六年级音乐上册《猜调》-云南汉族民歌的节奏游戏与即兴创编教学设计
- 七年级语文下册第二单元整合-殷殷之情系华夏寸寸丹心许家国 课件
- 瑶族美食教学课件
- 2026年初级会计(初级会计实务)自测试题及答案
- 铁缺乏性贫血预防与干预培训指南
- 2025年第二届玻璃基板TGV暨板级封装产业高峰论坛:微镜阵列高速变焦系统在TGV测试系统的应用
- 男装店长核心职责培训
- 银行从业人员法律培训大纲
评论
0/150
提交评论