《單片機應(yīng)用技術(shù)(匯編語言)(第二版)》課件 項目六 定時/計數(shù)器應(yīng)用_第1頁
《單片機應(yīng)用技術(shù)(匯編語言)(第二版)》課件 項目六 定時/計數(shù)器應(yīng)用_第2頁
《單片機應(yīng)用技術(shù)(匯編語言)(第二版)》課件 項目六 定時/計數(shù)器應(yīng)用_第3頁
《單片機應(yīng)用技術(shù)(匯編語言)(第二版)》課件 項目六 定時/計數(shù)器應(yīng)用_第4頁
《單片機應(yīng)用技術(shù)(匯編語言)(第二版)》課件 項目六 定時/計數(shù)器應(yīng)用_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

單片機應(yīng)用技術(shù)(匯編語言)(第二版)全國高級技工學(xué)校電氣自動化設(shè)備安裝與維修專業(yè)教材208208項目六定時/計數(shù)器應(yīng)用209209任務(wù)1提示音發(fā)生器設(shè)計任務(wù)2倒數(shù)計時器設(shè)計任務(wù)3生產(chǎn)線自動打包控制器設(shè)計210210定時/計數(shù)器應(yīng)用在日常生活和工業(yè)生產(chǎn)過程中往往需要進行定時,如電飯鍋定時煮飯、洗衣機定時洗衣、自動化生產(chǎn)線時間控制等。MCS-51系列單片機內(nèi)含有的可編程定時/計數(shù)器,可以獨立進行定時和對輸入脈沖進行計數(shù)。如圖6-0-1所示的微波爐定時器控制板就是利用單片機內(nèi)含的可編程定時/計數(shù)器實現(xiàn)定時控制。圖6-0-1微波爐定時器控制板211211任務(wù)1提示音發(fā)生器設(shè)計212212學(xué)習(xí)目標(biāo)1.認(rèn)識MCS-51系列單片機定時/計數(shù)器的結(jié)構(gòu)和工作原理。2.熟記定時/計數(shù)器控制寄存器TCON的設(shè)置方法。3.熟記定時/計數(shù)器工作方式寄存器TMOD的設(shè)置方法。4.熟記定時/計數(shù)器的工作方式。5.能完成定時/計數(shù)器定時、計數(shù)初值的計算和設(shè)定。6.能理解定時/計數(shù)器中斷控制方式。7.會運用單片機定時器設(shè)計提示音發(fā)生器并編寫程序。213213任務(wù)引入方波信號是一種常見的電信號,常應(yīng)用于通信和控制電路中。方波信號只有高電平和低電平兩個值,圖6-1-1所示為1kHz方波信號。機床報警器、提示音發(fā)生器、報警器閃爍控制和電動機控制設(shè)備等都需要用方波來作為控制信號?,F(xiàn)某工廠機床設(shè)備需要設(shè)計一個提示音發(fā)生器,用于提示加工任務(wù)執(zhí)行完成,要求選用合適的單片機和蜂鳴器,實現(xiàn)1kHz提示音功能。圖6-1-1方波信號214214相關(guān)知識215215一、定時/計數(shù)器結(jié)構(gòu)MCS-51系列單片機內(nèi)部包含有兩個16位定時/計數(shù)器T0和T1,分別由兩個獨立的8位專用寄存器組成,即T0由高8位TH0、低8位TL0寄存器組成,T1由高8位TH1、低8位TL1寄存器組成。定時/計數(shù)器可作為定時器和計數(shù)使用。從圖6-1-2中可以看出,定時/計數(shù)器主要由TCON、TMOD、TH1、TL1、TH0、TL0寄存器組成。圖6-1-2定時/計數(shù)器寄存器結(jié)構(gòu)圖相關(guān)知識一、定時/計數(shù)器結(jié)構(gòu)TCON寄存器中的TR0、TR1位負(fù)責(zé)定時/計數(shù)器T0、T1的啟動計數(shù)和停止計數(shù)。TMOD寄存器用于進行定時或計數(shù)功能選擇、啟動方式選擇及工作方式選擇。TH1、TL1和TH0、TL0寄存器分別存放T1和T0計數(shù)的初始值。MCS-51系列單片機的定時/計數(shù)器的主要核心部件就是計數(shù)器,無論作為定時功能還是計數(shù)功能,其本質(zhì)都是對脈沖進行計數(shù),只是計數(shù)脈沖來源不同。脈沖信號的來源可通過TMOD寄存器的C/T控制位進行選擇。216216相關(guān)知識二、定時/計數(shù)器控制單片機的定時/計數(shù)器的功能由TMOD和TCON寄存器設(shè)定,通過設(shè)定這兩個寄存器即可以實現(xiàn)不同的功能。表6-1-1為定時/計數(shù)器相關(guān)特殊寄存器的地址、位地址符號及復(fù)位值。217217相關(guān)知識一、定時/計數(shù)器結(jié)構(gòu)定時/計數(shù)器的控制寄存器TCON為一個8位的可位尋址寄存器,用于控制定時/計數(shù)器T0、T1的啟動和停止,同時控制定時器中斷溢出標(biāo)志位及外部中斷源的中斷請求標(biāo)志位。TCON寄存器格式如圖6-1-3所示。TF1:定時/計數(shù)器T1溢出標(biāo)志位。T1被允許計數(shù)后,TH1和TL1數(shù)值寄存器從初始值開始加1計數(shù),直到最高位產(chǎn)生計數(shù)溢出時TF1標(biāo)志位置1,向CPU請求中斷,直到CPU響應(yīng)中斷時,才由硬件清0,也可以由軟件清0。TR1:定時/計數(shù)器T1允許計數(shù)控制位。當(dāng)TR1=1時,定時/計數(shù)器T1允許開始加1計數(shù);當(dāng)TR1=0時,定時/計數(shù)器T1停止計數(shù)。TF0:定時/計數(shù)器T0溢出標(biāo)志位。T0被允許計數(shù)后,TH0和TL0數(shù)值寄存器從初始值開始加1計數(shù),直到最高位產(chǎn)生計數(shù)溢出時TF0標(biāo)志位置1,向CPU請求中斷,直到CPU響應(yīng)中斷時,才由硬件清0,也可以由軟件清0。1.定時/計數(shù)器的控制寄存器TCON218218相關(guān)知識一、定時/計數(shù)器結(jié)構(gòu)TR0:定時/計數(shù)器T0允許計數(shù)控制位。當(dāng)TR0=1時,定時/計數(shù)器T0允許開始加1計數(shù);當(dāng)TR0=0時,定時/計數(shù)器T0停止計數(shù)。1.定時/計數(shù)器的控制寄存器TCON圖6-1-3TCON寄存器格式219219相關(guān)知識一、定時/計數(shù)器結(jié)構(gòu)定時/計數(shù)器的工作方式寄存器TMOD為一個8位的寄存器,用于控制定時/計數(shù)器T0、T1的工作方式。高4位控制定時/計數(shù)器T1,低4位控制定時/計數(shù)器T0。TMOD寄存器格式如圖6-1-4所示。TMOD不能位尋址,只能進行字節(jié)設(shè)置,復(fù)位時寄存器初始值為00H。2.定時/計數(shù)器的工作方式寄存器TMODGATE(TMOD.7):門控選通位。當(dāng)GATE=0時,只要設(shè)置TR1=1,即可啟動定時/計數(shù)器T1開始計數(shù);當(dāng)GATE=1,TR1=1并且INT1=1(即INT1引腳輸入為高電平)時,定時器T1開始計數(shù)。圖6-1-4TMOD寄存器格式220220相關(guān)知識C/T(TMOD.6):定時/計數(shù)器T1的工作方式選擇位。當(dāng)C/T=0時,設(shè)置T1為定時器模式;當(dāng)C/T=1時,設(shè)置T1為計數(shù)器模式。GATE(TMOD.3):門控選通位。當(dāng)GATE=0時,只要設(shè)置TR0=1,即可啟動定時/計數(shù)器T0開始計數(shù);當(dāng)GATE=1,TR0=1并且INT0=1(即INT0引腳輸入為高電平)時,定時器T0開始計數(shù)。C/T(TMOD.2):定時/計數(shù)器T0的工作方式選擇位。當(dāng)C/T=0時,設(shè)置為T0定時器模式;當(dāng)C/T=1時,設(shè)置T0為計數(shù)器模式。M1、M0:工作方式選擇位。M1和M2組合可以定義4種工作方式,見表6-1-2。2.定時/計數(shù)器的工作方式寄存器TMOD221221相關(guān)知識三、定時/計數(shù)器工作方式定時/計數(shù)器T0、T1可以通過C/T位設(shè)置為定時器模式和計數(shù)器模式。定時/計數(shù)器T0、T1有4種工作方式,分別為工作方式0、工作方式1、工作方式2和工作方式3。定時/計數(shù)器T0和T1的工作原理完全相同,下面以定時器T0為例進行介紹。定時/計數(shù)器的控制框圖如圖6-1-5所示。圖6-1-5定時/計數(shù)器的控制框圖222222相關(guān)知識1.工作方式0三、定時/計數(shù)器工作方式工作方式0為13位定時/計數(shù)器,在此工作方式下的T0計數(shù)由TH0的8位和TL0的低5位組成,TL0高3位沒有使用。TL0的低5位溢出后向TH0進位,TH0計數(shù)溢出后置位TF0標(biāo)志位,向CPU提出中斷申請,直到CPU響應(yīng)轉(zhuǎn)入中斷時,硬件系統(tǒng)自動將TF0清零。TF0也可由程序查詢和清“0”。工作方式0的最大計數(shù)值為213(8192)。STC89C51系列單片機系統(tǒng)時鐘有兩種模式:一種是12T模式,每12個時鐘為一個機器周期,定時器加1。另外一種是6T模式,每6個時鐘為一個機器周期,定時器計數(shù)加1。223223相關(guān)知識1.工作方式0三、定時/計數(shù)器工作方式(1)當(dāng)C/T=0且GATE=0時,多路開關(guān)向上閉合,T0選擇定時器模式,T0對單片機系統(tǒng)機器周期計數(shù),每個機器周期T0定時器計數(shù)加1,定時時間為:T=(213-T0計數(shù)初始值)×機器周期。(2)當(dāng)C/T=1且GATE=0時,多路開關(guān)向下閉合,T0選擇計數(shù)器模式,T0對單片機外部T0(P34)引腳脈沖計數(shù)。(3)當(dāng)C/T=0且GATE=1時,僅有INT0=1和TR0=1時,設(shè)置為計數(shù)器對單片機外部T0(P34)引腳脈沖計數(shù)。(4)當(dāng)C/T=1且GATE=1時,僅有INT0=1和TR0=1時,啟動定時器對系統(tǒng)機器周期進行計數(shù),該方式可以對INT0引腳脈沖寬度進行測量。224224相關(guān)知識2.工作方式1三、定時/計數(shù)器工作方式工作方式1為16位定時/計數(shù)器,在此工作方式下的T0計數(shù)由TH0的8位和TL0的8位組成。工作方式1與工作方式0只是計數(shù)的最大值不同,其他功能與工作方式0相同。工作方式1的定時時間為:T=(216-T0計數(shù)初始值)×機器周期。3.工作方式2工作方式2為8位可自動重裝初值的定時/計數(shù)器,在此工作方式下TL0負(fù)責(zé)計數(shù),TH0不參與計數(shù),只是負(fù)責(zé)存放計數(shù)器初始值。當(dāng)T0計數(shù)至TL0計數(shù)溢出時,硬件將中斷請求標(biāo)志位TF0置1,同時自動將TH0的數(shù)值賦給TL0,即TL0=TH0,重裝時TH0數(shù)值不變。TL0從該數(shù)值開始計數(shù),直到下次計數(shù)溢出又進行重新裝載。定時器在該方式下的定時時間為:T=(28-TH0數(shù)值)×機器周期。雖然定時時間相比工作方式0和1短了,但由于有自動加載初始值功能,減少了程序初始值賦值運行時間,所以定時時間更加精確。225225相關(guān)知識4.工作方式3三、定時/計數(shù)器工作方式工作方式3與前面3種工作方式有很大不同,T1在此工作方式下無效,T0拆分成兩個獨立的8位定時/計數(shù)器使用,其中TL0作為不能自動重裝初始值的8位定時/計數(shù)器來使用,計數(shù)初始值仍需程序中加載。TL0可以作為定時器和計數(shù)器使用,由控制T0的C/T位設(shè)置選擇。其功能和控制方式同工作方式0和1,最大計數(shù)值為28(256)。工作方式3中TH0只能作為定時器使用,而不能用于計數(shù),因此沒有C/T控制位選擇。TH0的啟動只受T1的啟動位TR1控制,當(dāng)TH0計數(shù)溢出時置位TF1標(biāo)志位,向CPU提出中斷申請,直到CPU響應(yīng)轉(zhuǎn)入中斷時,硬件系統(tǒng)自動將TF1清零。定時時間T=(28-TH0數(shù)值)×機器周期。TH0的中斷服務(wù)地址占用T1的中斷服務(wù)入口地址。226226相關(guān)知識4.工作方式3三、定時/計數(shù)器工作方式當(dāng)T0運行在工作方式3時,由于TH0占用了T1啟動位TR1和溢出標(biāo)志位TF1,因此T1使用受到了限制。在此情況下,T1仍然可以工作在方式0、1、2中,即可作為定時器使用,又可作為計數(shù)器使用。只是計數(shù)器計滿溢出不能使用TF1溢出標(biāo)志位,不能向CPU申請中斷,只能將溢出信號直接送到串口,此時T1可以作為波特率發(fā)生器,只需程序?qū)懭牍ぷ鞣绞剑?、1、2時,T1即可自動運行。如需要停止T1工作,在程序中將T1控制方式設(shè)置為工作方式3即可,因為T1是不能工作在工作方式3的,強行設(shè)置為工作方式3,T1自然停止工作。227227相關(guān)知識四、定時/計數(shù)器的初始值計算T0或T1具有預(yù)賦初值功能,特殊功能寄存器THx和TLx(x=0,1)用于存放初值,單片機復(fù)位時計數(shù)初值為0。如圖6-1-6所示,定時/計數(shù)器T0、T1啟動后計數(shù)從初始值T初值開始加1計數(shù),當(dāng)計數(shù)到最大值M時溢出,產(chǎn)生中斷請求,并且將相應(yīng)的溢出標(biāo)志位TF0、TF1置1,完成一次完整的計數(shù)過程。圖6-1-6定時/計數(shù)器計數(shù)原理初始值的設(shè)定根據(jù)定時時間或計數(shù)需要計算,定時/計數(shù)器初始值設(shè)定的計算方法如下:定時/計數(shù)器初始值NS=2n-實際計數(shù)值式中,n為由工作方式?jīng)Q定的定時/計數(shù)器位數(shù)。在工作方式0下,n取13,213=8196;在工作方式1下,n?。保?,216=65536;在工作方式2和3下,n?。福玻福剑玻担?。228228相關(guān)知識四、定時/計數(shù)器的初始值計算1.公式方式獲取定時器初始值由于單片機采用12MHz,則機器周期為1μs。首先計算實際計數(shù)值。然后計算定時/計數(shù)器初始值如下:229229相關(guān)知識四、定時/計數(shù)器的初始值計算2.小程序方式獲取定時/計數(shù)器初始值230230小程序方式獲取定時器初始值通常比較簡單,首先打開51初始值設(shè)定小程序,如圖6-1-7所示。圖6-1-751初始值設(shè)定小程序界面相關(guān)知識231231四、定時/計數(shù)器的初始值計算2.小程序方式獲取定時/計數(shù)器初始值然后在定時器方式選項框中選中方式1,晶振頻率輸入12,定時時長輸入5,最后點擊“確定”按鈕即可獲取定時器初始值EC78H,如圖6-1-8所示。該十六進制數(shù)值表示當(dāng)51單片機晶振頻率為12MHz時,定時器以方式1定時5ms(5000μs)所要設(shè)定的初始值。圖6-1-851初始值設(shè)定小程序所獲取的初始值界面相關(guān)知識五、定時/計數(shù)器寄存器初始化定時/計數(shù)器寄存器的初始化步驟如圖6-1-9所示?!纠浚裕白鳛槎〞r/計數(shù)器,要求實現(xiàn)5ms定時,選擇工作方式1。具體初始化程序如下:圖6-1-9定時/計數(shù)器寄存器的初始化步驟MOV

TMOD,#05H;選擇T0為工作方式1,定時功能MOV

TH0,#0ECH;裝載定時/計數(shù)器T0定時5ms初值高8位MOV

TL0,#78H;裝載定時/計數(shù)器T0定時5ms初值低8位SETB

ET0;開啟定時/計數(shù)器T0中斷SETB

EA;開啟總中斷SETB

TR0;啟動定時/計數(shù)器T0,開始定時計數(shù)232232任務(wù)2倒數(shù)計時器設(shè)計233233學(xué)習(xí)目標(biāo)1.熟記定時/計數(shù)器查詢控制方式。2.會應(yīng)用定時/計數(shù)器查詢控制方式。3.會設(shè)計倒數(shù)計時器硬件電路。4.能用中斷和查詢方式編寫倒數(shù)計時器程序。5.能與他人分析討論倒計時計數(shù)器的設(shè)計思路,問題解決方法等。234234任務(wù)引入倒計時在平時的生產(chǎn)生活中十分常見,如交通信號燈顯示剩余通過時間或等待時間、微波爐加熱食物時顯示剩余加熱時間、火箭發(fā)射升空倒計時顯示等。圖6-2-1所示為人行交通倒計時信號燈。本任務(wù)是設(shè)計一個10s倒數(shù)計時器,利用單片機定時器實現(xiàn)每隔1s在數(shù)碼管上動態(tài)顯示10~0s倒計時功能。分析任務(wù)要求可知,該任務(wù)需要精確的秒數(shù)量級的數(shù),定時器計數(shù)溢出除了產(chǎn)生中斷外,還會產(chǎn)生溢出標(biāo)志TF,本任務(wù)可以用查詢方式實現(xiàn)1s定時,需要學(xué)習(xí)定時/計數(shù)器查詢控制的相關(guān)知識。圖6-2-1人行交通倒計時信號燈235235相關(guān)知識定時/計數(shù)器查詢控制定時/計數(shù)器查詢控制是一種條件傳送。在執(zhí)行服務(wù)程序前,首先查詢定時/計數(shù)器溢出標(biāo)志位TF0或TF1狀態(tài)信息,并加以測試判斷,條件滿足時才執(zhí)行服務(wù)程序,并需軟件使溢出標(biāo)志位清零,等待下一次溢出。在查詢過程中,CPU的利用率不高,適合于實時性能要求不高的情況。定時/計數(shù)器查詢控制流程圖如圖6-2-2所示。236236圖6-2-2定時/計數(shù)器查詢控制流程圖任務(wù)3生產(chǎn)線自動打包控制器設(shè)計237237學(xué)習(xí)目標(biāo)1.會描述定時/計數(shù)器作為計數(shù)器使用時的計數(shù)方式。2.能設(shè)計單片機控制生產(chǎn)線自動打包控制硬件電路。3.會編寫單片機控制生產(chǎn)線自動打包控制程序。4.能與他人一起分析討論生產(chǎn)線自動打包控制器設(shè)計和調(diào)試過程中遇到的問題,并提出解決方法。238238任務(wù)引入在一條工業(yè)生產(chǎn)線上,零件通過一個裝有光電傳感器的傳送帶傳送,每當(dāng)零件通過傳感器時,傳感器向單片機發(fā)出一個脈沖信號,自動計數(shù)1個零件。本任務(wù)是設(shè)計一個生產(chǎn)線自動打包控制器

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論