版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章 MCS-51系列單片機(jī)的定時(shí)器/計(jì)數(shù)器第六章 MCS-51系列單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)器/計(jì)數(shù)器是單片機(jī)系統(tǒng)一個(gè)重要的部件,其工作方式靈活、編程簡(jiǎn)單、使用方便,可用來(lái)實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測(cè)量、脈寬測(cè)量、信號(hào)發(fā)生、信號(hào)檢測(cè)等功能。此外,定時(shí)/計(jì)數(shù)器還可作為串行通信中波特率發(fā)生器。因此,對(duì)定時(shí)器/計(jì)數(shù)器的掌握和應(yīng)用也是單片機(jī)應(yīng)用技術(shù)的關(guān)鍵問(wèn)題。定時(shí)器/計(jì)數(shù)器是單片機(jī)系統(tǒng)一個(gè)重要的部件,其工作方式靈活、編 在AT89C51單片機(jī)內(nèi)部有2個(gè)定時(shí)器計(jì)數(shù)器,分別稱為定時(shí)器計(jì)數(shù)器0、定時(shí)器計(jì)數(shù)器1。每個(gè)定時(shí)器計(jì)數(shù)器都具有計(jì)數(shù)和定時(shí)兩種功能,并具有34種工作方式。第一節(jié) 定時(shí)器/計(jì)數(shù)器工作原理
2、在AT89C51單片機(jī)內(nèi)部有2個(gè)定時(shí)器計(jì)數(shù)器,分別稱為定 51單片機(jī)定時(shí)器/計(jì)數(shù)器的邏輯結(jié)構(gòu)如圖6-1,可以看出,16位的定時(shí)/計(jì)數(shù)器分別由兩個(gè)8位專用寄存器組成,即:T0由TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成,訪問(wèn)地址依次為8AH-8DH。這些寄存器用于存放定時(shí)或計(jì)數(shù)初值,均可單獨(dú)訪問(wèn)。此外,其內(nèi)部還有一個(gè)8位的定時(shí)器方式寄存器TMOD和一個(gè)8位的定時(shí)控制寄存器TCON。這些寄存器之間是通過(guò)內(nèi)部總線和控制邏輯電路連接起來(lái)的。TMOD主要是用于選定定時(shí)器的工作方式,TCON主要是用于控制定時(shí)器的啟動(dòng)停止,此外TCON還可以保存T0、T1的溢出和中斷標(biāo)志。當(dāng)定時(shí)器工作在計(jì)數(shù)方式時(shí),外部事
3、件通過(guò)引腳T0(P3.4)和T1(P3.5)輸入。 6.1.1定時(shí)器計(jì)數(shù)器內(nèi)部結(jié)構(gòu)及工作原理 51單片機(jī)定時(shí)器/計(jì)數(shù)器的邏輯結(jié)構(gòu)如圖6-1,可以看出,1圖6-1 定時(shí)器/計(jì)數(shù)器邏輯結(jié)構(gòu)圖圖6-1 定時(shí)器/計(jì)數(shù)器邏輯結(jié)構(gòu)圖 以定時(shí)器/計(jì)數(shù)器0為例,其內(nèi)部結(jié)構(gòu)如圖6-2所示。可以看出定時(shí)/計(jì)數(shù)器內(nèi)的核心器件是加1計(jì)數(shù)器,加1計(jì)數(shù)器由兩個(gè)特殊功能寄存器TH0與TL0組成。當(dāng)定時(shí)計(jì)數(shù)器工作于定時(shí)方式,加1脈沖由系統(tǒng)時(shí)鐘fosc經(jīng)12分頻后產(chǎn)生。當(dāng)定時(shí)計(jì)數(shù)器工作于計(jì)數(shù)方式,加1脈沖由T0引腳直接提供。定時(shí)器工作于定時(shí)還是計(jì)數(shù)方式,取決于選擇開(kāi)關(guān) ,當(dāng) =0時(shí)工作于定時(shí)方式, =1時(shí)工作于計(jì)數(shù)方式。加1脈
4、沖要經(jīng)過(guò)啟動(dòng)開(kāi)關(guān)才能到達(dá)加1計(jì)數(shù)器,啟動(dòng)開(kāi)關(guān)由與門(mén)的輸出端控制,其輸入端分別接啟動(dòng)控制位TR0與或門(mén)輸出端?;蜷T(mén)的輸入端分別接GATE位與外部中斷引腳 。啟動(dòng)開(kāi)關(guān)的控制方式將在下文中介紹。當(dāng)加1 計(jì)數(shù)器溢出時(shí),由硬件自動(dòng)將中斷標(biāo)志TF0置1,以此向CPU發(fā)中斷請(qǐng)求。 以定時(shí)器/計(jì)數(shù)器0為例,其內(nèi)部結(jié)構(gòu)如圖6-2所示??梢钥闯鰣D6-2 定時(shí)器/計(jì)數(shù)器0內(nèi)部結(jié)構(gòu)圖圖6-2 定時(shí)器/計(jì)數(shù)器0內(nèi)部結(jié)構(gòu)圖外部信號(hào)是加到T0或T1端引腳(P3口第二功能P3.4 P3.5引腳),用T0(P34)、T1(P35)兩個(gè)引腳輸入定時(shí)計(jì)數(shù)器0與定時(shí)計(jì)數(shù)器1計(jì)數(shù)脈沖信號(hào),計(jì)數(shù)方式下是對(duì)外來(lái)負(fù)脈沖進(jìn)行計(jì)數(shù),且到達(dá)T0(
5、T1)端時(shí)不一定有規(guī)律。計(jì)數(shù)器在每個(gè)機(jī)器周的S5P2期間采樣外部輸入信號(hào),若一個(gè)周期的采樣值為1,下一個(gè)周期的采樣值為0,則計(jì)數(shù)器加1,說(shuō)明識(shí)別一個(gè)從10的跳變需要兩個(gè)機(jī)器周期,所以對(duì)外部輸入信號(hào)最高的計(jì)數(shù)速率是晶振頻率的1/24(12機(jī)器周期=振蕩周期;1/振蕩周期=振蕩頻率)。同時(shí)外部輸入信號(hào)的高電平與低電平保持時(shí)間均需大于一個(gè)機(jī)器周期。6.1.2計(jì)數(shù)功能 外部信號(hào)是加到T0或T1端引腳(P3口第二功能P3.4 P3定時(shí)的實(shí)質(zhì)也是計(jì)數(shù),不過(guò)定時(shí)時(shí)間不是對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù),而是對(duì)CPU的內(nèi)部時(shí)鐘脈沖的12分頻(機(jī)器周期)進(jìn)行計(jì)數(shù),即每過(guò)一個(gè)機(jī)器周期就加一次1。例如:設(shè)計(jì)數(shù)器是8位的TL0,計(jì)
6、數(shù)初值為100,CPU時(shí)鐘頻率為12MHz,則機(jī)器周期為1s,當(dāng)產(chǎn)生計(jì)數(shù)溢出時(shí),表示定時(shí)了(256-100)1s=156s,從而就起到了定時(shí)器的作用。一旦定時(shí)器/計(jì)數(shù)器被設(shè)置成某種工作方式,它就會(huì)按設(shè)定的工作方式獨(dú)立運(yùn)行,不再占用CPU的操作時(shí)間,直到加1計(jì)數(shù)器計(jì)滿溢出,才向CPU發(fā)送中斷請(qǐng)求。6.1.3定時(shí)功能定時(shí)的實(shí)質(zhì)也是計(jì)數(shù),不過(guò)定時(shí)時(shí)間不是對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù),而是 定時(shí)器/計(jì)數(shù)器的核心是一個(gè)加1計(jì)數(shù)器,16位定時(shí)器/計(jì)數(shù)器分別由2個(gè)8位的專用寄存器組成:T0由TL0和TH0組成,T1由TL1和TH1組成,這些寄存器存放定時(shí)或計(jì)數(shù)初值,每個(gè)定時(shí)器都可以由軟件設(shè)置成定時(shí)工作方式或計(jì)數(shù)工作方
7、式,工作方式的設(shè)定由工作方式寄存器TMOD設(shè)置,由控制寄存器TCON控制。第二節(jié) 定時(shí)器/計(jì)數(shù)器有關(guān)寄存器 定時(shí)器/計(jì)數(shù)器的核心是一個(gè)加1計(jì)數(shù)器,16位定時(shí)器/計(jì)數(shù)器寄存器TMOD的字節(jié)地址為89H,其不可以進(jìn)行位尋址,各位定義如表6-1。6.2.1定時(shí)器/計(jì)數(shù)器的工作方式寄存器TMOD寄存器TMOD的字節(jié)地址為89H,其不可以進(jìn)行位尋址,各位定1、GATE-選通控制位(門(mén)控位)GATE=0,只要用軟件對(duì)TR0(或TR1)置1就啟動(dòng)定時(shí)器;GATE=l,只有外部中斷INT1(或INT0)引腳為高電平,且用軟件對(duì)TR0(或TR1)置1才啟動(dòng)定時(shí)器。2、C/ -工作方式選擇位 C/ =0,設(shè)置定時(shí)
8、器/計(jì)數(shù)器為定時(shí)工作方式; C/ =1,設(shè)置定時(shí)器/計(jì)數(shù)器為計(jì)數(shù)工作方式。1、GATE-選通控制位(門(mén)控位)3、M1M0-工作方式控制位 定時(shí)器/計(jì)數(shù)器由M1和M0的不同的組合選擇不同的工作方式,如下: M1M0=00 方式0 13位計(jì)數(shù)器 M1M0=01 方式1 16位計(jì)數(shù)器 M1M0=10 方式2 可再裝入8位計(jì)數(shù)器 M1M0=11 方式3 T0:可分成兩個(gè)8位計(jì)數(shù)器; T1:停止計(jì)數(shù)3、M1M0-工作方式控制位TCON用于控制定時(shí)器的啟動(dòng)、停止、溢出和中斷,可位尋址,其各位定義如表6-2。 6.2.2定時(shí)器/計(jì)數(shù)器控制寄存器TCONTCON用于控制定時(shí)器的啟動(dòng)、停止、溢出和中斷,可位尋址
9、,其 1、TF1和TF0-計(jì)數(shù)溢出標(biāo)志位 T1/T0溢出時(shí)由硬件置1,并申請(qǐng)中斷,CPU相應(yīng)中斷后,又由硬件清0。TF1和TF0也可以由軟件清0。(可通過(guò)軟件查詢TFx已否為0來(lái)判斷溢出,x=0或1)2、TR1和TR0-運(yùn)行控制位 由軟件置1或清0,用來(lái)啟動(dòng)或停止定時(shí)器。 TR0(TR1)=0,則定時(shí)器/計(jì)數(shù)器0(定時(shí)器/計(jì)數(shù)器1) 停止定時(shí)器/計(jì)數(shù)器工作; TR0(TR1)=1,則啟動(dòng)定時(shí)器/計(jì)數(shù)器0(定時(shí)器/計(jì)數(shù)器1)工作。3、IE1/IE0-外部中斷1/外部中斷0請(qǐng)求標(biāo)志,中斷章節(jié)已介紹,此處不再說(shuō)明。 4、IT1/IT0-外部中斷1/外部中斷0觸發(fā)方式選擇位,中斷章節(jié)已介紹,此處不再說(shuō)
10、明。 1、TF1和TF0-計(jì)數(shù)溢出標(biāo)志位如果定時(shí)器/計(jì)數(shù)器在工作時(shí),用中斷方式來(lái)判斷其是否溢出,則就需要設(shè)定中斷允許寄存器IE,表6-3為中斷允許控制寄存器各位定義。6.2.3中斷允許控制寄存器(IE)1、EA-中斷允許總控制位 EA=1,CPU開(kāi)放中斷;EA=0,CPU禁止中斷請(qǐng)求。2、ET0和ET1-定時(shí)/計(jì)數(shù)中斷允許控制位 ET0(ET1)=0,禁止定時(shí)器/計(jì)數(shù)器0(定時(shí)器/計(jì)數(shù)器1)溢出中斷; ET0(ET1)=1,允許定時(shí)器/計(jì)數(shù)器0(定時(shí)器/計(jì)數(shù)器1)溢出中斷。如果定時(shí)器/計(jì)數(shù)器在工作時(shí),用中斷方式來(lái)判斷其是否溢出,則就 對(duì)定時(shí)器/計(jì)數(shù)器的工作方式寄存器TMOD中的M1 M0位進(jìn)行
11、設(shè)置,可以使得定時(shí)器/計(jì)數(shù)器工作在4種工作方式下,下面對(duì)這4種方式做一下介紹。6.3.1定時(shí)器/計(jì)數(shù)器的工作方式0 (1)計(jì)數(shù)結(jié)構(gòu) 在工作方式0下,定時(shí)器/計(jì)數(shù)器采用13位計(jì)數(shù)結(jié)構(gòu)。(2)工作方式0的特點(diǎn) 兩個(gè)定時(shí)器/計(jì)數(shù)器T0、T1均可在方式0下工作; 13位計(jì)數(shù)結(jié)構(gòu),其計(jì)數(shù)器由THx全部8位和TLx的低5位構(gòu)成(高3位不用),x=0或1; 當(dāng)產(chǎn)生計(jì)數(shù)溢出時(shí),由硬件自動(dòng)給計(jì)數(shù)溢出標(biāo)志位TF0(TF1)置1,由軟件給THx、TLx重新置計(jì)數(shù)初值,x=0或1。 第三節(jié) 定時(shí)器/計(jì)數(shù)器工作方式 對(duì)定時(shí)器/計(jì)數(shù)器的工作方式寄存器TMOD中的M1 M0位進(jìn)(3)計(jì)數(shù)/定時(shí)范圍在工作方式0下,當(dāng)采用計(jì)數(shù)
12、工作方式時(shí),由于是13位的計(jì)數(shù)結(jié)構(gòu),所以計(jì)數(shù)范圍是:18192。當(dāng)采用定時(shí)工作方式時(shí),其定時(shí)時(shí)間=(213-計(jì)數(shù)初值)機(jī)器周期,例如:設(shè)單片機(jī)的晶振頻率f=12MHz,則機(jī)器周期為1s,從而定時(shí)范圍為1s8192s。應(yīng)說(shuō)明的是,工作方式0采用13位計(jì)數(shù)器是為了與早期的產(chǎn)品兼容,計(jì)數(shù)初值的高8位和低5位的確定比較麻煩,所以在實(shí)際應(yīng)用中常用16位的工作方式1取代。 (3)計(jì)數(shù)/定時(shí)范圍(1)計(jì)數(shù)結(jié)構(gòu) 工作方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式。 (2)工作方式1的特點(diǎn) 兩個(gè)定時(shí)器/計(jì)數(shù)器均可在工作方式1下工作; 16位計(jì)數(shù)結(jié)構(gòu),其計(jì)數(shù)器由THx的全部8位和TLx的全部8位構(gòu)成,x=0或1; 當(dāng)產(chǎn)生計(jì)數(shù)溢
13、出時(shí),由硬件自動(dòng)給計(jì)數(shù)溢出標(biāo)志位TF0(TF1)置1,由軟件給THx、TLx重新置計(jì)數(shù)初值, x=0或1。 (3)計(jì)數(shù)/定時(shí)范圍 在工作方式1下,當(dāng)采用計(jì)數(shù)工作方式時(shí),由于是16位的計(jì)數(shù)結(jié)構(gòu),所以計(jì)數(shù)范圍是:165536。當(dāng)采用定時(shí)工作方式時(shí),其定時(shí)時(shí)間=(216-計(jì)數(shù)初值)機(jī)器周期,例如:設(shè)單片機(jī)的晶振頻率f=12MHz,則機(jī)器周期為1s,從而定時(shí)范圍:1s65536s。6.3.2定時(shí)器/計(jì)數(shù)器的工作方式1 (1)計(jì)數(shù)結(jié)構(gòu) 6.3.2定時(shí)器/計(jì)數(shù)器的工作方式1 工作方式2是一種自動(dòng)再裝入預(yù)置數(shù)的工作方式,前兩種工作方式當(dāng)工作溢出后,THx和TLx內(nèi)容就變?yōu)?,若想使用則需要重新對(duì)THx和TL
14、x設(shè)定初值。而在工作方式2下,THx和TLx的初值一旦設(shè)定,如不需改變的話則不用再對(duì)THx和TLx重新設(shè)定, x=0或1。(1)計(jì)數(shù)結(jié)構(gòu) 工作方式2是8位計(jì)數(shù)結(jié)構(gòu)的工作方式,計(jì)數(shù)器由THx全部8位和TLx全部8位構(gòu)成,其中THx存放預(yù)置數(shù),而TxL參與定時(shí)/計(jì)數(shù)工作, x=0或1。 6.3.3定時(shí)器/計(jì)數(shù)器的工作方式2工作方式2是一種自動(dòng)再裝入預(yù)置數(shù)的工作方式,前兩種工作方式當(dāng)(2)工作方式2的特點(diǎn) 兩個(gè)定時(shí)器/計(jì)數(shù)器均可在工作方式2下工作; 8位計(jì)數(shù)結(jié)構(gòu),其計(jì)數(shù)器TLx的8位構(gòu)成, x=0或1; 當(dāng)產(chǎn)生計(jì)數(shù)溢出時(shí),由硬件自動(dòng)給計(jì)數(shù)溢出標(biāo)志位TF0(TF1)置1,無(wú)需對(duì)THx、TLx重新置計(jì)數(shù)
15、初值, x=0或1。 (3)計(jì)數(shù)/定時(shí)范圍 在工作方式2下,當(dāng)采用計(jì)數(shù)工作方式時(shí),由于是8位的計(jì)數(shù)結(jié)構(gòu),所以計(jì)數(shù)范圍是:1256。當(dāng)采用定時(shí)工作方式時(shí),其定時(shí)時(shí)間=(28-計(jì)數(shù)初值)機(jī)器周期,例如:設(shè)單片機(jī)的晶振頻率f=12MHz,則機(jī)器周期為1s,從而定時(shí)范圍:1s256s。(2)工作方式2的特點(diǎn) 工作方式3是一個(gè)8位定時(shí)計(jì)數(shù)器,是針對(duì)于定時(shí)器/計(jì)數(shù)器0(T0)而言的。這種工作方式之下,定時(shí)/計(jì)數(shù)器0被拆成2個(gè)獨(dú)立的定時(shí)/計(jì)數(shù)器來(lái)用。其中,TL0可以構(gòu)成8位的定時(shí)器或計(jì)數(shù)器的工作方式,T0的各控制位和引腳信號(hào)全歸它使用;而TH0則只能作為定時(shí)器來(lái)用,它占用了T1的中斷標(biāo)志和運(yùn)行控制位TF1和
16、TR1。也就是說(shuō),在定時(shí)器/計(jì)數(shù)器工作在工作方式3的情況下,需要對(duì)TCON進(jìn)行設(shè)置和判斷溢出時(shí),T0被分成兩個(gè)來(lái)使用,規(guī)定TL0還使用原來(lái)控制T0的寄存器標(biāo)記,而TH0則使用原來(lái)控制T1的寄存器標(biāo)記,此時(shí)T1停止工作。我們知道作定時(shí)、計(jì)數(shù)器來(lái)用,需要控制,計(jì)滿后溢出需要有溢出標(biāo)記,T0被分成兩個(gè)來(lái)用,那就要兩套控制及、溢出標(biāo)記,TL0還是用原來(lái)的T0的標(biāo)記,而TH0則借用T1的標(biāo)記。T1無(wú)標(biāo)記、控制。一般情況處,只有在T1以工作方式2運(yùn)行(當(dāng)波特率發(fā)生器用)時(shí),才讓T0工作于方式3的。6.3.4定時(shí)器/計(jì)數(shù)器的工作方式3工作方式3是一個(gè)8位定時(shí)計(jì)數(shù)器,是針對(duì)于定時(shí)器/計(jì)數(shù)器0(T因?yàn)?1單片機(jī)
17、的定時(shí)器/計(jì)數(shù)器是可編程的。因此,在利用定時(shí)器/計(jì)數(shù)器進(jìn)行定時(shí)計(jì)數(shù)之前,先要通過(guò)軟件對(duì)它進(jìn)行初始化,初始化一般應(yīng)進(jìn)行如下工作: 設(shè)置工作方式,即設(shè)置TMOD中的GATE、C/、M1M0各位; 計(jì)算加1計(jì)數(shù)器的初值,并將初值送入THx、TLx中,x=0或1;計(jì)數(shù)方式:計(jì)數(shù)值 = 2nCOUNT , 計(jì)數(shù)初值:COUNT= 2n計(jì)數(shù)值。定時(shí)方式:定時(shí)時(shí)間 =(2nTIME)機(jī)器周期, 計(jì)數(shù)初值TIME= 2n定時(shí)時(shí)間/機(jī)器周期。其中n=13、16、8、8分別對(duì)應(yīng)方式0、1、2 、3。 啟動(dòng)計(jì)數(shù)器工作,即將TRx置1,x=0或1; 若使用中斷方式進(jìn)行判斷溢出問(wèn)題,則還需使T0、T1開(kāi)中斷。6.3.5
18、定時(shí)器/計(jì)數(shù)器編成初始化 因?yàn)?1單片機(jī)的定時(shí)器/計(jì)數(shù)器是可編程的。因此,在利用定時(shí)器6.4.1利用定時(shí)器/計(jì)數(shù)器產(chǎn)生方波例6-1 設(shè)單片機(jī)晶振頻率為6MHz,使用定時(shí)器1以方式0產(chǎn)生周期為500s的等寬方波連續(xù)脈沖,并由P1.0輸出,以查詢方式完成。解:1計(jì)算計(jì)數(shù)初值要產(chǎn)生500s的等寬方波脈沖,只需在P1.0端以250s為周期交替輸出高低電平即可實(shí)現(xiàn),為此定時(shí)時(shí)間應(yīng)為250s,工作在定時(shí)方式下。使用6MHz晶振,則一個(gè)機(jī)器周期為2s。方式0為13位計(jì)數(shù)結(jié)構(gòu)。設(shè)待求的初值為X,則: (213 X )210-6 = 25010-6 求解得:X = 8067,二進(jìn)制數(shù)表示為11111100000
19、11B=1F83H,十六進(jìn)制表示高8位為0FCH,低5位為03H。因?yàn)椴捎枚〞r(shí)器/計(jì)數(shù)器1,所以其中高8位放入TH1,即TH1=0FCH;低5位放入TL1,即TL1=03H。第四節(jié) 定時(shí)器/計(jì)數(shù)器應(yīng)用程序 6.4.1利用定時(shí)器/計(jì)數(shù)器產(chǎn)生方波第四節(jié) 定時(shí)器/計(jì)數(shù)器2.TMOD寄存器初始化 為把定時(shí)器/計(jì)數(shù)器1設(shè)定為方式0,則M1M0=00;為實(shí)現(xiàn)定時(shí)功能,應(yīng)使C/ =0;為實(shí)現(xiàn)定時(shí)器/計(jì)數(shù)器1的運(yùn)行控制,則GATE=0。定時(shí)器/計(jì)數(shù)器0不用,有關(guān)位設(shè)定為0。因此TMOD寄存器應(yīng)初始化為00H。3由定時(shí)器控制寄存器TCON中的TR1位控制定時(shí)的啟動(dòng)和停止 TR1=1啟動(dòng),TR1=0停止。2.TM
20、OD寄存器初始化4程序設(shè)計(jì) ORG 0000H AJMP MAIN MAIN:MOV TMOD,#00H ;設(shè)置T1為工作方式0 MOV TH1,#0FCH ;設(shè)置初值 MOV TL1,#03H MOV IE,#00H ;禁止中斷 LOOP:SETB TR1 ;啟動(dòng)定時(shí) JBC TF1,LOOPl ;查詢計(jì)數(shù)溢出 AJMP LOOPLOOP1: MOV TH1,#0FCH ;重新設(shè)置初值 MOV TL1,#03H CLR TF1 ;計(jì)數(shù)溢出標(biāo)志位清“0” CPL P1.0 ;輸出取反 AJMP LOOP ;重復(fù)循環(huán) END4程序設(shè)計(jì)例6-2單片機(jī)晶振頻率為6MHz,使用定時(shí)器0以工作方式1產(chǎn)生
21、周期為500s的等寬方波連續(xù)脈沖,并由P1.0輸出,以中斷方式完成。解:1計(jì)算計(jì)數(shù)初值 要產(chǎn)生500s的等寬方波脈沖,只需在P1.0端以250s為周期交替輸出高低電平即可實(shí)現(xiàn),為此定時(shí)時(shí)間應(yīng)為250s,工作在定時(shí)方式下。使用6MHz晶振,則一個(gè)機(jī)器周期為2s。方式0為16位計(jì)數(shù)結(jié)構(gòu)。設(shè)待求的初值為X,則: (216 X )210-6 = 25010-6 求解得:X = 65411,二進(jìn)制數(shù)表示為1111111110000011B=FF83H,十六進(jìn)制表示高8位為0FFH,低8位為83H。因?yàn)椴捎枚〞r(shí)器/計(jì)數(shù)器0,所以其中高8位放入TH0,即TH0=0FFH;低8位放入TL0,即TL0=83H。
22、例6-2單片機(jī)晶振頻率為6MHz,使用定時(shí)器0以工作方式2.TMOD寄存器初始化為把定時(shí)器/計(jì)數(shù)器0設(shè)定為方式1,則M1M0=01;為實(shí)現(xiàn)定時(shí)功能,應(yīng)使C/ =0;為實(shí)現(xiàn)定時(shí)器/計(jì)數(shù)器0的運(yùn)行控制,則GATE=0。定時(shí)器/計(jì)數(shù)器1不用,有關(guān)位設(shè)定為0。因此TMOD寄存器應(yīng)初始化為01H。3程序設(shè)計(jì)主程序: ORG 0000H AJMP MAIN ORG 000BH AJMP INTMAIN:MOV TMOD,#01H ;設(shè)置T0為工作方式0 MOV TH0,#0FFH ;設(shè)置計(jì)數(shù)初值 MOV TL0,#83H SETB EA ;開(kāi)總中斷允許位 SETB ET0 ;開(kāi)定時(shí)器0中斷允許位LOOP:
23、SETB TR0 ;定時(shí)器0開(kāi)始工作HERE:SJMP $ ;等待中斷中斷服務(wù)程序:INT: CLR TF1 MOV TH0,#0FFH ;設(shè)置計(jì)數(shù)初值 MOV TL0,#83H CPL P1.0 ;輸出取反 RETI ;中斷返回 END2.TMOD寄存器初始化中斷服務(wù)程序:例6-3電路如圖6-3,晶振為12MHZ將P1口上的信號(hào)燈循環(huán)顯示,時(shí)間間隔為1 s。 解:系統(tǒng)采用12 MHz晶振,采用定時(shí)器1,方式1定時(shí)50ms,用R3做50 ms計(jì)數(shù)單元。1計(jì)算計(jì)數(shù)初值 要產(chǎn)生1s的時(shí)間間隔,12MHZ晶振,則一個(gè)機(jī)器周期為1s,采用方式1時(shí),最大的延時(shí)時(shí)間只有65536s,只有利用循環(huán)使單位時(shí)間
24、重復(fù)一定次數(shù)后來(lái)產(chǎn)生1s的延時(shí),單位時(shí)間設(shè)定為50ms,工作在定時(shí)方式下。方式1為16位計(jì)數(shù)結(jié)構(gòu)。設(shè)待求的初值為X,則: (216 X )110-6 = 5010-3 求解得:X = 15536,二進(jìn)制數(shù)表示為11110010110000B=3CB0H,十六進(jìn)制表示高8位為3CH,低8位為0B0H。因?yàn)椴捎枚〞r(shí)器/計(jì)數(shù)器1,所以其中高8位放入TH1,即TH1= 3CH;低8位放入TL1,即TL1=0B0H。6.4.2 定時(shí)應(yīng)用 例6-3電路如圖6-3,晶振為12MHZ將P1口上的信號(hào)2.TMOD寄存器初始化為把定時(shí)器/計(jì)數(shù)器1設(shè)定為方式1,則M1M0=01;為實(shí)現(xiàn)定時(shí)功能,應(yīng)使C/ = 0;為
25、實(shí)現(xiàn)定時(shí)器/計(jì)數(shù)器1的運(yùn)行控制,則GATE = 0。定時(shí)器/計(jì)數(shù)器0不用,有關(guān)位設(shè)定為0。因此TMOD寄存器應(yīng)初始化為10H。其源程序可設(shè)計(jì)如下: ORG 0000H CONT:MOV R2,#08H MOV A,#0FEH NEXT:MOV P1,A ACALL DELAY RL A DJNZ R2,NEXT MOV R2,#08H NEXT1:MOV P1,A RR A ACALL DELAY DJNZ R2,NEXT1 SJMP CONT2.TMOD寄存器初始化DELAY:MOV R3,#14H ;置50 ms計(jì)數(shù)循環(huán)初值 MOV TMOD,#10H ;設(shè)定時(shí)器1為方式1 MOV TH1
26、,#3CH ;置定時(shí)器初值 MOVTL1,#0B0H SETBTR1 ;啟動(dòng)定時(shí)器1 LP1:JBC TF1,LP2 ;查詢計(jì)數(shù)溢出 SJMPLP1 ;未到50 ms繼續(xù)計(jì)數(shù) LP2:MOVTH1,#3CH ;重新置定時(shí)器初值 MOVTL1,#0B0H DJNZR3,LP1 ;未到1 s繼續(xù)循環(huán) RET ;返回主程序 ENDDELAY:MOV R3,#14H ;置50 例6-4定時(shí)器1,方式2實(shí)現(xiàn)1 s的延時(shí)子程序。 解:因方式2是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:2561 s = 256 s,為實(shí)現(xiàn)1 s延時(shí),可選擇定時(shí)時(shí)間為250 s,再循環(huán)4000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250,則
27、定時(shí)器1的初值為:X = M計(jì)數(shù)值=256250=6=6H。采用定時(shí)器1,工作方式2工作,因此TMOD =20H。方法1:可采用查詢方式1 s延時(shí)子程序如下: DELAY: MOV R5,#28H ;置25 ms計(jì)數(shù)循環(huán)初值 MOV R6,#64H ;置250 s計(jì)數(shù)循環(huán)初值 MOV TMOD,#20H ;置定時(shí)器1為方式2 MOV TH1,#06H ;置定時(shí)器初值 MOV TL1,#06H SETBTR1 ;啟動(dòng)定時(shí)器 LP1:JBCTF1,LP2 ;查詢計(jì)數(shù)溢出 SJMPLP1 ;無(wú)溢出則繼續(xù)計(jì)數(shù) LP2:DJNZR6,LP1 ;未到25 ms繼續(xù)循環(huán) MOVR6,#64H DJNZ R5,LP1 ;未到1 s繼續(xù)循環(huán) RET 例6-4定時(shí)器1,方式2實(shí)現(xiàn)1 s的延時(shí)子程序。方法2:采用中斷方式延時(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生心理素質(zhì)培養(yǎng)的課程設(shè)計(jì)與執(zhí)行
- 課題申報(bào)參考:教育強(qiáng)國(guó)背景下教育家型教師的時(shí)代畫(huà)像與培養(yǎng)路徑研究
- 2025年度木托盤(pán)出口退稅與免稅服務(wù)合同4篇
- 《鄉(xiāng)鎮(zhèn)森林防火檢查站設(shè)置與管理規(guī)范》編制說(shuō)明
- 圣誕感恩的開(kāi)幕詞(16篇)
- 二零二五年度碼頭岸線使用權(quán)轉(zhuǎn)讓合同4篇
- 二零二五年度魯佳與配偶解除婚姻關(guān)系財(cái)產(chǎn)分配協(xié)議4篇
- 二零二五版鋼結(jié)構(gòu)與石材幕墻施工技術(shù)指導(dǎo)合同4篇
- 2025年度智能物流項(xiàng)目股權(quán)投資協(xié)議書(shū)4篇
- 二零二五版航空貨運(yùn)租賃服務(wù)協(xié)議3篇
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(kù)(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計(jì)算機(jī)組成原理-電子科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年上海健康醫(yī)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 2024年湖北省武漢市中考語(yǔ)文適應(yīng)性試卷
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- EDIFIER漫步者S880使用說(shuō)明書(shū)
- 上海市華東師大二附中2025屆高二數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- IP授權(quán)合作合同模板
- 大國(guó)重器北斗系統(tǒng)
評(píng)論
0/150
提交評(píng)論