求助,51單片機(jī)定時(shí)器初值設(shè)定問(wèn)題
求助,51單片機(jī)定時(shí)器初值設(shè)定問(wèn)題
1、假設(shè)定時(shí)的要求是5000個(gè)計(jì)時(shí)脈沖。那么我們希望T0的16位計(jì)數(shù)模式初值為X=65536-5000。
2、T0計(jì)數(shù)初值X的高8位,將X除以256,或X右移8位得到。
3、T0計(jì)數(shù)初值X的低8位,將X取余256,或者X&0x00ff,或者左移8位右移8位得到。4、采用常量表達(dá)式交給編譯器完成計(jì)算過(guò)程,程序可讀性更好。
方便閱讀,改寫(xiě),效果與實(shí)際定時(shí)值寫(xiě)法完全一致。
51給定時(shí)計(jì)數(shù)器設(shè)置初始值的時(shí)候怎么計(jì)算數(shù)值?
首先,51單片機(jī)是加一計(jì)數(shù),到65536溢出,所以定時(shí)時(shí)間(經(jīng)過(guò)的脈沖個(gè)數(shù),如果一個(gè)脈沖是1US,剛好延時(shí)50MS是50000個(gè)脈沖)是65536減初值 ,初值又分高8位和低8 位,高8位的1代表256,因此高8位的數(shù)值所代表的數(shù)是256的整數(shù)倍,低位**不超過(guò)255,所以一定是除以256之后的余數(shù),用公式是這樣:初值=65536-定時(shí)脈沖個(gè)數(shù)=TH0*256+TL0反過(guò)來(lái)看你就很明白了
單片機(jī)C51,對(duì)定時(shí)器/計(jì)數(shù)器初值設(shè)置
一個(gè)用作定時(shí)器。定時(shí)器中斷的時(shí)候輸出一個(gè)脈沖作為計(jì)數(shù)器的計(jì)數(shù)脈沖,設(shè)定一個(gè)計(jì)數(shù)值,計(jì)數(shù)滿的時(shí)候中斷,這樣計(jì)數(shù)值為10時(shí)候,定時(shí)器中斷10次,用一個(gè)計(jì)數(shù)值來(lái)記錄定時(shí)器的中斷次數(shù),一個(gè)用作計(jì)數(shù)器。
至于定時(shí)/計(jì)數(shù)器的操作;計(jì)數(shù)器串聯(lián).536ms,所以12M晶振的情況下,然后將計(jì)數(shù)值清0,重新計(jì)數(shù),即為100ms。
總的定時(shí)時(shí)間的原理同上。這個(gè)方**有小小誤差,因?yàn)椴僮饔?jì)數(shù)值的時(shí)候會(huì)占用一點(diǎn)時(shí)間,這個(gè)時(shí)間比較短。2、2個(gè)定時(shí)/,用單個(gè)16位定時(shí)器得不到100ms的定時(shí)。這時(shí)可更換頻率較低的晶振或用以下兩種軟件的方法:1、定時(shí)器累加。
用一個(gè)計(jì)數(shù)值來(lái)記錄定時(shí)器的中斷次數(shù)。
關(guān)于單片機(jī)定時(shí)器賦初值的問(wèn)題
要理解這個(gè)問(wèn)題需要 看單片機(jī)原理 的 定時(shí)器 章節(jié)
首先 這個(gè)問(wèn)題是 選擇的 16位定時(shí)模式
定時(shí)初值=65536-50000=15536
因?yàn)镸CS51單片機(jī)對(duì)定時(shí)器賦值 一次只能訪問(wèn)8位(即 TH0 和 TL0分開(kāi)賦值)
也就是將 15536 拆成高八位和低八位
(65536-50000)/ 256 就是求高八位 數(shù)值
(65536-5000)% 256 就是求低八位 數(shù)值
如果還有不理解之處,請(qǐng)繼續(xù)提問(wèn)!
關(guān)于51單片機(jī)定時(shí)/計(jì)數(shù)器裝入初值的問(wèn)題
這個(gè)有什么看不懂得呢 **種 是吧十進(jìn)制化成十六機(jī)制的方法 第二種呢 就是單純的十進(jìn)制 這樣跟你說(shuō)吧 因?yàn)閠h0只有一個(gè)字節(jié) 那就只能放下8位2進(jìn)制 于是**種表示就是把一個(gè)大于一個(gè)字節(jié)小于兩個(gè)字節(jié)的數(shù)據(jù)轉(zhuǎn)化成兩個(gè)字節(jié)高八位和第八位的分離形式第二種就簡(jiǎn)單了 0x9c就是65536-100的十六進(jìn)制表示啊 那高八位就是前兩個(gè)十六進(jìn)制數(shù)ff就裝到th0中 低八位就是后兩個(gè)十六進(jìn)制數(shù)9c 裝到th1中唄3這有啥看不懂的啊這個(gè)真的基礎(chǔ)到不行了 沒(méi)法再解釋啊至于轉(zhuǎn)化嗎 你去找c語(yǔ)言教程 16進(jìn)制與十進(jìn)制的轉(zhuǎn)化 再好好學(xué)學(xué) 這個(gè)是**的基礎(chǔ)啊
mcs-51單片機(jī)定時(shí)器應(yīng)用的初始化步驟有哪些
TMOD、TH0或TH1、TL0或TL1、EA=1;TR0或TR1=1;TMOD選擇方式。TH0=(65536-x)%256;x為定時(shí)時(shí)間,x<65536EA=1百科;開(kāi)中斷;TR1=1;啟動(dòng)定時(shí)器。
例如:TMOD=0X10;TH1=0X4b;TL1=0XfeTR=1;“TMOD=0X10;”設(shè)置定時(shí)器1模式為模式一(16位定時(shí)器/計(jì)數(shù)器)“TH1=0X4b;TL1=0Xfe;”設(shè)置定時(shí)器初值\”TR1=1\”啟動(dòng)定時(shí)器1t=(2^16-初值)*機(jī)器周期=(2^16-初值)*時(shí)鐘周期*12此例中:初值=0x4bfe=19454t=(65536-19454)*1/11095200*12=0.04983993078087821760….約為0.05s即50ms公式解釋?zhuān)好總€(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,計(jì)時(shí)器寄存器**允許2^16,大于2^16就溢出觸發(fā)中斷。