版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
任務(wù)三流水燈定時控制課件任務(wù)三流水燈定時控制課件任務(wù)三流水燈定時控制課件教學(xué)導(dǎo)航2”通過閱讀科技書籍,我們能豐富知識,培養(yǎng)邏輯思維能力;任務(wù)三流水燈定時控制課件任務(wù)三流水燈定時控制課件任務(wù)三流水燈1教知識重點(1)中斷控制用寄存器;(2)中斷服務(wù)函數(shù)的編寫;(3)定時器工作方式與控制寄存器的使用知識難點定時器工作方式;中斷服務(wù)函數(shù)的編寫推薦教學(xué)方式以任務(wù)入手,通過流水燈的定時控制程序的編寫逐漸認(rèn)識中斷系統(tǒng)、定時器/計數(shù)器的作用,深化對中斷系統(tǒng)與定時器的理解,掌握中斷服務(wù)函數(shù)的編寫方法與中斷響應(yīng)的機制。建議學(xué)時6學(xué)時學(xué)推薦學(xué)習(xí)方法通過對教師提供的電路圖,編寫程序,完成仿真調(diào)試,理解相關(guān)理論知識,學(xué)會應(yīng)用。必須掌握的理論知識(1)單片機中斷系統(tǒng);(2)中斷控制用寄存器;(3)中斷服務(wù)函數(shù)的編寫;(4)單片機定時器結(jié)構(gòu);(5)工作方式與控制寄存器;(6)定時器的應(yīng)用必須掌握的技能中斷程序、定時器應(yīng)用程序的編寫,仿真調(diào)試技巧。教學(xué)導(dǎo)航2知識重點(1)中斷控制用寄存器;(2)中斷服務(wù)函數(shù)的編寫;知任務(wù)單任務(wù)描述任務(wù)二是利用單片機的并行I/O口外接流水燈,采用并行輸入/輸出方式控制發(fā)光二極管實現(xiàn)流水燈,在實現(xiàn)該任務(wù)時,每次點亮一個燈后要延時,否則無法看到流水燈效果,任務(wù)二通過軟件方法實現(xiàn)延時。本任務(wù)要求利用單片機的定時器/計數(shù)器,讓流水燈指定時間循環(huán)點亮發(fā)光二極管。任務(wù)要求如圖3-1所示,由P0連接8只發(fā)光二極管,實現(xiàn)如下流水燈的功能:(1)要求每隔1s從左至右循環(huán)點亮發(fā)光二極管;(2)按自定時間間隔從左至右循環(huán)點亮發(fā)光二極管,點亮最右邊的發(fā)光二極管后,再從右至左循環(huán)點亮。實現(xiàn)方法1.利用Proteus仿真運行,按任務(wù)要求實現(xiàn)流水燈。2.在實訓(xùn)設(shè)備上按任務(wù)要求連線,運行程序。3任務(wù)單任務(wù)描述任務(wù)二是利用單片機的并行I/O口外接流水燈,采任務(wù)三流水燈定時控制3.1中斷系統(tǒng)3.2定時器/計數(shù)器4任務(wù)三流水燈定時控制43.1中斷系統(tǒng)3.1.1中斷的概念與作用3.1.2MCS–51單片機中斷系統(tǒng)3.1.3中斷服務(wù)函數(shù)53.1中斷系統(tǒng)3.1.1中斷的概念與作用5
3.1.1中斷的概念與作用外部設(shè)備是微機的重要組成部分,而微機和外部設(shè)備之間不是直接相連的,而是通過不同的接口電路來達到彼此間的信息傳送的。CPU與外部交換信息的方式:(1)程序控制傳送方式(2)中斷傳送方式(3)直接存儲器存?。―MA)方式63.1.1中斷的概念與作用外部設(shè)備是微機1.中斷的定義
你正在專心看書,突然電話鈴響,于是你記下正在看的書的頁數(shù),去接電話,接完電話后再回來接著看書。日常中斷的例子71.中斷的定義你正在專心看書,突然電話鈴響,于什么是中斷?
中斷是指計算機在執(zhí)行某段程序的過程中,由于計算機系統(tǒng)內(nèi)、外的某種原因,暫時中止原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,并中斷服務(wù)程序執(zhí)行完后,再回來繼續(xù)執(zhí)行被中斷的原程序的過程。8什么是中斷?中斷是指計算機在執(zhí)行某段程序的過2.中斷的作用1)CPU與外設(shè)并行工作。解決CPU速度快、外設(shè)速度慢的矛盾。2)實時處理??刂葡到y(tǒng)往往有許多數(shù)據(jù)需要采集或輸出。實時控制中有的數(shù)據(jù)難以估計何時需要交換。3)故障處理。計算機系統(tǒng)的故障往往隨機發(fā)生,如電源斷電、運算溢出、存儲器出錯等。采用中斷技術(shù),系統(tǒng)故障一旦出現(xiàn),就能與時處理。4)實現(xiàn)人機交互:人和單片機交互一般采用鍵盤和按鍵,可以采用中斷的方式實現(xiàn),中斷方式時CPU執(zhí)行效率高,而且可以保證人機交互的實時性,故中斷方式在人機交互中得到廣泛應(yīng)用。92.中斷的作用1)CPU與外設(shè)并行工作。解決CPU速度快3.1.2MCS-51中斷系統(tǒng)中斷系統(tǒng)是指能實現(xiàn)中斷功能的那部分硬件電路和軟件程序。對于MCS-51單片機,大部分中斷電路都是集成在芯片內(nèi)部的,只有和中斷輸入線上的中斷請求信號產(chǎn)生電路才分散在各中斷源電路或接口芯片電路里。103.1.2MCS-51中斷系統(tǒng)中斷系統(tǒng)是指能實現(xiàn)中斷功能IE0TCONSCONINT0IT0=0
IT0=1INT1IT1=0
IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級矢量地址高級中斷請求自然優(yōu)先級矢量地址低級中斷請求PX0PT0PX1PT1PSIEIP
中斷標(biāo)志位中斷源允許總允許EA中斷優(yōu)先級3.1.2MCS-51單片機中斷系統(tǒng)11IE0TCONSCONINT0IT0=0IT0=1IN1.MCS-51的中斷源和中斷標(biāo)志中斷源是指引起中斷的事件。在單片機中,中斷源是指引起中斷原因的設(shè)備或事件,或發(fā)出中斷請求信號的源泉。通常有I/O設(shè)備、實時控制系統(tǒng)中的隨機參數(shù)和信息故障源等。121.MCS-51的中斷源和中斷標(biāo)志中斷源是指引起中斷的事件1)外部中斷源:MCS-51系列單片機有2個外中斷源,稱為外中斷0和1,經(jīng)由單片機上的P3.2、P3.3這兩個外部引腳引入,為、。
2)內(nèi)部中斷源定時器溢出中斷源。定時器溢出中斷源由內(nèi)部定時器/計數(shù)器產(chǎn)生,屬于內(nèi)部中斷。串行口中斷源。串行口中斷是由內(nèi)部串行口中斷源產(chǎn)生。
(1)中斷源131)外部中斷源:MCS-51系列單片機有2個外中斷源,稱為外1)TCON中的中斷標(biāo)志位D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0(2)中斷請求標(biāo)志(MSB)8FH8EH8DH8CH8BH8AH89H88H(LSB)外部中斷INT0中斷標(biāo)志位(TCON.1):IE0=1,外部中斷1向CPU申請中斷
外部中斷INT0觸發(fā)方式控制位(TCON.0):
IT0=0,電平觸發(fā)方式
IT0=1,下降沿觸發(fā)方式注意:該寄存器可以位尋址。141)TCON中的中斷標(biāo)志位D7D6D5D4D3D2D1D0提示:①在電平觸發(fā)方式下,CPU響應(yīng)中斷時,不能自動清除IE0標(biāo)志。也就是說,IE0狀態(tài)完全由狀態(tài)決定,所以在中斷返回前必須撤除的低電平,否則會引起重復(fù)中斷;而在負(fù)跳變觸發(fā)方式下,當(dāng)CPU響應(yīng)中斷時,硬件會自動使IE0清0。②在負(fù)跳變觸發(fā)方式下,為保證CPU能檢測到負(fù)跳變,的高、低電平時間至少應(yīng)保持1個機器周期。采樣INT0采樣INT0采樣INT015提示:①在電平觸發(fā)方式下,CPU響應(yīng)中斷時,不能自動清除I1)TCON的中斷標(biāo)志位
TCON8FH8EH8DH8CH8BH8AH89H88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0T0溢出中斷標(biāo)志(TCON.5):T0啟動計數(shù)后,計滿溢出由硬件置位TF0=1,向CPU請求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動清0。也可用軟件查詢該標(biāo)志,并由軟件清0。161)TCON的中斷標(biāo)志位TCON8FH8EH
D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI2)SCON的中斷標(biāo)志位(MSB)9FH9EH9DH9CH9BH9AH99H98H(LSB)注意:該寄存器可以位尋址!RI(SCON.0)——串行接收中斷標(biāo)志。TI(SCON.1)——串行發(fā)送中斷標(biāo)志。17D7D6D5D4D3D2D1D0SM0SM1SM2REN(1)中斷允許控制——中斷允許寄存器IE
2.中斷控制D7D6D5D4D3D2D1D0EA××ESET1EX1ET0EX0(MSB)AFHAEHADHACHABHAAHA9HA8H(LSB)中斷允許寄存器IE對中斷的開放和關(guān)閉實行兩級控制。所謂兩級控制,就是有一個總開、關(guān)中斷控制位EA,當(dāng)EA=0時,則屏蔽所有的中斷申請,即任何中斷申請都不接受;當(dāng)EA=1時,CPU開放中斷,但五個中斷源還要由IE的低5位的各對應(yīng)控制位的狀態(tài)進行中斷允許控制。18(1)中斷允許控制——中斷允許寄存器IE2.中斷控制D實例3-1如果我們要設(shè)置外中斷1、定時器1中斷允許,其它不允許,請設(shè)置IE的相應(yīng)值。位D7D6D5D4D3D2D1D0符號EA××ESET1EX1ET0EX0值10001100(MSB)AFHAEHADHACHABHAAHA9HA8H(LSB)(a)SFR賦值IE=0x8c(b)用位賦值EA=1;CPU開中斷ET1=1;定時/計數(shù)器1允許中斷EX1=1;外中斷T1允許中斷19實例3-1如果我們要設(shè)置外中斷1、定時器1中斷允許,其它不(2)中斷優(yōu)先級控制MCS-51單片機有兩個中斷優(yōu)先級:高級中斷和低級中斷。每一個中斷源都可以通過編程確定為高優(yōu)先級中斷或低優(yōu)先級中斷。若CPU當(dāng)前正在為低優(yōu)先級中斷服務(wù),在開中斷的條件下,它能被另一個高優(yōu)先級中斷請求所中斷,轉(zhuǎn)去為高級中斷服務(wù),再返回到被中斷了的低級中斷的服務(wù)程序,這即為中斷嵌套。
20(2)中斷優(yōu)先級控制MCS-51單片機有兩個中斷優(yōu)先級:高級中斷嵌套過程CPU執(zhí)行高級中斷服務(wù)高級中斷請求返回低級中斷程序返回主程序響應(yīng)高級中斷低級中斷請求CPU執(zhí)行低級中斷響應(yīng)低級中斷CPU在執(zhí)行的主程序21中斷嵌套過程CPU執(zhí)行高級中斷服務(wù)高級中斷請求返回低級中斷程中斷優(yōu)先級寄存器IPD7D6D5D4D3D2D1D0×××PSPT1PX1PT0PX0(MSB)BFHBEHBDHBCHBBHBAHB9HB8H(LSB)專用寄存器IP為中斷優(yōu)先級寄存器用戶可用軟件設(shè)定相應(yīng)位為1,對應(yīng)的中斷源被設(shè)置為高優(yōu)先級,相應(yīng)位為0,對應(yīng)的中斷源被設(shè)置為低優(yōu)先級系統(tǒng)復(fù)位時,均為低優(yōu)先級該寄存器可以位尋址22中斷優(yōu)先級寄存器IPD7D6D5D4D3D2D1D0×××P自然優(yōu)先權(quán)順序中
斷
源同級內(nèi)優(yōu)先權(quán)排列外部中斷0中斷(IE0)定時器/計數(shù)器0中斷(TF0)外部中斷1中斷(IE1)定時器/計數(shù)器1中斷(TF1)串行接口中斷(TI/RI)
最
高
最
低23自然優(yōu)先權(quán)順序中斷源同級內(nèi)優(yōu)先權(quán)排列外部中斷0中斷MCS-51系列單片機中斷響應(yīng)原則:1)高級中斷請求可以中斷正在執(zhí)行的低級中斷。2)同級或低級中斷請求不能中斷正在執(zhí)行的中斷。3)多個中斷源同時向CPU申請中斷,首先響應(yīng)優(yōu)先級別最高的中斷請求;多個同級中斷源同時向CPU申請中斷,CPU通過內(nèi)部硬件查詢,按自然優(yōu)先級確定優(yōu)先響應(yīng)哪一個中斷請求。24MCS-51系列單片機中斷響應(yīng)原則:1)高級中斷請求可以中斷解:IP的首3位沒用,可任意取值,設(shè)為000,后面根據(jù)要求寫就可以了。位D7D6D5D4D3D2D1D0符號XXXPSPT1PX1PT0PX0值00000110實例3-2設(shè)有如下要求,將T0、外中斷1設(shè)為高優(yōu)先級,其它為低優(yōu)先級,求IP的值。IP的值就是06H。25解:IP的首3位沒用,可任意取值,設(shè)為000,后面根據(jù)要求寫實例3-3在上例中,如果5個中斷請求同時發(fā)生,求中斷響應(yīng)的次序。解:響應(yīng)次序為定時器0→外中斷1→外中斷0→實時器1→串行中斷。位D7D6D5D4D3D2D1D0符號XXXPSPT1PX1PT0PX0值0000011026實例3-3在上例中,如果5個中斷請求同時發(fā)生,求中斷響(1)中斷響應(yīng)的時序3.中斷響應(yīng)27(1)中斷響應(yīng)的時序3.中斷響應(yīng)27(2)CPU響應(yīng)中斷的條件①沒有同級或高優(yōu)先級的中斷正在處理;②正在執(zhí)行指令必須執(zhí)行完最后一個機器周期(換言之,正在執(zhí)行的指令完成前,任何中斷請求都得不到響應(yīng));③若正在RETI或讀寫IE或IP寄存器,則必須執(zhí)行完當(dāng)前指令的下一條其它指令之后才會響應(yīng)。28(2)CPU響應(yīng)中斷的條件①沒有同級或高優(yōu)先級的中單片機一旦響應(yīng)中斷請求,就由硬件完成以下功能:①自動清除相應(yīng)的中斷請求標(biāo)志位(串行口中斷請求標(biāo)志RI和TI除外);②保護斷點和現(xiàn)場,把被響應(yīng)的中斷源所對應(yīng)的中斷服務(wù)程序的入口地址(中斷矢量)送入PC,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。③結(jié)束中斷服務(wù)程序,恢復(fù)斷點和現(xiàn)場,并返回響應(yīng)中斷之前的程序繼續(xù)執(zhí)行。(3)CPU響應(yīng)中斷的過程29單片機一旦響應(yīng)中斷請求,就由硬件完成以下功能:(3)CP3.1.3中斷服務(wù)函數(shù)C51編譯器支持在C語言源程序中直接編寫8051單片機的中斷服務(wù)函數(shù),從而減輕使用匯編語言的繁瑣程度,提高了開發(fā)效率。303.1.3中斷服務(wù)函數(shù)C51編譯器支持在C語言源程序中直1.中斷服務(wù)函數(shù)的一般形式void函數(shù)名(void)interruptm[unsingn]代表中斷號,是一個常量,取值范圍是0-31。C51編譯器允許32個中斷,從8m+3處產(chǎn)生中斷向量代表中斷函數(shù)將要選擇使用的寄存器組,也是一個常量,取值范圍是0~3。311.中斷服務(wù)函數(shù)的一般形式void函數(shù)名(void)i程序存儲器ROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口(中斷號m=4)0003H:外部中斷0入口(中斷號m=0)000BH:定時器/計數(shù)器0中斷入口(中斷號m=1)0013H:外部中斷1入口(中斷號m=2)001BH:定時器1/計數(shù)器中斷入口(中斷號m=3)
002BHMCS-51單片機中斷入口8字節(jié)32程序存儲器ROM0000H:復(fù)位后,程序的入口地址(PC=0關(guān)于USING的說明using不僅可以用于中斷服務(wù)函數(shù)的定義中,也可以用于普通的內(nèi)部函數(shù),但不能用于外部函數(shù)。就中斷服務(wù)函數(shù)而言如果不使用using,則在進入中斷服務(wù)函數(shù)的時候,中斷函數(shù)中所用到的全部工作寄存器都要入棧,函數(shù)返回之前所有的寄存器內(nèi)容出棧;如果使用using,則在進入中斷服務(wù)函數(shù)的時候,只將當(dāng)前工作寄存器組入棧,用using指定的工作寄存器組的內(nèi)容不變也不入棧,函數(shù)返回之前將被保護的工作寄存器組出棧。33關(guān)于USING的說明using不僅可以用于中斷服務(wù)函數(shù)的定義提示(1)使用using可縮減中斷服務(wù)函數(shù)的入棧操作時間,因此可以使中斷得到更與時的處理;但同時,使用using要十分小心,要保證寄存器組切換在所控制的區(qū)域內(nèi),否則會導(dǎo)致錯誤。(2)中斷函數(shù)的編寫包括兩部分:中斷源的初始化函數(shù)和中斷服務(wù)函數(shù)。概括地說,中斷源初始化函數(shù)就是對中斷源所需要的一些變量進行設(shè)置,其形式與其他普通函數(shù)一樣——一般在主函數(shù)里實現(xiàn);而中斷服務(wù)函數(shù)就是規(guī)定系統(tǒng)在發(fā)生相應(yīng)的中斷的時候要執(zhí)行哪些操作。(3)中斷函數(shù)的調(diào)用過程與一般函數(shù)調(diào)用相似,但一般函數(shù)是程序中事先安排好的;而何時調(diào)用中斷函數(shù)事先無法確定,調(diào)用中斷函數(shù)的過程是由硬件自動完成的。34提示(1)使用using可縮減中斷服務(wù)函數(shù)的入棧操作時中斷函數(shù)的類型與參數(shù)都為void類型中斷函數(shù)既不能進行參數(shù)傳遞,也沒有返回值,因此,中斷函數(shù)的形式參數(shù)列表和函數(shù)類型標(biāo)識符名均為void。定時器0的定義方式:voidintr_time0(void)interrupt1{}35中斷函數(shù)的類型與參數(shù)都為void類型中斷函數(shù)既不能進行參數(shù)傳2.中斷函數(shù)的編寫(1)中斷的初始化所謂初始化,是對將要用到的MCS-51系列單片機內(nèi)部部件或擴展芯片進行初始工作狀態(tài)設(shè)定。針對中斷來說,就是對IE,IP進行初始化編程,實現(xiàn)如下要求:1)CPU開中斷與關(guān)中斷。2)某個中斷源中斷請求的允許和禁止(屏蔽)。3)各中斷源優(yōu)先級別的設(shè)定。4)外部中斷請求的觸發(fā)方式。362.中斷函數(shù)的編寫(1)中斷的初始化36(2)中斷服務(wù)函數(shù)中斷服務(wù)函數(shù)就是規(guī)定系統(tǒng)在發(fā)生相應(yīng)的中斷的時候要執(zhí)行哪些操作。37(2)中斷服務(wù)函數(shù)中斷服務(wù)函數(shù)就是規(guī)定系統(tǒng)在發(fā)生相應(yīng)的中斷的實例【實例3-4】P1.3外接一個揚聲器,當(dāng)與P3.3(外部中斷1輸入引腳)變?yōu)榈碗娖綍r,揚聲器發(fā)聲。38實例【實例3-4】P1.3外接一個揚聲器,當(dāng)與P3.3(外部實例3-4#include<reg51.h>sbitp13=P1^3;voidmain(){IT0=0;EA=1;EX1=1;p13=1;while(1);}voidisr_int1()interrupt2{inti;
p13=~p13;for(i=1000;i>0;i--);}39實例3-4#include<reg51.h>39實例3-5:電平觸發(fā)與跳變觸發(fā)的比較#include<reg51.h>#include<stdio.h>voidserial_init();voidisr_int0();main(){serial_init();IT0=0;EA=1;EX0=1;while(1);}voidisr_int0()interrupt0{printf("Externalinterrupt0responded\n");}voidserial_init(){SCON=0X52;MOD=(TMOD&0X0F)|0X20;TH1=221;TR1=1;}40實例3-5:電平觸發(fā)與跳變觸發(fā)的比較#include<reg電平觸發(fā)的輸出情況41電平觸發(fā)的輸出情況41跳變觸發(fā)輸出情況main(){serial_init();
IT0=1;EA=1;EX0=1;while(1);}42跳變觸發(fā)輸出情況42案例4:蒸汽鍋爐參數(shù)越限報警控制液位上、下限SL1、SL2開關(guān)取自“色帶指示報警儀”,分別接P1.3,P1.2。蒸汽壓力下限SP開關(guān)接P1.1。爐堂溫度上限ST開關(guān)接P1.0。P1.7~P1.4輸出接發(fā)光二極管,與4個參數(shù)對應(yīng),越限時則相應(yīng)的LED點亮。43案例4:蒸汽鍋爐參數(shù)越限報警控制液位上、下限SL1、SL2開#include<reg51.h>voidisr_int0(void);main(){IT0=0;EX0=1;EA=1;while(1){}}主函數(shù)(初始化)voidisr_int0(void)interrupt0{chartemp1;P1=0x0ff;temp1=P1;temp1=temp1<<4;P1=temp1;for(i=10;i>0;i--):}44#include<reg51.h>主函數(shù)(初始化)void3.2定時器/計數(shù)器3.2.1定時器/計數(shù)器的結(jié)構(gòu)3.2.2
定時器/計數(shù)器的工作方式453.2定時器/計數(shù)器3.2.1定時器/計數(shù)器的結(jié)構(gòu)43.2.1定時器/計數(shù)器的結(jié)構(gòu)
可編程定時,通過對系統(tǒng)時鐘脈沖計數(shù)而獲得延時,MCS-51定時/計數(shù)器的優(yōu)點:可實現(xiàn)定時、計數(shù)功能,有利用實時控制不占用CPU時間定時精度高,修改方便463.2.1定時器/計數(shù)器的結(jié)構(gòu)可編程定時,通過對系統(tǒng)時1.定時/計數(shù)器的組成定時/計數(shù)器的結(jié)構(gòu)框圖
微處理器TH1TL1TH0TL0TCONTMOD工作方式工作方式T1T0P3.5(T1)P3.4(T0)471.定時/計數(shù)器的組成定時/計數(shù)器的結(jié)構(gòu)框圖微TH1TL(1)結(jié)構(gòu)組成部分兩個16位的二進制定時/計數(shù)器T0、T1T0/T1分別由兩個8位的計數(shù)器組成,均屬SFR寄存器T0由TH0、TL0構(gòu)成,字節(jié)地址為8CH、8AHT1由TH1、TL1構(gòu)成,字節(jié)地址為8DH、8BH;相關(guān)的控制寄存器方式寄存器TMOD控制寄存器TCON48(1)結(jié)構(gòu)組成部分兩個16位的二進制定時/計數(shù)器T0、定時功能
對片內(nèi)機器周期進行計數(shù),即每個機器周期產(chǎn)生一個計數(shù)脈沖,計數(shù)加1。實時控制、實時采樣、定時控制等。振蕩器÷12
加1計數(shù)器TFx申請中斷TX端C/T=0C/T=1控制信號TRx(2)工作原理49定時功能振蕩器÷12加1TFx申請中斷TX端C/(2)工作原理計數(shù)功能
對片外從T0(P3.4)、T1(P3.5)引腳輸入的外部脈沖信號進行計數(shù),下降沿計數(shù)加1。計數(shù)頻率為晶振頻率的1/24。生產(chǎn)線上產(chǎn)品計數(shù)、檢測電機轉(zhuǎn)速等功能。振蕩器÷12
加1計數(shù)器TFx申請中斷TX端C/T=0C/T=1控制信號TRx50(2)工作原理計數(shù)功能振蕩器÷12加1TFx申請中斷T定時/計數(shù)器初值預(yù)置初值X的計數(shù)方法(設(shè)最大值為M,計數(shù)值為N,初值為X,Tcy=12÷晶振頻率)定時狀態(tài):X=M-定時時間/Tcy計數(shù)狀態(tài):X=M-N要求檢測到100個脈沖,發(fā)中斷請求,通知CPU,選計數(shù)功能,計數(shù)初值為156設(shè)定時/計數(shù)器為8位加1計數(shù)器,要求定時每隔100
s時間,發(fā)一次中斷請求(設(shè)機器周期1
s),選定時功能,計數(shù)初值為15651定時/計數(shù)器初值預(yù)置初值X的計數(shù)方法要求檢測到100個脈沖,2.方式控制寄存器TMODSFR寄存器,地址89H控制T0、T1的工作方式僅可字節(jié)尋址GATEM1M0GATEM1M0T1方式控制T0方式控制522.方式控制寄存器TMODSFR寄存器,地址89HGATE定時器工作方式選擇M1和M0:工作方式選擇位M1M0方式說明00013位計數(shù)器(TH的高8位和TL的低5位)01116位計數(shù)器102自動重裝入初值的8位計數(shù)器113定時器0:分成兩個獨立的8位計數(shù)器定時器1:
停止計數(shù)53定時器工作方式選擇M1和M0:工作方式選擇位M1M0方式功能選擇與門控位C/定時/計數(shù)功能選擇位。
為“0”,定時模式為“1”,計數(shù)模式GATE:門控位,定義T1/T0的啟動方式,GATE=0,非門控方式(內(nèi)部啟動):TR0/1=1,啟動定時器工作;
TR0/1=0,停止定時器工作。GATE=1,門控方式(外部啟動)TR0/1=1且引腳INT0/1
=1才啟動。54功能選擇與門控位C/定時/計數(shù)功能選擇位。543.狀態(tài)控制寄存器TCONSFR寄存器,地址88H即參與定時控制又參與中斷控制與定時控制相關(guān)的有4位TF1/TF0:當(dāng)T1/T0的計數(shù)器計數(shù)溢出時,該位置“1”;TR1/TR0:T1/T0運行控制位。軟件將其置“1”時,啟動T1/T0工作TF1TR1TF0TR0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88H553.狀態(tài)控制寄存器TCONSFR寄存器,地址88HTF1M1M0=00;作定時器:TMOD=00000000=00H作計數(shù)器:TMOD=00000100=04H13位計數(shù)器;
TH:8位
TL:低5位,高3位不用。3.2.2定時器/計數(shù)器工作方式
1.工作方式056M1M0=00;3.2.2定時器/計數(shù)器工作方式1.方式0的工作原理57方式0的工作原理57方式0的應(yīng)用計數(shù)初值最大計數(shù)值為213=8192定時時間:△T=(213-T0的初值)×Tcy
計數(shù)個數(shù):S=213-T0的初值
58方式0的應(yīng)用計數(shù)初值58定時器初始化編程(1)向TMOD寄存器中寫入工作方式控制字(2)向定時/計數(shù)器TH0、TL0(或TH1、TL1)裝入初值(3)啟動定時/計數(shù)器(置位TR0/TR1)(4)如采用中斷方式,置位ET0(ET1)、EA、IP等中斷寄存器59定時器初始化編程(1)向TMOD寄存器中寫入工作方式控制字5實例3-6:已知單片機晶振頻率6MHz,利用T0的方式0在P1.0引腳輸出周期為500us的方波解:1)方波波形如圖所示
2)TMOD初始化00H3)計數(shù)初值:計數(shù)初值=213-欲計數(shù)脈沖數(shù)=213-△T/Tcy
=213-250/2=1F83H=00000011B∴TH1=0xFC,TL1=0x034)TCON初始化,TR0=160實例3-6:已知單片機晶振頻率6MHz,利用T0的方式0在P查詢方式程序清單
#include<reg51.h>sbitp10=P1^0;main(){TMOD=0;TH0=0XFC;TL0=0X03;TR0=1;
while(1){while(TF0==0);p10=~p10;TH0=0XFC;TL0=0X03;TF0=0;}}61查詢方式程序清單#incl中斷方式程序清單
#include<reg51.h>sbitp10=P1^0;voidisr_t0();main(){TMOD=0;TH0=0XFC;TL0=0X03;TR0=1;EA=1;ET0=1;while(1);}voidisr_t0()interrupt1{p10=~p10;TH0=0XFC;TL0=0X03;}62中斷方式程序清單#includ實例3-7單片機晶振頻率12MHz,利用T0的方式0實現(xiàn)1s延時,每隔1s鐘使P1.0引腳翻轉(zhuǎn)一次。1)TMOD初始化00H2)計數(shù)初值:定時時間:tmax=8192×1us=8.192ms;取5ms1秒延時實現(xiàn):5ms延時200次
T0的初值:
=213-5000μs/1s=3192=0C78H=0000110001111000B∴TH0=63H,TL0=18H63實例3-7單片機晶振頻率12MHz,利用T0的方式0實現(xiàn)1源程序清單:#include<reg51.h>voidisr_time0(void);sbitP10=P1^0;unsignedintcounter=200;voidmain(){TMOD=0X00;TH0=0X63;TL0=0X18;TR0=1;EA=1;ET0=1;while(1);}voidisr_time0()interrupt1{counter--;if(!counter){counter=200;P10=~P10;}TH0=0X63;TL0=0X18;}64源程序清單:#include<reg51.h>voidis2.工作方式1M1M0=01作定時器:TMOD=00000000=01H作計數(shù)器:TMOD=00000100=05H16位計數(shù)器,邏輯結(jié)構(gòu)框圖如下:振蕩器÷12TF0中斷T0C/T=0C/T=1GATEINT0端TR0TH0(8位)TL0(8位)控制l&≥lEAET0&&652.工作方式1M1M0=01振蕩器÷12TF0中斷T0C/實例3-8利用T0的方式1完成例3-6的功能(即在P1.0引腳輸出周期為500us的方波)。1)TMOD初始化01H2)計數(shù)初值:計數(shù)初值=216-欲計數(shù)脈沖數(shù)=216-△T/Tcy=216-250/2=65411=FF83H
因此TH1=0xFF,TL1=0x833)TCON初始化,TR0=14)開中斷:EA=1;ET0=166實例3-8利用T0的方式1完成例3-6的功能(即在P1.源程序清單//主函數(shù)#include<reg51.h>voidisr_time0(void);sbitP10=P1^0;voidmain(){TMOD=0X01;TH0=-125>>8;TL0=-125;TR0=1;EA=1;ET0=1;while(1);}小技巧:實際應(yīng)用中,在利用C51編程時,計數(shù)初值可以直接用如下方法表示:TH0=-125>>8;//取計數(shù)初值的高8位(0FFH)TL0=-125;//自動取計數(shù)初值的低8位(83H)不需要計算出具體的計數(shù)初值。但讀者要清楚計算計數(shù)初值的原理。//中斷服務(wù)函數(shù)voidisr_time0(void)interrupt1{P10=~P10;TH0=-125>>8;TL0=-125;}67源程序清單//主函數(shù)小技巧://中斷服務(wù)函數(shù)673.工作方式2M1M0=10
作定時器:TMOD=02H
作計數(shù)器:TMOD=06H自動重置初值的8位計數(shù)器,邏輯結(jié)構(gòu)如圖:振蕩器÷12TF0中斷T0GATEINT0TR0TL0(8位)TH0(8位)控制重新裝入l≥l&C/T=0C/T=1&&EAET0683.工作方式2M1M0=10振蕩器÷12TF0中斷T0GA案例5啤酒生產(chǎn)線自動裝箱控制某啤酒自動生產(chǎn)線,每生產(chǎn)12瓶執(zhí)行裝箱操作,將生產(chǎn)出的啤酒自動裝箱,用單片機實現(xiàn)該控制要求。69案例5啤酒生產(chǎn)線自動裝箱控制某啤酒自動生產(chǎn)線,每生產(chǎn)12解:如果啤酒生產(chǎn)線上裝有傳感裝置,每檢測一瓶啤酒就向單片機發(fā)送一個脈沖信號,使用計數(shù)功能就可實現(xiàn)該控制要求。1)TMOD初始化06H2)計數(shù)初值:TH0=TL0=28-12=0F4H70解:如果啤酒生產(chǎn)線上裝有傳感裝置,每檢測一瓶啤酒就向單片機發(fā)程序清單#include<reg51.h>voidisr_time0(void);voidmain(){TMOD=0x06;TL0=0Xf4;TH0=0Xf4;TR0=1;ET0=1;EA=1;while(1);}voidisr_time()interrupt1{inti,time=600;P37=0;//驅(qū)動電機轉(zhuǎn)動
while(time--)//假設(shè)裝箱時間固定
for(i=500;i>0;i--);P37=1;//裝箱結(jié)束電機停止轉(zhuǎn)動}71程序清單#include<reg51.h>voidisr4.工作方式3振蕩器÷12TF1T1中斷TH0(8位)TR1控制T0端C/T=0C/T=1GATEINT0端TR0振蕩器÷12TF0T0中斷TL0(8位)控制l≥l&&&EAET0僅作定時器用!724.工作方式3振蕩器÷12TF1T1中斷TH0(8位)TR4.工作方式3M1M0=11T0、T1的設(shè)置和使用不同T0兩個8位的計數(shù)器TL0:使用T0原有控制資源,功能與方式0、1相同。TH0:借用T1的TR1、TF1,只能對片內(nèi)機器周期脈沖計數(shù),作8位定時器。T0初值計算完全同方式2。734.工作方式3M1M0=1173T0工作方式3時T1的工作T1仍然可工作于方式0~2,C/控制位仍可使T1工作在定時器或計數(shù)器方式,由于其TR1、TF1被T0的TH0占用,因而計數(shù)溢出時只能將輸出結(jié)果送至串行口,即用作串行口波特率發(fā)生器。T1工作于方式2,因定時初值能自動恢復(fù),用作波特率發(fā)生器。因定時器1的TR1被占用,其啟動和關(guān)閉比較特殊:當(dāng)設(shè)置好工作方式時,T1自動開始運行。送入一個設(shè)置定時器1為方式3的方式字即可停止T1
。74T0工作方式3時T1的工作T1仍然可工作于方式0~2,C/實例3-9已知系統(tǒng)晶振12MHz,試用定時器0的方式3實現(xiàn)1s的延時(設(shè)每秒讓P0.0所接的發(fā)光二極管閃爍一次)。TMOD初始化07HTH0作為定時器,定時時間250us;初值28-250=06HTL0作為計數(shù)器,計數(shù)200次;初值28-200=38H因250μs*200=50ms,則需引進一個變量,TL0計數(shù)滿后該變量加1,直至20則為1s75實例3-9已知系統(tǒng)晶振12MHz,試用定時器0的方式3實主函數(shù)#include<reg51.h>sbitP00=P0^0;sbitP34=P3^4;unsignedcharcount;voiddelay();main(){TMOD=7;TH0=0x06;TL0=0x38;TR0=1;TR1=1;while(1){P00=~P00;delay();}}76主函數(shù)#include<reg51.h>while(1)76延時函數(shù)voiddelay(){count=0;while(count<20){while(TF0==0){while(TF1==0);P34=0;TH0=6;TF1=0;P34=1;}TL0=0x38;TF0=0;count++;}}77延時函數(shù)voiddelay()77案例6以定時方式控制簡單流水
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初級會計實務(wù)-《初級會計實務(wù)》??荚嚲?54
- 基于干擾噪聲協(xié)方差矩陣重構(gòu)的穩(wěn)健波束形成算法研究
- 安全防范與電信詐騙應(yīng)對
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園發(fā)展與建設(shè)綜合方案
- 科創(chuàng)孵化器項目商業(yè)計劃書
- 光伏組件回收產(chǎn)業(yè)未來機遇與發(fā)展報告
- 文化傳媒行業(yè)編導(dǎo)培訓(xùn)總結(jié)
- 2025版高端石材工程采購及售后服務(wù)合同協(xié)議3篇
- 二零二五年度個人汽車維修貸款合同范本4篇
- 二零二五年度公益廣告宣傳海報設(shè)計與制作合同3篇
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調(diào)研考試(一模)英語試卷(含答案)
- 《酸堿罐區(qū)設(shè)計規(guī)范》編制說明
- 2025年信息系統(tǒng)集成服務(wù)公司組織架構(gòu)和業(yè)務(wù)流程
- 西藏自治區(qū)拉薩市城關(guān)區(qū)多校2024-2025學(xué)年六年級上學(xué)期期中英語試題
- 橋梁監(jiān)測監(jiān)控實施方案
- 公安法制培訓(xùn)
- 《鋼鐵是怎樣練成的》閱讀任務(wù)單及答案
- 書籍小兵張嘎課件
- 心臟驟停心肺復(fù)蘇生存鏈課件
- 新教材青島版三年級下冊科學(xué)全冊教學(xué)課件
- 風(fēng)力發(fā)電項目報價清單 (風(fēng)機基礎(chǔ)等)
評論
0/150
提交評論