欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
c語言中除以256
[打印本頁]
作者:
xueren
時間:
2013-8-6 05:08
標題:
c語言中除以256
如果你選的單片機的晶振一定,比如12MHZ來說吧,機器周期是1us,就是說每1us產生一次計數,就拿50ms來說,這是你想要的計時,意思是,對機器周期進行50000計數就可以得到我想要的,可T0是一個可以對機器周期能進行65536次計數,也就是說我想要的50MS不能讓T0溢出,怎么辦,那么先給這個定時器里面放些數,放多少,就是我們想要的50MS在加上一個多少就能等于65536,也就是65536和50000的差值,這個值就是我們說的初值。
為什么除以256,因為我們的計時器是兩個8位組成的,那么要把那些差值裝進這兩個8位,那么低8位最多能裝256個機器周期,那么256計滿了就用高8位的,就是說低8位滿一次高8位加1,那么高8位裝多少,低8位就滿了幾次,算法就是用差值除一下256取其整數,剩下的,就是還剩了小于256次數的就放在低8位,就是差值 的余數。
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
flag++;
if(flag==20)//當定時到1秒時執行花括號里面的語句
{ }
}
因為TH0為高八位,最低位是2的8次方,也就是256,TL0中的最小值為256,而TL0為低八位最高位時2的7次方,也就是128,TL0最多放下255.你想,如果我要放一個超過256的數,肯定是超過先放高八位,把剩下的部分放在低八位中了,TH0=(65536-50000)/256就是把TL0中放不下的部分放在TH0中,再把剩下的部分放在TH0中。
作者:
xiao1074234390
時間:
2013-8-6 12:54
講的挺詳細的
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1