- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最简中断定时器概要
中断必须条件:
三要素:中断请求;
总中断允许;
相应中断允许响应。
开总中断:EA=1
开外部中断EX0/ET0=1
允许外部/定时器中断
void 函数名()interrupt 中断序号
{
跟主函数一样,写处理内容。
}
定时器主要内容:
还是一样,先开总中断开关
EA=1
选择中断方式,打开相应中断:
ET0/ET1=1
哈哈!马上就会了!
TH0=(65536-50000【这里是要定时的时间,单位/微秒】)/256这是高八位的数值
TL0=(65535-50000【同上】)%256这个是低八位数值
(TH0TL0)是溢出的容器,刚才的值就是容器里的初始量,空闲的值就是所求时间。溢出后中断发生,容器清零。这就是每次都给TH0/TL0赋值的原因。
TMOD=0xM0M1;(M0M1是01,10,11等地这样的数)
方式中用的是M0M1,是低八位的最后两位
定时器中断0/1打开:ET0/1=1
TRO/1=1;这是启动定时器,必不可少
中断函数:
void 函数名() interrupt 工作方式的序号
{
容器值清零就是THO/TL0等地重新赋值的原因。然后就是中断函数处理内容,跟主函数一样。这里主要是处理一个或一些数,然后这个数在主函数中处理,也就是说这里的函数相对说简单的,主要的处理还是在主函数中。
}
工作方式优先表:
定时器工作原理:
工作方式:(这里说的是TMOD后两位的,既是M1M0,高四位是T1,低四位是T0)
GATE:门控位。当为零时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器;当GATE=1时用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,也就是说定时器的启动多了一个条件。
文档评论(0)