4-1 控制LED發(fā)光二極管隔1秒閃爍_第1頁
4-1 控制LED發(fā)光二極管隔1秒閃爍_第2頁
4-1 控制LED發(fā)光二極管隔1秒閃爍_第3頁
4-1 控制LED發(fā)光二極管隔1秒閃爍_第4頁
4-1 控制LED發(fā)光二極管隔1秒閃爍_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第4章 看看單片機的鬧鐘定時/計數(shù)器任務4-1 控制LED發(fā)光二極管隔1秒閃爍1任務4-1 控制LED發(fā)光二極管隔1秒閃爍1、任務要求:通過P1.x口線控制外接的LED發(fā)光二極管亮1秒、滅1秒,循環(huán)不止。2、相關知識實現(xiàn)1秒的時間定時可以使用我們之前給大家介紹的CJNE指令來實現(xiàn)多層嵌套循環(huán)延時,但這種實現(xiàn)方法有兩大缺陷:(1)占用了CPU資源;(2)定時精度低。對于精確定時,一般需要采用定時/計數(shù)器來實現(xiàn)。1)16位加法計數(shù)器MCS-51單片機集成有兩個定時/計數(shù)器,即T0(Timer0)和T1(Timer1);定時器和計數(shù)器的區(qū)別:定時器與計數(shù)器從本質上來說是一致的,都是對脈沖計數(shù),不同的

2、是,定時器是對單片機機器周期計數(shù),而計數(shù)器則是對單片機引腳T0(P3.4)和引腳T1(P3.5)上的輸入脈沖計數(shù);2任務4-1 控制LED發(fā)光二極管隔1秒閃爍定時/計數(shù)器的工作原理:T0和T1的“計數(shù)容器”分別為特殊功能寄存器TH0、TL0及TH1、TL1。以T0為例,TH0、TL0分別作T0“計數(shù)容器”的高字節(jié)與低字節(jié),組成一個十六位存儲器。定時/計數(shù)之前,先賦予初值,則當計數(shù)溢出時,則完成定時/計數(shù)功能。設定的初值不同,則計數(shù)或定時時間就不同。2)定時/計數(shù)器控制寄存器TCON(Timer Control)TCON我們在上一章曾給各位介紹過,它的低四位與外部中斷有關,因此不再贅述;高四位與

3、定時/計數(shù)器T0和T1有關。(1)TR0(Timer Run 0)、TR1(Timer Run 1):分別為T0、T1的運行控制位。以TR0為例,TR0=1時T1工作,TR0=0時T0停止。(2)TF0(Timer Flag 0)、TF1(Timer Flag 1):分別為T0、T1的溢出標志位。以TF0為例,T0定時/計數(shù)溢出時由硬件自動將TF0置1,并向CPU申請中斷。如果T0中斷開放,CPU響應中斷進入中斷服務程序后,硬件將TF0自動清0;如果屏蔽了T0中斷,可軟件查詢TF0位等待定時/計數(shù)溢出,并進行相應處理,此時TF0必須手動清0。由此,定時/計數(shù)器使用有兩種編程方式:中斷方式、查詢

4、方式。3任務4-1 控制LED發(fā)光二極管隔1秒閃爍2)定時/計數(shù)器方式控制寄存器TMOD(Timer Mode)定時/計數(shù)器T0、T1各有四種工作方式,可通過對TMOD的設置來選擇。TMOD的低4位用于設定T0,高4位用于設定T1。注意:TMOD不能位尋址,復位時TMOD=00HTMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0(1)GATE:門控位。門控位的用法有兩種:當GATE=0時,定時/計數(shù)器的工作由TR0/TR1位控制。這是定時/計數(shù)器最常用的控制方式;當GATE=1時,必須滿足TR0/TR1=1,和 引腳為高電平這雙重條件,T0/T1才能

5、運行。(2)C/T:定時/計數(shù)器方式選擇位。C/T=1,作計數(shù)器用,對送到T0/T1引腳的外部脈沖計數(shù);C/T=0,作定時器用。(3)M1、M0:工作方式選擇位。具體見下表。4任務4-1 控制LED發(fā)光二極管隔1秒閃爍M1M0工作方式功能00方式013位定時/計數(shù)器01方式116位定時/計數(shù)器10方式28位自動重裝初值定時/計數(shù)器11方式3T0:分為兩個8位定時/計數(shù)器T1:停止工作4)定時/計數(shù)器方式0此時,T0/T1是13位定時/計數(shù)器,“計數(shù)容器”由THx的全部8位和TLx的低5位構成,可用程序將08191(213-1)中的某一數(shù)作為初值送入THx和TLx(方式0賦初值容易犯錯,具體后面

6、講)。THx、TLx從初值開始加法計數(shù),直至溢出。所以初值不同,定時時間或計數(shù)值不同。作計數(shù)器用:計數(shù)次數(shù)=213-計數(shù)初值作定時器用:定時時間=(213-計數(shù)初值)*機器周期其中:機器周期=12/fosc(fosc是晶振頻率)注意:定時/計數(shù)器溢出后,必須手動重設初值,否則下次將從0開始計數(shù)。5任務4-1 控制LED發(fā)光二極管隔1秒閃爍5)定時/計數(shù)器方式1此時,T0/T1是16位計數(shù)器,“計數(shù)容器”采用THx、TLx構成。因此計數(shù)范圍比方式0大,可用程序將065536(216-1)中的某一數(shù)作為初值送入THx和TLx。THx、TLx從初值開始加法計數(shù),直至溢出。所以初值不同,定時時間或計數(shù)

7、值不同。作計數(shù)器用:計數(shù)次數(shù)=216-計數(shù)初值作定時器用:定時時間=(216-計數(shù)初值)*機器周期關于方式2和方式3我們放到下次課再給大家繼續(xù)介紹6)定時/計數(shù)器初始化(*補充、重要)初始化操作是使用可編程定時/計數(shù)器的關鍵,使用前可參照以下步驟分析,然后編程實現(xiàn):根據實際需要選擇合適的工作方式和定時/計數(shù)方式,對TMOD寄存器賦值;6任務4-1 控制LED發(fā)光二極管隔1秒閃爍利用下面的表達式計算初值,寫入TH0、TL0或TH1、TL1。作計數(shù)器時:初值=最大計數(shù)值-計數(shù)次數(shù)作定時器時:初值=最大計數(shù)值-定時時間/機器周期【機器周期=12/fosc(fosc是晶振頻率)】最大計數(shù)值由選擇的工作

8、方式決定,可選213(方式0)、216(方式1)、28(方式2和T0 的方式3)若定時/計數(shù)器工作在中斷方式下,則通過對IE寄存器賦值開放相應中斷;將TR0或TR1置1啟動定時/計數(shù)器。若將GATE位設為1,用于檢測送到 引腳的正脈沖寬度,只有正脈沖送達中斷引腳時才開始運行(不常用)。7任務4-1 控制LED發(fā)光二極管隔1秒閃爍3、任務分析1)硬件電路不妨使用P1.1引腳作為LED發(fā)光二極管的驅動引腳,采用低電平驅動的方式。8任務4-1 控制LED發(fā)光二極管隔1秒閃爍2)軟件分析采用定時/計數(shù)器T0,方式1為例進行程序設計。TMOD=00000001B=01H這里我們假定采用Proteus系統(tǒng)

9、默認的晶振頻率fosz=12MHz,由此可以計算得出機器周期T=12/12M=1s最大定時時間=(216-計數(shù)初值)*機器周期=(216-0)*1=65536s1s采用多次溢出的方法,即定時器設定定時時間為50000s=50ms,溢出20次,間接實現(xiàn)定時1s的功能初值=最大計數(shù)值-定時時間/機器周期=216-50m/1=65536-50000=15536D=3CB0HTH0=3CH,TL0=B0H這里給同學們提供一個MCS-51單片機的定時/計數(shù)器初值計算工具(如果采用方式0,必須把初值計算結果展開為二進制數(shù),取低高八位賦給TH0,低5位賦給TL0)略思考:(1)這種定時方式不精確,為什么?9

10、任務4-1 控制LED發(fā)光二極管隔1秒閃爍3)軟件程序用兩種編程方式,即查詢方式和中斷方式(1)查詢方式 ORG 0000H AJMP MAIN ORG 0030HMAIN:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R1,#5 SETB TR0LOOP:JB TF0,LP1 AJMP LOOPLP1: CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R1,LOOP MOV R1,#5 CPL P1.1 AJMP LOOP END10任務4-1 控制LED發(fā)光二極管隔1秒閃爍(2)中斷方式 ORG 0000H AJMP MAIN ORG 000BH AJMP T0_INTMAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論