智能脈沖寬度測量儀_第1頁
智能脈沖寬度測量儀_第2頁
智能脈沖寬度測量儀_第3頁
智能脈沖寬度測量儀_第4頁
智能脈沖寬度測量儀_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、摘 要近年來隨著科技的飛速發展,單片機的應用正在不斷地走向深入,人們已越來越多地將單片機技術應用于一些工業控制系統。如溫度、流量和壓力等參數進行檢測和控制。PC機具有強大的監控和管理功能,而單片機則具有快速及靈活的控制特點,因此在實時檢測和自動控制的應用系統中,單片機往往是作為一個核心部件來使用。本系統采用單片機AT89C52為中心器件來設計智能脈沖寬度測量儀,本系統是由一個555定時器來產生脈沖信號,將信號輸入單片機中,然后運行程序,最后通過譯碼在LED數碼管動態顯示。本系統實用性強、操作簡單、擴展性強。在現有的單片機仿真系統上掌握相關軟硬件設計與調試知識,根據所選的題目,焊接好硬件電路,正

2、確進行元器件的測試與調試,并在計算機上編寫匯編程序調試運行,并實現參考選題中要求的設計。關鍵詞:脈沖寬度測量Title:Intelligent Pulse Width Measuring InstrumentApplicant:Zhang XinSpecialty:Electrical engineering and automationABSTRACTIn recent years, with the rapid development of science and technology, the application of SCM is developing continuously.

3、It has been increasingly used the technology of SCM to the industrial control system. Such as temperature, flow and pressure and so on. Though PC machines have powerful monitoring and management functions, in detection and automatic control application system, SCM is often used as a core component w

4、hich is rapid and flexible. This system uses the AT89C52 as the core component to design intelligent pulse width measuring instrument, This system generates the pulse signal which will be input the single chip microcomputer throught a 555 timer 。 Then I run and decode the program .Finally,the result

5、 will show dynamicly on the LED screen.this system is practical, simple operation and extensible. In the existing microcomputer simulation system hardware and software design and commissioning to master relevant knowledge, according to the selected topic, welding good hardware circuit and the correc

6、t components, and the testing and debugging assembly program on the computer test and operation, written and realize the design requirements of the reference topics.Keywords:Pulse Width Measurement目 錄1 前言11.1 課題研究背景1 單片機技術的發展狀況1 本文的研究內容22 設計內容及具體要求32.1 設計的主要任務32.2 設計的具體要求33 設計方案及總框架53.1 設計不同方案對比5 程控

7、脈沖測量5 等精度脈沖測量5 確定方案總框架圖6 各部分框圖簡介6 原理圖83.1.6 PCB板圖104 硬件部分原理及設計114.1 單片機部分11 功能特性描述11 引腳功能114.1.3 AT89C52的存儲器結構13 定時器14 單片機內部的中斷154.2 脈沖產生電路164.3 數碼管顯示電路205 軟件部分設計215.1 Keil C軟件的使用介紹215.2 Keil C軟件的基本操作步驟215.3 主程序設計23 主程序流程圖23 程序源代碼245.3.3 Kiel51源程序調試306 系統調試及誤差分析336.1 系統調試測驗336.2 實驗結果336.3 誤差分析33 算法誤

8、差:33 硬件誤差:337 總結與展望35致謝37參考文獻391 前 言1.1 課題研究背景近年來單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此越來越廣泛地應用于智能化儀器,儀表,數據采集等各個領域,單片機往往是作為一個核心部件來使用,在根據具體硬件結構,以及針對具體應用對象特點的軟件結合, 通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用一些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用一些系列單片機,結果就會有天壤之

9、別!只因為單片機可以通過你編寫的程序實現高智能,高效率,以及高可靠性!隨著社會的發展,科學的進步,人們的生活水平在逐步的提高,尤其是微電子技術的發展,猶如雨后春筍般的變化。單片機的應用已經越來越貼近生活,用單片機來實現一些電子設計也變得容易起來。計算機在人們的日常中是比較的常見的電子產品之一。目前對各種物理量的檢測和控制都可得以實現。微機檢測控制系統不僅運用到航天航空、機器人技術、紡織機械、食品加工等工業過程控制,而且已經成為日常各種家用電器當中的主要組成部分。而其中單片機技術以其實現簡單、使用靈活及數據傳輸可靠等有優點被廣泛的應用于中小型實時控制系統中,其實時數據處理和控制功能可使測控系統始

10、終保持在最佳的工作狀態,提高系統的工作效率。1.1.1 單片機技術的發展狀況單片機自20世紀70年代問世以來得到了廣泛的應用,主要應用于測試和控制領域。由于單片機在使用時,通常是處于測控系統的核心地位并嵌入其中,所以國際上通常把單片機稱為嵌入式控制器(Embedded MicroController Unit,EMCU)或微控制器(MicroController Unit,MCU)。而在我國,大部分工程技術人員則比較習慣使用“單片機”這一名稱。,單片機的出現是微型計算機技術高速發展的產物。單片機體積小、價格低、應用方便、穩定可靠,因此,單片機的發展和普及給工業自動化等領域帶來了一場重大革命和技

11、術進步。僅從體積小方面來說,單片機幾乎可以在任何設施或任意裝置上做成非常小的、功能比較完善的單片機嵌入系統置于其中,以實現各種方式的檢測、計算或控制,在這一點上,一般的微型計算機根本做不到。由于單片機本身就事一個計算機系統,因此只要在單片機外部適當增加一些必要的外圍擴展接口電路,就可以靈活的構成各種應用系統,如工業自動檢測監視系統、數據采集系統、自動控制系統、智能儀器儀表等。本設計是采用Intel公司生產的MCS-52系列的單片機,這類單片機的性能價格比高,所以被廣泛應用,是目前應用數量較多的單片機。1.1.2 本文的研究內容本設計的題目是智能脈沖寬度測量儀,脈沖寬度的測量,實質是時間的測量,

12、在生產和科學研究中,經常要測量時間,例如,完成第一生產工序所需要的時間、周期性信號的周期、激光測距和雷達測量目標距離、運動體行程的時間等等都說明時間測量的重要性。本論文主要是采用單片機AT89C51為中心器件來設計脈沖寬度測量儀,在現有的單片機仿真機系統上掌握相關軟硬件設計與調試知識,根據所設計好的電路,焊接好硬件電路,正確進行元器件的測試與調試,并在計算機上編寫程序調試運行,并實現脈沖寬度的測量。具體包括以下幾方面的內容:第一章,對單片機的應用背景進行了說明,并介紹了本次設計的實際意義。第二章,簡單概述了本次設計的內容和具體要求。第三章,簡單介紹兩種不同的設計方案,通過對比先擇較合理的程控式

13、測量方案。第四章,介紹了硬件部分的原理及設計。 第五章,介紹了軟件部分的程序。第六章,進行系統測試檢驗,并做了誤差分析。第七章,對全文進行了總結。2 設計內容及具體要求2.1 設計的主要任務(1)通過查閱相關資料,深入了解脈沖寬度測量儀的原理;(2)復習“MCS-51單片機原理及C語言程序設計”;(3)掌握其接口擴展包括:顯示、鍵盤等;(4)設計基于單片機的程控脈沖寬度測量儀的原理圖,構建硬件平臺;(5)采用C語言編寫應用程序并調試通過;(6)制作出樣機并測試達到功能和技術指標要求;(7)寫出畢業設計論文。2.2 設計的具體要求(1)原始數據1被測信號為數字信號;2測量范圍:100微秒-100

14、毫秒;3數碼管顯示動態顯示。(2)技術要求:1用4位數碼管顯示測量值。用發光二極管分別指示所測元件的類別和單位。2測量精度5%。3電感測量試用瞬態響應法測量。(3)工作要求:1組建智能脈沖寬度測量儀的總體結構框圖;2根據設計詳細的原理圖,選取只要元器件,通過理論分析和計算選擇電路參數;3根據操作功能要求,確定操作按鍵的功能;4按設計要求確定顯示方式及信息量;5采用C語言編寫應用程序并調試通過;6對系統進行測試和結果分析;3 設計方案及總框架3.1 設計不同方案對比3.1.1 程控脈沖測量1.實驗脈沖由555定時器產生,只要改變外接電阻電容就能獲得不同寬度的脈沖,供測量使用。 2.采用MCS-5

15、2單片機和外設電路測量脈沖寬度。MCS-51子系列單片機有3個定時器(計數器),當他們工作于定時器方式時,計數的輸入為內部的時鐘信號,頻率為固定的11.0592Hz。只要令GATE=1,TR0=1,TR1=1,將輸入脈沖接到“INT1(非)”口,即可測量輸入脈沖寬度。 3.采用動態數碼管顯示測量結果,兩片74LS573和位碼驅動鎖存器作為驅動電路。 4.為了使測量范圍更大,在程序中進行單位轉換,使用發光二極管指示單位。3.1.2 等精度脈沖測量對于脈沖寬度的測量,我們可以運用計數法的思想,即在一個脈沖的高電平期間填入給定的基準脈沖,通過填充的數量來計算需測量的脈沖寬度。為了提高其精度,減小誤差

16、,可以采用頻率較高的基準脈沖。根據題目要求,可將設計分為四部分:一為硬件方面的設計,由于同一類型的原理圖已給出,我們只需按照電路圖根據實際需要焊接好即可,并根據電路圖繪制相應的PCB板圖。二為主程序的設計,通過C52的有關功能包括計數/定時、中斷等編寫計數法的主程序。三為MFC-G12864點陣液晶屏輸出的設計,通過編程對其五個控制位進行操作,而有關數字文字以及符號的字模可通過字模生成軟件得到。四為五個功能按鍵的設計,其主要是通過與單片機的五個端口進行操作,其中每個按鍵可看做是對相應的子函數的調用。根據總體設計要求,系統總框圖如圖31所示圖31 等精度設計的系統總框圖3.1.3 確定方案總框架

17、圖由以上兩種方案都可以測量脈沖寬度,等精度測量方法要比程控式的精度更高,但程控式是用數碼管來顯示的,受自然環境的影響小,而等精度是用的液晶顯示屏受環境影響大,比如光線,由于實驗要求我選擇了程控脈沖測量法,下面具體論述這種方法的可行性。圖32為設計硬件的總體連接圖。圖32程控式測量總體框圖3.1.4 各部分框圖簡介(1).按鍵控制:這個設計共有五個發光二極管和三個按鍵,作用如下:發光二極管1::顯示脈沖寬度時間的單位。(燈亮為ms,燈滅為s) 發光二極管2:顯示555定時器外圍電阻的單位。(燈亮為k,燈滅為M)發光二極管3:顯示555定時器外圍電容的單位。(燈亮為pf,燈滅為uf)發光二極管4:

18、顯示555定時器外圍有無電容。(燈亮為無,燈滅為有)發光二極管5:顯示555定時器外圍有無電阻。(燈亮為無,燈滅為有)按鍵1:控制脈沖寬度時間刷新。按鍵2:控制555定時器外圍電阻刷新。按鍵3:控制555定時器外圍電容刷新。圖 33 555信號發生器(2)信號源發生電路:信號源由555定時器構成脈沖發生器(如圖3-3)。在測量的時候,會在R2和C1的兩端并聯電阻或者電容,本實驗將會測量脈沖的高電平的寬度,R2并聯的電阻值,以及C1并聯的電容值。由555脈沖發生器的基本原理可得以下結論:設:高電平的脈寬時間為TH,低電平的脈寬時間為TL.則R2=Tl*R1/(Th-Tl) (31)C1=(Th-

19、Tl)/(ln2*R1) (32)根據這個公式,通過單片機測出高電平,低電平的寬度,我們就可以計算出R2,C1的值。并且可以得到外圍點電路的R,C的值。(3).晶振電路:晶振是為電路提供頻率基準的元器件,通常分成有源晶振和無源晶振兩個大類,有源晶振不需要芯片的內部振蕩器,可以提供高精度的頻率基準,信號質量也較無源晶振要好。本實驗用f=11.0592MHz的晶振電路。晶振和C4、C5組成振蕩器,使單片機內部產生周期為1us的脈沖信號。圖34 晶振電路(4).驅動及LED顯示電路本實驗用了兩片74LS573,一片用于輸出段碼,一片用于輸出位碼。一片2803,用于LED數碼管驅動。四個LED數碼管。

20、采用共陰極接法,用掃描的方式顯示,每一個時刻只選通一個數碼管。用動態顯示的方式來顯示555定時器外圍總電阻值,總電容值以及脈沖高電平時間值。(5).單片機采用89C52單片機,共用到了三個定時器中斷。1.LED顯示:定時器中斷0,每2500us刷新一次,動態顯示形式。2.脈寬高電平測量:定時器中斷1,由信號的上升沿觸發,開始計數,記錄的是信號的高電平的脈寬時間。3.周期測量:定時器中斷2,下降沿觸發,采用捕捉模式,手動清零。定時器自動將周期時間存入固定的寄存器中。從而得到低電平的脈寬時間。這里簡單介紹一下這部分硬件,在下一章詳細的分析。3.1.5 原理圖通過Protel99繪圖及PCB制版,使

21、電路系統完整。根據我們以前所掌握的電路設計所用的軟件來講,能進行電路圖的設計以及針對我們設計要求,需做成PCB板,最終要根據PCB板進行實物的焊接和調試,因此,選取用protel99軟件進行電路的設計,進而對電路各個元件進行封裝,完成對PCB電路的生成,最終制成PCB板。圖35、圖36分別為整體電路原理圖和PCB電路圖。圖35 電路原理圖3.1.6 PCB板圖圖36 PCB板圖PCB板是兩層板,用protel99軟件生成的。4 硬件部分原理及設計4.1 單片機部分4.1.1 功能特性描述AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統可編程Flash 存儲器。使用Atme

22、l公司高密度非易失性存儲器技術制造,與工業80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89c52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。AT89c52具有以下標準功能:8k字節Flash,256字節RAM,32 位I/O 口線,看門狗定時器,兩個數據指針,三個16 位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89C52 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計

23、數器、串口、中斷繼續工作17。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。4.1.2 引腳功能89C52單片機有44個引腳PLCC和TQFP方形封裝形式,40個引腳的雙列直插式封裝形式,最常用的40個引腳封裝形式及其配置如圖4.1所示,各個引腳功能說明如圖41: 圖4189C52單片機的引腳VCC:電源,接+5VGND:接地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有

24、內部上拉電阻。在flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內部上拉電阻的8位雙向I/O 口,P1 輸出緩沖器能驅動4個TTL 邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發輸入(P1.1/T2EX)17,具體如表41所示。在flash編程和校驗時,P1口接收低8位地址字節。表41 89S52單片機P1口第

25、二功能引腳號第二功能P1.0T2(定時器/計數器T2的外部計數輸入),時鐘輸出P1.1T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)P1.5MOSI(在系統編程用)P1.6MISO(在系統編程用)P1.7SCK(在系統編程用)P2口:P2口是一個具有內部上拉電阻的8位雙向I/O 口,P2 輸出緩沖器能驅動4個TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX DPTR)時,P2 口送出高八位地址。在

26、這種應用中,P2 口使用很強的內部上拉發送1。在使用8位地址(如MOVX RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如表42所示。在flash編程和校驗時,P3口也接收一些控制信號。表42 89S52單片機P3口第二功能引

27、腳號第二功能P3.0RXD(串行輸入線)P3.1TXD(串行輸出線)P3.2(外部中斷0輸入線)P3.3 (外部中斷0輸入線)P3.4T0(定時器0外部計數脈沖輸入)P3.5T1(定時器1外部計數脈沖輸入)P3.6(外部數據存儲器寫選通信號輸出)P3.7(外部數據存儲器寫選通信號輸出)RST:復位輸入。晶振工作時,RST腳將持續2個機器周期高電平將使單片機復位。看門狗計時完成后,RST 腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態下,復位高電平有效。ALE/:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地

28、址的輸出脈沖。在flash編程時,此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE僅在執行MOVX或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執行模式下無效。:外部程序存儲器選通信號()是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執行外部代碼時,在每個機器周期被激活兩

29、次,而在訪問外部數據存儲器時,將不被激活。/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,必須接GND。為了執行內部程序指令,應該接VCC。在flash編程期間,也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內部時鐘發生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。4.1.3 AT89C52的存儲器結構AT89S52器件有單獨的程序存儲器和數據存儲器。外部程序存儲器和數據存儲器都可以64KB尋址。程序存儲器:如果引腳接地,程序讀取只從外部存儲器開始。對于89S52,如果接VCC,讀寫程序先從內部存儲器(地址為0000H1FFFH)開

30、始,接著從外部尋址,尋址地址為:2000HFFFFH。數據存儲器:AT89S52 有256 字節片內數據存儲器。高128 字節與特殊功能寄存器重疊。也就是說高128字節與特殊功能寄存器有相同的地址,而物理上是分開的。當一條指令訪問高于7FH 的地址時,尋址方式決定CPU 訪問高128 字節RAM 還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問0A0H(P2口)存儲單元MOV 0A0H, #data 使用間接尋址方式訪問高128 字節RAM。例如,下面的間接尋址方式中,R0 內容為0A0H,訪問的是地址0A0H的寄存器,而不是P2口(它的地址也是0

31、A0H)。MOV R0, #data堆棧操作也是間接尋址方式。因此,高128字節數據RAM也可用于堆棧空間。4.1.4 定時器1MCS-51系列中51子系列有兩個16位的可編程定時/計數器:定時/計數器T0和定時/計數器T1,52子系列有三個,還有一個定時/計數器T2。2每個定時/計數器既可以對系統時鐘計數實現定時,也可以對外部信號計數實現計數功能,通過編程設定來實現。3每個定時/計數器都有多種工作方式,其中T0有四種工作方式;T1有三種工作方式,T2有三種工作方式。通過編程設置其方式寄存器TMOD可設定定時器工作于某種方式,方式寄存器TMOD格式見表43。表43 定時/計數器的方式寄存器TM

32、ODGATEC/M1M2GATEC/M1M2門 控開/關計數/定時方式選擇門 控開/關計數/定時方式選擇T1 T0GATE:門控信號。GATE=0,TRx=1時即可啟動定時器/計數器工作,是一種自啟動的方式;GATE=1,TRx=1, =1時才可啟動定時器/計數器工作。即是引腳加高電平啟動,是一種外啟動方式。C/:定時或計數方式選擇位,當C/=1時工作于計數方式;當C/=0時工作于定時方式。M1、M0:為工作方式選擇位,定時器/計數器的四種工作方式由M1M0設定,設定情況見表44。表44 M1M0的設定M1M0工作方式方式說明00013位定時/計數器01116位定時/計數器1028位自動重置定

33、時/計數器113T0為兩個8位定時/計數器4每一個定時/計數器定時計數時間到時產生溢出,使控制寄存器TCON中相應的溢出位置位,溢出可通過查詢或中斷方式處理,控制寄存器格式見表45。表45 定時/計數器的控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0T1請求 有/無T1工作啟/停T0請求有/無T0工作啟/停INT1請求有/無INT1方式下沿/低電平INT0請求有/無INT0方式下沿/低電平其中:TF1:定時/計數器T1的溢出標志位,當定時/計數器T1計滿時,由硬件使它置位,如中斷允許則觸發T1中斷。進入中斷處理后由內部硬件電路自動清除。TR1:定時/計數器T1的啟動位,可由

34、軟件置位或清零,當TR1=1時啟動;TR1=0時停止。TF0:定時/計數器T0的溢出標志位,當定時/計數器T0計滿時,由硬件使它置位,如中斷允許則觸發T0中斷。進入中斷處理后由內部硬件電路自動清除。TR0:定時/計數器T0的啟動位,可由軟件置位或清零,當TR0=1時啟動;TR0=0時停止。4.1.5 單片機內部的中斷AT89S52 有6個中斷源:兩個外部中斷( 和),三個定時中斷(定時器0、1、2)和一個串行中斷。每個中斷源都可以通過置位或清除特殊寄存器IE中的相關中斷允許控制位分別使得中斷源有效或無效10。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。如表4.6所示,IE.6位是

35、不可以用的。它們為AT89系列新產品預留。定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發。程序進入中斷服務后,這些標志位都可以由硬件清0。實際上,中斷服務程序必須判定是否是TF2 或EXF2激活中斷,標志位也必須由軟件清0。定時器0和定時器1標志位TF0 和TF1在計數溢出的那個周期的S5P2被置位。它們的值一直到下一個周期被電路捕捉下來。然而,定時器2的標志位TF2在計數溢出的那個周期的S2P2被置位,在同一個周期被電路捕捉下來。表46 中斷允許控制寄存器(IE)EA -ET2 ES ET1 EX1 ET0 EX0EA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,

36、開放中斷。 ET2:定時器/計數器T2的溢出中斷允許位 ES:串行口中斷允許位。 ET1:定時器/計數器T1的溢出中斷允許位。 EX1:外部中斷 INT1的中斷允許位。 ET0:定時器/計數器T0的溢出中斷允許位。 EX0:外部中斷 INT0的中斷允許位。4.2 脈沖產生電路555定時器構成的多諧振蕩器:555外接定時電阻R1、R2和電容C構成的多諧振蕩器電路如圖4.2(a)所示,由圖可見,它將高電平觸發端TH和低電平觸發端TR相連,且放電回路中串接了一個定時電阻R2集成555定時器有雙極性型和CMOS型兩種產品。一般雙極性型產品型號的最后三位數都是555,CMOS型產品型號的最后四位數都是7

37、555.它們的邏輯功能和外部引線排列完全相同。器件電源電壓推薦為4512V,最大輸出電流200mA以內,并能與TTL、CMOS邏輯電平相兼容。其主要參數見表47。表47兩種555定時器的器件特性 (a)雙極性型5G555的主要性能參數參數名稱符號單位參數電源電壓VCCV516電源電流ICCmA10閾值電壓VTHVVCC觸發電壓VTRVVCC輸出低電平VOLV1輸出高電平VOHV13.3最大輸出電流IOMAXmA200最高振蕩頻率fMAXKHz300時間誤差tnS5 (b) CMOS型7555的主要性能參數參數名稱符號單位參數電源電壓VCCV318電源電流ICCA60閾值電壓VTHVVDD觸發電

38、壓VTRVVDD輸出低電平VV0.1輸出高電平VV14.8最大輸出電流IOMAXmA200最高振蕩頻率fMAXKHz500時間誤差tnS555定時器的內部電路框圖及邏輯符號和管腳排列分別如圖42和圖43所示。圖4.2 555定時器邏輯符號和和引腳圖4.3 555定時器內部結構引腳功能:Vi1(TH):高電平觸發端,簡稱高觸發端,又稱閾值端,標志為TH。Vi2():低電平觸發端,簡稱低觸發端,標志為。VCO:控制電壓端。VO:輸出端。Dis:放電端。:復位端。555定時器原理:555定時器內含一個由三個阻值相同的電阻R組成的分壓網絡,產生和兩個基準電壓;兩個電壓比較器C1、C2;一個由與非門G1

39、、G2組成的基本RS觸發器(低電平觸發);放電三極管T和輸出反相緩沖器G3。是復位端,低電平有效。復位后, 基本RS觸發器的端為1(高電平),經反相緩沖器后,輸出為0(低電平)。分析圖42的電路:在555定時器的VCC端和地之間加上電壓,并讓VCO懸空,則比較器C1的同相輸入端接參考電壓,比較器C2反相輸入端接參考電壓,為了學習方便,我們規定:當TH端的電壓時,寫為VTH=1,當TH端的電壓時,寫為VTR=1,當端的電壓時,寫為VTR=0。低觸發:當輸入電壓Vi2且Vi1且Vi1,則VTH=1,比較器C1輸出為低電平,無論C2輸出何種電平,基本RS觸發器因=0,使Q1,經輸出反相緩沖器后,V0

40、0;T導通。這時稱555定時器“高觸發”。555定時器的“低觸發”、“高觸發”和“保持”三種基本狀態和進入狀態的條件(即VTH、VTR的“0”、“1”)必須牢牢掌握。表48 555定時器控制功能表輸 入輸 出THVODis VCC VCC VCCLHHHLH不變L導通截止不變導通VCO為控制電壓端,在VCO端加入電壓,可改變兩比較器C1、C2的參考電壓。正常工作時,要在VCO和地之間接001F(電容量標記為103)電容。放電管Tl的輸出端Dis為集電極開路輸出。根據555定時器的控制功能,可以制成各種不同的脈沖信號產生與處理電路電路,例如,史密特觸發器、單穩態觸發器、自激多諧振蕩器等。圖44所

41、示為自激多諧振蕩器電路和波形圖。自激多諧振蕩器用于產生連續的脈沖信號。電路采用電阻、電容組成RC定時電路,用于設定脈沖的周期和寬度。調節RW或電容C,可得到不同的時間常數;還可產生周期和脈寬可變的方波輸出。脈沖寬度計算公式:Tw0.7 (R1+RW+R2) C圖44自激多諧振蕩器電路和波形圖振蕩周期計算公式:T0.7 (R1+RW+2R2) C電路的工作原理可對照圖所示工作波形圖來分析。當接通電源VCC時,如電容C上的初始電壓為0,則u0處于高電平,放電管T截止,電源通過R1、R2向C充電,經過t1時間后,uc達到高觸發電平(2Vcc/3),U0由1變為0,這時放電管T導通,電容C通過電阻R2

42、放電,到t=t2時,u2下降到低觸發電平(Vcc/3),u0又翻回到1狀態,隨即T又截止,電容C又開始充電。如此周而復始,重復上述的過程。就可以在輸出端(3端)得到矩形波電壓。現在計算此電路的振蕩周期。為了簡單起見,設組件內運放A、A的輸入電阻為無窮大,并近似地認為放電管T截止時,DIS端對地的等效電阻為無窮大,而放電管T導通時,管壓降為零。現以t=t2為起始點,可得充電時間T為:若以t3為起始點,可得電容C的放電時間為:由此可得方波的周期為T=T1+T2,頻率為:振蕩頻率主要取決于時間常數R和C,改變R和C參數可改變振蕩頻率,幅度則由電源電壓VCC來決定。但是輸出的矩形波是不對稱的,占空比為

43、:如果R1R2,則占空比接近于1。由此可知,若將被測電阻Rx或電容Cx接到555定時器的合適位置,則只需測出555定時器所產生的信號頻率,即可根據以上分析計算得到Rx、Cx的數值。4.3 數碼管顯示電路數碼管顯示器,是用來顯示測量脈沖的結果的,分動態顯示和靜態顯示。但靜態顯示功耗很大,本實驗不予采用,而選用數碼管靜態顯示,可大幅降低硬件成本和功耗發熱,因為某時刻只有一個數碼管處于工作狀態,也就是分時顯示。我們使用兩片74LS373作為7段碼和位碼驅動鎖存器,8個數碼管是共陰極數碼管,一片ULN2803作為位增強驅動器。單片機的定時器/計數器1來定時,用來控制每個數碼管顯示的時間(本題中定時時間

44、常數為2.5mS),則利用人眼的視覺暫留作用即可實現動數據的動態顯示。電路如圖45:圖45 數碼管顯示電路5 軟件部分設計5.1 Keil C軟件的使用介紹Keil C51集成開發環境是Keil Software,Inc/Keil Elektronik GmbH開發的基于80C51內核的微處理器軟件開發平臺,內嵌多種符合當前工業標準的開發工具,可以完成從工程建立到管理、編譯、鏈接、目標代碼的生成、軟件仿真、硬件仿真等完整的開發流程尤其是C編譯工具在產生代碼的準確性和效率方面達到了較高的水平,而且可以附加靈活的控制選項,在開發大型項目時非常理想。5.2 Keil C軟件的基本操作步驟第一步: 啟

45、動Keil集成開發軟件。第二步: 新建文本編輯窗。點擊工具欄上的新建文件快捷按鍵,即可在項目窗口的右側打開一個新的文本編輯窗,第三步:輸入源程序。在新的文本編輯窗中輸入源程序,可以輸入C語言程序,也可以輸入匯編語言程序。在本設計輸入C語言程序。第四步:保存源程序。保存文件時必須加上文件的擴展名,如果你使用匯編語言編程,那么保存時文件的擴展名為“.ASM”,如果是C語言程序,文件的擴展名使用“*.C ”。第五步:新建立Keil工程。點擊 工程 新建工程 命令,將出現保存對話框。在保存工程對話框中輸入你的工程的文件名,Keil工程默認擴展名為.uv2,工程名稱不用輸入擴展名,一般情況下使工程文件名

46、稱和源文件名稱相同即可,輸入名稱后保存,將出現選擇設備對話框,在對話框中選擇CPU的型號。第六步:選擇CPU型號。為工程選擇CPU型號,本新建工程選擇了ATMEL公司的AT89C52單片機。第七步:加入源程序到工程中。在選擇好CPU型號后,點擊確定按鈕返回主界面,此時可見到工程管理窗中出現“Target 1”,點擊“Target 1”前面的“”號展開下一層的“Source Group 1”文件夾,此時的新工程是空的,“Source Group 1”文件夾中什么文件都沒有,必須把剛才輸入的源程序加入到工程當中。右擊工程管理窗中的“Source Group 1”,出現下拉菜單,點擊“增加文件到組S

47、ource Group 1”命令,將出現添加文件對話框。在添加文件對話框中,找到要添加到工程中的源程序文件。注意:在對話框中的文件類型默認為“C 源文件 (*.c)”,如果你要添加到工程中的是匯編語言程序,則在文件類型中必須選中“Asm 源文件 (*.a*; *.src) ”, 以*.asm為擴展名的匯編源程序才會出現在文件列表框中。第八步:工程目標Target 1屬性設置。在工程項目管理窗中的Target 1文件夾上右擊,出現下拉菜單,點擊“目標Target 1屬性”命令,就進入目標屬性設置界面。第九步:源程序的編譯與目標文件的獲得。至此,我們已經完成了從源程序輸入、工程建立、工程詳細設置的

48、工作,接下來我們將完成最后的步驟,此時我們可以在文本編輯窗中繼續輸入或修改我們的源程序,使程序實現我們的目標,在檢查程序無誤后保存工程。接著點擊“構造目標”快捷按鈕,進行源程序的編譯連接,源程序編譯相關的信息會出現在輸出窗口中的“構造”頁中。編譯結果為0錯誤,0警告,同時產生了目標文件lich1.hex。如果源程序中有錯誤,則不能通過編譯,錯誤會在輸出窗口中報告出來,雙擊該錯誤,就可以定位到源程序的出錯行,我們可以對源程序進行反復修改,再編譯,直到沒有錯誤為止。注意:每次修改源程序后一定要保存。編譯通過后,我們打開工程文件夾,可以看到文件夾中有了“lich1.hex”,這就是我們需要的最終目標

49、文件,用編程器(也稱燒錄器)把該文件寫入單片機,單片機就可以實現我們程序的功能了,趕快把目標文件寫入單片機,在此,我們就可以看到良好的設計效果。5.3 主程序設計5.3.1 主程序流程圖程序初始化結束進入外部中斷1停止計數啟動定時器1T1是否溢出?否是計算技術次數以及脈寬點亮單位指示燈代碼轉換動態顯示脈寬溢出次數n=1圖51 程序主體框架 程序初始化后,當外部信號為高電平時輸入引腳T1,定時器開始工作運行程序,當低電平到來進入外部中斷1,開始計數,當T1不溢出,再次進入中段1,停止計數,運行程序計算脈沖寬度,通過譯碼在數碼管上顯示脈寬。P1口置1,TMOD=0x91,TH=TL=1,ET1=1

50、(T1溢出),EX1=1(INT1),IT1=1(下降沿)TR1=1,Delay()掩飾0.4s第一次進入外部中斷1,空操作,T1清0T1溢出?再次進入外部中斷2,TR1=EX=1。關閉計數和外部中斷計算計數次數和脈寬,根據脈寬的范圍點亮相應單位指示燈,進入代碼轉換動態顯示脈寬,利用定時器T0的溢出中斷來定時刷新(2.5ms)T1的溢出中斷3設置溢出次數n=1是否圖52 程序詳細流程5.3.2 程序源代碼#include #include #include #define SEGMENT XBYTE0x7fff /段碼寄存器地址#define BIT_LED XBYTE0xbfff /位碼寄存器地#define fosc 11.0592/晶振頻率#define time02500/定時2500uSsbit P10=P1

溫馨提示

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

評論

0/150

提交評論