




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲定时器计数器及实验第一页,共三十九页,编辑于2023年,星期四
定时/计数器及实验本讲内容:定时/计数器的概念MCS51单片机的定时/计数器定时器的工作模式及控制方法课堂实验第二页,共三十九页,编辑于2023年,星期四定时/计数器的概念计数器的定义:可以计量输入时钟的个数,结果以二进制表示,存放在若干字节(取决于计数器的长度)的RAM中,该部分存储单元称为计数寄存器。精确的时钟信号+计数器=定时器第三页,共三十九页,编辑于2023年,星期四MCS51的定时/计数器MSC51片内有两个16位定时器/计数器,即定时器0(T0)和定时器1(T1),它们都有定时和事件计数的功能。其中,T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。每个定时器都可由软件设置为定时工作方式或计数工作方式及其他灵活多样的可控功能方式(指的是定时器的4种工作模式)。第四页,共三十九页,编辑于2023年,星期四定时工作方式在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。故其频率为晶振频率的1/12。如果晶振频率为12MHZ,则定时器每接收一个输入脉冲的时间为1us。第五页,共三十九页,编辑于2023年,星期四计数工作方式设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。单片机采样T0或T1的输入电平,若在前一个机器周期采样为1,下一个机器周期采样值为0,则计数器加1,所以最高计数频率为振荡频率的1/24。为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。第六页,共三十九页,编辑于2023年,星期四小结不管是定时还是计数工作方式,定时器T0或T1在对内部时钟或对外部事件计数时,不占用CPU时间,除非定时器/计数器益处,才可能中断CPU的当前操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。第七页,共三十九页,编辑于2023年,星期四中断讲解中断的概念在程序运行期间,自动响应非预期的紧急事件的发生。通常是为了避免查询方式的程序设计。用得最多的是外部中断与定时器中断。外部中断:按键程序定时器中断:定时与循环扫描等应用场合中断服务程序中断发生时,主程序暂停,跳转到中断服务程序,称为“响应中断”。执行完毕后返回主程序继续运行。中断服务程序不能被调用、没有返回值,编写程序时不知道会在程序的何处发生中断。第八页,共三十九页,编辑于2023年,星期四中断讲解C语言中采用一类特殊的函数来实现中断服务程序,叫做“中断服务函数”,格式如下void函数名()interruptN函数名可以任意,但一般要用一个有意义的函数名,例如int0_srv;N代表中断向量编号,外部INT0的中断服务函数中断向量号为0,外部中断INT1的N=2,定时器T0的N=1,定时器T1的N=3。第九页,共三十九页,编辑于2023年,星期四如何使用定时器?第十页,共三十九页,编辑于2023年,星期四定时器的控制MCS51定时/计数器相关的寄存器MCS51定时器/计数器有四种工作模式,其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。TMOD和TCON寄存器在复位时其每一位均清零。定时器的方式寄存器TMOD特殊功能寄存器TMOD为定时器的方式控制寄存器,寄存器中每位的定义如图所示。高4位用于定时器1,低4位用于定时器0。第十一页,共三十九页,编辑于2023年,星期四定时器的方式寄存器TMODM1M0:定时器/计数器四种工作方式选择第十二页,共三十九页,编辑于2023年,星期四定时器的方式寄存器TMODC/T:定时器方式或计数器方式选择位。C/T=1时,为计数器方式;C/T=0时,为定时器方式。GATE定时器/计数器运行控制位,用来确定对应的外部中断请求引脚(INT0,INT1)是否参与T0或T1的操作控制。当GATE=0时,只要定时器控制寄存器TCON中的TR0(或TR1)被置1时,T0(或T1)被允许开始计数(TCON各位含义见后面叙述);当GATE=1时,不仅要TCON中的TR0或TR1置位,还需要P3口的P3.2或P3.3引脚为高电平,才允许计数。第十三页,共三十九页,编辑于2023年,星期四定时器控制寄存器TCONTR0:T0的运行控制位。该位置1或清0用来实现启动计数或停止计数。TF0:T0的溢出中断标志位。当T0计数溢出时由硬件自动置1;在CPU中断处理时由硬件清为0。TR1:T1的运行控制位,功能同TR0。TF1:T1的溢出中断标志位,功能同TF0。第十四页,共三十九页,编辑于2023年,星期四模式1及应用MCS51定时器工作于方式1当M1:M0设置为01时,定时器选定为方式1工作。在这种方式下,由TH0和TL0组成一个16位计数器。当GATE=0时,只要TCON中的TR0为1,TL0及TH0组成的16位计数器就开始计数.当GATE=1时,此时仅TR0=1仍不能使计数器计数,还需要P3.2引脚为1才能使计数器工作。由此可知,当GATE=1和TR0=1时,TH0+TL0是否计数取决于P3.2引脚的信号,当P3.2由0变1时,开始计数;当P3.2由1变0时,停止计数,这样就可以用来测量在P3.2端出现的脉冲宽度。当16位计数器从0或设定的初值,加1到全“1”以后,再加1就产生溢出。这时,置TCON的TF0位为1,同时把计数器变为全“0”第十五页,共三十九页,编辑于2023年,星期四MCS51定时器使用步骤(工作于方式1)初始化TMOD,设置工作模式。根据定时间隔,计算并初始化TH0与TL0的数值。计算公式如下。其中FOSC是晶振频率(单位:Hz),T是定时间隔(单位:S)如果中断方式使用定时器,则需置位中断允许控制寄存器(IE)中的ET0或ET1,而且要打开全局中断(EA=1)。同时要写好中断服务函数。将TR0或TR1置位,启动定时器。第十六页,共三十九页,编辑于2023年,星期四定时间隔计算公式的推导过程计算时钟周期:MCS51的定时器的时钟源就是CPU的工作时钟,因此时钟周期t。例如晶振频率24MHz时,t=0.5*10-6S计算定时间隔经历的时钟周期数N。例如期望的定时间隔是10mS,则N=20000。计算TH0:TL0的初值。对于T=10mS,FOSC=24MHz,结果为45535第十七页,共三十九页,编辑于2023年,星期四模式0及应用该模式结构与操作几乎与模式0完全相同,唯一的差别是:16位寄存器(TH0和TL0)只用了13位。其中,TL0的高3位未使用,其余位为整个13位的低5位,TH0占高8位。当TL0的低5位溢出时,向TH0进位;TH0溢出时,向中断标志位TF0进位,申请中断。模式0的最大定时时间:模式1的最大定时时间:第十八页,共三十九页,编辑于2023年,星期四模式1实例程序voidinit_tc0(void)//24MHz时定时10mS{ TMOD|=0x01;//定时器模式 TH0=(65535-20000)>>8;//初值高8位 TL0=(65535-20000)&0xff;//初值低8位EA=1;//打开全局中断 ET0=1;//开定时中断 TR0=1;//启动定时器}voidtc0_srv(void)interrupt1//定时器0中断服务程序{ TH0=(65535-20000)>>8;//重置初值高8位 TL0=(65535-20000)&0xff;//重置初值低8位}voidmain(void){init_tc0();while(1);//条件总为真,死循环}第十九页,共三十九页,编辑于2023年,星期四蜂鸣器实验一
中断方式使用定时器实验内容:使用定时器T0定时,使蜂鸣器每隔1S响一次,一次响一秒钟。第二十页,共三十九页,编辑于2023年,星期四蜂鸣器实验一
中断方式使用定时器第二十一页,共三十九页,编辑于2023年,星期四蜂鸣器实验一
中断方式使用定时器第二十二页,共三十九页,编辑于2023年,星期四蜂鸣器实验一
中断方式使用定时器为了使OUT3驱动蜂鸣器,锁存器U22的所存使能端要为高电平,从而CS4和WR要同时为低电平,所以对P2和P3引脚的操作为:P3&=~(1<<6);P2=0x80;第二十三页,共三十九页,编辑于2023年,星期四#include<reg52.h>//必要的头文件#include<absacc.h>//必要的头文件sbitBUZ_BIT=P0^3;//控制蜂鸣器的IO口unsignedintcnt;voidinit_tc0(void)//24MHz时定时10mS{ TMOD|=0x01;//定时器模式 TH0=(65535-20000)>>8;//初值高8位 TL0=(65535-20000)&0xff;//初值低8位EA=1;//打开全局中断 ET0=1;//开定时中断 TR0=1;//启动定时器}蜂鸣器实验一
中断方式使用定时器第二十四页,共三十九页,编辑于2023年,星期四voidtc0_srv(void)interrupt1//定时器0中断服务程序{ TH0=(65535-20000)>>8;//重置初值高8位 TL0=(65535-20000)&0xff;//重置初值低8位 if(cnt<100)//10mSX100=1S {cnt++;} else {BUZ_BIT=~BUZ_BIT; cnt=0;//计数归零}}voidmain(void){init_tc0(); P3&=~(1<<6); P2=0x88;//此代码用于选通蜂鸣器,while(1);//条件总为真,死循环}蜂鸣器实验一
中断方式使用定时器第二十五页,共三十九页,编辑于2023年,星期四流水灯实验二实验内容:使八个发光二极管每隔1S钟亮一次。
关闭蜂鸣器的程序代码:P3&=~(1<<6);P2=0x80;BUZ_BIT=0;P3|=(1<<6);P2=0xE0;P0=0xff;第二十六页,共三十九页,编辑于2023年,星期四数码管实验三
定时中断方式扫描数码管八段数码管由八段LED构成,各LED阴极或阳极并在一起,称为“位选线”:共阴、共阳,其余8个引脚各自引出,称为“段选线”,各段可以分别控制。段码表将需要的字形对应的各个段点亮,即可显示对应的数字。一般将数字对应的段列表做成数组的形式,称为段码表。第二十七页,共三十九页,编辑于2023年,星期四数码管实验三
定时中断方式扫描数码管多位合一的数码管将多个八段数码管的段选线分别并在一起,位选线引出。第二十八页,共三十九页,编辑于2023年,星期四静态显示与扫描显示静态显示共阳数码管:公共端接Vcc,用单片机的一个8位IO(以P0为例)口接在段选线上,P0输出相应段码的反码即可显示相应的数字。共阴数码管:公共端接地,用单片机的一个8位IO(以P2为例)口接在段选线上,P2输出相应段码即可显示相应的数字。MCS51的IO口拉电流能力很弱,不推荐此种接法。扫描显示将多位数码管的共阴/共阳数码管的公共端也用IO口加以控制,各个位轮番显示,利用人眼的视觉暂留效应,使得看上去所有位一起亮。位选线上的电流可能会很大(例如8位数码管一起亮时,相当于64个LED一起发光的电流),一般要用三极管或者数字芯片驱动。第二十九页,共三十九页,编辑于2023年,星期四学习板上的数码管扫描显示电路数码管实验三
定时中断方式扫描数码管第三十页,共三十九页,编辑于2023年,星期四数码管实验三
定时中断方式扫描数码管第三十一页,共三十九页,编辑于2023年,星期四动态扫描程序代码for(com=0;com<8;com++)//位选计数 { P2=0x00;P3&=0xbf; P0=~(1<<com);//共阴数码管,按位取反 P2=0x20;P3&=0xbf;P0=scandata[com];//要显示的值 my_delay_1ms(1);//延时1mSP0=0;//消隐,防止重影 }第三十二页,共三十九页,编辑于2023年,星期四动态扫描:使8个数码管分别显示0,1,2,3,4,5,6,7使用定时器:使8个数码管同时从0显示到7,时间间隔为1S。数码管实验三
定时中断方式扫描数码管第三十三页,共三十九页,编辑于2023年,星期四模式2及应用模式2把TL0(或TL1)配置成一个可以自动重装载的8位定时器/计数器。TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这里TL0用作8位计数器,TH0用以保存初值。在程序初始化时,TL0和TH0由软件赋予相同的初值。一旦TL0计数溢出,便置位TF0,并将TH0中的初值自动装入TL0,继续计数,循环重复。第三十四页,共三十九页,编辑于2023年,星期四模式2及应用用于定时工作方式时,其定时时间为:用于计数工作方式时,最大计数长度为256(个外部脉冲)。这种工作模式可以省去用户软件中重装常数的语句,可产生相当精确的定时时间。第三十五页,共三十九页,编辑于2023年,星期四模式2程序实例voidinit_tc0(void)//24MHz时定时0.1mS{ TMOD|=0x02;//定时器模式 TH0=56;//初值高8位 TL0=5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子测量技术在工业物联网中的应用考核试卷
- 半导体材料特性与制备考核试卷
- 玻璃纤维增强塑料的超声波焊接技术考核试卷
- 物业管理与风景区管理考核试卷
- 以上均为不重复的相关主题名称考核试卷
- 玻璃制品的微生物污染控制考核试卷
- 洗浴行业服务品质提升路径考核试卷
- 真空电子器件的场效应晶体管设计考核试卷
- 电气机械的建筑与土木工程考核试卷
- 船舶电气设备管理
- 金蝉养殖注意事项及常见病虫害防治
- AQ 1066-2008 煤层瓦斯含量井下直接测定方法(正式版)
- SL-T+62-2020水工建筑物水泥灌浆施工技术规范
- 外挂悬挑式花篮盘扣脚手架安全专项施工方案7.17
- 日结工协议书日结工用工协议
- DL-T5344-2018电力光纤通信工程验收规范
- 人教版高中物理必修二同步练习及答案
- 装配式混凝土结构施工重点难点分析及对策
- 福建省泉州市丰泽区泉州实验中学2023-2024学年七年级下学期期中数学试题(无答案)
- 2024年4月自考00540外国文学史试题及答案含评分标准
- 建筑施工大型机械设备安全管理培训(汇编)
评论
0/150
提交评论