定時器的應(yīng)用涉及到中斷方面的知識,可以先了解中斷的概念再來看定時器
如,一個16位的定時器,它所能計數(shù)的范圍是0~65535,如果單片機(jī)采用的是12M的晶振,那么定時器單次最長的時間為65535((1/12)12),因為一個一個機(jī)器周期等于12個振蕩周期,那么定時器加一所用的時間是1/12M*12是1us,也就是一個12MHz晶振的51單片機(jī)單次最長時間約為65ms.
定時器的控制
89c51的定時器由兩個寄存器控制,分別是工作模式寄存器TMOD和控制寄存器TCON
工作模式寄存器TMOD是用于控制定時器0/1的工作模式,通過對TMOD進(jìn)行賦值,則可以改變定時器的工作模式
具體各位的定義如下
當(dāng)我們使用定時器功能時,就只用設(shè)置D0、D1、D4、D5的的值就可以了,其余位置0即可
我們在使用定時器時基本使用的是模式1和模式2,模式0與模式3基本不用,我就不進(jìn)行描述了。
模式1
當(dāng)TMOD的D5位置0,D4位置1時,即為定時器T1的模式一,該模式對應(yīng)的是一個16位的定時器,寄存器TH1和TL1即為T1初值的高8位和低8位,定時時間為:(65536-T1的初值)振蕩周期12
模式二
當(dāng)TMOD的D5位置1,D4位置0時,即為定時器T1的模式二,該模式對應(yīng)的是一個可以自動裝載的8位定時器,當(dāng)定時器計數(shù)滿了(計數(shù)溢出時),會自動把TH1中的內(nèi)容重新裝載到TL1中,那么模式二計數(shù)的最長時間即為(257-T1的初值)振蕩周期12
定時器的控制寄存器TCON
TCON的各位定義如下
TF1:T1的溢出標(biāo)志位,當(dāng)T1溢出時,由硬件自動使TF1位置1,并向CPU申請中斷。當(dāng)CPU響應(yīng)中斷進(jìn)入中斷服務(wù)子程序后,TF1又被硬件自動清0,也可以用軟件清0.
TF0:T0溢出標(biāo)志位。其功能和操作情況同TF1
TR1:T1的運(yùn)行控制位,當(dāng)該位置1時,即啟動定時器1當(dāng)該位置0時,即關(guān)閉
TR0:T0的運(yùn)行控制位,其功能及操作情況同TR1。
接下來我將用定時器來結(jié)合數(shù)碼管制作一個0-9計時器
具體操作如下(定時器的初始化在程序最下面)
include
-
單片機(jī)
+關(guān)注
關(guān)注
6058文章
44821瀏覽量
644704
原文標(biāo)題:【人物】靜下心來,讀一段特斯拉掌門人埃隆·馬斯克的自述!
文章出處:【微信號:Recycle-Li-Battery,微信公眾號:鋰電聯(lián)盟會長】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
89C51單片機(jī)的結(jié)構(gòu)和原理
基于51單片機(jī)的定時器2的操作與實現(xiàn)
52單片機(jī)有幾個定時器?52單片機(jī)定時器1和52單片機(jī)定時器2程序?qū)Ρ?/a>
51單片機(jī)定時器中斷

評論