永发信息网

单片机定时设计与赋值

答案:5  悬赏:70  手机版
解决时间 2021-08-20 04:17

void main()
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;//定时器0初值,定时50ms 定时多少MS就多少*1000
EA=1;//开启总中断
ET0=1;//定时器0中断允许
TR0=1;//开启定时器0
while(1)
{

}
}
void timer0() interrrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}

 

赋值的原理是什么?

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

这两步要怎么理解成50MS?

怎么一个算法方法?

 

 

最佳答案

首先弄明白“/”、“%”是什么意思:


TH0=(65536-50000)/256;
TL0=(65536-50000)%256;


 

全部回答

TH0=(65536-50000)/256 算出来是 60 转换为二进制是

计数器计数到65536之后就会溢出,如果初始时没有放任何数值在计数器里的话就会在计到65536之后溢出,也就是65.536ms后溢出,要让计数器在50ms的时候溢出,就应该先在计数器里预先放要计数15.536ms的数值,也就是15536,那么15536是怎么来的呢?就是(65536-50000)~~TH0、TL0的那两步只是给计数器的高8位和低8位分配计数值而已,按照这个模式弄就可以了·~

当比65536大时即产生一次中断,因为51单片机是8位所以需分成低八位和高八位

从数值上

TH0=(65536-50000)/256 算出来是 60 转换为二进制是 计算公式仔细看书,网上有很多。请记住,12M晶振时TH0=(65536-X)/256;
TL0=(65536-X)%256;,X是需要递增的数字,当从15536开始增长到65536后,会溢出,申请中断,而每加一个数需要1uS,所以50000个数需要50000uS,也就是50mS,,由于每加一个数需要的时间由晶振决定,所以,12M时是1uS,6M时是2uS,初值也要调整。

单片机计时器的原理是

一个n位的(在这里是16位的)2进制加法计数器在时钟脉冲的控制下,从计数初值开始逐一累加,到FFFF的时候再+1就清零了,这个时候触发一个计时器中断。

所以,你要计时50000的话就要用FFFF(16)+1-50000(10)所以在代码中使用65536-50000来确定计数器的初值的,并不是给计数器初值直接用50000

然后256(就是FF+1)是用来取低两位和高两位的

而50000这个值是根据计数时钟的频率算出来的,在这里单片机提供的时钟周期应该是1μs(12MHZ的晶振)所以要用50ms*1000来确定计数器要数的个数。

明白了么?

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
细节决定成败故事,细节决定成败的一些名人例
永城市商丘永城市地质矿物局这个地址怎么能查
难以相处的家庭问题
机灵小不懂机灵小不懂
分手后会成为什么关系?
哪里能做直径400毫米,厚度20毫米,长度2米的玻
如何做一个细腻的男生?
QQ空间装扮里有个动画出来时,有一句话是“勇
QQ英雄岛项链鉴定的格挡点数是什么意思?
装修最忌讳什么,装修房子应注意哪些问题
湖人?热火?
通城县咸宁清夫园地址在哪,我要去那里
救救我吧…把一首歌移到手机储存卡后就,无法
如何3天玩过上海 2天玩过苏州
送给说三道四的人语录,善于拍马屁的人说的一
推荐资讯
沿着正点电荷形成电场的电场线方向,场强越来
给领导的新春祝福,领导生病了,作为下属想发
海参如何清洗,冷冻鲜海参怎么处理
乒乓是哪个国家发明的?
谁有炫舞玫瑰银定情戒的效果图???
为什么每次打低杆都会打成跳杆
我是2010年的考生(文科),我324能上丽水职
一个人想让自己很铁的兄弟赚钱,而他们不理解,
上海世博参展的国家及地区个数,还有各参展国
我的笔记本为什么老是死机?
安徽怀远江北花园在哪
江汉区武汉皮特寿司培训地址是什么,有没有知
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?