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

下載本文檔

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

文檔簡介

摘要隨著時代的進步和開展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比擬成熟的技術(shù),本文主要介紹了一個基于AT89C51單片機的速度里程系統(tǒng),詳細描述了利用霍爾傳感器開發(fā)測速系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各局部的電路也一一進行了介紹,該系統(tǒng)可以方便的實現(xiàn)實現(xiàn)速度、里程的采集和顯示,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,有利于我們?nèi)粘I詈推嚿a(chǎn)業(yè)的開展,也可以當作測速處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展?;魻杺鞲衅髋cAT89C51結(jié)合實現(xiàn)最簡測速系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下進行速度里程測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機AT89C51;速度檢測;霍爾傳感器;速度里程表目錄TOCTOC1緒論1112系統(tǒng)設(shè)計簡介32.1速度里程表簡介 32.2設(shè)計目的及要求 32.3設(shè)計方案論證 42.4硬件設(shè)計電路 43設(shè)計語言及軟件介紹63.1C語言介紹 63.2軟件介紹 663.2.2KeilC51 774系統(tǒng)軟件設(shè)計94.1概述 94.2系統(tǒng)程序設(shè)計模塊及流程圖 91012134.3調(diào)試及仿真 135設(shè)計總結(jié)和體會156參考文獻161緒論傳統(tǒng)的車速表是機械式的,典型的機械式里程表連接一根軟軸,軟軸內(nèi)有一根鋼絲纜,軟軸另一端連接到變速器某一個齒輪上,齒輪旋轉(zhuǎn)帶動鋼絲纜旋轉(zhuǎn),鋼絲纜帶動里程表罩圈內(nèi)一塊磁鐵旋轉(zhuǎn),罩圈與指針聯(lián)接并通過游絲將指針置于零位,磁鐵旋轉(zhuǎn)速度的快慢引起磁力線大小的變化,平衡被打破指針因此被帶動。這種車速里程表簡單實用,被廣泛用于大小型汽車上。不過,隨著電子技術(shù)的開展,現(xiàn)在很多轎車儀表已經(jīng)使用電子車速表,常見的一種是從變速器上的速度傳感器獲取信號,通過脈沖頻率的變化使指針偏轉(zhuǎn)或者顯示數(shù)字里程計是由假設(shè)干個計數(shù)轉(zhuǎn)鼓及其轉(zhuǎn)動裝置組成的。為了使用方便,有的車速里程表同時設(shè)有累計里程計和區(qū)間里程計,累計里程計用來記錄汽車累計行駛里程,區(qū)間里程計用來記錄汽車單程行駛里程。區(qū)間里程計有一個歸零按鈕,可以隨時復位至零,重新累計。數(shù)字溫度計采用進口芯片組裝精度高、高穩(wěn)定性,誤差≤0.5%,內(nèi)電源、微功耗、不銹鋼外殼,防護鞏固,美觀精致。數(shù)字溫度計采用進口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內(nèi)置高能量電池連續(xù)工作≥5年無需敷設(shè)供電電纜,是一種精度高、穩(wěn)定性好、適用性極強的新型現(xiàn)場溫度顯示儀。是傳統(tǒng)現(xiàn)場指針雙金屬溫度計的理想替代產(chǎn)品,廣泛應(yīng)用于各類工礦企業(yè),大專院校,科研院所。溫度數(shù)我們?nèi)粘Ia(chǎn)和生活中實時在接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統(tǒng)的指針式的溫度計雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數(shù)字溫度計的出現(xiàn)可以讓人們直觀的了解自己想知道的溫度到底是多少度。數(shù)字溫度計采用溫度敏感元件也就是溫度傳感器〔如鉑電阻,熱電偶,半導體,熱敏電阻等〕,將溫度的變化轉(zhuǎn)換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關(guān)系,如線性關(guān)系,一定的曲線關(guān)系等,這個電信號可以使用模數(shù)轉(zhuǎn)換的電路即AD轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號,數(shù)字信號再送給處理單元,如單片機或者PC機等,處理單元經(jīng)過內(nèi)部的軟件計算將這個數(shù)字信號和溫度聯(lián)系起來,成為可以顯示出來的溫度數(shù)值,如25.0攝氏度,然后通過顯示單元,如LED、LCD或者電腦屏幕等顯示出來給人觀察。這樣就完成了數(shù)字溫度計的根本測溫功能。數(shù)字溫度計根據(jù)使用的傳感器的不同,AD轉(zhuǎn)換電路,及處理單元的不同,它的精度,穩(wěn)定性,測溫范圍等都有區(qū)別,這就要根據(jù)實際情況選擇符合規(guī)格的數(shù)字溫度計。數(shù)字溫度計有手持式,盤裝式,及醫(yī)用的小體積的等等。2系統(tǒng)設(shè)計簡介2.1速度里程表簡介\o"編輯本段"汽車車速里程表分為滾輪計數(shù)器和點距液晶屏式兩種,由指示汽車行駛速度的車速表和記錄汽車所行駛過距離的里程計組成的,二者裝在共同的殼體中,并由同一根軸驅(qū)動。普通車速表一般為磁感應(yīng)式。滾輪計數(shù)器是過去常用的純機械式儀表,通過一根軟軸,一頭連到變速箱輸出軸,另一頭連到里程表;而現(xiàn)在更常用的電子式儀表,它一般是在變速箱輸出軸或車輪上裝一個轉(zhuǎn)速傳感器,用讀出的轉(zhuǎn)速通過控制模塊內(nèi)嵌的計算公式來換算成車速以及歷程。不管是哪種方式,歸根結(jié)底,數(shù)據(jù)都是來自于傳動系統(tǒng)輸出端的轉(zhuǎn)速〔變速箱輸出軸或車輪〕,知道了車輪的轉(zhuǎn)速,比方每分鐘轉(zhuǎn)多少圈,再將車輪的周長〔也就是車輪轉(zhuǎn)動一圈走過的距離〕算上,車速就出來了,里程也是同樣的道理。圖速度里程表2.2設(shè)計目的及要求1、了解并掌握 Proteus軟件、KEIL軟件,并能熟練的使用其進行仿真;2、培養(yǎng)學生綜合運用前修課程所學的知識進行系統(tǒng)性的訓練;3、養(yǎng)實際動手能力培以及合作的能力;4、利用溫霍爾度傳感器測量車輪的速度。5、測量速度里程由LED數(shù)碼管直讀顯示。2.3設(shè)計方案論證根據(jù)系統(tǒng)的設(shè)計要求,利用矩形波觸發(fā)脈沖代替霍爾傳感器,從而對車輪轉(zhuǎn)速進行模擬。選擇單片機AT89C51為測控系統(tǒng)的核心來完成數(shù)據(jù)采集、處理、顯示等功能。 該系統(tǒng)的總體設(shè)計思路如下:矩形波發(fā)生器產(chǎn)生矩形波脈沖發(fā)送到AT89C51單片機上,經(jīng)過51單片機處理,將速度和里程在顯示電路上顯示,本系統(tǒng)顯示器用6位共陰LED數(shù)碼管以動態(tài)掃描法實現(xiàn)。按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由3個模塊組成:主控制器、檢測電路和顯示電路。本課題以是89C51單片機為核心設(shè)計的一種數(shù)字速度里程檢測系統(tǒng),系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,速度里程顯示電路,單片機主板電路等組成。系統(tǒng)框圖主要由控制模塊、外部信號及其檢測裝置、外部存儲器、LED顯示組成。速度里程表總體電路結(jié)構(gòu)框圖如圖2.1所示。2.4硬件設(shè)計電路速度里程表設(shè)計電路圖如圖2.2所示,控制器使用單片機AT89C51,矩形波觸發(fā)器作為發(fā)生裝置,用LED實現(xiàn)速度和里程的顯示。圖2.2速度里程表計設(shè)計電路圖3設(shè)計語言及軟件介紹3.1C語言介紹C語言是一種計算機程序設(shè)計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫,具體應(yīng)用比方單片機以及嵌入式系統(tǒng)開發(fā)。3.2軟件介紹Proteus軟件Proteus軟件是英國Labcenterelectronics公司出版的EDA工具軟件〔該軟件中國總代理為廣州風標電子技術(shù)〕。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2023年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。KeilC51KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil的優(yōu)勢。KeilC51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51forWindows和forDos的集成開發(fā)環(huán)境(IDE〕,可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件〔.OBJ〕。目標文件可由LIB51創(chuàng)立生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS〕。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。復位電路單片機最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機可以工作的系統(tǒng)。

對51系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、晶振電路、復位電路.

下面給出一個51單片機的最小系統(tǒng)電路圖。圖3.1復位電路圖3.251單片機最小系統(tǒng)復位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合“電容電壓不能突變〞的性質(zhì),可以知道,當系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且這個高電平持續(xù)的時間由電路的RC值來決定。典型的51單片機當RST腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.一般教科書推薦C取10u,R取8.2K.當然也有其他取法的,原那么就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個機周期的高電平。至于如何具體定量計算,可以參考電路分析相關(guān)書籍。晶振電路:典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產(chǎn)生精確的uS級時歇,方便定時操作)。4系統(tǒng)軟件設(shè)計4.1概述整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當硬件根本定型后,軟件的功能也就根本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件〔主程序〕,它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件〔子程序〕,它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。每一個執(zhí)行軟件是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最適宜的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。用C語言完成對設(shè)計的軟件編程,程序先對各變量進行聲明和定義,之后是延時子程序,在進行定時器、計數(shù)器的初始化。在主函數(shù)中,先定義變量,程序的主體是由計數(shù)器產(chǎn)生的脈沖分別轉(zhuǎn)換為速度和里程,并將各個位的數(shù)字送到對應(yīng)的數(shù)碼管的位,驅(qū)動顯示。4.2系統(tǒng)程序設(shè)計模塊及流程圖系統(tǒng)程序主要采用順序結(jié)構(gòu),包括主程序,延時子程序,速度、里程計算子程序和顯示程序等。單片機CPU接收到傳感器感測到的脈沖〔即鋸齒波觸發(fā)器產(chǎn)生的脈沖〕,并通過計數(shù)器對脈沖個數(shù)進行計數(shù)。單片機執(zhí)行運算程序?qū)λ浀拿}沖個數(shù)運算后,得到速度和里程,經(jīng)CPU處理后在顯示程序的驅(qū)動下在顯示器中顯示。延時程序的作用是是輸出數(shù)據(jù)在顯示器上做短暫的停留,易于觀察。程序的執(zhí)行分兩種情況:在里程數(shù)小于2Km時,速度和里程都增加;當里程數(shù)大于2Km時,速度那么保持不變,里程繼續(xù)增加。開始開始變量聲明變量聲明初始化初始化Yes判斷Yes判斷nono計算程序計算程序處理程序處理程序顯示程序顯示程序延時程序延時程序結(jié)束結(jié)束圖系統(tǒng)流程圖主程序的主要功能是定義變量并初始化計數(shù)器,對計數(shù)脈沖進行處理、計算。/********************************************************************函數(shù)名稱:主函數(shù)說明:因為用三位數(shù)碼管表示速度,在里程小于2Km時速度增加,當里程大于2Km時,速度不變,保持在20Km/h。當?shù)?709個脈沖來臨時要將計數(shù)器清零,并且速度也要清零。*********************************************************************voidmain(void){unsignedchari,j;//定義循環(huán)控制變量 unsignedcharcnt=0; unsignedinttemp=0;unsignedinttab=0,wap=0,a;//定義無符號整形變量doubleway=0,sudu=0;//定義浮點型數(shù)據(jù),way表示路程,sudu表示速度unsignedcharled[6];//用來存放要顯示數(shù)字的各位數(shù)字init_timer1();//計數(shù)器初始化while(1){ if((TH1==0x25)&&(TL1>=0xed))//第9709個脈沖來臨時將計數(shù)器清零 {TH1=0x00; TL1=0x00; sudu=0;//速度清零 }temp=TH1;temp=temp<<8;//將TH1中數(shù)字左移8位再賦給temp temp=temp|TL1;//將TH1和TL1中數(shù)據(jù)合到一個整形變量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;//將速度數(shù)據(jù)轉(zhuǎn)化為整形,最低位表示十分位,其次為個位,十位tab=way*10;//將路程數(shù)據(jù)轉(zhuǎn)化為整形,最低位表示百米,其次表示千米,萬米延時子程序延時子程序的功能是產(chǎn)生有一個延時,是得到的速度里程在數(shù)碼管上顯示。*********************************************************************函數(shù)名稱:延時子程序*********************************************************************voiddelay(unsignedintdat)//延時大小由形參的大小決定{unsignedintk,j;for(k=0;k<dat;k++){for(j=0;j<2000;j++);//空循環(huán),耗時語句}}顯示程序顯示程序的功能是將單片機計算得到的結(jié)果在延時程序的作用在顯示在數(shù)碼管上。led[0]=wap%10;//速度十分位位上的數(shù)字存led[0]led[1]=wap%100/10;//得出速度個位上的數(shù)字存led[1]led[2]=wap/100;//得出速度十位上的數(shù)字存led[2]led[3]=tab%10;//得出里程百米上的數(shù)字存led[3]led[4]=tab%100/10;//得出里程千米上的數(shù)字存led[4]led[5]=tab/100;//得出里程十千米上的數(shù)字存led[5]for(j=0;j<10;j++)//在顯示上消耗時間,使三個數(shù)碼管顯示不中斷{for(i=0;i<6;i++){P2=led_bit[i];//把led[i]表示的位置的位選通 if((i==1)||(i==4)) { P0=led_num[led[i]]&0x7f;//把相應(yīng)位置的數(shù)顯式出來,帶小數(shù)點//} else {P0=led_num[led[i]];//把相應(yīng)位置的數(shù)顯式出來,不帶小數(shù)點 }delay(1);//延

溫馨提示

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

評論

0/150

提交評論