在學(xué)習(xí)單片機(jī)的時候,我們發(fā)現(xiàn)很多功能都是通過中斷來實現(xiàn)的。之前也舉過燒水的例子來闡述中斷,今天不講中斷,講解一下定時器賦初值的方法。8位的定時器最大可計數(shù)2的8次方為256,16位的定時器最大可計數(shù)2的16次方為65536。由于單片機(jī)的定時器是遞加式的,所以最大值減去所要定時的值就是初值,舉例如下:
最大值為100,我們只需要38,怎么辦呢,由于是遞加的,我們只需要在62時開始計時就可以了。
用proteus搭建的電路圖如下,晶振為12M,P2.0每10ms翻轉(zhuǎn)一次,即P2.0輸出的頻率為100HZ。
這里使用16位的定時器,那單片機(jī)定時器0的最大計數(shù)就是65536.晶振為12M,那單片機(jī)的一個機(jī)器周期就是1us,定時器 0工作在方式1時最大定時65.536ms。
-
定時器的定時時間T = (65536-X),單位是us;
-
假設(shè)定時時間T=10ms=10000us,
那定時器初值X=65536-10000=55536us,也就是定時器0從55536開始遞加到65536就是10ms,所以55536就是定時器的初值,55536轉(zhuǎn)化為十六進(jìn)制為0Xd8f0,所以定時器的初值為:
不同型號、不同系列的單片機(jī),其定時器的配置方法基本大同小異,可以借助51單片機(jī)的配置方法舉一反三。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!