




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机第七章1第1页,课件共40页,创作于2023年2月定时/计数器的应用1.计数功能:生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记录脉冲个数,当计数值与设定值相等,启动包装机器。检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,显示转速。2.定时功能:用于实时控制,定时采样、定时启动等。当前时间与设定时间值相等,执行规定操作。2第2页,课件共40页,创作于2023年2月定时/计数的方法
实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用下面三种方法:软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。时基电路定时:例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。3第3页,课件共40页,创作于2023年2月7.1定时/计数器的结构和工作原理
一、定时/计数器的结构定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
4第4页,课件共40页,创作于2023年2月单片机工作的时间概念振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。机器周期:一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。定时概念定时源、初始值、计数方向。容量、溢出。5第5页,课件共40页,创作于2023年2月二、定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求。如果定时/计数器工作于定时模式,则表示设定时间到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。
6第6页,课件共40页,创作于2023年2月设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期T就是定时时间t
,t=N×T。设置为计数器模式时,外部脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到高电平输入,而下一周期又采样到低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2s。
7第7页,课件共40页,创作于2023年2月
7.2定时/计数器的控制
80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。一、工作方式寄存器TMOD
工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。每位意义…8第8页,课件共40页,创作于2023年2月GATE:门控位。GATE=0时,用软件启动定时/计数器工作(使TCON中的TR0或TR1为1);GATA=1时,由软件和硬件联合启动定时/计数器工作(外部中断引脚为高电平)。可据此测量脉宽。
:定时/计数模式选择位。为0时选择定时模式;为1时选择计数模式。M1M0:工作方式设置位。定时/计数器有四种工作方式。9第9页,课件共40页,创作于2023年2月T1停止,也可工作,具体见后…10第10页,课件共40页,创作于2023年2月
二、控制寄存器TCONTCON的低4位用于控制外部中断。TCON的高4位用于控制定时/计数器的启动和中断申请。TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。还需考虑GATE的功能。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。11第11页,课件共40页,创作于2023年2月三、计数寄存器TH、TL定时/计数器的寄存器,高字节TH,低字节TL。计数的初始值保存其中。12第12页,课件共40页,创作于2023年2月
7.3定时/计数器的工作方式
一、方式0(已不使用)
方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。13第13页,课件共40页,创作于2023年2月
二、方式1(常用)
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。计数个数与计数初值的关系为:
定时器的初值还可以采用计数个数直接取补法获得。如:MOVTH0,#high(﹣5000)
TH0=(﹣5000)>>8;14第14页,课件共40页,创作于2023年2月
三、方式2方式2为自动重装初值的8位计数方式。
工作方式2特别适合精确的时间控制,信号发生器;串口通信。计数个数与计数初值的关系为:
15第15页,课件共40页,创作于2023年2月
四、方式3(T0对T1有影响)方式3只适用于定时/计数器T0,T1处于方式3时相当于TR1=0,停止计数;但仍可选其它方式工作/串口。T0在方式3时分为两个独立的8位计数器TL0和TH0,TL0正常工作,TH0只能定时,借用TR1和TF1。16第16页,课件共40页,创作于2023年2月五、80C52具有定时器/计数器T2T2的控制寄存器为T2CON和T2MOD17第17页,课件共40页,创作于2023年2月
7.4定时/计数器用于外部中断扩展
利用计数器方式,计数初值设定为满程,将待扩展的外部中断源接到外部计数引脚。当该引脚输入一个下降沿信号时,计数器便加1,并产生溢出中断。外部信号加1计数->溢出->中断18第18页,课件共40页,创作于2023年2月
例,利用T0扩展一个外部中断源。设置T0为方式2工作,TH0、TL0的初值均为0FFH,允许中断。其初始化程序如下:
TMOD=0x06;00000110置T0为计数器方式2 TL0=0x0FF;计数初值为满程
TH0=0x0FF TR0=1;启动T0工作 ET0=1;允许T0中断 EA=1;CPU开中断19第19页,课件共40页,创作于2023年2月7.5定时/计数器应用初始化程序需完成如下准备:1确定T0和T1的工作方式,对TMOD赋值。2计算初值,并将其写入TH0、TL0或TH1、TL1。X=2n-N=2n-t/T=2n-t×f3使TR0或TR1置位,启动定时/计数器定时或计数。中断方式时,则对IE赋值,开放中断。注意:T0和T1对号入座。20第20页,课件共40页,创作于2023年2月应用结合I/O口产生脉冲波形;测量外接信号的频率和(正)脉宽;延时;串行通信等。21第21页,课件共40页,创作于2023年2月单片机定时/计数器的应用实例22第22页,课件共40页,创作于2023年2月基础知识初始化步骤:1确定T0和T1的工作方式,对TMOD赋值。2计算初值,并写入TH0、TL0或TH1、TL1。X=2n-N=2n-t/T=2n-t×f简便方法:取补数:MOVTH0,#high(﹣5000)
TH0=(﹣5000)>>8;3使TR0或TR1置位,启动定时/计数器工作。中断方式时,需对IE赋值,开放中断。并有中断服务程序。23第23页,课件共40页,创作于2023年2月应用举例结合I/O口产生方波,结合D/A产生任意脉冲波形;测量外接信号的频率和正脉宽;延时;串行通信等。一.产生方波,可采用中断和查询方式(清除TF)。重点选择定时方式1和2(包括软件扩展)。提示:忽略方式0的例子。24第24页,课件共40页,创作于2023年2月产生方波信号实例例,从P1.0管脚上输出脉冲波形,高电平持续时间为5ms,低电平持续时间为12ms(设单片机的时钟晶体为12MHz)。
算法:循环结构,先定时5ms,P1.0脚输出高电平;5ms定时到后,从P1.0脚上输出低电平,再定时12ms,12ms定时到后,又回到5ms的定时循环工作。查询方式必须清除标志。初值:N5=5000/1=5000,N12=12000/1=12000。25第25页,课件共40页,创作于2023年2月查询源程序ORG0000HCALLT0init;调用T0初始化子函数LOOP:SETBP1.0;输出高电平MOVTH0,#high(-5000);T0送定时5ms初值MOVTL0,#low(-5000)JNBTF0,$;等5ms的定时到
CLRTF0 ;时间到清TF0标志位
CLRP1.0;将P1.0置为低电平
MOVTH0,#high(-12000);送定时12ms初值
MOVTL0,#low(-12000)JNBTF0,$;等待12ms的定时到
CLRTF0 ;时间到清TF0标志位AJMPLOOPT0init:MOVTMOD,#01H;T0方式1定时SETBTR0 ;启动T0工作RETEND
开始送高电平,定时5ms时间到清标志送低电平,定时12msYN时间到清标志YN定时初始化26第26页,课件共40页,创作于2023年2月C51查询源程序#include<at89x52.h>voidT0init(void){P1_0=1;TMOD=0x01;//T0方式1定时
TH0=0xec;//给定时器T0送5ms初值
TL0=0x78;TR0=1;//启动T0工作}
voidmain(void){T0init();//调用T0初始化子函数while(1){while(TF0==0);//等5ms的定时到
TF0=0;
P1_0=0;TR0=0;
TH0=0xd1;TL0=0x20;TR0=1;while(TF0==0);//等12ms的定时到
TF0=0;P1_0=1;TR0=0;
TH0=0xec;TL0=0x78;TR0=1;}}27第27页,课件共40页,创作于2023年2月中断源程序ORG0000HAJMPMAINORG001BHAJMPT1PRGMAIN:MOVR0,#1;R0=0定时5msR0=1定时12msT1init:SETBP1.0;P1.0位置高MOVTMOD,#10H;T1方式1定时MOVTH1,#0ECH;给定时器T1送5ms初值MOVTL1,#78HSETBET1;允许T1中断
SETBEA;开中断SETBTR1;启动T1工作SJMP$;等待中断T1PRG:CJNER0,#0,LP1SETBP1.0;R=0将P1.0置高MOVTH1,#0ECH;T1送定时5ms初值MOVTL1,#78HMOVR0,#1;下一次中断定时12msAJMPLP2LP1:CLRP1.0;R=1将P1.0置为低电平MOVTH1,#0D1H ;T1送定时12ms初值MOVTL1,#20HMOVR0,#0;下一次中断定时5msLP2:RETIEND修改定时值中断开始返回主开始5ms定时保存定时值等待送高电平,定时5msNY送高电平,定时5ms28第28页,课件共40页,创作于2023年2月C51中断源程序#include<at89x52.h>biti=0;//位变量i=0定时5msi=1定时12msvoidmain(void){TMOD=0x10;//T1方式1定时
TH1=0xec;//给定时器T1送5ms初值
TL1=0x78;P1_0=1;ET1=1;//允许T1中断
EA=1;//开中断
TR1=1;//启动T1工作while(1);//等待定时中断}voidT1PRG(void)interrupt3{i=~i;//位变量取反if(i){P1_0=0;//产生12ms低电平TH1=0xd1;//i=1送定时12ms的初值
TL1=0x20;}else{P1_0=1;//产生5ms高电平TH1=0xec;//i=0送定时5ms的初值
TL1=0x78;}}29第29页,课件共40页,创作于2023年2月二.测量频率(速率)例,外部信号接到T1(P3.5)管脚,测量其速率,结果保存在30H和31H单元(低高字节)。已知:单片机系统时钟为6MHz,被测信号速率在500-65536/分钟范围内。分析:T0用于定时,产生120ms,测量T1的计数结果,扩大500倍得到每分钟的转速。循环结构。初值:N120=120ms/2us=60000(教材P166的-6000错误)30第30页,课件共40页,创作于2023年2月源程序ORG0000HMOVTMOD,#51H;T0模式1定时,T1模式1计数start:MOVTL0,#low(-60000);送定时120ms的初值MOVTH0,#high(-60000)MOVTH1,#0;T1的计数器清0MOVTL1,#0SETBTR0 ;启动T0定时
SETBTR1 ;启动T1计数JNBTF0,$ ;等待T0120ms的定时到CLRTF0;清除TF0标志位CLRTR0;停止T0定时CLRTR1;停止T1计数
MOV30H,TL1;将低8位放入30H中MOV31H,TH1;将高8位放入31H中AJMPstartEND开始设置定时和计数方式时间到清标志,停止计数YNT1计数清0T0定时120ms启动定时,计数保存计数结果31第31页,课件共40页,创作于2023年2月C51源程序#include<at89x52.h>voidinit(void){TMOD=0x51;//T0方式1定时,T1模式1计数TL0=-60000;TH0=(-60000)>>8;TL1=0;TH1=0;TR0=1;TR1=1;}
voidmain(void){unsignedcharx,y;init();//调用初始化子函数while(1){while(TF0==0);//等待T0120ms的定时到
TF0=0;//清除TF0标志位TR0=0;//停止T0定时TR1=0;//停止T1计数
x=TH1;//将高8位放入x中y=TL1;//将低8位放入y中TL0=-60000;TH0=(-60000)>>8;TL1=0;//T1的计数器清0TH1=0;TR0=1;//启动T0工作
TR1=1;//启动T1工作
}}32第32页,课件共40页,创作于2023年2月三.测量正脉冲宽度例,脉冲信号接在单片机的INT0(P3.2)引脚,测其正脉冲宽度,结果以机器周期数的形式存放在单片机RAM中的30H(低8位)和31H(高8位)两个单元中。单片机系统时钟为12MHz。分析:被测信号作为T0的门控信号,T0设置为定时器,初值为0。在INT0为低时取结果并准备下次测量。取数准备计数取数准备33第33页,课件共40页,创作于2023年2月源程序ORG0000HMOVTMOD,#09h;T0方式1定时GATE=1MOVTH0,#0;给定时器T0送初值MOVTL0,#0JBP3.2,$;将检测到的第一个高电平放弃Loop:SETBTR0 ;启动T0工作JNBP3.2,$;等待下一个高电平来
JBP3.2,$;等待高电平结束
CLRTR0;停止T0计数
MOV30H,TL0;将计数值的低8位放入30H中MOV31H,TH0;计数值的高8位放入31H中MOVTH0,#0;给定时器T0送初值MOVTL0,#0AJMPLOOPEND开始设置门控定时方式定时清0等待低电平定时清0启动定时保存定时结果等待高,低电平停止定时34第34页,课件共40页,创作于2023年2月C51源程序#include<at89x52.h>voidmain(void){TMOD=0x09;//T0模式1内部时钟GATE=1TH0=0; //给定时器T0送初值TL0=0;while(P3_2==1);//将检测到的第一个高电平放弃while(1){TR0=1; //启动T0工作
while(P3_2==0);//等待下一个高电平来
while(P3_2==1);//等待高电平结束
TR0=0;//高电平结束,立即停止T0计数
y=TL0;//将计数值的低8位放入y中x=TH0;//将计数值的高8位放入x中TH0=0;//给定时器T0送初值TL0=0;}}35第35页,课件共40页,创作于2023年2月四.长时间精确定时方法例,在P3.1管脚输出100ms周期的脉冲信号。单片机系统时钟为12MHz。分析:选择方式2,机器周期为1us,一个定时器的最长定时时间为256us。可用硬件定时250us结合软件计数200次的方法扩展设定时间为50ms。36第36页,课件共40页,创作于2023年2月源程序ORG0000HMOVTMOD,#02h;T0方式2定时MOVTH0,#-250;给定时器T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介拍卖合同样本
- 全屋翻新施工合同样本
- 居间担保服务合同
- 企业注册出资合同样本
- 结款合同范例
- 独家技术咨询和服务协议
- 高中语文课堂提问管理教学的实践
- 公司家具搬迁合同样本
- 后浇带专项施工方案
- 新版PEP英语四年级上册Unit-5-What-would-you-like六课时详细教案设计
- 2025-2030中国免洗护发素行业市场发展趋势与前景展望战略研究报告
- 《智能优化算法解析》 课件 第6章-基于群智能的智能优化算法
- 《红岩》中考试题(截至2024年)
- 华为IAD132E(T)开局指导书
- 2024年415全民国家安全教育日知识竞赛测试题库
- (2025)二十大知识竞赛题库(含答案)
- 2025年华北电力大学辅导员及其他岗位招考聘用54人高频重点提升(共500题)附带答案详解
- 2022《信访工作条例》学习课件
- 2025年高考政治一轮复习知识清单选择性必修一《当代国际政治与经济》重难点知识
- 儿童青少年肥胖食养指南(2024年版)
- 2023年高考真题-历史(辽宁卷) 含答案
评论
0/150
提交评论