版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二講定時(shí)器計(jì)數(shù)器及實(shí)驗(yàn)第一頁,共三十九頁,編輯于2023年,星期四
定時(shí)/計(jì)數(shù)器及實(shí)驗(yàn)本講內(nèi)容:定時(shí)/計(jì)數(shù)器的概念MCS51單片機(jī)的定時(shí)/計(jì)數(shù)器定時(shí)器的工作模式及控制方法課堂實(shí)驗(yàn)第二頁,共三十九頁,編輯于2023年,星期四定時(shí)/計(jì)數(shù)器的概念計(jì)數(shù)器的定義:可以計(jì)量輸入時(shí)鐘的個(gè)數(shù),結(jié)果以二進(jìn)制表示,存放在若干字節(jié)(取決于計(jì)數(shù)器的長(zhǎng)度)的RAM中,該部分存儲(chǔ)單元稱為計(jì)數(shù)寄存器。精確的時(shí)鐘信號(hào)+計(jì)數(shù)器=定時(shí)器第三頁,共三十九頁,編輯于2023年,星期四MCS51的定時(shí)/計(jì)數(shù)器MSC51片內(nèi)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,即定時(shí)器0(T0)和定時(shí)器1(T1),它們都有定時(shí)和事件計(jì)數(shù)的功能。其中,T0由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成。每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式及其他靈活多樣的可控功能方式(指的是定時(shí)器的4種工作模式)。第四頁,共三十九頁,編輯于2023年,星期四定時(shí)工作方式在作定時(shí)器使用時(shí),輸入的時(shí)鐘脈沖是由晶體振蕩器的輸出經(jīng)12分頻后得到的,所以定時(shí)器也可看作是對(duì)計(jì)算機(jī)機(jī)器周期的計(jì)數(shù)器(因?yàn)槊總€(gè)機(jī)器周期包含12個(gè)振蕩周期,故每一個(gè)機(jī)器周期定時(shí)器加1,可以把輸入的時(shí)鐘脈沖看成機(jī)器周期信號(hào))。故其頻率為晶振頻率的1/12。如果晶振頻率為12MHZ,則定時(shí)器每接收一個(gè)輸入脈沖的時(shí)間為1us。第五頁,共三十九頁,編輯于2023年,星期四計(jì)數(shù)工作方式設(shè)置為計(jì)數(shù)工作方式時(shí),通過引腳T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)計(jì)數(shù)。單片機(jī)采樣T0或T1的輸入電平,若在前一個(gè)機(jī)器周期采樣為1,下一個(gè)機(jī)器周期采樣值為0,則計(jì)數(shù)器加1,所以最高計(jì)數(shù)頻率為振蕩頻率的1/24。為了確保某個(gè)電平在變化之前至少被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期。第六頁,共三十九頁,編輯于2023年,星期四小結(jié)不管是定時(shí)還是計(jì)數(shù)工作方式,定時(shí)器T0或T1在對(duì)內(nèi)部時(shí)鐘或?qū)ν獠渴录?jì)數(shù)時(shí),不占用CPU時(shí)間,除非定時(shí)器/計(jì)數(shù)器益處,才可能中斷CPU的當(dāng)前操作。由此可見,定時(shí)器是單片機(jī)中效率高而且工作靈活的部件。第七頁,共三十九頁,編輯于2023年,星期四中斷講解中斷的概念在程序運(yùn)行期間,自動(dòng)響應(yīng)非預(yù)期的緊急事件的發(fā)生。通常是為了避免查詢方式的程序設(shè)計(jì)。用得最多的是外部中斷與定時(shí)器中斷。外部中斷:按鍵程序定時(shí)器中斷:定時(shí)與循環(huán)掃描等應(yīng)用場(chǎng)合中斷服務(wù)程序中斷發(fā)生時(shí),主程序暫停,跳轉(zhuǎn)到中斷服務(wù)程序,稱為“響應(yīng)中斷”。執(zhí)行完畢后返回主程序繼續(xù)運(yùn)行。中斷服務(wù)程序不能被調(diào)用、沒有返回值,編寫程序時(shí)不知道會(huì)在程序的何處發(fā)生中斷。第八頁,共三十九頁,編輯于2023年,星期四中斷講解C語言中采用一類特殊的函數(shù)來實(shí)現(xiàn)中斷服務(wù)程序,叫做“中斷服務(wù)函數(shù)”,格式如下void函數(shù)名()interruptN函數(shù)名可以任意,但一般要用一個(gè)有意義的函數(shù)名,例如int0_srv;N代表中斷向量編號(hào),外部INT0的中斷服務(wù)函數(shù)中斷向量號(hào)為0,外部中斷INT1的N=2,定時(shí)器T0的N=1,定時(shí)器T1的N=3。第九頁,共三十九頁,編輯于2023年,星期四如何使用定時(shí)器?第十頁,共三十九頁,編輯于2023年,星期四定時(shí)器的控制MCS51定時(shí)/計(jì)數(shù)器相關(guān)的寄存器MCS51定時(shí)器/計(jì)數(shù)器有四種工作模式,其工作方式的選擇及控制都由兩個(gè)特殊功能寄存器(TMOD和TCON)的內(nèi)容來決定。TMOD和TCON寄存器在復(fù)位時(shí)其每一位均清零。定時(shí)器的方式寄存器TMOD特殊功能寄存器TMOD為定時(shí)器的方式控制寄存器,寄存器中每位的定義如圖所示。高4位用于定時(shí)器1,低4位用于定時(shí)器0。第十一頁,共三十九頁,編輯于2023年,星期四定時(shí)器的方式寄存器TMODM1M0:定時(shí)器/計(jì)數(shù)器四種工作方式選擇第十二頁,共三十九頁,編輯于2023年,星期四定時(shí)器的方式寄存器TMODC/T:定時(shí)器方式或計(jì)數(shù)器方式選擇位。C/T=1時(shí),為計(jì)數(shù)器方式;C/T=0時(shí),為定時(shí)器方式。GATE定時(shí)器/計(jì)數(shù)器運(yùn)行控制位,用來確定對(duì)應(yīng)的外部中斷請(qǐng)求引腳(INT0,INT1)是否參與T0或T1的操作控制。當(dāng)GATE=0時(shí),只要定時(shí)器控制寄存器TCON中的TR0(或TR1)被置1時(shí),T0(或T1)被允許開始計(jì)數(shù)(TCON各位含義見后面敘述);當(dāng)GATE=1時(shí),不僅要TCON中的TR0或TR1置位,還需要P3口的P3.2或P3.3引腳為高電平,才允許計(jì)數(shù)。第十三頁,共三十九頁,編輯于2023年,星期四定時(shí)器控制寄存器TCONTR0:T0的運(yùn)行控制位。該位置1或清0用來實(shí)現(xiàn)啟動(dòng)計(jì)數(shù)或停止計(jì)數(shù)。TF0:T0的溢出中斷標(biāo)志位。當(dāng)T0計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置1;在CPU中斷處理時(shí)由硬件清為0。TR1:T1的運(yùn)行控制位,功能同TR0。TF1:T1的溢出中斷標(biāo)志位,功能同TF0。第十四頁,共三十九頁,編輯于2023年,星期四模式1及應(yīng)用MCS51定時(shí)器工作于方式1當(dāng)M1:M0設(shè)置為01時(shí),定時(shí)器選定為方式1工作。在這種方式下,由TH0和TL0組成一個(gè)16位計(jì)數(shù)器。當(dāng)GATE=0時(shí),只要TCON中的TR0為1,TL0及TH0組成的16位計(jì)數(shù)器就開始計(jì)數(shù).當(dāng)GATE=1時(shí),此時(shí)僅TR0=1仍不能使計(jì)數(shù)器計(jì)數(shù),還需要P3.2引腳為1才能使計(jì)數(shù)器工作。由此可知,當(dāng)GATE=1和TR0=1時(shí),TH0+TL0是否計(jì)數(shù)取決于P3.2引腳的信號(hào),當(dāng)P3.2由0變1時(shí),開始計(jì)數(shù);當(dāng)P3.2由1變0時(shí),停止計(jì)數(shù),這樣就可以用來測(cè)量在P3.2端出現(xiàn)的脈沖寬度。當(dāng)16位計(jì)數(shù)器從0或設(shè)定的初值,加1到全“1”以后,再加1就產(chǎn)生溢出。這時(shí),置TCON的TF0位為1,同時(shí)把計(jì)數(shù)器變?yōu)槿?”第十五頁,共三十九頁,編輯于2023年,星期四MCS51定時(shí)器使用步驟(工作于方式1)初始化TMOD,設(shè)置工作模式。根據(jù)定時(shí)間隔,計(jì)算并初始化TH0與TL0的數(shù)值。計(jì)算公式如下。其中FOSC是晶振頻率(單位:Hz),T是定時(shí)間隔(單位:S)如果中斷方式使用定時(shí)器,則需置位中斷允許控制寄存器(IE)中的ET0或ET1,而且要打開全局中斷(EA=1)。同時(shí)要寫好中斷服務(wù)函數(shù)。將TR0或TR1置位,啟動(dòng)定時(shí)器。第十六頁,共三十九頁,編輯于2023年,星期四定時(shí)間隔計(jì)算公式的推導(dǎo)過程計(jì)算時(shí)鐘周期:MCS51的定時(shí)器的時(shí)鐘源就是CPU的工作時(shí)鐘,因此時(shí)鐘周期t。例如晶振頻率24MHz時(shí),t=0.5*10-6S計(jì)算定時(shí)間隔經(jīng)歷的時(shí)鐘周期數(shù)N。例如期望的定時(shí)間隔是10mS,則N=20000。計(jì)算TH0:TL0的初值。對(duì)于T=10mS,F(xiàn)OSC=24MHz,結(jié)果為45535第十七頁,共三十九頁,編輯于2023年,星期四模式0及應(yīng)用該模式結(jié)構(gòu)與操作幾乎與模式0完全相同,唯一的差別是:16位寄存器(TH0和TL0)只用了13位。其中,TL0的高3位未使用,其余位為整個(gè)13位的低5位,TH0占高8位。當(dāng)TL0的低5位溢出時(shí),向TH0進(jìn)位;TH0溢出時(shí),向中斷標(biāo)志位TF0進(jìn)位,申請(qǐng)中斷。模式0的最大定時(shí)時(shí)間:模式1的最大定時(shí)時(shí)間:第十八頁,共三十九頁,編輯于2023年,星期四模式1實(shí)例程序voidinit_tc0(void)//24MHz時(shí)定時(shí)10mS{ TMOD|=0x01;//定時(shí)器模式 TH0=(65535-20000)>>8;//初值高8位 TL0=(65535-20000)&0xff;//初值低8位EA=1;//打開全局中斷 ET0=1;//開定時(shí)中斷 TR0=1;//啟動(dòng)定時(shí)器}voidtc0_srv(void)interrupt1//定時(shí)器0中斷服務(wù)程序{ TH0=(65535-20000)>>8;//重置初值高8位 TL0=(65535-20000)&0xff;//重置初值低8位}voidmain(void){init_tc0();while(1);//條件總為真,死循環(huán)}第十九頁,共三十九頁,編輯于2023年,星期四蜂鳴器實(shí)驗(yàn)一
中斷方式使用定時(shí)器實(shí)驗(yàn)內(nèi)容:使用定時(shí)器T0定時(shí),使蜂鳴器每隔1S響一次,一次響一秒鐘。第二十頁,共三十九頁,編輯于2023年,星期四蜂鳴器實(shí)驗(yàn)一
中斷方式使用定時(shí)器第二十一頁,共三十九頁,編輯于2023年,星期四蜂鳴器實(shí)驗(yàn)一
中斷方式使用定時(shí)器第二十二頁,共三十九頁,編輯于2023年,星期四蜂鳴器實(shí)驗(yàn)一
中斷方式使用定時(shí)器為了使OUT3驅(qū)動(dòng)蜂鳴器,鎖存器U22的所存使能端要為高電平,從而CS4和WR要同時(shí)為低電平,所以對(duì)P2和P3引腳的操作為:P3&=~(1<<6);P2=0x80;第二十三頁,共三十九頁,編輯于2023年,星期四#include<reg52.h>//必要的頭文件#include<absacc.h>//必要的頭文件sbitBUZ_BIT=P0^3;//控制蜂鳴器的IO口unsignedintcnt;voidinit_tc0(void)//24MHz時(shí)定時(shí)10mS{ TMOD|=0x01;//定時(shí)器模式 TH0=(65535-20000)>>8;//初值高8位 TL0=(65535-20000)&0xff;//初值低8位EA=1;//打開全局中斷 ET0=1;//開定時(shí)中斷 TR0=1;//啟動(dòng)定時(shí)器}蜂鳴器實(shí)驗(yàn)一
中斷方式使用定時(shí)器第二十四頁,共三十九頁,編輯于2023年,星期四voidtc0_srv(void)interrupt1//定時(shí)器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;//計(jì)數(shù)歸零}}voidmain(void){init_tc0(); P3&=~(1<<6); P2=0x88;//此代碼用于選通蜂鳴器,while(1);//條件總為真,死循環(huán)}蜂鳴器實(shí)驗(yàn)一
中斷方式使用定時(shí)器第二十五頁,共三十九頁,編輯于2023年,星期四流水燈實(shí)驗(yàn)二實(shí)驗(yàn)內(nèi)容:使八個(gè)發(fā)光二極管每隔1S鐘亮一次。
關(guān)閉蜂鳴器的程序代碼:P3&=~(1<<6);P2=0x80;BUZ_BIT=0;P3|=(1<<6);P2=0xE0;P0=0xff;第二十六頁,共三十九頁,編輯于2023年,星期四數(shù)碼管實(shí)驗(yàn)三
定時(shí)中斷方式掃描數(shù)碼管八段數(shù)碼管由八段LED構(gòu)成,各LED陰極或陽極并在一起,稱為“位選線”:共陰、共陽,其余8個(gè)引腳各自引出,稱為“段選線”,各段可以分別控制。段碼表將需要的字形對(duì)應(yīng)的各個(gè)段點(diǎn)亮,即可顯示對(duì)應(yīng)的數(shù)字。一般將數(shù)字對(duì)應(yīng)的段列表做成數(shù)組的形式,稱為段碼表。第二十七頁,共三十九頁,編輯于2023年,星期四數(shù)碼管實(shí)驗(yàn)三
定時(shí)中斷方式掃描數(shù)碼管多位合一的數(shù)碼管將多個(gè)八段數(shù)碼管的段選線分別并在一起,位選線引出。第二十八頁,共三十九頁,編輯于2023年,星期四靜態(tài)顯示與掃描顯示靜態(tài)顯示共陽數(shù)碼管:公共端接Vcc,用單片機(jī)的一個(gè)8位IO(以P0為例)口接在段選線上,P0輸出相應(yīng)段碼的反碼即可顯示相應(yīng)的數(shù)字。共陰數(shù)碼管:公共端接地,用單片機(jī)的一個(gè)8位IO(以P2為例)口接在段選線上,P2輸出相應(yīng)段碼即可顯示相應(yīng)的數(shù)字。MCS51的IO口拉電流能力很弱,不推薦此種接法。掃描顯示將多位數(shù)碼管的共陰/共陽數(shù)碼管的公共端也用IO口加以控制,各個(gè)位輪番顯示,利用人眼的視覺暫留效應(yīng),使得看上去所有位一起亮。位選線上的電流可能會(huì)很大(例如8位數(shù)碼管一起亮?xí)r,相當(dāng)于64個(gè)LED一起發(fā)光的電流),一般要用三極管或者數(shù)字芯片驅(qū)動(dòng)。第二十九頁,共三十九頁,編輯于2023年,星期四學(xué)習(xí)板上的數(shù)碼管掃描顯示電路數(shù)碼管實(shí)驗(yàn)三
定時(shí)中斷方式掃描數(shù)碼管第三十頁,共三十九頁,編輯于2023年,星期四數(shù)碼管實(shí)驗(yàn)三
定時(shí)中斷方式掃描數(shù)碼管第三十一頁,共三十九頁,編輯于2023年,星期四動(dòng)態(tài)掃描程序代碼for(com=0;com<8;com++)//位選計(jì)數(shù) { P2=0x00;P3&=0xbf; P0=~(1<<com);//共陰數(shù)碼管,按位取反 P2=0x20;P3&=0xbf;P0=scandata[com];//要顯示的值 my_delay_1ms(1);//延時(shí)1mSP0=0;//消隱,防止重影 }第三十二頁,共三十九頁,編輯于2023年,星期四動(dòng)態(tài)掃描:使8個(gè)數(shù)碼管分別顯示0,1,2,3,4,5,6,7使用定時(shí)器:使8個(gè)數(shù)碼管同時(shí)從0顯示到7,時(shí)間間隔為1S。數(shù)碼管實(shí)驗(yàn)三
定時(shí)中斷方式掃描數(shù)碼管第三十三頁,共三十九頁,編輯于2023年,星期四模式2及應(yīng)用模式2把TL0(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中。這里TL0用作8位計(jì)數(shù)器,TH0用以保存初值。在程序初始化時(shí),TL0和TH0由軟件賦予相同的初值。一旦TL0計(jì)數(shù)溢出,便置位TF0,并將TH0中的初值自動(dòng)裝入TL0,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)。第三十四頁,共三十九頁,編輯于2023年,星期四模式2及應(yīng)用用于定時(shí)工作方式時(shí),其定時(shí)時(shí)間為:用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)長(zhǎng)度為256(個(gè)外部脈沖)。這種工作模式可以省去用戶軟件中重裝常數(shù)的語句,可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間。第三十五頁,共三十九頁,編輯于2023年,星期四模式2程序?qū)嵗齰oidinit_tc0(void)//24MHz時(shí)定時(shí)0.1mS{ TMOD|=0x02;//定時(shí)器模式 TH0=56;//初值高8位 TL0=5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 4628-3:2024 EN Paints and varnishes - Evaluation of quantity and size of defects,and of intensity of uniform changes in appearance - Part 3: Assessment of degree of rus
- 企業(yè)晚宴祝酒詞
- 資料《小王子》讀后感
- DB12T 076-1997 太陽熱水器衛(wèi)生技術(shù)條件
- 中秋晚會(huì)領(lǐng)導(dǎo)致辭范文(8篇)
- 秋天村莊課件教學(xué)課件
- 燙傷課件幼兒教學(xué)課件
- 部編版歷史九年級(jí)上冊(cè)第三單元 第9課《中世紀(jì)城市和大學(xué)的興起》說課稿
- 校園足球課件教學(xué)課件
- 葉酸孕婦課件教學(xué)課件
- 精細(xì)化工概論-05洗滌劑
- 速賣通介紹課件
- 腦梗死PPT教學(xué)講解課件
- 腦卒中患者語言康復(fù)訓(xùn)練課件
- 古代茶具的演變課件
- 55三相異步電動(dòng)機(jī)的銘牌與型號(hào)電機(jī)與變壓器勞動(dòng)第五版課件
- 華為校招硬件技術(shù)工程師機(jī)考試題
- 蘇科版九上數(shù)學(xué)專題 隱圓問題課件
- 開放水域潛水員理論知識(shí)考試試題與答案
- 遼寧省地圖課件介紹
- 《設(shè)計(jì)三大構(gòu)成》第四章課件
評(píng)論
0/150
提交評(píng)論