基于單片機的智能速度里程表的設計(共19頁)_第1頁
基于單片機的智能速度里程表的設計(共19頁)_第2頁
基于單片機的智能速度里程表的設計(共19頁)_第3頁
基于單片機的智能速度里程表的設計(共19頁)_第4頁
基于單片機的智能速度里程表的設計(共19頁)_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上摘 要隨著時代的進步和發展,單片機技術已經普及到我們生活、工作、科研、各個領域,已經成為一種比較成熟的技術, 本文主要介紹了一個基于AT89C51單片機的速度里程系統,詳細描述了利用霍爾傳感器開發測速系統的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統可以方便的實現實現速度、里程的采集和顯示,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優點,有利于我們日常生活和汽車生產業的發展,也可以當作測速處理模塊嵌入其它系統中,作為其他主系統的輔助擴展。霍爾傳感器與AT89C51結合實

2、現最簡測速系統,該系統結構簡單,抗干擾能力強,適合于惡劣環境下進行速度里程測量,有廣泛的應用前景。關鍵詞:單片機AT89C51;速度檢測;霍爾傳感器;速度里程表目錄1 緒論11.1技術概述11.2本課題的背景和意義12 系統設計簡介32.1 速度里程表簡介32.2 設計目的及要求32.3 設計方案論證42.4 硬件設計電路43 設計語言及軟件介紹63.1 C語言介紹63.2 軟件介紹63.2.1Proteus軟件63.2.2Keil C5173.2.3單片機最小系統及復位電路74 系統軟件設計94.1 概述94.2 系統程序設計模塊及流程圖94.2.1主程序104.2.2延時子程序124.2.

3、3顯示程序134.3 調試及仿真135 設計總結和體會156 參考文獻16專心-專注-專業1 緒論 1.1技術概述傳統的車速表是機械式的,典型的機械式里程表連接一根軟軸,軟軸內有一根鋼絲纜,軟軸另一端連接到變速器某一個齒輪上,齒輪旋轉帶動鋼絲纜旋轉,鋼絲纜帶動里程表罩圈內一塊磁鐵旋轉,罩圈與指針聯接并通過游絲將指針置于零位,磁鐵旋轉速度的快慢引起磁力線大小的變化,平衡被打破指針因此被帶動。這種車速里程表簡單實用,被廣泛用于大小型汽車上。不過,隨著電子技術的發展,現在很多轎車儀表已經使用電子車速表,常見的一種是從變速器上的速度傳感器獲取信號,通過脈沖頻率的變化使指針偏轉或者顯示數字里程計是由若干

4、個計數轉鼓及其轉動裝置組成的。為了使用方便,有的車速里程表同時設有累計里程計和區間里程計,累計里程計用來記錄汽車累計行駛里程,區間里程計用來記錄汽車單程行駛里程。區間里程計有一個歸零按鈕,可以隨時復位至零,重新累計。1.2本課題的背景和意義數字溫度計采用進口芯片組裝精度高、高穩定性,誤差0.5%,內電源、微功耗、不銹鋼外殼,防護堅固,美觀精致。 數字溫度計采用進口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內置高能量電池連續工作5年無需敷設供電電纜,是一種精度高、穩定性好、適用性極強的新型現場溫度顯示儀。是傳統現場指針雙金屬溫度計的理想替代產品,廣泛應用于各類工礦企業,大專院校,科研院

5、所。 溫度數我們日常生產和生活中實時在接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統的指針式的溫度計雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數字溫度計的出現可以讓人們直觀的了解自己想知道的溫度到底是多少度。 數字溫度計采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導體,熱敏電阻等),將溫度的變化轉換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關系,如線性關系,一定的曲線關系等,這個電信號可以使用模數轉換的電路即AD轉換電路將模擬信號轉換為數字信號,數字信號再送給處理單元,如單片機或者PC機等,處理單元經過內部的軟件計算將這個

6、數字信號和溫度聯系起來,成為可以顯示出來的溫度數值,如25.0攝氏度,然后通過顯示單元,如LED、LCD或者電腦屏幕等顯示出來給人觀察。這樣就完成了數字溫度計的基本測溫功能。 數字溫度計根據使用的傳感器的不同,AD轉換電路,及處理單元的不同,它的精度,穩定性,測溫范圍等都有區別,這就要根據實際情況選擇符合規格的數字溫度計。 數字溫度計有手持式,盤裝式,及醫用的小體積的等等。2 系統設計簡介2.1 速度里程表簡介汽車車速里程表分為滾輪計數器和點距液晶屏式兩種,由指示汽車行駛速度的車速表和記錄汽車所行駛過距離的里程計組成的,二者裝在共同的殼體中,并由同一根軸驅動。普通車速表一般為磁感應式。滾輪計數

7、器是過去常用的純機械式儀表,通過一根軟軸,一頭連到變速箱輸出軸,另一頭連到里程表;而現在更常用的電子式儀表,它一般是在變速箱輸出軸或車輪上裝一個轉速傳感器,用讀出的轉速通過控制模塊內嵌的計算公式來換算成車速以及歷程。不管是哪種方式,歸根結底,數據都是來自于傳動系統輸出端的轉速(變速箱輸出軸或車輪),知道了車輪的轉速,比如每分鐘轉多少圈,再將車輪的周長(也就是車輪轉動一圈走過的距離)算上,車速就出來了,里程也是同樣的道理。 圖2.1速度里程表2.2 設計目的及要求1、了解并掌握Proteus軟件、KEIL軟件,并能熟練的使用其進行仿真;2、培養學生綜合運用前修課程所學的知識進行系統性的訓練;3、

8、養實際動手能力培以及合作的能力;4、利用溫霍爾度傳感器測量車輪的速度。5、測量速度里程由LED數碼管直讀顯示。2.3 設計方案論證根據系統的設計要求,利用矩形波觸發脈沖代替霍爾傳感器,從而對車輪轉速進行模擬。選擇單片機AT89C51為測控系統的核心來完成數據采集、處理、顯示等功能。該系統的總體設計思路如下:矩形波發生器產生矩形波脈沖發送到AT89C51單片機上,經過51單片機處理,將速度和里程在顯示電路上顯示,本系統顯示器用6位共陰LED數碼管以動態掃描法實現。按照系統設計功能的要求,確定系統由3個模塊組成:主控制器、檢測電路和顯示電路。本課題以是89C51單片機為核心設計的一種數字速度里程檢

9、測系統,系統整體硬件電路包括,傳感器數據采集電路,速度里程顯示電路,單片機主板電路等組成。系統框圖主要由控制模塊、外部信號及其檢測裝置、外部存儲器、LED顯示組成。速度里程表總體電路結構框圖如圖2.1所示。 圖2.1速度里程表的原理框圖2.4 硬件設計電路速度里程表設計電路圖如圖2.2所示,控制器使用單片機AT89C51,矩形波觸發器作為發生裝置,用LED實現速度和里程的顯示。圖2.2 速度里程表計設計電路圖3 設計語言及軟件介紹3.1 C語言介紹C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年

10、后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適于編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。3.2 軟件介紹3.2.1Proteus軟件Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外

11、圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持I

12、AR、Keil和MPLAB等多種編譯器。3.2.2Keil C51Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil C51軟件提供豐富的和功能強大的集成開發調試工具,全界面。另外重要的一點,只要看一下后生成的匯編代碼,就能體會到Keil 的優勢。KeilC51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的(IDE),可以完成編輯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯C或匯編源文

13、件。然后分別由C51及C51編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行級調試,也可由使用直接對進行調試,也可以直接寫入程序存貯器如EPROM中。3.2.3單片機最小系統及復位電路單片機最小系統,或者稱為最小應用系統,是指用最少的元件組成的單片機可以工作的系統。對51系列單片機來說,最小系統一般應該包括:單片機、晶振電路、復位電路.下面給出一個51單片機的最小系統電路圖。 圖3.1復位電路 圖3.2 51單片機最

14、小系統 復位電路:由電容串聯電阻構成,由圖并結合“電容電壓不能突變”的性質,可以知道,當系統一上電,RST腳將會出現高電平,并且這個高電平持續的時間由電路的RC值來決定。典型的51單片機當RST腳的高電平持續兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.一般教科書推薦C 取10u,R取8.2K.當然也有其他取法的,原則就是要讓RC組合可以在RST腳上產生不少于2個機周期的高電平。至于如何具體定量計算,可以參考電路分析相關書籍。晶振電路:典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產生精確的u

15、S級時歇,方便定時操作)。4 系統軟件設計4.1 概述整個系統的功能是由硬件電路配合軟件來實現的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監控軟件(主程序),它是整個控制系統的核心,專門用來協調各執行模塊和操作者的關系。二是執行軟件(子程序),它是用來完成各種實質性的功能如測量、計算、顯示、通訊等。每一個執行軟件是一個小的功能執行模塊。這里將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義。各執行模塊規劃好后,就可以規劃監控程序了。首先要根據系統的總體功能選擇一種最合適的監控程序結構,然后根據實時性的要求,合理地安排監控軟件和各執行模塊之間地

16、調度關系。用C語言完成對設計的軟件編程,程序先對各變量進行聲明和定義,之后是延時子程序,在進行定時器、計數器的初始化。在主函數中,先定義變量,程序的主體是由計數器產生的脈沖分別轉換為速度和里程,并將各個位的數字送到對應的數碼管的位,驅動顯示。4.2 系統程序設計模塊及流程圖系統程序主要采用順序結構,包括主程序,延時子程序,速度、里程計算子程序和顯示程序等。單片機CPU接收到傳感器感測到的脈沖(即鋸齒波觸發器產生的脈沖),并通過計數器對脈沖個數進行計數。單片機執行運算程序對所記的脈沖個數運算后,得到速度和里程,經CPU處理后在顯示程序的驅動下在顯示器中顯示。延時程序的作用是是輸出數據在顯示器上做

17、短暫的停留,易于觀察。程序的執行分兩種情況:在里程數小于2Km時,速度和里程都增加;當里程數大于2Km時,速度則保持不變,里程繼續增加。開始變量聲明 初始化Yes判斷no計算程序處理程序顯示程序延時程序 結束 圖4.1系統流程圖4.2.1主程序主程序的主要功能是定義變量并初始化計數器,對計數脈沖進行處理、計算。/*函數名稱:主函數 說明:因為用三位數碼管表示速度,在里程小于2Km時速度增加,當里程大于2Km時,速度不變,保持在20Km/h。當第9709個脈沖來臨時要將計數器清零,并且速度也要清零 。 *void main(void) unsigned char i,j; /定義循環控制變量un

18、signed char cnt=0;unsigned int temp=0; unsigned int tab=0,wap=0,a; /定義無符號整形變量 double way = 0,sudu = 0; /定義浮點型數據,way表示路程,sudu表示速度 unsigned char led6; /用來存放要顯示數字的各位數字 init_timer1(); /計數器初始化 while(1) if(TH1=0x25)&&(TL1>=0xed) /第9709個脈沖來臨時將計數器清零 TH1=0x00;TL1=0x00;sudu=0; /速度清零 temp=TH1; temp=

19、temp<<8; /將TH1中數字左移8位再賦給temp temp=temp|TL1; /將TH1和TL1中數據合到一個整形變量temp中way=temp*PI*DIA/1000.0; /車子行駛的路程存入浮點型變量way中 while(p3_2=1); /等待變低 TR0=1; while(p3_2=0); /等待變高 while(p3_2=1); /等待變低 TR0=0; a=TH0; a=a<<8; a=a|TL1; a=a*0.001; sudu=2*PI/a; wap=sudu*10; wap=sudu*10; /將速度數據轉化為整形,最低位表示十分位,其次為

20、個位,十位 tab=way*10; /將路程數據轉化為整形,最低位表示百米,其次表示千米,萬米4.2.2延時子程序延時子程序的功能是產生有一個延時,是得到的速度里程在數碼管上顯示。*函數名稱:延時子程序*void delay(unsigned int dat) /延時大小由形參的大小決定 unsigned int k,j; for(k=0;k<dat;k+) for(j=0;j<2000;j+); /空循環,耗時語句 4.2.3顯示程序顯示程序的功能是將單片機計算得到的結果在延時程序的作用在顯示在數碼管上。 led0=wap%10; /速度十分位位上的數字存led0 led1=wa

21、p%100/10; /得出速度個位上的數字存led1 led2=wap/100; /得出速度十位上的數字存led2 led3=tab%10; /得出里程百米上的數字存led3 led4=tab%100/10; /得出里程千米上的數字存led4 led5=tab/100; /得出里程十千米上的數字存led5 for(j=0;j<10;j+) /在顯示上消耗時間,使三個數碼管顯示不中斷 for(i=0; i < 6; i+) P2=led_biti; /把ledi表示的位置的位選通 if(i=1)|(i=4) P0=led_numledi&0x7f; /把相應位置的數顯式出來,帶小數點/ else P0=led_numledi; /把相應位置的數顯式出來,不帶小數點 delay(1); /延時一個微小時間 4.3 調試及仿真經軟件調試-仿真器proteus調試通過,并燒錄芯片,得到所要求的設計結果。如圖4.2試驗成功。 圖4.2 速度里程表度計仿真圖

溫馨提示

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

評論

0/150

提交評論