




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第6章 单片机的定时器/计数器6.1 定时/计数器的结构与工作原理6.2 定时器的控制6.3 定时/计数器的工作方式6.4 定时/计数器的编程和应用6.1 定时定时/计数器的结构与工作原理计数器的结构与工作原理 6.1.1 定时定时/计数器的基本原理计数器的基本原理 6.1.2 定时定时/计数器的结构计数器的结构6.2 定时器的控制6.3 定时/计数器的工作方式6.4 定时/计数器的编程和应用第6章单片机的定时器/计数器纯软件纯软件定时/计数方法:定时空循环预定周次,等待预定时间计数读取I/O口电平,统计变化次数基本思路基本思路:由CPU统计状态变化次数,待预定结果出现后结束统计。delay
2、(unsigned int time ) unsigned int j = 0; for(;time0;time-) for(j=0;j125;j+);存在问题存在问题:占用过多CPU机时第6章单片机的定时器/计数器单片机软硬件联合软硬件联合定时/计数方法:等待CPU响应系统时钟脉冲加1计数器溢出标志溢出定时器外来信号脉冲加1计数器溢出标志溢出等待CPU响应计数器外来信号脉冲加1计数器溢出标志溢出等待CPU响应系统时钟脉冲K定时/计数器定时器的本质是计数器定时器的本质是计数器(对时钟脉冲计数对时钟脉冲计数),计数器则是对外来脉冲计数,计数器则是对外来脉冲计数.第6章单片机的定时器/计数器计数器
3、的溢出空间可随计数初值改变定时时间tt =(计数器最大空间-计数初值)机器周期 =(2n-a)12/fosc (s)基本工作原理:t与与n、a、fosc三个因素有关三个因素有关 TFx(X = 0、1)Tx端(每个机器周期产生一个计数脉冲) 第6章单片机的定时器/计数器逻辑开关 功能: = 0定时器方式, = 1计数器方式 TCTCTC第6章单片机的定时器/计数器 TFx(X = 0、1)Tx端计数值N = (计数器满计数值 - 计数初值) = (2 n a ) N与与n、a两个因素有关两个因素有关6.1 定时定时/计数器的结构与工作原理计数器的结构与工作原理 6.1.1 定时定时/计数器的基
4、本原理计数器的基本原理 6.1.2 定时定时/计数器的结构计数器的结构6.2 定时器的控制6.3 定时/计数器的工作方式6.4 定时/计数器的编程和应用第6章单片机的定时器/计数器定时/计数器的结构第6章单片机的定时器/计数器2个16位计数器T0 (TH0、TL0)和T1 (TH1、TL1)加1计数器2个控制寄存器TCON和TMOD管理计数器的运行2个外部引脚T0(P3.4)和T1(P3.5)接入外部脉冲6.1 定时/计数器的结构与工作原理6.2 定时器定时器/计数器的控制计数器的控制6.3 定时/计数器的工作方式6.4 定时/计数器的编程和应用第6章单片机的定时器/计数器定时/计数器的控制关
5、系(以T1为例)门控位门控位GATE=0-允许TR1启动计数器GATE=1-允许INT1启动计数器启动控制位启动控制位TR1=1-启动计数器TR1=0-停止计数器外部中断外部中断1参与定时器的启停管理中断请求标志位中断请求标志位TF1=1-请求TR1=0-复位 T1第6章单片机的定时器/计数器TCTC模式选择位模式选择位 =0-定时 =1-计数定时器方式寄存器TMOD定时器控制寄存器TCON第6章单片机的定时器/计数器T0TF1TR1TF0TR0IE1IT1IE0IT08FH8DH8CH8BH8AH89H88HTCON8EH(88H)定时器控制位外部中断控制位 T1 T0 TF0 TR0 T0
6、脚INT0注意注意,系统上电默认值为TCON = 0,则默认状态应为:TR0和TR1均为关闭状态、电平中断触发方式、没有外部中断请求第6章单片机的定时器/计数器GATEC/TM1M0GATEC/TM1M0D7D5D4D3D2D1D0TMODD6(89H) T1 T0/C T /C T T1方式选择位方式选择位00-方式001-方式110-方式2T1工作状态 T1 T0 TF0 TR0 T0脚INT0T0方式选择位方式选择位00-方式001-方式110-方式211-方式3T0工作状态第6章单片机的定时器/计数器GATEC/TM1M0GATEC/TM1M0D7D5D4D3D2D1D0TMODD6(
7、89H) T1 T0/C T /C T 注意注意:TMOD只能以字节方式进行初始化例如例如,设置T0为定时器方式1,允许TR0启动; T1为计数器方式0,允许INT1启动。则 TMOD = 1100 0001B =0 xc1又如又如,系统上电默认值为TMOD = 0,则默认状态应为:T0和TI均为定时器方式0,允许TR0、TR1启动。第6章单片机的定时器/计数器6.1 定时/计数器的结构与工作原理6.2 定时器/计数器的控制6.3 定时定时/计数器的工作方式计数器的工作方式6.4 定时/计数器的编程和应用第6章单片机的定时器/计数器第6章单片机的定时器/计数器M1M0工作方式功能说明00110
8、101012313位定时/计数器16位定时/计数器8位自动重装定时/计数器3种定时/计数器关系T0工作方式注意注意:T0有4种工作方式,每种工作方式都有定时和计数2种方式。T1只有3种工作方式(T0的方式3中占用了T1的部分资源)。M1M0工作方式功能说明00101001213位定时/计数器16位定时/计数器8位自动重装定时/计数器T1工作方式学习顺序:方式1方式2 方式0 方式3 (1) 方式1定时时间:t = (216- a)12/fosc (s)使用16位定时/计数器(THx+TLx)(M0 M1为01组合时)第6章单片机的定时器/计数器定时范围为165,536 s(65ms)。 最大定
9、时时间(a=0,fosc =12MHz):t = 216(s) = 65536 (s)定时方式定时方式最大计数值:N = 65536 (脉冲)第6章单片机的定时器/计数器计数值: N = (216 a ) 由于检测一个负跳变需要2个机器周期,即24个振荡周期,故最高计数频率= 。oscf241计数方式计数方式故,对于12MHz晶振,最大外部脉冲的频率为0.5MHz 。实例实例1 1 设单片机的fosc=12MHz,采用T0定时方式1在P1.0脚上输出周期为2ms的方波。虚拟示波器第6章单片机的定时器/计数器分析分析:周期为2ms的方波由2个半周期为1ms的正负脉冲组成方波输出原理:定时1ms后
10、将端口输出电平取反。2ms1msTH0 = 0 xfc TL0 = 0 x181ms定时的计数初值应为:a = 216 t* fos / 12 = 216 1000* 12/ 12 = 64536 = 0 xfc18 注意注意:需要不断重装计数初值。第6章单片机的定时器/计数器(1)查询方式查询方式#include sbit P1_0 = P10;main () TMODTMOD = = 0 x010 x01; /设置设置T T0 0定时方式定时方式1 1(0000 0001B) TR0=1; /启动T0 for(;) TH0TH0 = = 0 0 xfcxfc; /装载计数初值装载计数初值
11、TL0TL0 = = 0 0 x18x18; do while(!TF0)do while(!TF0); /等待等待TF0TF0溢出溢出 P1_0 =!P1_0; /定时时间到P1.0反相 TF0TF0 = = 0 0; /TF0TF0标志标志清清0 0 T0第6章单片机的定时器/计数器图6.14 实例1仿真波形图第6章单片机的定时器/计数器(2)中断方式中断方式#include sbit P1_0=P10;timer0 () interrupt 1 timer0 () interrupt 1 /T0中断函数 P1_0 = !P1_0; /P1.0取反 TH0 = 0 xfc;TH0 = 0
12、xfc; /装载计数初值 TL0 = 0 x18;TL0 = 0 x18;main () TMOD = 0 x01TMOD = 0 x01; /T0定时方式1TH0 = 0 xfc;TH0 = 0 xfc;/装载计数初值 TL0 = 0 x18;TL0 = 0 x18; EA=1; EA=1; /开总中断 ET0=1; ET0=1; /开T0中断 TR0=1; TR0=1; /启动T0while(1);注意注意:中断响应后系统可自动将TFx标志位清0第6章单片机的定时器/计数器小结:使用定时/计数器的步骤强调强调:TMOD的设置只能以字节形式给出T0 (1)设置TMOD确定定时/计数器的工作状
13、态第6章单片机的定时器/计数器T0定时计数01230123T1定时计数012012 (2)计算计数初值产生期望的定时间隔计数初值 a = 216- tfosc/12 (t 65536 s)THx = a / 256 TLx = a % 256 装载计数初值:第6章单片机的定时器/计数器3)确定采用何种方式处理溢出结果若是查询方式采用条件判断语句若是中断方式中断初始化设置和中断服务程序:do while (!TFx) ; / x=0或1 第6章单片机的定时器/计数器ETx =1; /开定时x中断,x=0或1EA = 1; /开总中断tx_srv () interrupt n n /n=1或3 4
14、)启动定时器: TR0 = 1 或 TR1= 1 5)进行定时或计数结束后的其它工作6)为下次定时/计数做准备(清TFx标志+重装载计数初值) 若是中断方式,则无需软件清TFx标志位; 若是查询方式,需要软件清除TFx标志位。第6章单片机的定时器/计数器 采用8位计数器位计数器,延时时间 t = (28-a)12/fosc (微秒) 12MHz时的最大定时量为256s; 可自动重装载计数初值可自动重装载计数初值(TLx溢出后, THx数值可自动装入TLx); 因没有装载计数初值造成的定时延误,方式2定时精度相对较高。(2) 方式2第6章单片机的定时器/计数器(1)查询方式查询方式#includ
15、e sbit P1_0 = P10;main() TMOD = 0 x00 x02 2; THTH0 0= = TLTL0 = 0 = 0 x060 x06; TR0=1; for(;) do while(!TF0); P1_0 =!P1_0; TF0 = 0; (2)中断方式中断方式#include sbit P1_0=P10;timer0 () interrupt 1 P1_0 = !P1_0; main() TMOD = 0 x0 0 x02 2; TH0 = TL0 = 0 x06;TH0 = TL0 = 0 x06; EA= ET0 = 1; TR0=1; while(1);实例实例
16、2 2 采用T0定时方式2在P1.0口输出周期为0.5ms的方波(设fosc=12MHz)。分析分析:计数初值TL0= 256-250*12/12= 0 x06,TMOD = 0 x02第6章单片机的定时器/计数器周期为0.5ms方波第6章单片机的定时器/计数器第6章单片机的定时器/计数器实例实例3 将第4章实例5“计数显示器”中的软件查询法进行按键检测改用T0计数器方式2,并以中断方式编程。【解解】原图中按键是由I/O口P3.7引脚接入的,本实例需要将其改由T0(P3.4)引脚接入。 第6章单片机的定时器/计数器分析分析:将T0设置为计数器方式2,设法使其在1个外部脉冲到来时就能溢出(即计数
17、溢出周次为1)产生中断请求。计数初值为: a = 2 8 1 = 255 = 0 xff初始化TMOD = 0000 0110B = 0 x06第6章单片机的定时器/计数器实例3参考程序第6章单片机的定时器/计数器运行效果(3)工作方式0使用13位位的定时/计数器(THi7-0+TLi4-0)定时时间 t = (213 - a)12/fosc (s)计数初值 a = 213 - tfosc/1212MHz时的最大定时量t=213s = 8.192ms第6章单片机的定时器/计数器解:计数初值a=213-500012/12=3192= 1100 0111 1000BTH0TL00 1 1 0 0
18、0 1 1 0 0 0 1 1 0 0 0 6 3 1 8 H 实例实例4 计算T0方式0定时5ms的计数初值a(设fosc=12MHz)由于方式0的TL0高3位未用(一般填0) ,因此 a= 0110 0011 0001 1000 = 6318H即,TH0 = 0 x63; TL0 = 0 x18;第6章单片机的定时器/计数器第6章单片机的定时器/计数器除计数器位数不同外,方式0与方式1的逻辑结构并无差异。方式0采用13位计数器是为了与早期产品MCS-48单片机兼容。方式0的初值计算比较麻烦,一般采用方式1替代。方式0方式1(4)方式)方式33种组合状态T1仍可设置为方式02;通常将T1设定
19、为定时方式2(作为波特率发生器使用)第6章单片机的定时器/计数器TH0+TF1+TR1组成的8位定时器TL0+TF0+TR0组成的8位定时/计数器T1组成的无中断功能的定时器特点特点:方式3下T0可有2个具有中断功能的8位定时器6.1 定时/计数器的结构与工作原理6.2 定时器/计数器的控制6.3 定时/计数器的工作方式6.4 定时定时/计数器的编程和应用计数器的编程和应用第6章单片机的定时器/计数器应用: 定时器用于定时控制,或作为分频器发生各种不同频率的方波; 计数器用于外部脉冲统计或外部中断源扩充; 复杂应用需要将定时与计数结合起来。第6章单片机的定时器/计数器实例实例5 5 由P3.4
20、口输入一个外部低频窄脉冲信号。当该信号出现负跳变时,由P3.0口输出宽度为500s的同步脉冲,如此往复。要求据此设计一个波形展宽程序(fosc= 6MHz)。第6章单片机的定时器/计数器1)将T0设置为1 1次计数方式次计数方式2 2,初值设为0 xff。这样P3.4一旦发生负跳变T0就会产生溢出;2)查询TF0标志位。当TF0=1时将T0设置为500500 s s定时方式定时方式2 2,初值a为0 x06(=256-5006/12),同时使P3.0输出低电平;3)查询TF0标志位。待T0再次溢出后使P3.0输出高电平,然后将T0设置为1 1次计数方式次计数方式2 2,如此往复进行。分析分析:
21、可以采取如下做法:第6章单片机的定时器/计数器T0实例5参考程序第6章单片机的定时器/计数器实例5仿真运行效果第6章单片机的定时器/计数器P3.0P3.4实例实例6 6 采用10MHz晶振,在P1.0脚上输出周期为2.5s,高电平占空比为20%的脉冲信号。分析分析:10兆晶振,方式1最大定时为54.613ms;可以采用定时中断与软件计数联合定时中断与软件计数联合法:利用定时中断进行中断次数统计;若取10ms产生定时,则2.5s =250次中断之和;则500ms(20%占空比)相当于50次中断之和。a = 216-1000012/10=0 xd1202.5s0.5s第6章单片机的定时器/计数器实
22、例6参考程序第6章单片机的定时器/计数器实例6仿真运行效果第6章单片机的定时器/计数器实例实例7 7 采用定时中断控制流水灯,实现每秒1位,自上而下循环功能(fosc=12MHz)。第6章单片机的定时器/计数器分析:分析:可以利用20次50ms的定时中断方案,计数初值为: a = 65536-5000012/12 = 0 x3cb0第6章单片机的定时器/计数器中断函数的任务过多,不利于实时控制。如何减少中断函数任务?新方案新方案:中断函数中仅做中断次数统计和计数初值重入,控制操作改在主函数中进行。实例实例6 6的问题:的问题:第6章单片机的定时器/计数器实例7参考程序实例7运行效果第6章单片机
23、的定时器/计数器实例实例8 8 测量从P3.2(INT0)输入的正脉冲的宽度,测量结果以BCD码形式存放在片内RAM 40H开始的单元处(设40H地址存放个位,系统时钟为12MHz,被测脉冲信号周期不超过100ms) 。0第6章单片机的定时器/计数器分析分析:GATE=TR0=1时允许INT0的脉冲控制定时器的启停,则根据T0先启动、再关闭后的计数值可算出被测脉冲宽度。INT0端信号T0中的脉冲数实例8参考程序第6章单片机的定时器/计数器INT0端信号T0中的脉冲数0第6章单片机的定时器/计数器实例8电路 脉冲设置(100ms)第6章单片机的定时器/计数器在在Proteus软件中实现软件中实现C51源码级调试源码级调试的方法:形成OMF (absolute objectmodule format files,绝对目标文件) 格式文件。 omf文件设置omf文件加载第6章单片机的定时器/计数器启动调试omf文件窗口第6章单片机的定时器/计数器片内RAM窗口实例8的运行结果第6章单片机的定时器/计数器结果:计数值为50000脉冲脉宽值为50ms。运行到光标实例8小结1、测量未知脉冲宽度的方法利用INTx引脚接入待测脉冲设置Tx定时方式 THx和TL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024教师个人师德工作计划10
- 特许金融分析师考试知识积累试题及答案
- 旅游景点介绍及使用指南
- 幼儿水果绘本课件
- 2025届安徽省江南十校联考高三下学期一模历史试题(含解析)
- 特许金融分析师必考知识试题及答案
- 2024年特许金融分析师考试备考日程及答案
- 数据分析与CFA试题及答案
- 2025年四川省成都市高考英语二诊试卷
- 2024年CFA金融考试试题及答案
- 中学生乐团组建与训练分析
- DB62∕T 25-3103-2015 公路隧道防火涂料施工质量验收规程
- pantone色卡电子版U面
- DB44∕T 581-2009 广东城市绿化工程施工和验收规范
- 大气简约深蓝色商务汇报总结PPT模板课件
- 人教版一年级下册数学 6.100以内数的组成专项卷
- 中小学教育惩戒规则(试行)全文解读ppt课件
- 布鲁克纳操作手册
- ncstudiov5_4编程手册
- 建坐标系解立体几何(含解析)
- Eplan电气图纸设计规范终版
评论
0/150
提交评论