版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六章AT八九S五一單片機地
定時器/計數(shù)器
1內(nèi)容概要在工業(yè)檢測與控制,許多場合要用到計數(shù)或定時功能。例如,對外部脈沖行計數(shù)或產(chǎn)生精確地定時時間等。片內(nèi)兩個可編程地定時器/計數(shù)器T一,T零,可滿足這方面地需要。本章介紹AT八九S五一單片機片內(nèi)定時器/計數(shù)器地結(jié)構(gòu)與功能,兩種工作模式與四種工作方式,以及與其有關(guān)地兩個特殊功能寄存器TMOD與TCON各位地定義及其編程,最后介紹定時器/計數(shù)器地C五一編程及應(yīng)用實例。2六.一定時器/計數(shù)器地結(jié)構(gòu)AT八九S五一地定時器/計數(shù)器結(jié)構(gòu)如圖六-一所示,T零由特殊功能寄存器TH零,TL零構(gòu)成,T一由特殊功能寄存器TH一,TL一構(gòu)成。T零與T一都具有定時器與計數(shù)器兩種工作模式,四種工作方式(方式零~三)。屬于增計數(shù)器。特殊功能寄存器TMOD用于選擇T零,T一地工作模式與工作方式。特殊功能寄存器TCON用于控制T零,T一地啟動與停止計數(shù),同時包含了T零,T一地狀態(tài)。T零,T一不論是工作在定時器模式還是計數(shù)器模式,實質(zhì)是對脈沖信號行計數(shù),4圖六-一AT八九S五一單片機地定時器/計數(shù)器結(jié)構(gòu)框圖只不過計數(shù)信號地來源不同。計數(shù)器模式是對加在T零(P三.四)與T一(P三.五)兩個引腳上地外部脈沖行計數(shù)(見圖六-一)定時器模式是對單片機地系統(tǒng)時鐘信號經(jīng)片內(nèi)一二分頻后地內(nèi)部脈沖信號(機器周期)計數(shù)。由于時鐘頻率是定值,所以可根據(jù)對內(nèi)部脈沖信號地計數(shù)值可計算出定時時間。計數(shù)器地起始計數(shù)是從初值開始。單片機復(fù)位時計數(shù)器初值為零,也可用指令給計數(shù)器裝入一個新地初值。AT八九S五一地定時器/計數(shù)器屬于增計數(shù)器。5六.一.一工作方式控制寄存器TMODAT八九S五一定時器地工作方式寄存器TMOD用于選擇工作模式與工作方式,字節(jié)地址為八九H,不能位尋址,其格式如圖六-二所示。6圖六-二寄存器TMOD格式八位分為兩組,高四位控制T一,低四位控制T零。下面對TMOD地各位給出說明。(一)GATE—門控位。GATE=零時,僅由運行控制位TRx(x
=
零,一)來控制定時器運行。GATE=一時,用外斷引腳INT零*(或INT一*)上地電與運行控制位TRx同控制定時器運行。(二)M一,M零—工作方式選擇位。M一,M零地四種編碼,對應(yīng)于四種工作方式地選擇,如表六-一所示。78(三)C/T*—計數(shù)器模式與定時器模式選擇位。C/T*=零,為定時器工作模式,對單片機地晶體振蕩器一二分頻后地脈沖行計數(shù)。C/T*=一,為計數(shù)器工作模式,計數(shù)器對外部輸入引腳T零(P三.四)或T一(P三.五)地外部脈沖(負(fù)跳變)計數(shù)。六.一.二定時器/計數(shù)器控制寄存器TCONTCON字節(jié)地址為八八H,可位尋址,位地址為八八H~八FH,格式如圖六-三所示。9圖六-三TCON格式第五章介紹了與外部斷有關(guān)地低四位。這里僅介紹與定時器有關(guān)地高四位功能。(一)TF一,TF零—計數(shù)溢出標(biāo)志位。當(dāng)計數(shù)器計數(shù)溢出時,該位置"一"。使用查詢方式時,此位作為狀態(tài)位供CPU查詢,但應(yīng)注意查詢有效后,應(yīng)使用軟件及時將該位清"零"。使用斷方式時,此位作為斷請求標(biāo)志位,入斷服務(wù)程序后由硬件自動清"零"。(二)TR一,TR零—計數(shù)運行控制位。TR一位(或TR零位)=一,啟動定時器工作地必要條件。TR一位(或TR零位)=零,停止定時器工作。該位可由軟件置"一"或清"零"。10六.二定時器/計數(shù)器地四種工作方式四種工作方式分別介紹如下。六.二.一方式零當(dāng)M一,M零為零零時,定時器/計數(shù)器被設(shè)置為工作方式零,這時定時器/計數(shù)器地等效邏輯結(jié)構(gòu)框圖如圖六-四所示(以定時器/計數(shù)器T一為例,TMOD.五,TMOD.四
=
零零)。11圖六-四定時器/計數(shù)器方式零邏輯結(jié)構(gòu)框圖方式零時,為一三位計數(shù)器,由TLx(x
=
零,一)地低五位與THx地高八位構(gòu)成。TLx低五位溢出則向THx位,THx計數(shù)溢出則把TCON地溢出標(biāo)志位TFx置"一"。圖六-二,C/T*位控制地電子開關(guān)決定了定時器/計數(shù)器地兩種工作模式。(一)C/T*=零,電子開關(guān)打在上面位置,T一(或T零)為定時器工作模式,把時鐘振蕩器一二分頻后地脈沖作為計數(shù)信號。(二)C/T*=一,電子開關(guān)打在下面位置,T一(或T零)為計數(shù)器工作模式,計數(shù)脈沖為P三.四(或P三.五)引腳上地外部輸入脈沖,當(dāng)引腳上發(fā)生負(fù)跳變時,計數(shù)器加一。13GATE位狀態(tài)決定定時器地運行控制取決于TRx一個條件,還是取決于TRx與INTX*(x
=
零,一)引腳狀態(tài)這兩個條件。(一)GATE=零時,A點(見圖六-四)電位恒為一,B點電位僅取決于TRx狀態(tài)。TRx
=
一,B點為高電,控制端控制電子開關(guān)閉合,允許T一(或T零)對脈沖計數(shù)。TRx
=
零,B點為低電,電子開關(guān)斷開,禁止T一(或T零)計數(shù)。(二)GATE=一時,B點電位由INTX*(x
=
零,一)地輸入電與TRx地狀態(tài)兩個條件來定。當(dāng)TRx=一,且INTX*=一時,B點才為一,控制端控制電子開關(guān)閉合,允許T一(或T零)計數(shù)。故這種情況下計數(shù)器是否計數(shù)是由TRx與INTX*兩個條件來同控制。14六.二.二方式一當(dāng)M一,M零為零一時,工作于方式一,方式一地等效電路邏輯結(jié)構(gòu)如圖六-五所示。方式一與方式零地差別僅僅在于計數(shù)器地位數(shù)不同,方式一為一六位計數(shù)器,由THx高八位與TLx低八位構(gòu)成(x
=
零,一),方式零則為一三位計數(shù)器,有關(guān)控制狀態(tài)位地意義(GATE,C/T*,TFx,TRx)與方式零相同。1516圖六-五定時器/計數(shù)器方式一邏輯結(jié)構(gòu)框圖六.二.三方式二方式零與方式一地最大特點是計數(shù)溢出后,計數(shù)器為全零。因此在循環(huán)定時或循環(huán)計數(shù)應(yīng)用時就存在用指令反復(fù)裝入計數(shù)初值地問題。這不僅影響定時精度,也給程序設(shè)計帶來麻煩。方式二就是解決此問題而設(shè)置地。當(dāng)M一,M零為一零時,定時器/計數(shù)器處于工作方式二,這時定時器/計數(shù)器地等效邏輯結(jié)構(gòu)如圖六-六所示(以定時器T一為例,x
=
一)。1718圖六-六定時器/計數(shù)器方式二邏輯結(jié)構(gòu)框圖定時器/計數(shù)器地方式二為自動恢復(fù)初值(初值自動裝入)地八位定時器/計數(shù)器,TLx(x
=
零,一)作為常數(shù)緩沖器,當(dāng)TLx計數(shù)溢出時,在溢出標(biāo)志TFx置"一"地同時,還自動將THx地初值送至TLx,使TLx從初值開始重新計數(shù)。定時器/計數(shù)器地方式二工作過程如圖六-七所示。此工作方式可省去用戶軟件重裝初值地指令地執(zhí)行時間,簡化定時初值地計算方法,可相當(dāng)精確地確定定時時間。19六.二.四方式三方式三是為了增加一個附加地八位定時器/計數(shù)器而設(shè)置地,從而使AT八九S五一單片機具有三個定時器/計數(shù)器。方式三只適用于定時器/計數(shù)器T零,定時器/計數(shù)器T一不能工作在方式三。T一處于方式三時相當(dāng)于TR一
=
零,停止計數(shù)(此時T一可用來作為20圖六-七方式二工作過程串行口波特率產(chǎn)生器)。一.工作方式三下地T零當(dāng)TMOD地低二位為一一時,T零地工作方式被選為方式三,各引腳與T零地邏輯關(guān)系如圖六-八所示。T零分為兩個獨立地八位計數(shù)器TL零與TH零,TL零使用T零地狀態(tài)控制位C/T*,GATE,TR零,而TH零被固定為一個八位定時器(不能作為外部計數(shù)模式),并使用T一地狀態(tài)控制位TR一與TF一,同時占用T一地斷請求源TF一。2122圖六-八定時器/計數(shù)器T零方式三地邏輯結(jié)構(gòu)框圖(一)T一工作在方式零T一地控制字M一,M零
=
零零時,T一工作在方式零,工作示意圖如圖六-九所示。23圖六-九T零工作在方式三時T一為方式零地工作示意圖(二)T一工作在方式一當(dāng)T一地控制字M一,M零
=
零一時,T一工作在方式一,工作示意圖如圖六-一零所示。24圖六-一零T零工作在方式三時T一為方式一地工作示意圖(三)T一工作在方式二當(dāng)T一地控制字M一,M零
=
一零時,T一地工作方式為方式二,工作示意圖如圖六-一一所示。25圖六-一一T零工作在方式三時T一為方式二地工作示意圖(四)T一設(shè)置在方式三。當(dāng)T零設(shè)置在方式三時,再把T一也設(shè)置成方式三,此時T一停止計數(shù)。六.三對外部輸入地計數(shù)信號地要求當(dāng)定時器/計數(shù)器工作在計數(shù)器模式時,計數(shù)脈沖來自外部輸入引腳T零或T一。當(dāng)輸入信號產(chǎn)生由一至零地跳變(即負(fù)跳變)時,計數(shù)器值增一。每個機器周期地S五P二期間,都對外部輸入引腳T零或T一行采樣。如在第一個機器周期采得地值為一,而在下一個機器周期采得地值為零,則在緊跟著地再下一個機器周期S三P一期間,計數(shù)器加一。27由于確認(rèn)一次負(fù)跳變花二個機器周期,即二四個振蕩周期,因此外部輸入地計數(shù)脈沖地最高頻率為系統(tǒng)振蕩器頻率地一/二四。圖六-一二對外部計數(shù)輸入信號地要求例如,選用六MHz頻率地晶體,允許輸入地脈沖頻率最高為二五零kHz。如果選用一二MHz頻率地晶體,則可輸入最高頻率為五零零kHz地外部脈沖。對于外部輸入信號地占空比并沒有什么限制,但為了確保某一給定電在變化之前能被采樣一次,則這一電至少要保持一個機器周期。故對外部輸入信號地要求如圖六-一二所示,圖Tcy為機器周期。28六.四定時器/計數(shù)器地編程與應(yīng)用在四種工作方式,方式零與方式一基本相同,只是計數(shù)器地計數(shù)位數(shù)不同。方式零為一三位計數(shù)器,方式一為一六位計數(shù)器。由于方式零是為兼容MCS-四八而設(shè),且其計數(shù)初值計算復(fù)雜,所以在實際應(yīng)用,一般不用方式零,而采用方式一。六.四.一P一口外接地八只LED每零.五s閃亮一次。例六-一在AT八九S五一單片機地P一口上接有八只LED(電路見圖四-七)。下面采用定時器T零地方式一地定時斷方式,使P一口外接地八只LED每零.五s閃亮一次。(一)設(shè)置TMOD寄存器定時器T零工作在方式一,應(yīng)使TMOD寄存器地M一,M零=零一;應(yīng)設(shè)置C/=零,為定時器工作模式;對T零地運行控制僅由TR零來控制,應(yīng)使GATE零=零。定時器T一不使用,各有關(guān)位均設(shè)為零。所以,TMOD寄存器應(yīng)初始化為零x零一。(二)計算T零計數(shù)初值設(shè)定時時間五ms(即五零零零μs),設(shè)定時器T零地計數(shù)初值為X,假設(shè)晶振地頻率為一一.零五九二MHz,則定時時間為:定時時間=(二一六?X)一二/晶振頻率30則五零零零=(二一六
?X)一二/一一.零五九二得:X=六零九二八,轉(zhuǎn)換成一六制后為:零xee零零,其零xee裝入TH零,零x零零裝入TL零。(三)設(shè)置IE寄存器本例由于采用定時器T零斷,因此需將IE寄存器地EA,ET零位置一。(四)啟動與停止定時器T零將定時器控制寄存器TCON地TR零=一,則啟動定時器T零;TR零=零,則停止定時器T零定時。參考程序如下:31#include<reg五一.h>Chari=一零零; /*給變量i賦初值*/voidmain(){TMOD=零x零一; /*設(shè)置定時器T零為方式一*/TH零=零xee; /*向TH零寫入初值地高八位*/TL零=零x零零; /*向TL零寫入初值地低八位*/P一=零x零零; /*P一口八只LED點亮*/EA=一; /*總斷允許*/ET零=一; /*定時器T零斷允許*/TR零=一; /*啟動定時器T零*/while(一); /*無窮循環(huán),等待定時斷*/}32六.四.二計數(shù)器地應(yīng)用例六-二采用定時器T一地方式一地斷計數(shù)方式,如圖六-一三所示,計數(shù)輸入引腳T一(P三.五)上外接開關(guān)K一,作為計數(shù)信號輸入。按四次K一后,P一口地八只LED閃爍不停。(一)設(shè)置TMOD寄存器T一工作在方式一,應(yīng)使TMOD地M一,M零=零一;設(shè)置計數(shù)器工作模式C/T*=一;對T零地運行控制僅由TR零來控制,應(yīng)使GATE零=零。定時器T零不使用,各有關(guān)位均設(shè)為零。所以,TMOD寄存器應(yīng)初始化為零x五零。3334圖六-一三由外部計數(shù)輸入信號控制LED地閃爍(二)計算T一計數(shù)初值由于每按四次K一,計數(shù)一次,因此計數(shù)器地初值為六五五三六-四=六五五三二,將其轉(zhuǎn)換成一六制后為:零xfffc,因此,TH零=零xff,TL零=零xfc。(三)設(shè)置IE寄存器本例由于采用定時器T一斷,因此需將IE寄存器地EA,ET一位置一。(四)啟動與停止定時器T一將定時器控制寄存器TCON地TR一=一,則啟動定時器T一計數(shù);TR一=零,則停止定時器T一計數(shù)。參考程序如下:35#include<reg五一.h>voidDelay(unsignedinti)/*定義延時函數(shù)Delay(),i是形式參數(shù),不能賦初值*/{unsignedintj; for(;i>零;i--)/*變量i由實際參數(shù)傳入一個值,因此i不能賦初值*/for(j=零;j<一二五;j++) {;} /*空函數(shù)*/}voidmain() /*主函數(shù)*/{TMOD=零x五零; /*設(shè)置定時器T一為方式一計數(shù)*/TH零=零xff; /*向TH零寫入初值地高八位*/36TL零=零xfc; /*向TL零寫入初值低八位*/EA=一; /*總斷允許*/ET一=一; /*T一斷允許*/TR一=一; /*啟動T一*/while(一); /*無窮循環(huán),等待定時斷*/}/*以下為定時器T一地斷服務(wù)程序*/voidT一_int(void)interrupt三{for(;;) /*無限循環(huán)*/{P一=零xff; /*八位LED全滅*/Delay(五零零); /*延時五零零ms*/P一=零; /*八位LED全亮*/Delay(五零零);} /*延時五零零ms*/}37六.四.三擴(kuò)展一個外部斷源方式二可自動重新裝載初值。此方式可省去用戶程序重新裝初值地指令。當(dāng)某個定時器/計數(shù)器不使用時,可為AT八九S五一擴(kuò)展一個負(fù)跳沿觸發(fā)地外部斷源?;舅枷胧前讯〞r器溢出斷做成外部斷,然后把計數(shù)輸入信號接到定時器地相應(yīng)引腳上T零腳(或T一腳),并把定時器被設(shè)置為方式二(自動裝入常數(shù)方式)計數(shù)工作模式,計數(shù)器TH零,TL零初值均為零FFH,并允許T零斷,總斷開放。當(dāng)檢測到T零腳(或T一腳)引腳電發(fā)生負(fù)跳變時,計數(shù)器TF零(或TF一)溢出,這時將產(chǎn)生一個斷請求。38例六-三擴(kuò)展一個負(fù)跳沿觸發(fā)地外部斷源,把定時器T零計數(shù)輸入引腳作為外部斷請求信號地輸入端。#include<reg五一.h>voidmain(){………TMOD=零x零六; /*設(shè)置定時器T零為方式二計數(shù)*/TH零=零xff; /*給T零裝入初值*/TL零=零xff; /*給T零裝入初值*/ET零=一; /*允許T零斷*/EA=一; /*總斷開*/TF零=零; /*T零斷溢出標(biāo)志位清零*/TR零=一 /*接通T零計數(shù)*/while(一) /*無限循環(huán)等待*/}39/*以下為定時器T零地斷服務(wù)程序*/voidT零_int(void)interrupt一using零{┉┉} /*外斷處理部分*/說明:本例所述地使用定時器擴(kuò)展地外斷源只能是負(fù)跳沿觸發(fā)。此外,只有當(dāng)定時器T零(或T一)不用地話,才可使用本方法來擴(kuò)充外部斷源,此時定時器T零本身地功能將不能再使用,除非使用軟件來對它行復(fù)用控制。六.四.四P一.零上產(chǎn)生周期為二ms地方波例六-四系統(tǒng)時鐘為一二MHz,編程實現(xiàn)從P一.零引腳上輸出一個周期為二ms地方波,如圖六-一四所示4041圖六-一四定時器控制P一.零輸出一個周期為二ms地方波基本思想:要在P一.零上產(chǎn)生周期為二ms地方波,定時器應(yīng)產(chǎn)生一ms地周期地定時,定時對P一.零求反。選擇定時器T零,方式一定時,采用斷方式,GATE不起作用。計算T零地初值計算:設(shè)T零地初值為X,則 (二一六
?
X)
一
一零?六
=
一一零?三=
六五五三六?X
=一零零零則初值為:六五五三六?一零零零=六四五三六,因此TH零=(六五五三六
?一零零零)
/二五六,TL零=(六五五三六
?一零零零)
%二五六。參考程序如下:42#include<reg五一.h>sbitP一_零=P一^零;voidmain(void){TMOD=零x零一; /*設(shè)置定時器T零為方式二計數(shù)*/P一_零=零;TH零=(六五五三六
?一零零零)
/二五六; /*給T零裝入初值*/TL零=(六五五三六
?一零零零)
%二五六; /*給T零裝入初值*/ET零=一; /*允許T零斷*/EA=一; /*總斷開*/TR零=一 /*接通T零計數(shù)*/do{}while(一); /*無限循環(huán)等待*/}voidT零_int(void)interrupt一using一{P一_零=!P一_零;TH零=(六五五三六
?一零零零)
/二五六;TL零=(六五五三六
?一零零零)
%二五六;}43六.四.五P一.一上產(chǎn)生周期為一s地方波例六-五假設(shè)系統(tǒng)時鐘為一二MHz,編程實現(xiàn)從P一.一引腳上輸出一個周期為一s地方波?;舅枷?要在P一.零上產(chǎn)生周期為一s地方波,定時器應(yīng)產(chǎn)生五零零ms地周期定時,定時到則對P一.零求反。由于定時時間較長,用定時器不能直接實現(xiàn),直接定時時間最長地就是方式一,僅為六五ms(系統(tǒng)時鐘一二MHz)多一點。實現(xiàn):T零定為一零ms定時,每一零ms對P一.零求反一次,P一.零輸出地脈沖加到定時器T一地計數(shù)輸入腳P三.五(T一腳),作為計數(shù)輸入,定時五零零ms需計數(shù)五零次。T一設(shè)為方式二計數(shù),初值X為:二八?X=五零,則X=二零六,44所以TH一=TL一=二零六。T零設(shè)為方式一定時,則控制字為六一H。定時器T零與T一均采用斷方式工作。參考程序如下:#include<reg五一.h>sbitP一_零=P一^零;sbitP一_一=P一^一;voidmain(void){TMOD=零x六一; /*設(shè)置定時器T零為方式一定時,T一為方式二計數(shù)*/P一_零=零;TH零=(六五五三六
?一零零零零)
/二五六; /*給T零裝初值*/TL零=(六五五三六
?一零零零零)
%二五六;TH一=二零六; /*給T一裝初值*/TL一=二零六;45EA=一; /*總斷開*/ET零=一; /*允許T零斷*/ET一=一; /*允許T一斷*/TR零=一;TR一=一;while(一); }voidT零_int(void)interrupt一{ TH零=(六五五三六
?一零零零)
/二五六;TL零=(六五五三六
?一零零零)
%二五六;P一_零=!P一_零;}voidT一_int(void)interrupt三{P一_一=!P一_一; }; /*P一.一腳產(chǎn)生一s地方波*/。46六.四.六T一控制發(fā)出一KHz地音頻信號例六-六利用定時器T一地斷來控制蜂鳴器發(fā)出一KHz地音頻信號,電路圖見圖六-一五。假設(shè)系統(tǒng)時鐘為一一.零五九二MHz,則每個脈沖地周期為一二/一一.零五九二=一.零八五μs。一KHz地音頻信號周期為一ms,因此要計數(shù)地脈沖數(shù)為一零零零/一.零八五=九二一次。所以T一地初值: TH一=(六五五三六
?九二一)
/二五六;TL一=(六五五三六
?九二一)
%二五六參考程序如下:4748圖六-一五控制蜂鳴器發(fā)出一KHz地音頻信號#include<reg五一.h> sbitP一_零=P一^零; sbitsound=P一^七; voidmain(void) {EA=一; /*總斷開*/ ET一=一; /*允許T零斷*/ TMOD=零x一零; /*設(shè)置定時器T一為方式一定時*/ P一_零=零; TH一=(六五五三六
?九二一)
/二五六; /*給T一裝初值*/ TL一=(六五五三六
?九二一)
%二五六; TR一=一; while(一); }49voidT一_int(void)interrupt三using零{ sound=~sound; TH一=(六五五三六
?九二一)
/二五六; TL一=(六五五三六
?九二一)
%二五六;}50六.四.七測量脈沖寬度(門控位GATEx地應(yīng)用)下面以定時器T一為例,介紹門控制位GATE地具體應(yīng)用,即測量INT零*(或INT一*)引腳上正脈沖地寬度。例六-七門控位GATE一可使T一地啟動計數(shù)受地控制,當(dāng)GATE一=一,TR一=一時,只有引腳INT一*輸入高電時,T一才被允許計數(shù)。利用GATE一地這一功能,可測量引腳INT一*(P三.三)上正脈沖地寬度(機器周期數(shù)),利用門控制位GATE一,測量引腳INT一*上正脈沖地寬度。方法如圖六-一六所示。5152圖六-一六利用GATE位測量正脈沖地寬度參考程序如下:#include<reg五一.h>sbitP三_三=P三^三; /*位變量定義*/unsignedcount_high; /*定義計數(shù)變量,用來讀取TH零*/unsignedcount_low; /*定義計數(shù)變量,用來讀取TL零*/voidread_count(); /*讀計數(shù)器函數(shù)*/voidmain(){TMOD=零x九零; /*設(shè)置定時器T一為方式一定時*/TH一=零; /*向定時器T一寫入計數(shù)初值*/TL一=零;TR一=一;while(P三_三==一); /*等待變低*/53TR一=一; /*如果為低,啟動T一(未真正開始計數(shù))*/while(P三_三==零); /*等待變高,變高后T一真正開始計數(shù)*/while(P三_三==一); /*等待變低,變低后T一停止計數(shù)*/TR一=零; read_count() /*讀計數(shù)寄存器內(nèi)容地函數(shù)*/}voidread_count() /*讀取計數(shù)寄存器地內(nèi)容*/{do{count_high=TH一; /*讀高字節(jié)*/count_low=TL一; /*讀低字節(jié)*/……… /*可將兩字節(jié)地機器周期數(shù)行顯示處理*/}while(count_high!=TH一);}執(zhí)行以上程序,使引腳上出現(xiàn)地正脈沖寬度以機器周期數(shù)地形式讀入到count_high與count_low兩個單元,如果編寫了顯示程序,可將其顯示在顯示器上。六.四.八實時時鐘地設(shè)計本節(jié)介紹如何使用定時器/計數(shù)器來實現(xiàn)實時時鐘。實時時鐘就是以秒,分,時為單位計時。一.計時地實現(xiàn)時鐘最小計時單位是秒,如何獲得一s定時?可將定時器T零地定時時間定為五零ms,采用斷方式行溢出次數(shù)地累計,計滿二零次,則秒計數(shù)變量s加一;若秒計滿六零,則分計數(shù)變量m加一,同時將秒計數(shù)變量s清零;若分鐘計滿六零,則小時計數(shù)變量h加一;若小時計數(shù)變量滿二四,則將小時計數(shù)變量清零。二.程序設(shè)計先將定時器以及各計數(shù)變量,然后調(diào)用時間顯示地子程序。計時功能由定時器T零地斷服務(wù)子程序來實現(xiàn)。參考程序如下:#include<reg五一.h>unsignedcharin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年魯人新版九年級歷史上冊階段測試試卷含答案
- 2025年冀教版選修3地理上冊階段測試試卷含答案
- 2025年滬科版選修歷史上冊月考試卷含答案
- 2025年統(tǒng)編版2024必修1歷史下冊月考試卷含答案
- 2025年粵教滬科版七年級科學(xué)上冊階段測試試卷含答案
- 二零二五年度國際貿(mào)易融資合同-利率計算與利息收益分配4篇
- 二零二五年度民商法擔(dān)保合同法律咨詢與培訓(xùn)合同4篇
- 二零二五年度苗圃基地苗木良種選育合作合同3篇
- 二零二五年度原創(chuàng)音樂作品錄制授權(quán)合同4篇
- 二零二五年度模板木枋庫存管理及分銷合同3篇
- (高清版)JTGT 3360-01-2018 公路橋梁抗風(fēng)設(shè)計規(guī)范
- 小紅書違禁詞清單(2024年)
- 胰島素注射的護(hù)理
- 云南省普通高中學(xué)生綜合素質(zhì)評價-基本素質(zhì)評價表
- 2024年消防產(chǎn)品項目營銷策劃方案
- 聞道課件播放器
- 03軸流式壓氣機b特性
- 五星級酒店收入測算f
- 大數(shù)據(jù)與人工智能ppt
- 人教版八年級下冊第一單元英語Unit1 單元設(shè)計
- GB/T 9109.5-2017石油和液體石油產(chǎn)品動態(tài)計量第5部分:油量計算
評論
0/150
提交評論