《單片機原理與應用》課程設計---可編程定時計數(shù)器_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  1 前言</b></p><p>  在測量控制系統(tǒng)中,常常要求有一些實時時鐘,以實現(xiàn)定時控制、定時測量或延遲動作,也往往要求有計數(shù)器能對外部事件計數(shù),如測電機轉速、頻率、工件個數(shù)等。</p><p>  實現(xiàn)定時/計數(shù),有軟件、數(shù)字電路和可編程定時/計數(shù)器3種主要方法。</p><p>  軟件定時,即讓機器執(zhí)行

2、一個程序段,這個程序段本身沒有具體的執(zhí)行目的,通過正確地挑選指令和安排循環(huán)次數(shù)實現(xiàn)軟件延時,由于執(zhí)行每條指令都需要時間,執(zhí)行這一程序段所需要的時間就是延時時間。這種軟件定時占用CPU的執(zhí)行時間,降低了CPU利用率。</p><p>  數(shù)字電路硬件定時采用如小規(guī)模集成電路器件555,外接定時部件(電阻和電容)構成。這樣的定時電路簡單,但要改變定時范圍,必須改變電阻和電容,這種定時電路在硬件連接好以后,修改不方便。

3、</p><p>  可編程定時/計數(shù)器是為了方便微型計算機系統(tǒng)的設計和應用而研制的,它是硬件定時,又能很容易地通過軟件來確定和改變它的定時值,通過初始化編程,能夠滿足各種不同的定時和計數(shù)要求,因而在嵌入式系統(tǒng)的設計和應用中得到了廣泛的應用。</p><p>  2 定時器的工作原理</p><p>  8XX51單片機的定時/計數(shù)器T1由寄存器TH1,TL1組成,

4、定時/計數(shù)器T0由寄存器TH0,TL0組成,它們均為8位寄存器,在特殊功能寄存器中占地址8AH~8DH。它們用于存放定時或計數(shù)的初始值。此外,內(nèi)部還有一個8位的方式寄存器TMOD和一個8位的控制寄存器TCON,用于選擇和控制定時/計數(shù)器的工作。</p><p>  定時/計數(shù)器實質(zhì)上是一個加1計數(shù)器,它可以工作于定時方式,也可以工作于計數(shù)方式,兩種工作方式實際都是對脈沖計數(shù),只不過所計脈沖的來源不同。</p

5、><p>  本次課程設計主要用到定時功能,在此只介紹定時方式。</p><p>  在定時方式下,C/=0,開關打向上,計數(shù)器TH0、TL0的計數(shù)脈沖來自振蕩器的12分頻后的脈沖(),即對系統(tǒng)的機器周期計數(shù),當開關受控合上時,每過一個機器周期,計數(shù)器TH0,TL0加1,當計滿了預設的個數(shù)。TH0,TL0回零,置位定時/計數(shù)器溢出中斷標志位TF0(或TF1),產(chǎn)生溢出中斷。</p>

6、<p>  3 與定時/計數(shù)器有關的特殊功能寄存器</p><p>  51系列單片機的定時/計數(shù)器為可編程定時/計數(shù)器,在定時/計數(shù)器工作之前,必須將控制命令寫入定時/計數(shù)器的控制寄存器,即進行初始化。下面介紹定時/計數(shù)器的方式寄存器TMOD及控制寄存器TCON。</p><p>  3.1工作方式控制寄存器TMOD</p><p>  表3.1 定

7、時/計數(shù)器方式控制寄存器TMOD</p><p>  T1 T0</p><p>  TMOD GATE C/ M1 M0 GATE C/ M1 M0</p><p>  GATE為門控位,當GATE = 0 啟動不受或的控制,當GATE = 1 啟動受或的控制。</p>

8、<p>  C/為外部計數(shù)器/定時器方式選擇位,當C/= 0 為定時方式,當C/= 1 為計數(shù)方式。</p><p>  M1M0為工作模式選擇位,其模式與說明如下:</p><p>  M1 M0 模式 說明</p><p>  0 0 0 13位定時/計數(shù)器</p><p>  高八位TH(7

9、 ~ 0)+ 低五位TL(4 ~ 0)</p><p>  0 1 1 16位定時/計數(shù)器</p><p>  TH(7 ~ 0)+ TL(7 ~ 0)</p><p>  1 0 2 8位計數(shù)初值自動重裝</p><p>  TL(7 ~ 0) TH(7 ~ 0)</p><

10、p>  1 1 3 T0運行,而T1停止工作,8位定時/計數(shù)。</p><p>  3.2 定時/計數(shù)器控制寄存器TCON</p><p>  表3.2 定時/計數(shù)器控制寄存器TCON</p><p>  TCON TR1 TR0 </p>

11、<p>  TR0為定時/計數(shù)器0運行控制位,分兩種情況。當GATE = 0 時,若TR0 = 1,開啟T0計數(shù)工作,若TR0 = 0,停止T0計數(shù);當GATE = 1 時,若TR0 = 1 且= 1時,開啟T0計數(shù)。</p><p>  4 定時/計數(shù)器的工作方式</p><p>  根據(jù)對TMOD寄存器中M1和M0的設定,T0可選擇四種不同的工作方式,而T1只具有三種工作方式

12、(即方式0、方式1和方式2)。</p><p>  本次課程設計采用方式0,即13位定時/計數(shù)器。</p><p>  當TMOD中的M1=0、M0=0時,選定方式0工作。方式0時,計數(shù)寄存器由13位組成,即THx高八位(作計數(shù)器)和TLx的低5位(32分頻的定標器)構成。TLx的高3位未用。</p><p>  計數(shù)時,TLx的低5位溢出后向THx進位,THx溢出

13、后將TFx置位,并向CPU申請中斷。</p><p><b>  5 程序設計</b></p><p>  在原基礎上,擴展了開關控制和頻率選擇功能,程序如下:</p><p>  ORG 0000H</p><p>  LJMP MAIN</p><p>  ORG 0100H</p

14、><p>  MAIN: MOV TMOD,#00H ;初始化定時器</p><p>  SETB TR1 ;啟動定時器</p><p>  SW1: JB P1.1,SW2 ;檢測開關是否開啟,開啟則跳轉到SW2</p><p>  CLR P1.0 ;開關關閉,P1.0口輸出低電平&l

15、t;/p><p>  WAIT: JNB P1.1,WAIT ;等待開關打開</p><p>  SW2: JNB P1.2,K1 ;檢測開關是否撥到500Hz檔</p><p>  SW3: JNB P1.3,K2 ;檢測開關是否撥到1KHz檔</p><p>  SW4: JNB P1.4,K

16、3 ;檢測開關是否撥到2KHz檔 </p><p>  K1: MOV TH1,#0E0H ;裝入500Hz方波的時間常數(shù)</p><p>  MOV TL1,#18H</p><p>  AJMP LOOP</p><p>  K2: MOV TH1,#0F0H ;裝入1KHz方波的時間常數(shù)<

17、;/p><p>  MOV TL1,#0CH</p><p>  AJMP LOOP</p><p>  K3: MOV TH1,#0F8H ;裝入2KHz方波的時間常數(shù)</p><p>  MOV TL1,#06H</p><p>  AJMP LOOP</p><p> 

18、 LOOP: JNB TF1,LOOP ;檢測溢出標記</p><p>  CLR TF1 ;溢出標記清零</p><p>  CPL P1.0 ;P1.0端口輸出電平取反</p><p><b>  AJMP SW1</b></p><p><b>  END&l

19、t;/b></p><p>  程序全部編譯后,得到.HEX文件,作為仿真芯片的燒錄文件。</p><p>  6 Proteus仿真</p><p>  本次仿真選用AT89C51單片機,選取單刀多擲開關和示波器制作仿真。由于在Proteus中,單片機的一些端口已設置默認值,故無需再外加其他元件。仿真電路如下圖所示:</p><p>

20、<b>  圖6.1 仿真電路</b></p><p>  當開關撥到下檔,即程序設計中的關閉檔,示波器輸出波形如下圖所示:</p><p>  圖6.2 關閉檔示波器波形</p><p>  當開關撥到左下檔,即程序設計中的500Hz檔,示波器輸出波形如下圖所示:</p><p>  圖6.3 500Hz檔示波器波形&

21、lt;/p><p>  當開關撥到左上檔,即程序設計中的1KHz檔,示波器輸出波形如下圖所示:</p><p>  圖6.4 1KHz檔示波器波形</p><p>  當開關撥到上檔,即程序設計中的2KHz檔,示波器輸出波形如下圖所示:</p><p>  圖6.5 2KHz檔示波器波形</p><p><b>

22、  7 心得體會</b></p><p>  這次單片機原理與應用的課程設計,題目是單片機產(chǎn)生一個500Hz方波的設計,經(jīng)過翻閱《單片微型計算機與接口技術》的課本,以及相關資料,我確定了程序設計思路和電路原理圖。這個設計主要采用AT89C51芯片。</p><p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable

23、and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器。</p><p>  利用WAVE軟件,通過匯編語言實現(xiàn)對其功能的控制。我再次的翻閱課本及相關功能的實現(xiàn)程序,最后我寫出了產(chǎn)生500Hz方波的匯編程序,并對其做了功能擴展。</p><p>  接下來就是運行,修改調(diào)試以及Proteus仿真。在程序編譯過程中也出現(xiàn)了些小問題,如漏掉“,” ,

24、指令鍵入錯誤等,但經(jīng)過檢查和修改,終于編譯成功了。</p><p>  在閱讀及學習了Proteus軟件的用法及實例的相關資料后,通過設計電路和程序的設計思路,我做出了仿真電路,經(jīng)仿真后得出了500Hz的方波,在此過程中還擴展了開關控制及頻率選擇功能,我從中感悟到了擴展的一般思路。</p><p>  通過這次《單片機原理與應用》的課程設計,我從中不僅學到了生成方波信號的程序設計原理和基本

25、思路,并且深入了解了AT89C51芯片的編程控制,而且也加深了對理論的認識,進一步理解了匯編語言的指令功能和用法,了解了如何通過程序去控制硬件,通過硬件測試如何發(fā)現(xiàn)問題并通過修改程序而解決問題,更學會了如何通過各種途徑收集資料,從中獲取需要的信息,并為我所用,成為自己的能力,這對于今后的學習還是工作都有著積極的影響。</p><p><b>  參考文獻</b></p><

26、;p>  [1] 李群芳,張士軍,黃建.單片微型計算機與接口技術(第2版).北京:電子工業(yè)出版社,2005.1.</p><p>  [2] 周潤景,張麗娜,劉印群.PROTEUS入門實用教程.北京:機械工業(yè)出版社,2007.9.</p><p>  [3] 姚燕南,薛鈞義.微型計算機原理與接口技術.北京:高等教育出版社,2004.11.</p><p>  

27、[4] 朱清慧,張鳳蕊,翟天嵩,王志奎.Proteus教程—電子線路設計、制版與仿真.北京:清華大學出版社,2008.9.</p><p>  [5] 毛敏.MCS51系列單片機系統(tǒng)及應用實踐教程.北京:高等教育出版社,2006.7.</p><p><b>  致謝</b></p><p>  在本次課程設計中,我從中學到了不少東西,不僅加強

溫馨提示

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

評論

0/150

提交評論