版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(論文)說明書題 目:自行車測速系統(tǒng)設(shè)計與實現(xiàn) 院 (系): 信息與通信學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名:學(xué) 號:指導(dǎo)教師: 職 稱: 副教授 題目類型: 理論研究 實驗研究 工程設(shè)計 工程技術(shù)研究 軟件開發(fā)2014年5月20日摘 要隨著社會的進(jìn)步發(fā)展和環(huán)保意識的增強(qiáng),能夠鍛煉身體,且能環(huán)保出行的自行車成了大眾的寵兒。隨自行車的快速發(fā)展,人們對自行車的功能要求也越來越高。自行車測速儀通過測量并顯示出行時的日期、時間、溫度、速度和里程數(shù),能夠較好的滿足人們對自行車的基本需求。本設(shè)計通過分析自行車測速儀的原理,基于STC89C52單片機(jī)和C語言,設(shè)計和實現(xiàn)了一種自行車測速系統(tǒng)。該系統(tǒng)
2、主要包括單片機(jī)數(shù)據(jù)處理、電機(jī)測速、溫度測量、時鐘計時、顯示數(shù)據(jù)、按鍵控制七大功能模塊。在系統(tǒng)實現(xiàn)中,硬件部分以STC89C52單片機(jī)為處理核心,用紅外對管傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖,進(jìn)行處理后送入單片機(jī),通過測量電機(jī)轉(zhuǎn)的圈數(shù),經(jīng)過數(shù)據(jù)處理得到速度和路程數(shù)。軟件部分采用C語言進(jìn)行編程,實現(xiàn)系統(tǒng)的控制與顯示。本系統(tǒng)的實現(xiàn)達(dá)到了預(yù)期的設(shè)計目標(biāo)。關(guān)鍵詞:自行車測速;STC89C52單片機(jī);紅外對管傳感器;C語言AbstractWith the development of social progress and environmental protection consciousness, can
3、 physical exercise, andgreen travl bicycle ,became the darling of the public. With the rapid development of bicycle, the bicycle features people are increasingly high requirements. Bicycle speedometer can display the travel date, time, temperature, speed and mileage by measuring,to better me people&
4、#39;s basic needs for bicycle.This design through the analysis of principles of bicycle speedometer, based on STC89C52 singlechip and C language,design and implementation of a bicycle speed system.The system includes a SCM data processing, motor speed, temperature measurement, timing, data shows,key
5、 control that seven major function module.In the system realization, The hardware part with STC89C52 SCM as core processor. Using the infrared tube sensor will wheel speed is converted into electrical pulses, processed into the microcontroller.By measuring the motor cycles,after data processing, we
6、can know the speed and distance. The software using C language programming ,to realize the system control and display. The realization of this system reaches the expected design goal.Key words:Bicycle Tachometer ;STC89C52 single chip microcomputer; Infrared tube sensor; C language目錄引言21 設(shè)計要求21.1 畢業(yè)設(shè)
7、計題目21.2 設(shè)計的主要功能22 工作原理和系統(tǒng)結(jié)構(gòu)33 硬件設(shè)計43.1 系統(tǒng)總電路圖43.2 單片機(jī)控制處理模塊4紅外對管測速模塊83.4 DS1302時鐘芯片模塊103.5 DS1302溫度采集模塊123.6 LCD顯示模塊143.7 電機(jī)驅(qū)動模塊153.8 按鍵功能、供電和串口下載模塊154 軟件設(shè)計184.1 Keil uVision 4軟件介紹184.2 程序設(shè)計思想與開發(fā)環(huán)境184.3 主程序設(shè)計194.4 各個模塊程序設(shè)計194.4.1 紅外對管測速模塊程序設(shè)計194.4.2 DS18B20溫度測量模塊程序設(shè)計214.4.3 DS1302時鐘芯片模塊程序設(shè)計244.4.4 L
8、CD12864顯示模塊程序設(shè)計275 系統(tǒng)測試285.1 硬件調(diào)試285.2 軟件調(diào)試295.3 對實際電路進(jìn)行測試296 總結(jié)31致謝32參考文獻(xiàn):33附錄34引言自行車是傳統(tǒng)產(chǎn)業(yè),具有100多年的歷史,由于環(huán)保以及交通的問題,自行車再度成為世界各國特別是發(fā)達(dá)國家居民喜愛的交通、健身工具。在美國、歐洲、日韓等發(fā)達(dá)國家,自行車深受人們的喜愛,是一種比較普遍的運動、休閑和娛樂性產(chǎn)品。每年全世界自行車需求量巨大,日本CYCLEPRESS的數(shù)據(jù)統(tǒng)計顯示,全世界自行車需求規(guī)模保持在1.06億臺的水平,自行車年交易額約為50億美元。數(shù)據(jù)顯示,世界自行車行業(yè)的重心正從傳統(tǒng)的代步型交通工具向運動型、山地型、
9、休閑型轉(zhuǎn)變,隨著自行車功能類型的轉(zhuǎn)變和行業(yè)的需求日益增大,自行車的輔助功能配件市場也越來越火熱1。雖然自行車出行環(huán)保健康,但是也存在著許多安全隱患。在騎自行車的過程中想要知道時間要看手表或者手機(jī),騎車過程東張西望很容易發(fā)生交通事故,停車下來查看又不不能便利出行。雖然自行車的車速沒有機(jī)動車快,但是在一些特殊路況中也要安全減速。在以往的自行車對于行駛的路程沒有一個準(zhǔn)確的數(shù)值,達(dá)不到一些以鍛煉身體的目的的出行者的要求。大眾的需求和環(huán)境的變化促使了自行車輔助配件的誕生,自行車測速儀則很好的解決這些難題,本設(shè)計的自行車測測速儀不僅能簡單明了的現(xiàn)實當(dāng)前的時間日期,還能顯示出當(dāng)前的車速,為我們的安全出行帶來
10、了保障。當(dāng)車停下來還可以知道自己騎行的里程數(shù),為自己鍛煉身體提供了便利。測速儀還能實時顯示當(dāng)前環(huán)境的溫度,為我們的健康出行提供了有利參考。自行車測速儀不僅為出行帶來便利,也為安全出行提供了保障。1 設(shè)計要求1.1 畢業(yè)設(shè)計題目自行車測速系統(tǒng)設(shè)計與實現(xiàn)1.2 設(shè)計的主要功能本設(shè)計以STC89C52單片機(jī)為核心,用紅外對管傳感器和DS18B20溫度傳感器測量數(shù)據(jù),使用DS1302作為時鐘芯片,由LCD12864顯示其數(shù)據(jù),制作而成的一個自行車測速系統(tǒng)。其主要的實現(xiàn)功能如下:(1)實現(xiàn)自行車的測速功能,當(dāng)自行車在行駛時,能顯示自行車行駛的速度;(2)測量當(dāng)前的溫度,自行車行駛過程中能實時顯示當(dāng)前環(huán)境
11、的溫度值;(3)顯示當(dāng)前時間,自行車行駛過程中能顯示當(dāng)前的日期和時間;(4)當(dāng)自行車車停止行駛時,顯示自行車總行駛的里程數(shù)。2 工作原理和系統(tǒng)結(jié)構(gòu)根據(jù)設(shè)計的要求自行車測速系統(tǒng)設(shè)計與實現(xiàn)2主要分為七大模塊:單片機(jī)控制處理模塊、紅外對管傳感器檢測模塊、DS1302時鐘芯片模塊、DS18B20溫度采集模塊、電機(jī)驅(qū)動模塊、LCD12864顯示模塊、按鍵控制模塊。系統(tǒng)結(jié)構(gòu)如圖2-1所示。圖2-1系統(tǒng)結(jié)構(gòu)框圖(1)單片機(jī)控制處理模塊采用STC89C52單片機(jī)芯片作為本模塊的控制處理核心3,主要負(fù)責(zé)對其他部分進(jìn)行數(shù)據(jù)處理和控制;(2)紅外對管傳感器檢測模塊紅外對管傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖,然后將所測得
12、數(shù)據(jù)送入單片機(jī),通過測量電機(jī)轉(zhuǎn)的圈數(shù),經(jīng)過數(shù)據(jù)處理得到當(dāng)前速度和里程數(shù);(3)DS1302時鐘芯片模塊DS1302可以對年、月、周、日、時、分、秒進(jìn)行記時,具有閏年補(bǔ)時等多種功能,能讓系統(tǒng)實時顯示日期和時間;(4)電機(jī)驅(qū)動模塊模仿自行車的車輪,用于紅外對管傳感器采集車輪轉(zhuǎn)速; (5)DS18B20溫度采集模塊采用數(shù)字DS18B20的溫度傳感器負(fù)責(zé)測量當(dāng)前室內(nèi)空氣的溫度,并輸送到單片機(jī)由其進(jìn)行數(shù)據(jù)處理;(6)LCD12864顯示模塊LCD12864液晶屏顯示單片機(jī)處理所得當(dāng)前速度、時間、日期、溫度、里程數(shù)的數(shù)據(jù)。3 硬件設(shè)計3.1 系統(tǒng)總電路圖系統(tǒng)總電路由STC89C52單片機(jī)4構(gòu)成的單片機(jī)控制
13、處理模塊、紅外對管傳感器構(gòu)成的測量電機(jī)轉(zhuǎn)速模塊、電機(jī)構(gòu)成的模仿車輪轉(zhuǎn)動模塊、DS18B20構(gòu)成的溫度測量模塊、DS1302構(gòu)成的時間日期計數(shù)模塊、串口下載模塊和四個按鍵組成功能按鍵控制模塊組成,系統(tǒng)總電路圖如圖3-1所示。圖3-1系統(tǒng)總電路圖3.2 單片機(jī)控制處理模塊本設(shè)計控制和數(shù)據(jù)處理模塊由STC89C52芯片構(gòu)成,STC89C52單片機(jī)通用性強(qiáng),可利用多種軟件編程,不僅算術(shù)運算能力強(qiáng),而且具有低功耗、高性能、I/0端口豐富、占用體積小、成本低廉等優(yōu)點。只要外部電源給電源部分提供+5電壓供電,控制和數(shù)據(jù)處理模塊就可以正常工作。當(dāng)單片機(jī)外接RE232DB9串口字母接口可連接電腦,可實現(xiàn)程序的下
14、載支持在線調(diào)程序。通過外接端口連接電路可實現(xiàn)對紅外對管檢測脈沖的計數(shù),從而計算出電機(jī)轉(zhuǎn)速和里程數(shù),還具有時間日期顯示、溫度顯示、控制數(shù)據(jù)檢測與清零等眾多功能。單片機(jī)控制處理模塊電路圖如3-2所示。圖3-2單片機(jī)控制處理模塊電路圖STC89C52是STC公司推出的一款低功耗、高性能的CMOS8位微控制器,內(nèi)核采用的是經(jīng)典的MCS-51,而且做了許多優(yōu)良的改進(jìn),在51單片機(jī)的基礎(chǔ)上增添了許多實用功能。其主要的功能和性能參數(shù)5如下:(1)在51單片機(jī)內(nèi)核基礎(chǔ)增強(qiáng),可以任意選擇機(jī)器周期為6時鐘或12時鐘,所使用的指令代碼適用于傳統(tǒng)的51單片機(jī);(2)擁有8位CPU和在系統(tǒng)可編程Flash,8K字節(jié)Fl
15、ash:(3)內(nèi)置4KB EEPROM,MAX810復(fù)位電路;(4)32個通用I/O接口;(5)共有T0/T1/T2 3個16位定時器(6)4路外部中斷;(8)工作頻率:040MHZ,實際可達(dá)48MHZ:(9)工作溫度:-40°C+85°C(10)內(nèi)部存儲空間為:512B;(11)通用異步串行口;(12)有ISP(在系統(tǒng)可編程)、IAP(在應(yīng)用可編程),無需專用編程器和仿真器;(13)具有多種外形封裝,PDIP-40、PLCC-44、PQFP等。下面介紹STC89C52的其中一種封裝PDIP-40(如圖3-3所示)和其引腳功能:圖3-3 STC89C52引腳圖STC89C5
16、2引腳功能說明:1.VCC :電源電壓 :接地3.P0口:即,3932引腳,P0口是一組8位漏極開路的雙向I/O口。當(dāng)此作輸出端口,8個引腳能驅(qū)動8個TTL負(fù)載,若讓其作為高阻抗輸入,可在PO端口寫入1。當(dāng)訪問數(shù)據(jù)存儲器和外部程序時,P0端口可提供8為地址/數(shù)據(jù)的地址復(fù)用總線,PO端口內(nèi)部上拉電阻有效。在編程時,P0端口接收指令字節(jié);而在校驗程序時,PO端口輸出指令字節(jié)且要求外接上拉電阻。4.P1口:即,18引腳,P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器通過吸收或者輸出電流方式可驅(qū)動4個TTL輸入。當(dāng)其作輸入口時,可對端口寫入1并通過內(nèi)部的上拉電阻把端口拉到高電位。當(dāng)P1
17、口作輸入口時,被外部拉低的引腳因為內(nèi)部有電阻會輸出一個電流。另外,與傳統(tǒng)的51單片機(jī)不同之處,與還可以分別作為定時器/計數(shù)器2的外部技術(shù)輸入()和定時器/計數(shù)器2的觸發(fā)輸入(),編程和程序校驗時,P1接收低8位地址。具體如下表3-4所示。表3-4引腳功能特性引腳號功能特性T2(定時器/計數(shù)器2外部計數(shù)輸入),時鐘輸出T2EX(定時器/計數(shù)器2捕獲/重裝觸發(fā)和方向控制)5.P2口:即,2128引腳,P2口是一組8位雙向I/O端口且?guī)?nèi)部上拉電阻的。P2的輸出緩沖器通過吸收或輸出電流方式可驅(qū)動4個TTL輸入。當(dāng)其作為輸入口時,只需對端口寫入1并將內(nèi)部的上拉電阻把端口拉到高電平。P1口作輸入口時,被
18、外部拉低的引腳因為內(nèi)部有電阻會輸出一個電流。在訪問外部程序存儲器/16位地址的外部數(shù)據(jù)存儲器時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口引腳上的內(nèi)容不會改變。在對Flash 編程和程序校驗時,P2也接收高位地址和一些控制信號。6.P3口:即,1017引腳,P3是一組內(nèi)部帶上拉電阻的8位雙向I/O端口。P3的輸出緩沖器通過吸收或輸出電流方式可驅(qū)動4個TTL輸入。當(dāng)其作為輸入口時,只需對端口寫入1并將內(nèi)部的上拉電阻把端口拉到高電位。P3口作輸入口時,被外部拉低的引腳因為內(nèi)部有電阻會輸出一個電流。在對Flash 編程或程序校時,P3好可以接收控制信號。P3口不僅可以作為一般I/O
19、口外,還具許多復(fù)用功能,如下表3-5所示。表3-5 P3口復(fù)用功能引腳號復(fù)用功能RXD(串行輸入口)TXD(串行輸出口)(外部中斷0)(外部中斷1)T0(定時器0的外部輸入)T1(定時器1的外部輸入)(外部數(shù)據(jù)存儲器寫選通)(外部數(shù)據(jù)存儲器讀選通)7.RST:即9引腳,復(fù)位輸入。當(dāng)輸入連續(xù)兩個機(jī)器周期以上高電平時為有效,用來完成單片機(jī)單片機(jī)的復(fù)位初始化操作。8.ALE:即30引腳,地址鎖存控制信號,在訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳也用作編程輸入脈沖。9.PSEN:即29引腳,外部程序存儲器選通信號。當(dāng)從外部程序存儲器執(zhí)行外部代碼時,在每個機(jī)器周期被激
20、活兩次,而訪問外部數(shù)據(jù)存儲器時,將不被激活。10.VPP:即31引腳,訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,必須接GND。注意加密方式1時,將內(nèi)部鎖定位RESET。接VCC時,執(zhí)行內(nèi)部程序指令。在Flash編程期間,也接收12V電壓。11.XTAL1:即19引腳,振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。12.XTAL2:即18引腳,振蕩器反相放大器的輸入端。STC89C52單片機(jī)基本能滿足本設(shè)計硬軟件上的要求,故選用其為本設(shè)計的單片機(jī)控制處理模塊的核心。3.3 紅外對管測速模塊測速模塊主要由紅外對管,LM358比較器和電阻組成。其電路圖如3-6
21、所示。圖3-6紅外對管測速電路紅外對管包括紅外線發(fā)射管、光敏接收管、紅外線接收管、紅外接頭。當(dāng)它們配合起來使用時則稱為紅外對管6。本設(shè)計使用的紅外對管為紅外線發(fā)射管和紅外線接收管。紅外發(fā)射管:又稱紅外線發(fā)射二級管,是一種可以將電能直接轉(zhuǎn)換成紅外光(不可見光)并輻射出去的二級管發(fā)光器件,其結(jié)構(gòu)、原理與普通發(fā)光二級管相近,不同在于使用的半導(dǎo)體材料,它的半導(dǎo)體材料為砷化鎵(GaAs)、砷鋁化鎵(GaAIAs)等材料,封裝一般采用透明、淺藍(lán)色或黑色的樹脂。紅外接收管:一種可以將光信號轉(zhuǎn)化成電信號的半導(dǎo)體器件,它主要的核心部件是一個特殊材料的PN結(jié),PN結(jié)面積比一般的二級管要大,電極面積更小,這樣可以更
22、大更多的面積接收入射光線,PN結(jié)的結(jié)深一般小于1微米。當(dāng)紅外發(fā)射管工作時,發(fā)出的紅外線照射在紅外接收管時,攜帶能量的紅外線光子進(jìn)入PN結(jié),把能量傳給共價鍵的束縛電子,部分共價電子因此掙脫共價鍵,由此產(chǎn)生光載流子。它們在反向電壓的作用下發(fā)生漂移運動,這樣使反向電流增大,當(dāng)光的強(qiáng)度越大,產(chǎn)生的反向電流也越大,這種特效叫做光電導(dǎo)。若在外電路接上負(fù)載,負(fù)載就會獲得電信號,光強(qiáng)度越大電信號越強(qiáng)。LM358:內(nèi)部包含有兩獨立的、高增益、內(nèi)部頻率補(bǔ)償?shù)倪\算放大器,可用于單電源和雙電源兩種工作模式,在推薦的工作條件下,電源電流與電源電壓無關(guān)??捎糜趥鞲蟹糯笃鳌⒅绷髟鲆婺K和其他單電源供電的使用運算放大器的場合
23、。在本設(shè)計中,LM358用作一個比較器,在有高低電平輸入時,輸出高電平。LM358性能特征如下:(1)內(nèi)部頻率補(bǔ)償;(2)直流電壓增益高(約為100dB);(3)低輸入偏流;(4)雙電源(±1.5V);(5)電源電壓(3V30V);(6)低功耗,可用電池供電;(7)輸出電壓擺幅大(0VCC-1.5V);(8)單位增益頻帶寬(約1MHZ);(9)低輸入失調(diào)電壓和失調(diào)電流(10)差模輸入電壓范圍寬,等于電源電壓范圍。在本設(shè)計中,用紅外對管對電機(jī)車輪進(jìn)行測速,在兩個紅外對管間裝上自制的車輪,車輪有四個扇形空缺。如圖3-7所示。圖3-7 紅外對管工作方式與車輪形狀當(dāng)發(fā)射管和接收管有車輪遮擋時
24、,紅外對管不導(dǎo)通,無電信號輸出,LM358比較器輸出一個低電平;當(dāng)發(fā)射管和接收管沒有車輪遮擋時,紅外對管導(dǎo)通,通過LM358比較器,輸出一個高電平。測速模塊輸出端外接STC89C52的P.17口,通過單片機(jī)定時器功能,計算出單位時間內(nèi)接收到的脈沖個數(shù),可算出其速度和里程數(shù)。,輪子轉(zhuǎn)動一周產(chǎn)生4個脈沖,一個脈沖為0.25米。則可算出每秒速度V與路程S: V(每秒速度)=脈沖個數(shù)*輪子周長/4*2S = V*單位時間3.4 DS1302時鐘芯片模塊本設(shè)計使用的實鐘芯片為DS1302,芯片的CLK、I/O、RST分別直接到STC89C52的P2.3、P2.4、P2.5接口,通過程序控制可讓系統(tǒng)進(jìn)行實
25、時計時。時鐘芯片模塊電路圖如圖3-8所示。圖3-8 DS1302時鐘芯片模塊電路圖DS1302是DALLAS公司推出的一款涓流充電時鐘芯片,內(nèi)部的實時時鐘和日歷電路提供年、月、周、日、時、分、秒的信息,閏年的天數(shù)可自動調(diào)整。通過簡單的串行接口就可與單片機(jī)通信。具體的參數(shù)和功能7如下:(1)工作電壓:2V5.5V;(2)時鐘/RAM的讀寫數(shù)據(jù)通信方式:131個字節(jié)的字符組;(3)采用雙電源供電(備用電源和主電源);(4)只需3線接口便可實現(xiàn)通信;(5)31字節(jié)靜態(tài)RAM;(6)工作溫度:-40°C+85°C;(7)兼容TTL(VCC=5V);DS1302的管腳配置圖如3-9所
26、示。圖3-9 DS1302管腳配置圖各個管腳功能如下:(1)VCC1:主電源接+5V;(2)VCC2:備用電源,當(dāng)VCC1>VCC2時,由主電源VCC1為DS1302供電,當(dāng)VCC2>VCC1+O.2V時,則改為VCC2為DS1302供電;(3)GND:接地;(4)SCLK:串行時鐘的輸出,輸入和輸出數(shù)據(jù)的控制端口;(5)I/O:3線接口時的雙向數(shù)據(jù)線;(6)RST:復(fù)位引腳,輸入驅(qū)動置高電平啟動所有數(shù)據(jù)傳輸,兩個功能:(1)可接控制邏輯,允許地址/命令序列進(jìn)入移位寄存器;(2)為單字節(jié)或單字節(jié)傳輸提供終止方式;(7)X1/X1:振蕩源,外接32.768KHZ晶振。每一數(shù)據(jù)傳輸都是
27、通過一個控制字節(jié)開始的,控制字節(jié)的高7位必須為邏輯1;6位為1表示存取RAM數(shù)據(jù),為0時表示存取日歷時鐘數(shù)據(jù),位51表示操作單元的地址;位0為1時表示讀操作,為0時表示寫操作;控制字節(jié)的輸出都是從最低位開始的??刂谱止?jié)如下圖3-10所示。圖3-10 DS1302控制字節(jié)數(shù)據(jù)輸入從最低位開始,當(dāng)控制指令字節(jié)輸入后的下一個SCLK時鐘上升沿時,數(shù)據(jù)就寫入了時鐘芯片中。讀取數(shù)據(jù)也是從最低位到最高位,在8位控制指令字節(jié)后面的下一個下升沿讀出DS1302的數(shù)據(jù)。3.DS1302的寄存器 共有12個寄存器,其中與時鐘、日歷有關(guān)的有7個,數(shù)據(jù)都為以BCD碼的形式存放。除此之外還有充電、控制、年份、時鐘突發(fā)、
28、與RAM相關(guān)等寄存器。3.5 DS1302溫度采集模塊在本設(shè)計中選擇DS18B20溫度傳感器測量周圍環(huán)境的溫度,DS18B20的輸出端口接STC89C53的P2.2接口,通過編寫程序讀度傳感器所測量周圍環(huán)境的溫度,實現(xiàn)系統(tǒng)的測溫功能。DS1302溫度采集模塊電路圖如3-11所示。圖3-11 測溫模塊電路圖本設(shè)計中,系統(tǒng)大多在戶外工作,接觸的環(huán)境較復(fù)雜,對硬件的要求較高。DS18B20溫度傳感器8是美國DALLAS公司生產(chǎn)的一款數(shù)字智能型溫度傳感器,不僅設(shè)計線路簡單,而且不需要其他元器件就可實現(xiàn)測溫。還具有價格低廉、硬件體積小、抗干擾力強(qiáng)和精確讀度高等眾多優(yōu)點,完全符合本設(shè)計的硬軟件上的要求。D
29、S18B20和引腳如圖3-12所示。圖3-12 DS1302和引腳DS18B20主要參數(shù)指標(biāo)9如下:(1)單線接口,僅需一線就可與微處理器實現(xiàn)相互通信;(2)可測量溫度范圍:-50°C+125°C,固有誤差1°C(3)多個DS18B20并聯(lián)可實現(xiàn)多點測溫;(4)工作電壓:3.0V5.5V;(5)具有唯一序列號;(6)溫度可選擇912位數(shù)字量讀出;(7)待機(jī)時零功耗;(8)正負(fù)接反時,不會燒毀,但不能正常工作;DS18B20引腳功能如下:(1)GND:接地;(2)DQ:輸入/輸出數(shù)據(jù)引腳,總線接口引腳,當(dāng)使用寄生電源時,可為器件提供電源;(3)VCC:電源,當(dāng)工作在
30、寄生電源時接地。DS18B20可采用寄生電源和外部供電兩種供電模式,本設(shè)計DS18B20采用的外部供電。DS18B20內(nèi)部包含兩個存儲器,一個是8字節(jié)的高速暫存RANM,另外一個是非易失性可電擦除的EERAM。DS18B20是1-Wire總線數(shù)字溫度傳感器,通信接口只有一個,當(dāng)與主機(jī)對接的時候,主機(jī)可提供Read ROM ,Match ROM ,Search ROM , Skip ROM ,Alarm Search 5種ROM操作命令,可控制其中的操作命令指示DS18B20完成測溫工作。表3-13是DS18B20的 ROM命令,表3-14 是DS18B20功能命令。表3-13 DS18B20的
31、ROM命令命令描述協(xié)議此命令發(fā)出后1-Wire總線上的活動SEARCH ROM(搜索)識別總線上掛著的全部DS18B20的ROM碼F0h所有DS18B20向主機(jī)傳送ROM碼READ ROM(讀)僅有一個DS 18B20掛著總線時,此命令用來讀取ROM碼33hDS18B20向主機(jī)傳送一個ROM碼MATCH ROM( 符合)主機(jī)用ROM指定其中一個DS18B20,只有匹配才會相應(yīng)55h主機(jī)向總線傳送一個ROM碼SKIP ROM(跳過)用于指定總線上的所有器件CCh無ALARM SEARCH(警告)與SEARCH ROM命令相似,只有溫度超出警報線的DS18B20才會響應(yīng)ECh超出警報線的DS18B
32、20向主機(jī)傳送ROM碼表3-14 DS18B20功能命令命令描述協(xié)議此命令發(fā)出后1-Wire總線上的活動Convent T(溫度變換)開始溫度轉(zhuǎn)換44hDS18B20向主機(jī)傳送轉(zhuǎn)換狀態(tài)(不適用于寄生電源)Read Scratchpad(讀暫存器)讀取暫存器全部的數(shù)據(jù)BEhDS18B20向主機(jī)傳送9字節(jié)的數(shù)據(jù)Wire Scratchpad(寫暫存器)向暫存器的2、3、4字節(jié)寫入數(shù)據(jù)(TH、TL和精度)4Eh主機(jī)向DS18B20傳送3字節(jié)的數(shù)據(jù)Copy Scratchpad(復(fù)制暫存器)將TH、TL和配置寄存器的數(shù)據(jù)復(fù)制到EEROM48h無Recall E2(重調(diào) E2PRAM)將TH、TL和配置
33、寄存器的數(shù)據(jù)從EEROM調(diào)用到暫存器中B8hDS18B20向主機(jī)傳送調(diào)用狀態(tài)Read Powe Supply(供電方式)向主機(jī)表示其供電狀態(tài)B4hDS18B20向主機(jī)傳送供電狀態(tài)另外,由于DS18B20單線通信功能是分時完成的,他有嚴(yán)格的時序概念。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。3.6 LCD顯示模塊本設(shè)計的顯示模塊選擇的是LCD12864作為系統(tǒng)的顯示屏10,LCD12864有兩種接口方式,一種是4為/8位并行,另一種是2線/3線或者多線串行。LCD12864的顯示分辨率為128x64,內(nèi)置
34、8192個16*16點漢字和128個16*8點ASCLL字符,可顯示8x4行16*16點陣的漢字。通過編寫程序可顯示本系統(tǒng)中速度、里程數(shù)、時間、日期、溫度全部參數(shù)。LCD12864不僅接口方式靈活,操作指令方便簡單,而且低電壓、低功耗、價格低廉。完全滿足本系統(tǒng)的需求。下圖3-15為LCD12864顯示模塊的電路圖。圖3-15 LCD12864顯示模塊電路圖3.7 電機(jī)驅(qū)動模塊在本設(shè)計中,由電機(jī)驅(qū)動自制的車輪模仿自行車的車輪滾動。該模塊中電機(jī)采用兩節(jié)5號干電池(3V)作為供電電壓。圖3-16為電機(jī)驅(qū)動模塊電路圖。圖3-16電機(jī)驅(qū)動模塊電路圖3.8 按鍵功能、供電和串口下載模塊本設(shè)計主要有兩個功能
35、按鍵:其一,當(dāng)系統(tǒng)啟動運行時,清零前面運行的數(shù)據(jù),其二,當(dāng)電機(jī)停止轉(zhuǎn)動時,顯示其總運行的里程數(shù)。按鍵功能模塊電路圖如3-17所示。圖3-17按鍵功能模塊電路供電模塊主要由發(fā)光二級管、電阻和撥動開關(guān)組成,該模塊接入+5V電壓時,可根據(jù)發(fā)光二極管的亮滅判斷系統(tǒng)是否接通電源,并通過撥動開關(guān)控制系統(tǒng)電路是否接通。供電模塊電路圖如圖3-18所示。圖3-18供電模塊電路圖串口下載模塊主要由MAX232芯片、DB9串口母頭和電容組成,通過串口母頭可與PC機(jī)對接下載程序,并支持對其硬軟件在線調(diào)試。串口下載模塊電路圖如3-19所示。圖3-19 串口下載模塊電路圖MAX232芯片是MAXIM公司專為RS-232
36、標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,因為一般的電腦串口電平在±10V,而單片機(jī)系統(tǒng)信號電壓是TTL電平±5V,所以需要MAX232芯片對電腦串口電平進(jìn)行轉(zhuǎn)換。該器件主要由2個驅(qū)動器、2個接收器和一個電壓發(fā)生器組成。MAX232芯片可完成TTL和EIA雙向電平的轉(zhuǎn)換。MAX232的引腳圖如3-20所示。圖3-20 MAX232引腳圖各個引腳功能如下:第一部分是電荷泵電路,由1、2、3、4、5、6腳和4個電容構(gòu)成。功能是產(chǎn)生±12v兩個電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道,由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13
37、腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 第三部分是供電。15腳GND接地、16腳VCC接+5V。本設(shè)計選用RE-232作為串行通信是因為其串行通信簡單易控制,且I/O口少,成本低。符合本設(shè)計的各項要求。4 軟件設(shè)計4.1 Kei
38、l uVision 4軟件介紹Keil C51是美國Keil software公司(ARM公司)出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),C語言在功能、結(jié)構(gòu)性、可讀性、可維護(hù)性上比匯編語言更具有優(yōu)勢,因為易學(xué)易用,適合每個階段的開發(fā)人員,不管專業(yè)的應(yīng)用工程師,還是在校學(xué)習(xí)軟件開發(fā)的學(xué)生。Keil C51軟件包含了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具。C51工具包的整體結(jié)構(gòu),其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可以將編輯好的C或匯編源文件分別有C51及A51
39、編譯器生成目標(biāo)文件(.OBJ)。目標(biāo)文件再由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中11。另外,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。Keil uVision4是2011年3月ARM公司發(fā)布最新集成開發(fā)環(huán)境RealView MDK開發(fā)工
40、具中集成了最新版本,其編譯器、調(diào)試工具實現(xiàn)與ARM器件的最完美匹配。4.2 程序設(shè)計思想與開發(fā)環(huán)境在本設(shè)計中,軟件系統(tǒng)采用模塊化的編程方式,把整體程序分成若干部模塊,每個模塊具有相對的獨立性,也可通過函數(shù)調(diào)用的發(fā)式相互關(guān)聯(lián)。模塊化的編程發(fā)式利于程序的調(diào)試、修改和維護(hù),其思路清晰有條理,便于閱讀,被各類開發(fā)人員廣泛的使用。本系統(tǒng)軟件設(shè)計采用C語言編程,開發(fā)環(huán)境: PC操作系統(tǒng)Windows 7,單片機(jī)開發(fā)平臺keil uVision 4,程序下載軟件為STC_ISP_V483。4.3 主程序設(shè)計在本設(shè)計中,軟件根據(jù)設(shè)計的要求進(jìn)行編寫,要求將紅外對管傳感器、DS18B20溫度傳感器、DS1302時
41、鐘芯片所測得數(shù)據(jù)送進(jìn)STC89C52單片中,再由其將速度、路程、溫度、時間等參數(shù)送至LCD12864中顯示。主程序工作流程如圖4-1所示。圖4-1主程序流程圖4.4 各個模塊程序設(shè)計4.4.1 紅外對管測速模塊程序設(shè)計當(dāng)單片機(jī)獲取從紅外對管測速模塊中產(chǎn)生的脈沖個數(shù)時,無法馬上得出當(dāng)前車輪的速度和里程,要經(jīng)過單片機(jī)定時器的計算才能得出結(jié)果,本系統(tǒng)默認(rèn)車輪的周長為1米,使用者可以自己設(shè)置車輪的大小。本系統(tǒng)通過單片機(jī)計算單位時間內(nèi)接收脈沖的個數(shù)來得出速度,再將單位時間內(nèi)的速度相加得到其路程數(shù),系統(tǒng)計算時間為0.5秒計算一次。在Proteus仿真的結(jié)果與計算結(jié)果一致。下圖4-2為測速子程序設(shè)計的流程圖
42、。圖4-2 測速流程圖程序核心代碼如下:if(flag) /500ms顯示一次速度flag = 0;TR0 = 0;/關(guān)閉定時器0EX0 = 0;/關(guān)閉外部中斷Speed = Couter/2; /一個脈沖等于25cm Couter = 0; /清零bai=Speed/100;shi=Speed%100/10;ge=Speed%100%10;Write_Address(2,5); Write_Data(dbai); Write_Data(dshi); Write_Data(dge);TR0=1; /打開定時器0EX0 = 1; /打開外部中斷 if(Speed = 0)&(flag1
43、= 1) /路程顯示void timer0(void) interrupt 1 /定時器0中斷服務(wù)程序TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+;if(num=10) /定時500ms 顯示一次速度 EX0 = 0;num = 0; /清零計數(shù)TR0 = 0;/關(guān)閉定時器0flag =1;/打開標(biāo)志位 void int0(void) interrupt 0 /外部中斷0服務(wù)程序Couter+; /計算速度Couter1+; /計算路程4.4.2 DS18B20溫度測量模塊程序設(shè)計本設(shè)計采用DS1820溫度傳感器進(jìn)行溫度測量,并將其測得數(shù)據(jù)在
44、LCD12864上顯示,因為DS18B20只有一條數(shù)據(jù)輸出線,所以一定要采用一位讀取,讀取到的溫度值分別存入高/低八位寄存器中,顯示時要將十六位進(jìn)制數(shù)值轉(zhuǎn)換成十進(jìn)制。溫度測量模塊的程序流程如下圖4-3所示。 圖4-3溫度測量模塊程序流程圖 溫度測量模塊程序核心代碼如下:bit Init_DS18B20(void) /函數(shù)功能:將DS18B20傳感器初始化,讀取應(yīng)答信號 出口參數(shù):flag bit flag; DQ = 1; for(time=0;time<2;time+) ; DQ = 0; for(time=0;time<200;time+) ; DQ = 1; for(time
45、=0;time<10;time+) ; flag=DQ; for(time=0;time<200;time+) ; return (flag); unsigned char ReadOneChar(void)/函數(shù)功能:從DS18B20讀取一個字節(jié)數(shù)據(jù) 出口參數(shù):dat unsigned char i=0;unsigned char dat; for (i=0;i<8;i+) DQ =1; _nop_(); DQ = 0; _nop_(); DQ = 1; for(time=0;time<2;time+) ; dat>>=1; if(DQ=1) dat|=0
46、x80; else dat|=0x00; for(time=0;time<8;time+) ; return(dat); void WriteOneChar(unsigned char dat) /函數(shù)功能:向DS18B20寫入一個字節(jié)數(shù)據(jù)入口參數(shù):datunsigned char i=0;for (i=0; i<8; i+) DQ =1; _nop_(); DQ=0; DQ=dat&0x01; for(time=0;time<10;time+); DQ=1; for(time=0;time<1;time+); dat>>=1; for(time=0
47、;time<4;time+) ; 4.4.3 DS1302時鐘芯片模塊程序設(shè)計本設(shè)計中采用DS1302作為系統(tǒng)的時鐘芯片,DS1302芯片內(nèi)置年、月、星期、日、時、分、秒寄存器,通過讀取各個時間寄存器的數(shù)據(jù)并將其輸入LCD??娠@示當(dāng)前的時間日期。DS1302時鐘芯片模塊程序設(shè)計流程圖如4-4所示。 圖4-4 時鐘芯片模塊程序流程圖DS1302時鐘芯片模塊程序核心代碼如下:void Init_DS1302(void) /函數(shù)功能: 1302進(jìn)行初始化設(shè)置 unsigned char flag; flag= ReadSet1302(0x81);if(flag&0x80) WriteS
48、et1302(0x8E,0x00); WriteSet1302(0x80,(40/10)<<4|(40%10); WriteSet1302(0x82,(5/10)<<4|(5%10); WriteSet1302(0x84,(0/10)<<4|(0%10); WriteSet1302(0x86,(11/10)<<4|(11%10); WriteSet1302(0x88,(3/10)<<4|(3%10); WriteSet1302(0x8c,(14/10)<<4|(14%10); WriteSet1302(0x90,0xa5)
49、; WriteSet1302(0x8E,0x80); void DisplaySecond(unsigned char x)/函數(shù)功能:顯示秒 unsigned char i,j; i=x/10;j=x%10;Write_Address(1,4); Write_Data(digit1i); Write_Data(digit1j); delay(1); void DisplayMinute(unsigned char x)/函數(shù)功能:顯示分鐘 unsigned char i,j; i=x/10;j=x%10; Write_Address(1,2); Write_Data(digit1i); Wr
50、ite_Data(digit1j); delay(1); void DisplayHour(unsigned char x) /函數(shù)功能:顯示小時 unsigned char i,j; i=x/10;j=x%10;Write_Address(1,0); Write_Data(digit1i); Write_Data(digit1j); delay(1); void DisplayDay(unsigned char x) /函數(shù)功能:顯示日unsigned char i,j; i=x/10;j=x%10; Write_Address(0,4); Write_Data(digit1i); Writ
51、e_Data(digit1j); delay(1); void DisplayMonth(unsigned char x)/函數(shù)功能:顯示月 unsigned char i,j; i=x/10;j=x%10; Write_Address(0,2) ; Write_Data(digit1i); Write_Data(digit1j); delay(1); void DisplayYear(unsigned char x) /函數(shù)功能:顯示年 unsigned char i,j; i=x/10;j=x%10; Write_Address(0,0); Write_Data(digit1i); Wri
52、te_Data(digit1j); delay(1); 4.4.4 LCD12864顯示模塊程序設(shè)計本設(shè)計采用LCD12864顯示各個功能模塊所測得數(shù)據(jù),先在LCD上設(shè)置顯示年、月、日、時、分、秒、T:、V:、路程:字符,然后在顯示頁面的指定位置輸入各個功能模塊的數(shù)據(jù)。LCD12864顯示模塊設(shè)計流程圖如4-5所示。圖4-5 LCD顯示模塊設(shè)計流程圖LCD12864顯示模塊程序核心代碼如下:unsigned char Strinr0=" 年 月 日"unsigned char Strinr1=" 時 分 秒"unsigned char Strinr2=&
53、quot;T: V: " unsigned char Strinr3="路程 : " unsigned char Number= '0','1','2','3','4','5','6','7','8','9','.'void WriteData_LCD12864 (unsigned char X,unsigned char Y,unsigned char Data) /函數(shù)功能:對LCD指定
54、位置寫入數(shù)據(jù) Write_Address(X,Y); delay(5); Write_Data(Data); delay(5); 5 系統(tǒng)測試5.1 硬件調(diào)試硬件調(diào)試主要是為了保證系統(tǒng)硬件部分能正常工作,硬件調(diào)試主要分為 4大部分進(jìn)行調(diào)試:(1)元器件是否能正常工作;(2)是否存在邏輯故障;(3)檢測各個模塊是否正常工作;(4)是否存在電源故障。以下是各個部分的調(diào)試工作。(1)元器件是否能正常工作造成元器件無法工作的的原因主要有兩個:一個是在沒有使用前就已經(jīng)損壞了,另外一個就是對元器件安裝錯誤造成燒壞。因此在購買元器件時要注意元器件的型號規(guī)格是否與設(shè)計要求一樣,和其外形包裝是否正常,還有就是對元器件進(jìn)行檢測,保證元器件能正常使用。另外還要注意在焊接元器件時,是否安裝錯誤,若發(fā)現(xiàn)有錯誤,采用替換法排除此錯誤。(2)是否存在邏輯故障若產(chǎn)生邏輯故障,一般來說是是在設(shè)計和焊接的過程中的失誤造成的,主要包括錯線、短路、開路。排除此類故障的方法是首先焊接的電路板與原理圖認(rèn)真對照,檢差兩者是否一致。尤其是注意電源系統(tǒng)檢查,以防止電源存在短路和極性錯誤的問題,重點檢查系統(tǒng)總線是否存在相互短路或與其他信號線短路的問題
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 委托托管協(xié)議書
- 2025版新能源產(chǎn)品銷售合同標(biāo)準(zhǔn)模板
- 2025年度熱鍍鋅鋼管銷售合同范本2篇
- 二零二五年度企業(yè)財務(wù)報表編制與分析合同范本3篇
- 2025年度體育場館教練個人聘用合同示例4篇
- 2025年度二手房全款買賣合同房產(chǎn)交易風(fēng)險提示協(xié)議
- 2025年度城市綜合體商業(yè)空間租賃及品牌入駐協(xié)議
- 跨領(lǐng)域的安全逃生技巧探索
- 綠色能源在農(nóng)業(yè)機(jī)械中的運用前景
- 智能家居時代下的家用醫(yī)療設(shè)備選擇
- 康復(fù)醫(yī)學(xué)治療技術(shù)(士)復(fù)習(xí)題及答案
- 完整版100以內(nèi)加減法混合運算4000道100
- 2024年產(chǎn)權(quán)管理部年終工作總結(jié)例文(3篇)
- 《血管性血友病》課件
- 高三日語一輪復(fù)習(xí)日語助詞「に」和「を」的全部用法課件
- 機(jī)場地勤勞動合同三篇
- 2024年山東省高考政治試卷真題(含答案逐題解析)
- 《用銳角三角函數(shù)解決問題(3)》參考課件
- 訂婚協(xié)議書手寫模板攻略
- 風(fēng)水學(xué)的基礎(chǔ)知識培訓(xùn)
- 施工組織設(shè)計方案針對性、完整性
評論
0/150
提交評論