基于51單片機的速度檢測系統_第1頁
基于51單片機的速度檢測系統_第2頁
基于51單片機的速度檢測系統_第3頁
基于51單片機的速度檢測系統_第4頁
基于51單片機的速度檢測系統_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、本科畢業設計(論文) 基于51單片機的速度檢測系統摘 要在工程實踐中,經常會遇到各種需要測量轉速的場合,測量轉速的方法分為模擬式和數字式兩種。模擬式采用測速發電機為檢測元件,得到的信號是模擬量。數字式通常采用光電編碼器,霍爾元件等為檢測元件,得到的信號是脈沖信號。隨著微型計算機的廣泛應用,特別是高性能價格比的單片機的出現,轉速測量普遍采用以單片機為核心的數字式測量方法。本文便是運用單片機控制的智能化測量自行車轉速。自行車在運行過程中,需要對其進行監控,轉速是一個必不可少的一個參數。本系統就是對自行車轉速進行測量,并顯示轉速,了解自行車運行的基本狀況。本設計主要用AT89C51作為控制核心,由霍

2、爾傳感器、LED數碼顯像管、及24C02構成。詳細介紹了單片機的測量轉速系統及串行通訊。充分發揮了單片機的性能。本文重點是測量速度并顯示在4位LED數碼管上。其優點硬件是電路簡單,軟件功能完善,測量速度快、精度高、控制系統可靠,性價比較高等特點。關鍵字:MSC-51(單片機); 計算機; 傳感器 自動化 測量 Speed test brief introductionAbstract:In the bike practice, we will meet each kind to need frequently to survey the rotational speed the situati

3、on, the survey rotational speed method divides into the simulation type and the digital two kinds. The simulation type uses measured that the fast generator is the detecting element, obtains the signal simulates the the de graduated from the design of the issue is control of the intelligent use of s

4、peed measuring instrument.The aticle is the motor speed measurement, and basic situation. This topic describes the design steps and method of humidity measurement system which based on chipdesign a system which can measure temperature and humidity, show the measurement results and warming. This syst

5、em uses AT89C51 as the main chip, use a new integrated digital temperature and humidity sensor DHT11 gather the temperature and humidity data.It uses C language to design system programming on development platform. The main design is divided .Key words:single chip; intelligence; computer; transimite

6、r; test.目 錄第1章 引言1第2章 系統介紹22.1 系統結構22.2 系統要求3第3章 硬件電路設計43.1 單片機模塊43.2 霍爾傳感器模塊93.3 顯示模塊103.424C02存儲器簡介11第4章 軟件設計144.1編譯語言的選擇144.2程序模塊144.3集成開發環境Keil介紹17第5章調試225.1系統硬件調試225.2 系統軟件調試225.3 系統整體調試23結 論24致 謝24參考文獻25附件1原理圖26附件2 PCB板27附件3 實物28附件4 程序28 III第1章 引 言 自行車被發明及使用到現在已有兩百多年的歷史,在這兩百年間人類在不斷的嘗試與研發過程中,自行

7、車發展的目的也從最早的代步工具轉換成休閑娛樂的用途,隨著生活水平的提高,人們希望自行車的功能更強大,比如說對行車信息的掌握,而里程計/速度計正滿足了這個需求。現在先進的里程/速度計能夠顯示實時的速度和里程,是人們實時掌握相關信息,更好的安全行車。 我國是自行車大國,據統計,平均每個家庭擁有2.6兩自行車,自行車在人們的日常生活中扮演者越來越重要的角色,上班,旅行,等等。很多行為都能看到它的身影。它已成為了我們生活中不可或缺的一員了。 常常聽說汽車摩托超速行駛造成交通事故,但很少說自行車超速。其實是我們太小看這一問題了,在網上有一份調查報告說,全國和自行車有關的交通事故,相當大比例是由自行車速度

8、過快引起的,自信車的超速造成交通事故而把其他機動車當成替罪的羔羊,是一件很冤枉的,因此說行車過程中對速度的把握是一件很重要的事情。 智能化轉速測量可以對自行車的轉速進行測量,車在運行的過程中,適時對轉速的測量有效地可以反映車的狀況。 目前國內外測量電機轉速的方法很多,按照不同的理論方法,先后產生過模擬測速法(如離心式轉速表、用電機轉矩或者電機電樞電動勢計算所得)、同步測速法(如機械式或閃光式頻閃測速儀)以及計數測速法。計數測速法又可分為機械式定時計數法和電子式定時計數法。傳統的電機轉速檢測多采用測速發電機或光電數字脈沖編碼器,也有采用電磁式(利用電磁感應原理或可變磁阻的霍爾元件等)、電容式(對

9、高頻振蕩進行幅值調制或頻率調制)等,還有一些特殊的測速器是利用置于旋轉體內的放射性材料來發生脈沖信號其中應用最廣的是光電式,光電式測系統具有低慣性、低噪聲、高分辨率和高精度的優點加之激光光源、光柵、光學碼盤、CCD 器件、光導纖維等的相繼出現和成功應用,使得光電傳感器在檢測和控制領域得到了廣泛的應用本系統主要由傳感器,單片機AT89C51構成。可以對大范圍轉速進行測量, 測量的轉速精度高。 第2章 系統介紹 2.1 系統結構 本文首先介紹了此系統的結構要求、技術指標以及主要內容等;再論述了總體設計過程,確定了技術指標及器件的選擇;接著重描述了系統硬件電路設計、硬件設計框圖及所使用的各種芯片功能

10、與特性;接著重點剖析了軟件設計的過程,最后通過調試達到目標。 轉速測量的方案選擇,一般要考慮傳感器的結構、安裝以及測速范圍與環境條 件等方面 的適用性;本論文中給出的速度測量方案,經過我查資料、構思和自己的分析,從實現難度、熟悉程度、器件用量等方面綜合考慮,總體電路為以下方案。下面就看一下我對設計方案的簡要說明。 系統主要實現的功能是AT89C51單片機接收霍爾傳感器傳來的脈沖信號,由于霍爾器件直接輸出高低電平信號已完成對速度信號的處理,所以可以直接送到單片機的相關接口,單片機根據外部中斷,以及內部定時器進行記數計算出自行車速度和里程送到LED顯示,該處LED顯示管采用4位共陽型,同時數據傳給

11、24C02,實現數據掉電后保存。同時在運行過程中交替顯示速度與里程信息。達到對行車信息的掌握。系統組成框圖如下2-1: 霍爾傳感器 LED顯示 單 片 機 AT89C51 復位電路 存儲 時鐘電路 圖2-1 系統框圖2.2 系統要求 將霍爾傳感器產生的脈沖信號輸出入到單片機的外部中斷端口,單片機工作在內部定時器工作方式0,對周期信號進行內部記數,調用計算公式算出轉速,調用顯示程序顯示在LED上,同時通過串口向存儲單元發送轉速數據。主要內容:(1)單片機部分主要完成自行車速度的測量。(2)LED部分主要是把速度顯示出來。(3) 24C02實現系統在掉電時的信息保存。根據系統要實現的功能以及要求,

12、要實現單片機的轉速測量主要是各個模塊的設計,定時器記數功能、以及LED驅動。單片機可通過編程控制外圍部件,能實現較高的自動化程度。以它為系統核心的控制模塊可實現主從控制,完成預定的任務。 硬件設計的任務是根據總體設計要求,在選擇的機型的基礎上,具體確定系統中所要使用的元器件,設計出系統的原理框圖、電路原理圖。89C51單片機通過INT0輸入傳感器的脈沖信號,P0口P2口接LED動態顯示和信息存儲。 軟件需要解決的是定時器0的記數和外部中斷0的設定、由于測量的轉速范圍大,所以低速和高速都要考慮在內,關鍵在于一個四字節除三字節程序的實現。顯示部分、需要有一個二進制到十進制的轉化程序,以及轉換成非壓

13、縮BCD 的程序后、才能進行調用查表程序送到顯示。PC機串口和單片機串行口的工作方式,包括串行口的通訊速率、奇偶校驗位、停止位等均由通信部分的軟件部分實現。轉速部分軟件設計思路: AT89C51單片機的P3.2口接收傳感器的信號。主要編寫一個外部中斷服務程序INT_0,讀取記數值的三個字節,并再次清0記數初值以便下次的記數和計算。調用兩字節二進制-三字節十進制(BCD)轉換子程序BCD,再調用十進制轉換成非壓縮BCD程序CBCD、最后調用查表程序送顯示,系統要求單片機晶振12MHZ。軟件的具體設計將在后面介紹。 第3章 硬件電路設計硬件的功能由總體設計所規定,硬件設計的任務是根據總體設計要求,

14、在選擇的機型的基礎上,具體確定系統中所要使用的元器件,設計出系統的電路原理圖,必要時做一些部件實驗,以確定電路圖的正確性,以及工藝結構的設計加工、印制板的制作、樣機的組裝等。設計單片機模塊,考慮到單片機本身的外圍電路較多,所以在單片機模塊方面需要極為小心。在整個電路設計時要考慮電平轉換電路.3.1 單片機模塊根據系統功能要求以及單片機硬件電路設計思路對單片機模塊進行設計,要使單片機準確的測量電機轉速,并且使測出的數據能顯示出來,所以整個單片機部分分為傳感器電路、時鐘電路、復位電路、執行元件以及顯示電路五個部分。單片機我們采用AT89C51,其引腳圖如圖3-1,相較于INTEL公司的8051它本

15、身帶有一定的優點。AT89C51是一種帶4K字節閃爍可編程可擦除只讀存貯器,高性能CMOS 8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器, AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。 圖3-1 AT89C51引腳圖主要特性:·與MCS-51 兼容·4K字節可編程閃爍存儲器 壽命:1000寫/擦循環 ·數據保留時間:10年·全靜態工作:0Hz-24Hz&#

16、183;三級程序存儲器鎖定·128*8位內部RAM·32可編程I/O線·兩個16位定時器/計數器·5個中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內振蕩器和時鐘電路管腳說明:1.VCC:供電電壓;2.GND:接地;3.P0口:P0口為一個8位漏極開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。4.P1口:P

17、1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。5.P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內

18、部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。6.P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表31所示:7.RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。8.ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在

19、FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。表3-1 P3口引腳引 腳第二功能信 號 名 稱P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行數據接收串行數據發送外部中斷0請求外部中斷1請求定時器/計數器0計數輸入定時器/計數器1計數輸入外部RAM寫選通外部RAM讀選通9./PSEN:外部程序存儲器的選通

20、信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。10./EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。11.XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。12.XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內

21、振蕩器。石英振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。時鐘電路是計算機的心臟,如圖3-2,它控制著計算機的工作節奏。MCS-51單片機允許的時鐘頻率是因型號而異的典型值為12MHZ 圖3-2 時鐘電路MCS-51內部都有一個反相放大器,XTAL1、

22、XTAL2分別為反相放大器輸入和輸出端,外接定時反饋元件以后就組成振蕩器,產生時鐘送至單片機內部的各個部件。AT89C51是屬于CMOS8位微處理器,它的時鐘電路在結構上有別于NMOS型的單片機。單片機內部(如AT89C51)有一個可控的負反饋反相放大器,外接晶振(或陶瓷諧振器)和電容組成振蕩器,圖42為CMOS型單片機時鐘電路框圖。振蕩器工作受/PD端控制,由軟件置“1”PD(即特殊功能寄存器PCON.1)使/PD0,振蕩器停止工作,整個單片機也就停止工作,以達到節電目的。清“0”PD,使振蕩器工作產生時鐘,單片機便正常運行。圖中SYS為晶振或陶瓷諧振器,振蕩器產生的時鐘頻率主要由SYS參數

23、確定(晶振上標明的頻率)。電容C1和C2的作用有兩個:其一是使振蕩器起振,其二是對振蕩器的頻率f起微調作用(C1、C2大,f變小),其典型值為30pF。計算機在啟動運行時都需要復位,如圖3-3,使中央處理器CPU和系統中的其它部件都處于一個確定的初始狀態,并從這個狀態開始工作。 圖3-3 復位電路單片機采用的復位方式是自動復位方式。對于MOS(AT89C51)單片機只要接一個電容至VCC即可。在加電瞬間,電容通過電阻充電,就在RST端出現一定時間的高電平,只要高電平時間足夠長,就可以使MCS-51有效的復位。RST端在加電時應保持的高電平時間包括VCC的上升時間和振蕩器起振的時間,Vss上升時

24、間若為10ms,振蕩器起振的時間和頻率有關。10MHZ時約為1ms,1MHZ時約為10ms,所以一般為了可靠的復位,RST在上電應保持20ms以上的高電平。RC時間常數越大,上電RST端保持高電平的時間越長。若復位電路失效,加電后CPU從一個隨機的狀態開始工作,系統就不能正常運轉。3.2 霍爾傳感器模塊 CS3020霍爾開關電路最適于響應變化斜率陡峭的磁場并在磁通密度較弱的場合使用,適用于單極或多對磁環工作,它由反向電壓保護器、電壓調整器、霍爾電壓發生器、信號放大器、史密特觸發器和集電極開路的輸出級組成。工作溫度范圍為-40 150(存儲溫度為150),可適用于各種機及機電一體化領域。 霍爾傳

25、感器是對磁敏感的傳感元件,常用于開關信號采集的有CS3020(如圖3-4)、CS3040等,這種傳感器是一個3端器件,外形與三極管相似,只要接上電源、地,即可工作,輸出通常是集電極開路(OC)門輸出,工作電壓范圍寬,使用非常方便。將有字面對準自己,三根引腳從左向右分別是Vcc,地,輸出。圖3-4 CS3020外形圖 圖3-5 CS3020傳感器連接方式使用霍爾傳感器獲得脈沖信號,只要在轉軸的圓周上粘上一粒磁鋼,讓霍爾開關靠近磁鋼,就有信號輸出,轉軸旋轉時,就會不斷地產生脈沖信號輸出。如果在圓周上粘上多粒磁鋼,可以實現旋轉一周,獲得多個脈沖輸出。原理電路如圖3-5,在粘磁鋼時要注意,霍爾傳感器對

26、磁場方向敏感,粘之前可以先手動接近一下傳感器,如果沒有信號輸出,可以換一個方向再試。 3.3 顯示模塊顯示電路采用LED數碼管動態顯示,LED是一種外加電壓從而渡過電流并發出可見光的器件。LED是屬于電流控制器件,使用時必須加限流電阻。LED有單個LED和八段LED之分,也有共陰和共陽兩種。常用的七段顯示器的結構如圖所示。發光二極管的陽極連在一起的稱為共陽極顯示器,陰極連在一起的稱為共陰極顯示器。1位顯示器由八個發光二極管組成,其中七個發光二極管ag控制七個筆畫(段)的亮或暗,另一個控制一個小數點的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少。此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分

27、布,在了解了正確的引腳圖后才能進行正確的字型段碼編碼。才能顯示出正確的數字來,如圖3-6所示,為七段數碼管的管腳圖。圖3-6七段發光顯示器管為了節省I/O口線,我們采用的動態顯示方式。所謂動態顯示,就一位一位地輪流點亮各位顯示器(掃描),對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導通電流有關,也與點亮時間和。5位共陰極顯示器和AT89C51的接口邏輯如圖所示。AT89C51的P0口作為段數據口,接上拉電阻到顯示器的各個段;P2口作為掃描口, 連接電路如圖3-7。 圖3-7 顯示管電路在AT89C51RAM存貯器中設置4個顯示緩沖器單元30H35H,分別存放4位顯示器的顯示數據

28、,AT89C51的P2口掃描輸出總是只在一位為低電平,即4位顯示器中僅有一位公共陰極為低電平,其它位為高電平,AT89C51的P0口相應位(陰極為低)的顯示數據的段數據,使該位顯示出一個字符,其它們為暗,依次地改變P2口輸出為高的位,P0口輸出對應的段數據,4位顯示器就顯示出由緩沖器中顯示數據所確定的字符。以上介紹的是一位的顯示管,在本次設計中,為方便連線,采用4位共陽極型。3.424C02存儲器簡介24C02 是一個2K 位串行CMOS E2PROM, 內部含有256 個8 位字節,CATALYST 公司的先進CMOS 技術實質上減少了器件的功耗。AT24C02 有一個16 字節頁寫緩沖器。

29、該器件通過IC 總線接口進行操作,有一個專門的寫保護功能。管腳封裝如圖3-8所示。DIP:雙列直插式封裝,是最簡單的一種封裝技術。 圖3-8 24c02外形24C02 支持IC,總線數據傳送協議IC,總線協議規定任何將數據傳送到總線的器件作為發送器,任何從總線接收數據的器件為接收器。數據傳送是由產生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發送器或接收器,其9個動作控制著讀愈寫的各項操作,但由主器件控制傳送數據(發送或接收)的模式,通過器件地址輸入端A0、A1 和A2 可以實現將最多8 個24C02 器件連接到總線上。管腳描述如表 表3-2 24C02管腳功能SCL串行

30、時鐘AT24C02 串行時鐘輸入管腳用于產生器件所有數據發送或接收的時鐘,這是一個輸入管腳。SDA 串行數據/地址AT24C02 雙向串行數據/地址管腳用于器件所有數據的發送或接收,SDA 是一個開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進行線或(wire-OR)。A0、A1、A2 器件地址輸入端這些輸入腳用于多個器件級聯時設置器件地址,當這些腳懸空時默認值為0。當使用AT24C02 時最大可級聯8 個器件。如果只有一個24C02 被總線尋址,這三個地址輸入腳(A0、A1、A2 )可懸空或連接到Vss,如果只有一個24C02 被總線尋址這三個地址輸入腳(A0、A1、A2 )必須連接到Vss

31、。WP 寫保護:如果WP 管腳連接到Vcc,所有的內容都被寫保護只能讀。當WP 管腳連接到Vss 或懸空允許器件進行正常的讀/寫操作。以前通過簡單的器件之間替換比較,發現不同牌號的24C02其抗干擾性能是不一樣的,于是就認定24C02器件存在"質量"好壞的問題。后來在一次偶然的機會里,發現有些24C02的WP引腳并不起到保護作用,也就是說將 WP引腳與CPU輸出引腳斷開并保持高電平的情況下,CPU仍然能夠對24C02中的數據進行修改寫入!在驚訝之余,筆者收集了許多不同牌號的24C02 進行試驗,除了基本的讀寫功能外,還對地址功能以及WP引腳保護功能進行了全面的檢測,發現一種

32、ATMEL(激光印字)以及XICOR牌號的24C02具有全面的符合I2C總線協議的功能,而有些牌號24C02要么沒有WP引腳保護功能,要么沒有器件地址功能(即2 片24C02不能共用一個I2C總線),有些甚至兩種功能均無。所以說一些同樣功能型號的電子器件在兼容性上往往會帶來意想不到的問題,值得引起注意。 在此數據以十進制BCD碼方式存入24C02,這樣可以提高有效數據的冗余度,即24C02中其有效數據為0-9,大于9則為無效數據。這樣,在數據寫入24C02之前就可以插入校驗子程序,對預備寫入的數據進行檢查,若該RAM數據已經受到干擾,其值大多數應落在大于9的范圍內(可能性百分比系數為246/2

33、56),故此當數據大于9時就禁止執行寫入24C02的子程序,以免錯誤數據寫入24C02,而對正常需要修改的參數無影響。24C02中數據保持冗余度后,還可以對讀出數據進行檢查,若為大于9的非正常數據,說明24C02中數據已經受到干擾,此干擾值是絕對不能用的.24C02連接方式如圖3-9所示。 圖3-9 24C02電路第4章 軟件設計 4.1編譯語言的選擇對于單片機的開發應用中,逐漸引入了高級語言,C語言就是其中的一種。匯編語言的可控性較高級語言來說更具優越性。程序編寫語言比較常見的有C語言、匯編語言。匯編語言的機器代碼生成效率高,控制性好,但就是移植性不高。C語言編寫的程序比用匯編編寫的程序更符

34、合人們的思考習慣。還有很多處理器都支持C編譯器,這樣意味著處理器也能很快上手。且具有良好的模塊化、容易閱讀、維護等優點,且編寫的模塊程序易于移植。基于C語言和匯編語言的優缺點,本系統采用C語言編寫方法。軟件編寫的主體思路是將系統按功能模塊化劃分,然后根據模塊要實現的功能寫各個子程序。整個軟件程序的編寫采用查詢式方式編寫的。4.2程序模塊程序實現的功能:與硬時間調整與顯示,數據存儲。功能子函數的調用。其中在子程序速度信號處理中,設N是內部定時器的計數值,為三字節,分別由TH0,TL0,VTT構成;由于采用12MHz的晶振,所以Tc是1um,帶入上面公式,即可得到轉速的精確計算公式: N=60*1

35、1059200/12N=55296000/N。在主程序模塊中,需要完成對各接口芯片的初始化、自行車里程和速度的初始化、中斷向量的設計以及開中斷、循環等待等工作。另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器、速度寄存器,并對它們進行初始化。然后主程序將根據各標志寄存器的內容,分別完成啟動、清除、計程和計速等不同的操作。P1.0用于顯示里程狀態和速度狀態。速度,高電平為顯示里程。中斷0用于對輪子圈數的計數輸入,輪子每轉一圈,霍爾傳感器輸出一個低電平脈沖。將根據里程寄存器中的內容計算和判斷出行駛里程數。中斷1用于控制定時器T1的啟/停,當輸入為0時關閉定時器。此控制信號是將輪子圈數

36、的計數經二分頻后形成。這樣,每次定時器T1的開啟時間剛好為轉一圈的時間,根據輪子的周長就可以計算出自行車的速度。其程序流程如圖4-1所示。 開始初始化P1.2=1?NP1.3=1?P1.6=1?P1.7=1?出錯提示將車圈周長調入21H開中斷,啟動定時器P3.0=1?調用里程處理子程序調用速度處理子程序NNNYYYYNY 4-1主程序流程圖 下面我們將介紹除數是如何獲得的:單片機的轉速測量完成,定時器T0作為內部定時器,外部中斷來的時候讀取TH0,TL0,并同時清零TH0、TL0,使定時器再次循環計內部脈沖。此外,對于低速情況下,我們還要設定一個軟件計數器VTT,當外部中斷還沒來而內部定時器已

37、經溢出,產生定時器0中斷時,增加VTT,作為三字節中的高字節,三字節商為兩字節(最高轉速36000r/min足夠)的程序。當最后一位數據移出時轉換完成。當CS從低變為高時,A如想要進行下一次轉換,CS必須做一個從高到低的跳變 。開始顯示單元首址取顯示數據送段碼到P0口取段碼表首址調用延時送位選到P2口4位顯示結束返回Y修改顯示單元地址求下一位位選碼 4-2顯示流程圖具體程序見附件.4.3集成開發環境Keil介紹KEIL uVISION2是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,是眾多單片機開發軟件之一,它支持眾多不同公司的MCS51架構的芯片,它集編輯,編

38、譯,仿真于一體,同時還支持PLM(產品全生命周期管理)、匯編和C語言的程序設計,它的界面和常用的微軟VC+的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。安裝好后,讓我們一起來建立一個小程序項目吧。即使你手中還沒有一塊實驗板,甚至沒有一塊單片機,不過沒有關系我們可以通過KEIL軟件仿真看到程序運行的結果。首先當然是運行KEIL51軟件。運行幾秒后,出現如圖的屏幕。圖4-3 啟動時點擊Project 菜單,選擇彈出的下拉式菜單中的New Project,如圖5-3-2。接著彈出一個標準Windows 文件對話窗口,如圖5-3-3,用法技巧也不是這里要說的,以后的章節中出

39、現類似情況將不再說明。在“文件名”中輸入您的第一個C 程序項目名稱,這里我們用“test”,這是筆者慣用的名稱,大家不必照搬就是了,只要符合Windows 文件規則的文件名都行。“保存”后的文件擴展名為uv2,這是KEIL uVision2 項目文件擴展名,以后我們可以直接點擊此文件以打開先前做的項目。圖4-4 文件窗口選擇所要的單片機,這里我們選擇常用的Ateml 公司的AT89C51。此時屏幕如5-3-4 所示。AT89C51 有什么功能、特點呢?請看圖中右邊有簡單的介紹,是英文的。圖4-5 選取芯片首先我們要在項目中創建新的程序文件或加入已經存在的程序文件。如果您沒有現成的程序,那么就要

40、新建一個程序文件。在KEIL中有一些程序的Demo,在這里我們還是以一個C程序為例介紹如何新建一個C程序和如何加到您的第一個項目中吧。點 中1的新建文件的快捷按鈕,在2中出現一個新的文字編輯窗口,這個操作也可以通過菜單FileNew 或快捷鍵CTRL+N 來實現。點擊圖5 中的3 保存新建的程序,也可以用菜單FileSave 或快捷鍵CTRL+S進行保存。因是新文件所以保存時會彈出類似5-3-3 的文件操作窗口,我們把第一個程序命名為test1.c,保存在項目所在的目錄中,這時您會發現程序單詞有了不同的顏色,說明KEIL 的C語法檢查生效了。如圖5-3-5鼠標在屏幕左邊的Source Grou

41、p1 文件夾圖標上右擊彈出菜單,在這里可以作在項目中增加減少文件等操作。我們選“ Add File to Group Source Group 1”彈出文件窗口,選擇剛剛保存的文件,按ADD 按鈕,關閉文件窗,程序文件已加到項目中了。這時在Source Group1 文件夾圖標左邊出現了一個小+號說明,文件組中有了文件,點擊它可以展開查看。圖4-6 把文件加入到項目文件組中C 程序文件已被我們加到了項目中了,下面就剩下編譯運行了。這個項目我們只是用做學習新建程序項目和編譯運行仿真的基本方法,所以使用軟件默認的編譯設置,它不會生成用于芯片燒寫的HEX 文件。要生成用于芯片燒寫的HEX 文件,應進

42、行如下設置:在Creat HEX File前打選擇。 圖4-7燒寫中1、2、3都是編譯按鈕,不同的是1 是用于編譯單個文件。2是編譯當前項目,如果先前編譯過一次之后文件沒有做動編輯改動,這時再點擊是不會再次重新編譯的。3是重新編譯,每點擊一次均會再次編譯鏈接一次,這就是開啟關閉調試模式的按鈕,它也存在于菜單DebugStartStop Debug Session 進入調試模式,軟件窗口樣式大致如圖5-3-8所示。圖中1 為運行,當程序處于停止狀態時才有效,2 為停止,程序處于運行狀態時才有效。3 是復位,模擬芯片的復位,程序回到最開頭處執行。下載到單片機的內部運行1)用KEIL (或用TOPI

43、CE52)生成的HEX文件步驟: 點擊Project 菜單,選擇彈出的下拉式菜單中的New Project; 選擇所要的單片機,如選擇常用的Ateml 公司的AT89C51; 在項目中創建新的程序文件或加入已經存在的程序文件; 如果沒有已經存在的程序文件,新建、保存; 編譯; 調試 、生成HEX文件。2)下載本實驗箱提供ISP方式的下載,將KEIL生成的HEX文件下載到單片機的內部flash。連接ISP下載器和單片機的ISP下載口。注意:單片機的P1.5 P1.6 P1.7不能被短接。3)ISP下載方法使用Easy 51Pro.exe軟件,運行界面如圖所示。圖4-8軟件運行界面4)ISP下載步

44、驟 選擇器件 裝載HEX文件 擦除器件 寫器件5)運行將KEIL生成的HEX文件下載到單片機的內部flash后,按REST鍵和關機后再開機即可運行單片機的內部的程序。 第5章調 試在前面幾章中,我們詳細討論了硬件和軟件設計,但是要系統真正的運行起來達到預期的指標和功能,就必須對系統進行調試。系統的調試包括系統的硬件和軟件設計。5.1系統硬件調試焊接前應對整個電路板進行檢查。首先,用萬用表對印制的電路板線路進行檢查,該過程是在焊接元器件之前的必要工作,主要是檢查印制的電路板線路是否有斷路的情況,如果檢查沒有問題,則可以對元器件進行焊接。焊接前對電阻、電容的量值要進行測量、篩選,選擇與電路中參數值

45、一致的元器件,在選擇芯片時,要注意芯片與設計要求的型號、規格和安裝是否一致。在焊接時,應將印制的電路板認真對照原理圖,查看元器件的引腳焊接是否正確。PCB版圖見附件2。電路板焊接完成后,需要對每個元器件的引腳逐個進行檢查,一方面是檢查有沒有引腳虛焊或與其他信號線短路,另一方面是對器件引腳功能的再檢查,查看設計是否正確。檢查電路焊接沒有問題后,則可以進行上電測試。上電測試是調試的關鍵部分,按照系統方案設計的模塊化思想,應該分模塊測試系統。首先系統上電以后,測試各個電源端口和器件的電源部分是否工作正常,同時應注意系統中有無器件過熱情況,如果有的話,可能是相應的器件損壞或電路中有短路,需要認真檢查之

46、后再加電。如果沒有問題,則可以進行功能的檢測。由于系統硬件較復雜,硬件電路裝配、焊接完成后,可能不能正常工作。為了方便調試,采用分塊調試的方法。在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成芯片的損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5V5.5V之間屬正常范圍。5.2 系統軟件調試硬件調試完成以后,軟件調試就非常重要。系統軟件調試時也要分模塊來進行調試,這樣才能使進程有條不紊的進行下去,而不至于出現混亂。首先,檢查LED液晶顯示屏。LED顯示屏上電后,檢查是否可以正常顯示,第一行顯示英文字符,第二行顯示時間,此時,按下按鍵即可對時間進行調整。其次,

47、調試存儲模塊。檢查存儲模塊是否能夠讀寫信息,當存入一個數據的時候,讀出來,看是否與之前存入的數據一致,而可認為存儲模塊正常工作。再次,調試單片機與數模轉換模塊,在LED模塊調試成功之后,就可以調試數模轉換模塊,在模擬的測試一個電壓,若能夠正常顯示記錄的數據,則調試成功。最后調試傳感模塊,根據傳感器的要求,輸入一個9V高電壓和一個5V電壓,則傳感能經過轉換,在顯示正常的電壓,則調試成功。5.3 系統整體調試本設計通過Keil C51軟件對程序進行編譯調試。在軟件和硬件的分別調試成功后,將程序的燒入單片機中后,進行整塊系統的調試,提供5V的電壓,使單片機和傳感器,和各個元件都能正常工作后,即把傳感

48、器轉動,察看顯示的值與理論相符,調試成功。 結 論目前,隨著人們的生活節奏的改變,自行車的數量也越來越多,從而引發的交通是事故也急劇增加,其中大部分是由于超速。所以設計具有民用價值的速度檢測儀的研制受到了人們的高度重視。設計能夠滿足生活需要,攜帶方便的便攜式速度檢測儀迫在眉睫。針對目前的現狀,該系統設計遵守體積小,質量輕,性價比高的原則。軟件是用C語言相編寫的,具有很好的編寫語言的優點,具有很好的可控性、模塊化和移植性。編寫的思路就是模塊化的思想,將系統的各個功能進行劃分,然后對各個模塊進行設計。本系統的主要模塊為傳感檢測、單片機處理、液晶顯示和存儲器存儲。首先要了解系統所要實現的功能;其次根

49、據功能去選擇相應的硬件資源;再次將一個大的系統進行模塊化劃分,然后逐一去攻破。最后把所有模塊進行優化整合,便得到了一個完整的系統。基于這樣的思路,我才成功完成了速度檢測儀的基本設計。 致 謝參考文獻1.何立民.單片機應用技術選編.北京M:北京航空航天大學出版社,1997,102.張有德.單片微機原理、應用與實驗J.上海:復旦大學出版社,1997,83.李朝青.單片機外圍數字M.北京:北京航空航天大學出版社,1998,44.梁廷立 .現代集成電路實用手冊M.北京:科學技術出版社,1999,65.于海生.微型計算機控制技術選編J.北京:清華大學出版社,1999.36.徐愛鈞.智能化測量控制儀表原理

50、M. 北京:北京航空航天大學出版社,1995.117.周興華.手把手教你學單片機M.北京:北京航空航天大學出版社,1996,78.神龍工作室.Protel 2004 實用培訓教程J.北京:人民郵電出版社,1995,19.扈嘯,周旭升編著.單片機數據通信 J.成都:電子科技大學出版社,2002,910李全利、仲偉峰、徐軍.單片機原理及應用M.北京: 清華大學出版社 11何小艇、電子系統設計D. 浙江:浙江大學出版社 12 Atmels Self-gramming MictrollersRM. Odd Jostein 2003 13 Intel. MCS-51 Family of Single C

51、hip Users ManualJ.1990 14單片機控制的新型交流電壓表系統J.息,2008,(14):103104,209.15 王偉,劉曉平.高精度數字電壓表方案設計J.儀表技術,2007,(4):.16 proble William S M C , Iame B Y T ,Vernon L B. A noise insengitive solution to an ambiguity m in spectral estimation J . IEEE Trans. on AES ,1989 , 25 ( 5) :729-732.附件1原理圖 附件2 PCB板 附件3 實物附件4 程序#include <reg52.h>#include <stdio.h>#inclu

溫馨提示

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

最新文檔

評論

0/150

提交評論