<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機定時(shí)器設置入門(mén) (STC89C52RC)

51單片機定時(shí)器設置入門(mén) (STC89C52RC)

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò ) 收藏
51單片機定時(shí)器設置入門(mén)(STC89C52RC)

STC單片機定時(shí)器設置

STC單片機定時(shí)器的使用可以說(shuō)非常簡(jiǎn)單,只要掌握原理,有一點(diǎn)的C語(yǔ)言基礎就行了。要點(diǎn)有以下幾個(gè):

1. 一定要知道英文縮寫(xiě)的原形,這樣寄存器的名字就不用記了。

本文引用地址:http://dyxdggzs.com/article/201611/318396.htm

理解是最好的記憶方法。好的教材一定會(huì )給出所有英文縮寫(xiě)的原形。

2.盡量用形像的方法記憶

比如TCON和TMOD兩個(gè)寄存器各位上的功能,教程一般有個(gè)圖表,你就在學(xué)習中不斷回憶那個(gè)圖表的形像


TMOD:定時(shí)器/計數器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)
  
定時(shí)器/計數器模式控制寄存器TMOD是一個(gè)逐位定義的8位寄存器,但只能使用字節尋址,其字節地址為89H。
其格式為:

其中低四位定義定時(shí)器/計數器C/T0,高四位定義定時(shí)器/計數器C/T1,各位的說(shuō)明:

GATE——門(mén)控制。
GATE=1時(shí),由外部中斷引腳INT0、INT1來(lái)啟動(dòng)定時(shí)器T0、T1。
當INT0引腳為高電平時(shí)TR0置位,啟動(dòng)定時(shí)器T0;
當INT1引腳為高電平時(shí)TR1置位,啟動(dòng)定時(shí)器T1。
GATE=0時(shí),僅由TR0,TR1置位分別啟動(dòng)定時(shí)器T0、T1。

C/T——功能選擇位
C/T=0時(shí)為定時(shí)功能,C/T=1時(shí)為計數功能。
置位時(shí)選擇計數功能,清零時(shí)選擇定時(shí)功能。

M0、M1——方式選擇功能
由于有2位,因此有4種工作方式:
M1M0 工作方式 計數器模式 TMOD(設置定時(shí)器模式)
0 0 方式0 13位計數器TMOD=0x00
0 1 方式1 16位計數器TMOD=0x01
1 0 方式2 自動(dòng)重裝8位計數器 TMOD=0x02
1 1 方式3 T0分為2個(gè)8位獨立計數器,T1為無(wú)中斷重裝8位計數器 TMOD=0x03
單片機定時(shí)器0設置為工作方式1為T(mén)MOD=0x01

這里我們一定要知道,TMOD的T是TIMER/COUNTER的意思,MOD是MODE的意思。至于每位上的功能,你只要記住圖表,并知道每個(gè)英文縮寫(xiě)的原型就可以了。
在程序中用到TMOD時(shí),先立即回憶圖表,并根據縮寫(xiě)的單詞原形理出每位的意義,如果意義不是很清楚,就查下手冊,幾次下來(lái),TMOD的圖表就已經(jīng)在腦子里了。

8位 GATE位,本身是門(mén)的意思。
7位 C/TCounter/Timer
6位 M1Mode 1
5位 M0Mode 0


TCON: 定時(shí)器/計數器控制寄存器(TIMER/COUNTER CONTROL REGISTER)

TMOD分成2段,TCON控制更加精細,分成四段,在本文中只要用到高四段。

TF0(TF1)——計數溢出標志位,當計數器計數溢出時(shí),該位置1。
TR0(TR1)——定時(shí)器運行控制位
當TR0(TR1)=0 停止定時(shí)器/計數器工作
當TR0(TR1)=1 啟動(dòng)定時(shí)器/計數器工作
IE0(IE1)——外中斷請求標志位

當CPU采樣到P3.2(P3.3)出現有效中斷請求時(shí),此位由硬件置1。在中斷響應完成后轉向中斷服務(wù)時(shí),再由硬件自動(dòng)清0。

IT0(IT1)——外中斷請求信號方式控制位
當IT0(IT1)=1 脈沖方式(后沿負跳有效)
當IT0(IT1)=0 電平方式(低電平有效)此位由軟件置1或清0。
TF0(TF1)——計數溢出標志位

當計數器產(chǎn)生計數溢出時(shí),此位由硬件置1。當轉向中斷服務(wù)時(shí),再有硬件自動(dòng)清0。計數溢出的標志位的使用有兩種情況:采用中斷方式時(shí),作中斷請求標志位來(lái)使用;采用查詢(xún)方式時(shí),作查詢(xún)狀態(tài)位來(lái)使用。

注意記憶方法,理解單詞原形,就絕對不會(huì )把TF和TR搞混。TF的F也就是溢出OverFlow的F。國外有個(gè)著(zhù)名的IT知識問(wèn)答社區,網(wǎng)址就http://stackoverflow.com/
TR的R就是運行Run。默認是0不運行,當然要置1才運行。


STC單片機STC89C52RC定時(shí)器延時(shí)時(shí)間的計算

延時(shí)時(shí)間要根據晶振頻率計算,不同板子可能有所不同。

時(shí)鐘周期:
1/時(shí)鐘源,在我現在這塊板子上,晶振頻率是11.0592M,也就是時(shí)鐘周期是1/11059200秒

機器周期:
一般51單片機是12個(gè)時(shí)鐘周期,我的板子也就是 12/11059200秒

單次定時(shí)最長(cháng)時(shí)間:
如果是16位的計數器,16位最大值是65535,共可計數65536次?;镜某狄欢ㄒ涀?,還要記住8位最大值是255,共可計數256次,還要記住8位上每位代表的數值。
12 * 65536/11059200 = 0.0711 s,也就是,71 ms內的定時(shí)可以單次定時(shí)就完成。如果定時(shí)時(shí)間超過(guò)71 ms,就要循環(huán)了。

一次定時(shí)需要幾次機器周期:
計算公式:定時(shí)秒數/機器周期
比如我要定時(shí)1秒, 1/(12/11059200)= 921600次,16位計數器最大可計數65536次,921600次早就益出了。我們可以每次定時(shí)10 ms,循環(huán)100次就可以定時(shí)1秒了,1 s縮小100百倍就是10 ms, 也就是每次需要計數9216次。

確實(shí)計數器初始值:
定時(shí)10 ms時(shí),如果計數器從0開(kāi)始計數,我們就不知道什么時(shí)候到了9216次。所以應該計數了9216次,16位計數器最多計數95536次,然后就溢出,一溢出TCON的TF位就會(huì )置1,我們只要經(jīng)常檢測TF位就可以知道什么時(shí)候完成10ms的定時(shí)了。
計算公式:計數器初始值=最大計數次數 - 需要計數次數
如果定時(shí)10 ms,計數器的初始值就是65536 - 9216

計算計數器的高位和低位:
16位的計數器,也就是兩個(gè)8位組成,8位的最大計數次數是256。所以:
計數器高位 = 初始值/256
計數器低位 = 初始值%256



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>