版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第二講定時器計數(shù)器及實驗第一頁,共三十九頁,編輯于2023年,星期四
定時/計數(shù)器及實驗本講內(nèi)容:定時/計數(shù)器的概念MCS51單片機的定時/計數(shù)器定時器的工作模式及控制方法課堂實驗第二頁,共三十九頁,編輯于2023年,星期四定時/計數(shù)器的概念計數(shù)器的定義:可以計量輸入時鐘的個數(shù),結(jié)果以二進制表示,存放在若干字節(jié)(取決于計數(shù)器的長度)的RAM中,該部分存儲單元稱為計數(shù)寄存器。精確的時鐘信號+計數(shù)器=定時器第三頁,共三十九頁,編輯于2023年,星期四MCS51的定時/計數(shù)器MSC51片內(nèi)有兩個16位定時器/計數(shù)器,即定時器0(T0)和定時器1(T1),它們都有定時和事件計數(shù)的功能。其中,T0由兩個8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。每個定時器都可由軟件設(shè)置為定時工作方式或計數(shù)工作方式及其他靈活多樣的可控功能方式(指的是定時器的4種工作模式)。第四頁,共三十九頁,編輯于2023年,星期四定時工作方式在作定時器使用時,輸入的時鐘脈沖是由晶體振蕩器的輸出經(jīng)12分頻后得到的,所以定時器也可看作是對計算機機器周期的計數(shù)器(因為每個機器周期包含12個振蕩周期,故每一個機器周期定時器加1,可以把輸入的時鐘脈沖看成機器周期信號)。故其頻率為晶振頻率的1/12。如果晶振頻率為12MHZ,則定時器每接收一個輸入脈沖的時間為1us。第五頁,共三十九頁,編輯于2023年,星期四計數(shù)工作方式設(shè)置為計數(shù)工作方式時,通過引腳T0(P3.4)和T1(P3.5)對外部脈沖信號計數(shù)。單片機采樣T0或T1的輸入電平,若在前一個機器周期采樣為1,下一個機器周期采樣值為0,則計數(shù)器加1,所以最高計數(shù)頻率為振蕩頻率的1/24。為了確保某個電平在變化之前至少被采樣一次,要求電平保持時間至少是一個完整的機器周期。第六頁,共三十九頁,編輯于2023年,星期四小結(jié)不管是定時還是計數(shù)工作方式,定時器T0或T1在對內(nèi)部時鐘或?qū)ν獠渴录嫈?shù)時,不占用CPU時間,除非定時器/計數(shù)器益處,才可能中斷CPU的當(dāng)前操作。由此可見,定時器是單片機中效率高而且工作靈活的部件。第七頁,共三十九頁,編輯于2023年,星期四中斷講解中斷的概念在程序運行期間,自動響應(yīng)非預(yù)期的緊急事件的發(fā)生。通常是為了避免查詢方式的程序設(shè)計。用得最多的是外部中斷與定時器中斷。外部中斷:按鍵程序定時器中斷:定時與循環(huán)掃描等應(yīng)用場合中斷服務(wù)程序中斷發(fā)生時,主程序暫停,跳轉(zhuǎn)到中斷服務(wù)程序,稱為“響應(yīng)中斷”。執(zhí)行完畢后返回主程序繼續(xù)運行。中斷服務(wù)程序不能被調(diào)用、沒有返回值,編寫程序時不知道會在程序的何處發(fā)生中斷。第八頁,共三十九頁,編輯于2023年,星期四中斷講解C語言中采用一類特殊的函數(shù)來實現(xiàn)中斷服務(wù)程序,叫做“中斷服務(wù)函數(shù)”,格式如下void函數(shù)名()interruptN函數(shù)名可以任意,但一般要用一個有意義的函數(shù)名,例如int0_srv;N代表中斷向量編號,外部INT0的中斷服務(wù)函數(shù)中斷向量號為0,外部中斷INT1的N=2,定時器T0的N=1,定時器T1的N=3。第九頁,共三十九頁,編輯于2023年,星期四如何使用定時器?第十頁,共三十九頁,編輯于2023年,星期四定時器的控制MCS51定時/計數(shù)器相關(guān)的寄存器MCS51定時器/計數(shù)器有四種工作模式,其工作方式的選擇及控制都由兩個特殊功能寄存器(TMOD和TCON)的內(nèi)容來決定。TMOD和TCON寄存器在復(fù)位時其每一位均清零。定時器的方式寄存器TMOD特殊功能寄存器TMOD為定時器的方式控制寄存器,寄存器中每位的定義如圖所示。高4位用于定時器1,低4位用于定時器0。第十一頁,共三十九頁,編輯于2023年,星期四定時器的方式寄存器TMODM1M0:定時器/計數(shù)器四種工作方式選擇第十二頁,共三十九頁,編輯于2023年,星期四定時器的方式寄存器TMODC/T:定時器方式或計數(shù)器方式選擇位。C/T=1時,為計數(shù)器方式;C/T=0時,為定時器方式。GATE定時器/計數(shù)器運行控制位,用來確定對應(yīng)的外部中斷請求引腳(INT0,INT1)是否參與T0或T1的操作控制。當(dāng)GATE=0時,只要定時器控制寄存器TCON中的TR0(或TR1)被置1時,T0(或T1)被允許開始計數(shù)(TCON各位含義見后面敘述);當(dāng)GATE=1時,不僅要TCON中的TR0或TR1置位,還需要P3口的P3.2或P3.3引腳為高電平,才允許計數(shù)。第十三頁,共三十九頁,編輯于2023年,星期四定時器控制寄存器TCONTR0:T0的運行控制位。該位置1或清0用來實現(xiàn)啟動計數(shù)或停止計數(shù)。TF0:T0的溢出中斷標(biāo)志位。當(dāng)T0計數(shù)溢出時由硬件自動置1;在CPU中斷處理時由硬件清為0。TR1:T1的運行控制位,功能同TR0。TF1:T1的溢出中斷標(biāo)志位,功能同TF0。第十四頁,共三十九頁,編輯于2023年,星期四模式1及應(yīng)用MCS51定時器工作于方式1當(dāng)M1:M0設(shè)置為01時,定時器選定為方式1工作。在這種方式下,由TH0和TL0組成一個16位計數(shù)器。當(dāng)GATE=0時,只要TCON中的TR0為1,TL0及TH0組成的16位計數(shù)器就開始計數(shù).當(dāng)GATE=1時,此時僅TR0=1仍不能使計數(shù)器計數(shù),還需要P3.2引腳為1才能使計數(shù)器工作。由此可知,當(dāng)GATE=1和TR0=1時,TH0+TL0是否計數(shù)取決于P3.2引腳的信號,當(dāng)P3.2由0變1時,開始計數(shù);當(dāng)P3.2由1變0時,停止計數(shù),這樣就可以用來測量在P3.2端出現(xiàn)的脈沖寬度。當(dāng)16位計數(shù)器從0或設(shè)定的初值,加1到全“1”以后,再加1就產(chǎn)生溢出。這時,置TCON的TF0位為1,同時把計數(shù)器變?yōu)槿?”第十五頁,共三十九頁,編輯于2023年,星期四MCS51定時器使用步驟(工作于方式1)初始化TMOD,設(shè)置工作模式。根據(jù)定時間隔,計算并初始化TH0與TL0的數(shù)值。計算公式如下。其中FOSC是晶振頻率(單位:Hz),T是定時間隔(單位:S)如果中斷方式使用定時器,則需置位中斷允許控制寄存器(IE)中的ET0或ET1,而且要打開全局中斷(EA=1)。同時要寫好中斷服務(wù)函數(shù)。將TR0或TR1置位,啟動定時器。第十六頁,共三十九頁,編輯于2023年,星期四定時間隔計算公式的推導(dǎo)過程計算時鐘周期:MCS51的定時器的時鐘源就是CPU的工作時鐘,因此時鐘周期t。例如晶振頻率24MHz時,t=0.5*10-6S計算定時間隔經(jīng)歷的時鐘周期數(shù)N。例如期望的定時間隔是10mS,則N=20000。計算TH0:TL0的初值。對于T=10mS,F(xiàn)OSC=24MHz,結(jié)果為45535第十七頁,共三十九頁,編輯于2023年,星期四模式0及應(yīng)用該模式結(jié)構(gòu)與操作幾乎與模式0完全相同,唯一的差別是:16位寄存器(TH0和TL0)只用了13位。其中,TL0的高3位未使用,其余位為整個13位的低5位,TH0占高8位。當(dāng)TL0的低5位溢出時,向TH0進位;TH0溢出時,向中斷標(biāo)志位TF0進位,申請中斷。模式0的最大定時時間:模式1的最大定時時間:第十八頁,共三十九頁,編輯于2023年,星期四模式1實例程序voidinit_tc0(void)//24MHz時定時10mS{ TMOD|=0x01;//定時器模式 TH0=(65535-20000)>>8;//初值高8位 TL0=(65535-20000)&0xff;//初值低8位EA=1;//打開全局中斷 ET0=1;//開定時中斷 TR0=1;//啟動定時器}voidtc0_srv(void)interrupt1//定時器0中斷服務(wù)程序{ TH0=(65535-20000)>>8;//重置初值高8位 TL0=(65535-20000)&0xff;//重置初值低8位}voidmain(void){init_tc0();while(1);//條件總為真,死循環(huán)}第十九頁,共三十九頁,編輯于2023年,星期四蜂鳴器實驗一
中斷方式使用定時器實驗內(nèi)容:使用定時器T0定時,使蜂鳴器每隔1S響一次,一次響一秒鐘。第二十頁,共三十九頁,編輯于2023年,星期四蜂鳴器實驗一
中斷方式使用定時器第二十一頁,共三十九頁,編輯于2023年,星期四蜂鳴器實驗一
中斷方式使用定時器第二十二頁,共三十九頁,編輯于2023年,星期四蜂鳴器實驗一
中斷方式使用定時器為了使OUT3驅(qū)動蜂鳴器,鎖存器U22的所存使能端要為高電平,從而CS4和WR要同時為低電平,所以對P2和P3引腳的操作為:P3&=~(1<<6);P2=0x80;第二十三頁,共三十九頁,編輯于2023年,星期四#include<reg52.h>//必要的頭文件#include<absacc.h>//必要的頭文件sbitBUZ_BIT=P0^3;//控制蜂鳴器的IO口unsignedintcnt;voidinit_tc0(void)//24MHz時定時10mS{ TMOD|=0x01;//定時器模式 TH0=(65535-20000)>>8;//初值高8位 TL0=(65535-20000)&0xff;//初值低8位EA=1;//打開全局中斷 ET0=1;//開定時中斷 TR0=1;//啟動定時器}蜂鳴器實驗一
中斷方式使用定時器第二十四頁,共三十九頁,編輯于2023年,星期四voidtc0_srv(void)interrupt1//定時器0中斷服務(wù)程序{ TH0=(65535-20000)>>8;//重置初值高8位 TL0=(65535-20000)&0xff;//重置初值低8位 if(cnt<100)//10mSX100=1S {cnt++;} else {BUZ_BIT=~BUZ_BIT; cnt=0;//計數(shù)歸零}}voidmain(void){init_tc0(); P3&=~(1<<6); P2=0x88;//此代碼用于選通蜂鳴器,while(1);//條件總為真,死循環(huán)}蜂鳴器實驗一
中斷方式使用定時器第二十五頁,共三十九頁,編輯于2023年,星期四流水燈實驗二實驗內(nèi)容:使八個發(fā)光二極管每隔1S鐘亮一次。
關(guān)閉蜂鳴器的程序代碼:P3&=~(1<<6);P2=0x80;BUZ_BIT=0;P3|=(1<<6);P2=0xE0;P0=0xff;第二十六頁,共三十九頁,編輯于2023年,星期四數(shù)碼管實驗三
定時中斷方式掃描數(shù)碼管八段數(shù)碼管由八段LED構(gòu)成,各LED陰極或陽極并在一起,稱為“位選線”:共陰、共陽,其余8個引腳各自引出,稱為“段選線”,各段可以分別控制。段碼表將需要的字形對應(yīng)的各個段點亮,即可顯示對應(yīng)的數(shù)字。一般將數(shù)字對應(yīng)的段列表做成數(shù)組的形式,稱為段碼表。第二十七頁,共三十九頁,編輯于2023年,星期四數(shù)碼管實驗三
定時中斷方式掃描數(shù)碼管多位合一的數(shù)碼管將多個八段數(shù)碼管的段選線分別并在一起,位選線引出。第二十八頁,共三十九頁,編輯于2023年,星期四靜態(tài)顯示與掃描顯示靜態(tài)顯示共陽數(shù)碼管:公共端接Vcc,用單片機的一個8位IO(以P0為例)口接在段選線上,P0輸出相應(yīng)段碼的反碼即可顯示相應(yīng)的數(shù)字。共陰數(shù)碼管:公共端接地,用單片機的一個8位IO(以P2為例)口接在段選線上,P2輸出相應(yīng)段碼即可顯示相應(yīng)的數(shù)字。MCS51的IO口拉電流能力很弱,不推薦此種接法。掃描顯示將多位數(shù)碼管的共陰/共陽數(shù)碼管的公共端也用IO口加以控制,各個位輪番顯示,利用人眼的視覺暫留效應(yīng),使得看上去所有位一起亮。位選線上的電流可能會很大(例如8位數(shù)碼管一起亮?xí)r,相當(dāng)于64個LED一起發(fā)光的電流),一般要用三極管或者數(shù)字芯片驅(qū)動。第二十九頁,共三十九頁,編輯于2023年,星期四學(xué)習(xí)板上的數(shù)碼管掃描顯示電路數(shù)碼管實驗三
定時中斷方式掃描數(shù)碼管第三十頁,共三十九頁,編輯于2023年,星期四數(shù)碼管實驗三
定時中斷方式掃描數(shù)碼管第三十一頁,共三十九頁,編輯于2023年,星期四動態(tài)掃描程序代碼for(com=0;com<8;com++)//位選計數(shù) { P2=0x00;P3&=0xbf; P0=~(1<<com);//共陰數(shù)碼管,按位取反 P2=0x20;P3&=0xbf;P0=scandata[com];//要顯示的值 my_delay_1ms(1);//延時1mSP0=0;//消隱,防止重影 }第三十二頁,共三十九頁,編輯于2023年,星期四動態(tài)掃描:使8個數(shù)碼管分別顯示0,1,2,3,4,5,6,7使用定時器:使8個數(shù)碼管同時從0顯示到7,時間間隔為1S。數(shù)碼管實驗三
定時中斷方式掃描數(shù)碼管第三十三頁,共三十九頁,編輯于2023年,星期四模式2及應(yīng)用模式2把TL0(或TL1)配置成一個可以自動重裝載的8位定時器/計數(shù)器。TL0計數(shù)溢出時,不僅使溢出中斷標(biāo)志位TF0置1,而且還自動把TH0中的內(nèi)容重新裝載到TL0中。這里TL0用作8位計數(shù)器,TH0用以保存初值。在程序初始化時,TL0和TH0由軟件賦予相同的初值。一旦TL0計數(shù)溢出,便置位TF0,并將TH0中的初值自動裝入TL0,繼續(xù)計數(shù),循環(huán)重復(fù)。第三十四頁,共三十九頁,編輯于2023年,星期四模式2及應(yīng)用用于定時工作方式時,其定時時間為:用于計數(shù)工作方式時,最大計數(shù)長度為256(個外部脈沖)。這種工作模式可以省去用戶軟件中重裝常數(shù)的語句,可產(chǎn)生相當(dāng)精確的定時時間。第三十五頁,共三十九頁,編輯于2023年,星期四模式2程序?qū)嵗齰oidinit_tc0(void)//24MHz時定時0.1mS{ TMOD|=0x02;//定時器模式 TH0=56;//初值高8位 TL0=5
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度板材行業(yè)環(huán)保認(rèn)證與評估合同3篇
- 2025年度毛紗產(chǎn)品售后服務(wù)及維修合同4篇
- 2025年度個人房產(chǎn)買賣及裝修工程管理協(xié)議4篇
- 2025年度二零二五年度環(huán)保產(chǎn)業(yè)供應(yīng)鏈融資保理合同4篇
- 2025年度個人教育貸款借條4篇
- 2025年度毛石擋土墻施工期施工安全管理與教育培訓(xùn)合同4篇
- 2025年度海洋運輸船員勞動合同書3篇
- 2024綜合服務(wù)外包合同標(biāo)準(zhǔn)文本版B版
- 2025年度智能車間租賃安全協(xié)議書規(guī)范文本4篇
- 2024黎塘售樓部裝修合同
- 土地買賣合同參考模板
- 新能源行業(yè)市場分析報告
- 2022年7月2日江蘇事業(yè)單位統(tǒng)考《綜合知識和能力素質(zhì)》(管理崗)
- 初一英語語法練習(xí)
- 房地產(chǎn)運營管理:提升項目品質(zhì)
- 你劃我猜游戲【共159張課件】
- 專升本英語閱讀理解50篇
- 中餐烹飪技法大全
- 新型電力系統(tǒng)研究
- 滋補類用藥的培訓(xùn)
- 北師大版高三數(shù)學(xué)選修4-6初等數(shù)論初步全冊課件【完整版】
評論
0/150
提交評論