搜索

单片机的定时器中断0

gecimao 发表于 2019-06-11 19:04 | 查看: | 回复:

  工作的流程可以按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时)

  1、确定使用哪个定时器,使用哪种方式,这一步通过TMOD设置,TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计

  式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作在方式1。

  2、接下来就要设置定时的时间,用定时器定时50毫秒,可以用这种方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断

  3、第三步就要打开中断了,使用IE寄存器,我一般是对各个位进行单独设置,这样看起来感觉更好,首先打开总中断EA = 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0 =1;

  4、这时准备工作都准备好了就要开始启动定时器了,使用TCON寄存器,TR0 = 1,到现在为止就实现了一个50毫秒的定时了;

  TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。

  工作原理其中低四位(即D0 ~ D3)定义定时器/计数器T0,高四位(即D4 ~ D7)定义定时器/计数器T1。

  ●GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定(即此时K=TRxINTx),当且仅当TRx=1,INTx=1(高电平)时,计数启动;否则,计数停止。

  ●GATE=0时,“或门”输出恒为1,“与门”的输出信号K由TRx决定(即此时K=TRx),定时器不受INTx输入电平的影响,由TRx直接控制定时器的启动和停止。

  C/T=0时为定时功能: 加1计数器对脉冲f进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;

  C/T=1时为计数功能: 加1计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;

  MCS-51的定时器T0有4种工作方式:方式0,方式1,方式2,方式3。

本文链接:http://kingstonflowers.net/dingshiqi/583.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部