- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章1单片机电子教程.ppt
第6章 定时器/计数器及应用; MCS-51单片机内部具有16位的定时器/计数器。其结构如下所示:; 从图中可见,定时器/计数器的核心部件是一个加1计数器,即每来一个脉冲,计数值加1,直至计满溢出(有的计数器是减1计数)。
从图中还能看出,加1计数器的输入脉冲有两个来源:一个是外部脉冲源(通过外部引脚T0和T1输入);另一端是系统的时钟振荡器。计数时,选择两个中的一个进行计数。
当开关打到上端时,对机器周期进行计数,所计的数值乘以机器周期便是所需要的定时时间,此方式称为定时方式。
当开关打到下端时,对外部输入信号进行计数,把所计的脉冲个数存放在计数器中。这里要注意:外部输入脉冲的时候高低电平保持时间不能少于两个机器周期,不然检测不到。; 以上两种方式的设定靠软件对定时器工作方式寄存器TMOD的设置来决定的。定时器/计数器的启动、停止以及溢出能情况,是由控制寄存器TCON来控制的。;TF1和TF0为T1和T0中断请求标志位,在上一章也讲过了。
TR1和TR0为定时器运行控制位:
TR1=1,定时器/计数器T1启动,TR1=0,定时器/计数 器T1关闭,通过软件来实现SETB TR1或者CLR TR1。
TR0与TR1作用一样,只是TR0是控制定时器/计数器T0的。;二、 定时器/计数器的工作方式寄存器TMOD;1、M1和M0工作方式控制位:用于决定4种工作方式;3、GATE门控位
GATE=0时,只要通过软件就可以使TR0(或TR1)置1,从而启动定时器T0(或T1);
GATE=1时,定时器/计数器的启动光靠软件是启动不了了,此时,需要首先在INT0(或INT1)引脚上输入一高电平,然后借助软件使TR0(或TR1)置1,才能启动定时器T0(或T1)工作。
一般使用的时候令GATE=0,也就是定时器的开启只由TR0(或TR1)来控制。;三、定时器/计数器计数初值的计算
对于增量式计数器,当作为定时器使用的时候,每过一个机器周期定时器自动加1;当作为计数器时,T1或T0引脚上每出现一个下降沿,计数器自动加1。当计数或者计时满了以后就会使T0和T1回零,同时使TF1和TF0置1,如果此时定时“中断允许”打开的话就会发出中断请求。
这里要注意的是不管是定时还是计数,??达到目的,我们首先要对定时器/计数器设置一个初始值。;利用以下公式:;四、工作方式
单片机中每个定时器/计数器中都有两个8位的特殊功能寄存器TH0和TL0( 或TH1和TL1),用来存放计数的结果。如果全部计满就可以计65536个脉冲。但是根据实际需要,有些场合是不需要计这么多脉冲的。因此,给定时器/计数器设置了四种工作方式:工作方式0、工作方式1、工作方式2和工作方式3。由TMOD中的M1M0的取值决定。;从图中可以看到:
当C/T=0时,定时器工作在定时方式,定时器对机器周期计数;
当C/T=1时,定时器工作在计数方式,定时器对外来脉冲进行计数。;计数初值的计算:
定时时间: t=(213-T初值)? 机器周期
因此,T初值=213-(t/机器周期)
然后将T初值写成13位二进制形式,其中的高8位放在TH中,而低5位放在TL中。
计数:所计脉冲个数=(213-T初值)
因此,T初值=213-所计脉冲个数;【例6-1】利用定时器T0产生定时脉冲。每隔2ms产生宽度为2个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。
解:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,机器周期为2μs。
因为:t=(213-T0初值)? 机器周期
所以,当t=2ms时,则:(213-T0初值)? 2?10-6=2?10-3;方法一:采用查询工作方式,编程如下:
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: CLR P1.0
MOV TMOD , #00H;设定T0的工作方式
MOV TH0 , #0DDH;给定时器T0送初值
MOV TL0 , #18H
SETB TR0;启动T0工作
LOOP: JNB TF0 , $;$为当前指令指针地址
CLR TF0
SETB P1.0;产生2μs正脉冲
NOP
文档评论(0)