[導(dǎo)讀]在學(xué)習(xí)單片機(jī)的單片定時(shí)候,我們發(fā)現(xiàn)很多功能都是機(jī)的計(jì)算通過(guò)中斷來(lái)實(shí)現(xiàn)的。之前也舉過(guò)燒水的器何例子來(lái)闡述中斷,今天就講解一下定時(shí)器賦初值的初值方法。8位的單片定定時(shí)器最大可計(jì)數(shù)2的8次方為256,16位的機(jī)的計(jì)算定時(shí)器最大可計(jì)數(shù)2的16次方為65536。
在學(xué)習(xí)單片機(jī)的器何時(shí)候,我們發(fā)現(xiàn)很多功能都是初值通過(guò)中斷來(lái)實(shí)現(xiàn)的。之前也舉過(guò)燒水的單片定例子來(lái)闡述中斷,今天就講解一下定時(shí)器賦初值的機(jī)的計(jì)算方法。8位的器何定時(shí)器最大可計(jì)數(shù)2的8次方為256,16位的初值定時(shí)器最大可計(jì)數(shù)2的16次方為65536。由于單片機(jī)的單片定定時(shí)器是遞加式的,所以最大值減去所要定時(shí)的機(jī)的計(jì)算值就是初值,舉例如下:
最大值為100,器何我們只需要38,怎么辦呢,由于是遞加的,我們只需要在62時(shí)開(kāi)始計(jì)時(shí)就可以了。 以proteus仿真為例簡(jiǎn)單講解定時(shí)器賦初值

用proteus搭建的電路圖如下,晶振為12M,P2.0每10ms翻轉(zhuǎn)一次,即P2.0輸出的頻率為100HZ。
這里使用16位的定時(shí)器,那單片機(jī)定時(shí)器0的最大計(jì)數(shù)就是65536.晶振為12M,那單片機(jī)的一個(gè)機(jī)器周期就是1us,定時(shí)器 0工作在方式1時(shí)最大定時(shí)65.536ms。 - 定時(shí)器的定時(shí)時(shí)間T = (65536-X),單位是us;
- 定時(shí)器初值X = 65536-T;
假設(shè)定時(shí)時(shí)間T=10ms=10000us, 那定時(shí)器初值X=65536-10000=55536us,也就是定時(shí)器0從55536開(kāi)始遞加到65536就是10ms,所以55536就是定時(shí)器的初值,55536轉(zhuǎn)化為十六進(jìn)制為0Xd8f0,所以定時(shí)器的初值為: TH0 = 0XD8; THL = 0XF0;
用虛擬示波器抓到的波形如下:
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!