畢業(yè)設(shè)計(論文)基于單片機(jī)實現(xiàn)公交車的自動考核與報站_第1頁
畢業(yè)設(shè)計(論文)基于單片機(jī)實現(xiàn)公交車的自動考核與報站_第2頁
畢業(yè)設(shè)計(論文)基于單片機(jī)實現(xiàn)公交車的自動考核與報站_第3頁
畢業(yè)設(shè)計(論文)基于單片機(jī)實現(xiàn)公交車的自動考核與報站_第4頁
畢業(yè)設(shè)計(論文)基于單片機(jī)實現(xiàn)公交車的自動考核與報站_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)實現(xiàn)公交車的自動考核與報站摘 要 公交車是現(xiàn)今社會人們出行的主要交通工具。針對公交車報站與考核的現(xiàn)狀,本文設(shè)計了以單片機(jī) at89c51 為核心的公交車自動報站與考核系統(tǒng)。在自動報站部分,系統(tǒng)利用無線收發(fā)模塊結(jié)合編碼芯片 pt2262和解碼芯片 pt2272 實現(xiàn)公交車站臺信息的發(fā)射與接收,用語音芯片isd4004 實現(xiàn)公交車的報站。在考核部分,利用霍爾傳感器將車輪轉(zhuǎn)過的圈數(shù)轉(zhuǎn)換成脈沖數(shù)傳入單片機(jī)。最終實現(xiàn)對公交車?yán)锍碳八俣鹊臏y量,并能通過 lcd 準(zhǔn)確地顯示。本設(shè)計主要包括硬件設(shè)計和軟件設(shè)計兩個部分。其中:硬件包括單片機(jī)最小系統(tǒng)、無線射頻發(fā)射電路、無線射頻接收電路、語音電路、顯示電

2、路等;軟件主要包括部分電路的設(shè)計流程。由于本設(shè)計為自動報站,在應(yīng)用中可以大大降低司機(jī)的工作強(qiáng)度,提高車輛在行駛過程中的安全指數(shù)。關(guān)鍵詞 單片機(jī),自動報站,isd4004,里程abstractnowadays,bus travel is the main transport for people.aimed at the bus stops and evaluation of the situation,this article is designed to at89c51 scm as the core of the bus automatic station and assessment s

3、ystem.in the automatic stop part,system use wireless transceiver module with encording and decording chip pt2262 /pt2272 to implement the bus stattion emitting and receiving information,and use voice chip isd4004 to implement the bus stop.in the assessment part of the system,the number of cycles to

4、the wheel turn can turn into the number of pulses by using hall sensor,and put the number into scm.finally implement the bus milege and speed measurement,and accurately displayed through the lcd. the design includes hardware design and software design.among them:hardware including microcontrollers,r

5、f transmitter circuit, rf receier circuit, voice circuit ,display circuit.software is mainly talk about the process of the part circuit design.as the design for the automatic station in application,it can greatly reduce the strength of the diver and improve the vehicle safety index in driving proces

6、s.key words: scm automaticlly stop isd4004 mileage目錄1、緒論 .51.1 本課題的目的.51.2 本課題在國內(nèi)外的發(fā)展?fàn)顩r.51.3 本課題的指導(dǎo)思想.62、單片機(jī)的相關(guān)介紹 .72.1 單片機(jī)原理及其發(fā)展趨勢.72.2 單片機(jī)的引腳功能介紹.73、硬件電路設(shè)計 .103.1 單片機(jī)內(nèi)部時鐘電路.103.2 復(fù)位電路.103.3 無線射頻發(fā)射電路.113.3.1 設(shè)計思路 .113.3.2 設(shè)計電路及說明 .133.4 無線射頻接收電路.143.4.1 設(shè)計電路及說明 .143.5 語音電路.153.5.1 設(shè)計思路 .153.5.2 設(shè)計電

7、路及說明 .163.6 考核系統(tǒng).183.6.1 設(shè)計電路及說明 .184、軟件部分設(shè)計 .224.1 語音報站程序設(shè)計 .224.2 考核模塊主程序設(shè)計.244.3 里程及速度計算子程序設(shè)計 .254.4 lcd 顯示子程序 .264.5 定時計數(shù)子程序 .285、仿真 .305.1 考核部分仿真.306、結(jié)論 .32答謝 .33參考文獻(xiàn) .34附錄 考核系統(tǒng)及語音報站程序 .351、緒論1.1 本課題的目的隨著社會的高速發(fā)展,人們出行工具的選擇也越來越多。作為經(jīng)濟(jì)方便的代表,公交車依舊發(fā)揮著極其重要的作用。我國的大多數(shù)城市都采用手動考核與報站。由于手動考核與報站是人為控制,不僅增加了公交車

8、在行駛過程中的安全隱患,還給公交車的報站造成了些許的偏差:錯報、誤報的情況時有發(fā)生。并且手動考核無法對車輛行駛過程中存在的超速等問題進(jìn)行有效的監(jiān)督。為了能提高公交車的工作效率及服務(wù)水平,我們急需一種系統(tǒng)可以實現(xiàn)公交車的自動考核與報站。1.2 本課題在國內(nèi)外的發(fā)展?fàn)顩r通過市場調(diào)查,現(xiàn)今公交車的報站主要有兩種方式。一種是通過全球衛(wèi)星定位系統(tǒng)(gps)來實現(xiàn),目前美國部分城市已投入使用。但這種方案所需要的技術(shù)太過復(fù)雜,開發(fā)成本太高,不適合應(yīng)用在中小城市。另一種是人工報站,我國大部分城市仍使用該方案。它需要司乘人員進(jìn)行相關(guān)操作才能完成,這就加大了司機(jī)的工作強(qiáng)度,增加了車輛運(yùn)行過程中的安全隱患。近年來,

9、單片機(jī)技術(shù)飛速發(fā)展,主要用來實現(xiàn)對信號的檢測、數(shù)據(jù)的采集以及對應(yīng)用對象的控制。它在工業(yè)控制、家用電器、汽車電子乃至航天電子等領(lǐng)域都有著重要的應(yīng)用。由于單片機(jī)具有穩(wěn)定性好、成本低、很好的擴(kuò)展性及可編程性等優(yōu)點(diǎn),所以通過單片機(jī)等技術(shù)來實現(xiàn)公交車的自動考核與報站就受到了越來越多的關(guān)注。1.3 本課題的指導(dǎo)思想本課題主要研究的是用單片機(jī)實現(xiàn)公交車的自動考核與報站。設(shè)計主要可實現(xiàn)兩個功能:公交車的自動報站:在各個站點(diǎn)安裝無線發(fā)射模塊f05p 以及 pt2262 編碼集成電路,用來發(fā)射站臺信號;在公交車上安裝無線接收模塊 j04v、pt2272 解碼集成電路、語音電路、單片機(jī)最小系統(tǒng)等,用來接收站臺發(fā)射的

10、信號并對其進(jìn)行解碼,從而判斷該站點(diǎn)并進(jìn)行自動報站。公交車的自動考核:通過霍爾傳感器將公交車的車輪轉(zhuǎn)數(shù)轉(zhuǎn)換成脈沖信號傳入單片機(jī),用單位時間內(nèi)車輪轉(zhuǎn)過的圈數(shù)來判斷車超速情況,同時將公交車在行駛過程中的里程和速度記錄在系統(tǒng)中。所謂里程數(shù)=車輪轉(zhuǎn)數(shù)*車輪周長,速度=車輪周長/車輪每轉(zhuǎn)一圈所用的時間。2、單片機(jī)的相關(guān)介紹2.1 單片機(jī)原理及其發(fā)展趨勢單片微機(jī)是單片微型計算機(jī) scmc(single chip micro computer)的譯名簡稱,在國內(nèi)也常簡稱為“單片機(jī)” 。單片機(jī)是指一個采用超大規(guī)模集成電路技術(shù),將中央處理器 cpu、隨機(jī)存儲器 ram、只讀存儲器 rom、中斷系統(tǒng)、定時器/計數(shù)器

11、、串行口和 i/o 口等集成在一塊芯片上的計算機(jī)系統(tǒng)。12.2 單片機(jī)的引腳功能介紹at89c51 是一種帶 4k 字節(jié) flash 存儲器的低電壓、高性能 cmos 8位單片機(jī)。2其引腳圖見下:圖 2.1 at89c51 的引腳圖按引腳的功能可分為四部分:電源引腳:vcc:接電源正極。vss:接地。時鐘電路引腳:xtal1:片內(nèi)振蕩器反相放大器的輸入端。xtal2:片內(nèi)振蕩器反相放大器的輸出端。并行 i/o 口引腳:共四個口,32 根 i/o 線。p0:8 位、漏極開路型雙向 i/o 口。可作通用 i/o 口使用,當(dāng)使用片外存儲器時,作低 8 位地址和 8 位數(shù)據(jù)分時復(fù)用。在程序校驗期間,輸

12、出指令字節(jié),驗證時需加外部上拉電阻。p1:內(nèi)部帶上拉電阻的 8 位、準(zhǔn)雙向 i/o 口。在編程/校驗期間,用作輸入低位字節(jié)地址。p2:內(nèi)部帶上拉電阻的 8 位、準(zhǔn)雙向 i/o 口。當(dāng)使用片外存儲器時,輸出高 8 位地址。在編程/校驗期間,接收高位字節(jié)地址。p3:內(nèi)部帶上拉電阻的 8 位、多功能雙向 i/o 口。除了作通用 i/o 口外,其主要功能是它的各位還有第二功能:p3.0:rxd 串行輸入端p3.1:txd 串行輸出端p3.2:int0 外部中斷 0 輸入端p3.3:int1 外部中斷 1 輸入端p3.4:t0 定時器/計數(shù)器 0 的外部輸入p3.5:t1 定時器/計數(shù)器 1 的外部輸入

13、p3.6:wr 低電平有效,輸出,片外數(shù)據(jù)存儲器或 i/o 口寫選通p3.7:rd 低電平有效,輸出,片外數(shù)據(jù)存儲器或 i/o 口讀選通控制信號引腳:rst:復(fù)位輸入信號,高電平有效。ea/vpp:片外程序存儲器訪問允許信號,低電平有效。ale/prog:地址鎖存允許信號,輸出。psen:片外程序存儲器讀選通信號,低電平有效。3、硬件電路設(shè)計一個單片機(jī)系統(tǒng)的硬件設(shè)計主要包括:單片機(jī)系統(tǒng)的擴(kuò)展部分設(shè)計、各功能模塊的設(shè)計和工藝設(shè)計。3本設(shè)計的硬件電路主要包括:單片機(jī)內(nèi)部時鐘電路、復(fù)位電路、無線射頻發(fā)射電路、無線射頻接收電路、語音電路和考核系統(tǒng)的設(shè)計。3.1 單片機(jī)內(nèi)部時鐘電路時鐘電路主要用來產(chǎn)生單

14、片機(jī)工作所需要的時鐘信號。由于單片機(jī)內(nèi)部本身帶有時鐘電路,所以只需在片外的 xtal1 和 xtal2 之間跨接晶振和微調(diào)電容即可。該電路如下圖(本設(shè)計使用 12mhz 晶振):圖 3.1 單片機(jī)內(nèi)部時鐘電路3.2 復(fù)位電路對于復(fù)位信號,高電平有效。復(fù)位有上電自動復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位 3 種操作方式。在本設(shè)計中,采用的是按鍵電平復(fù)位,它通過按壓鍵使復(fù)位端經(jīng)電阻與 vcc 接通來實現(xiàn)。該電路如下圖:圖 3.2 復(fù)位電路3.3 無線射頻發(fā)射電路3.3.1 設(shè)計思路通過翻閱各種資料,我了解到:目前主要有 4 種方式可實現(xiàn)公交車的自動報站。(1)gps 系統(tǒng):它是一種高精度衛(wèi)星導(dǎo)航系統(tǒng),通

15、過用戶設(shè)備接收 gps 信號,對信號進(jìn)行處理后獲取方向、位置等有效信息,從而實現(xiàn) gps 的導(dǎo)航與定位。但因其價格昂貴,目前只被較少的城市使用。(2)無線收發(fā)一體芯片:例如,tr3001 主要通過藍(lán)牙技術(shù)設(shè)計。藍(lán)牙是一種短距離通信的無線電技術(shù),一般在 10 米以內(nèi)。它支持點(diǎn)對點(diǎn)及點(diǎn)對多點(diǎn)通信。4因此,在實際應(yīng)用中也不適用于公交車自動報站。 (3)無線遙控系統(tǒng):一般有紅外線發(fā)射和電磁波發(fā)射兩種方式。紅外遙控系統(tǒng)以紅外線為數(shù)據(jù)傳輸介質(zhì),由發(fā)射和接收兩部分組成。一般用遙控器產(chǎn)生的編碼脈沖驅(qū)動紅外發(fā)射管,輸出紅外遙控信號;用一體化接收頭完成對信號的接收、放大、檢波、濾波、整形,并解調(diào)出相應(yīng)的編碼脈沖,

16、遙控編碼脈沖是一組二進(jìn)制碼。紅外發(fā)射管是一種能將電能轉(zhuǎn)變?yōu)榻t外光的發(fā)光顯示器件,它的發(fā)射信號經(jīng)頻率調(diào)制后一般的接收距離可超過 10 米,無干擾時可超過 30 米。由于公交行駛線路不可能暢通無阻,它的速度一般為 40-50 公里(千米)/小時,因此它每秒行駛的路程大約為 11.1 米。由此可見,當(dāng)公交車到達(dá)某一站點(diǎn)時速度稍微過大,就可能無法接收到紅外信號,從而也就無法實現(xiàn)報站。紅外遙控距離短,只能直線方向遙控,而且紅外線無法穿透障礙物。因此,以上情況都可能成為報站過程中存在的不確定因素。以電磁波為數(shù)據(jù)傳輸介質(zhì)的遙控系統(tǒng),主要框架和紅外遙控系統(tǒng)相同。不同之處在于,電磁波的遙控具有衍射作用,可以跨

17、越一定的障礙物,也不需要直線遙控。當(dāng)發(fā)射端發(fā)射一定頻率的電磁波時,接收端只有篩選出相同頻率的電磁波信號并經(jīng)過解碼才能得到。(4)無線射頻收發(fā)模塊 f05p、j04v:f05p 與 j04v 是配對使用的。它們常與編解碼集成電路組成無線收發(fā)電路。f05p 是射頻無線發(fā)射模塊,適合短距離無線遙控報警及單片機(jī)無線數(shù)據(jù)傳輸,對直流電平及模擬信號不能發(fā)射,采用 ask 方式調(diào)制。j04v 是超再生接收模塊,主要應(yīng)用于需要長期處于接收狀態(tài)的遙控報警及單片機(jī)數(shù)據(jù)傳輸系統(tǒng)。性能穩(wěn)定,具有較好的靈敏度及性價比。它們二者都是小體積、低功耗的模塊。5基于以上方案,本設(shè)計采用方案四,通過無線收發(fā)模塊 f05p/j04

18、v 與 pt2262/pt2272 的編解碼集成電路共同實現(xiàn)公交車的自動報站。常用的編解碼集成電路芯片為:pt2262/pt2272。它們的引腳圖如下:圖 3.3 編解碼芯片 pt2262/2272 引腳圖pt2262 最多可有 6 位數(shù)據(jù)端管腳,編碼信號是由 8 位地址碼、4 位數(shù)據(jù)碼以及同步碼組成的一個串行碼字。pt2262 和 pt2272 的地址編碼必須完全一致,而且振蕩電阻也必須匹配。一般 pt2262 的振蕩電阻采用 12 兆歐,pt2272 用 200 千歐匹配。編碼信號從 pt2262 的 17 腳 dout 輸出,由無線射頻發(fā)射模塊 f05p 的數(shù)據(jù)信號輸入端發(fā)射出去。該信號

19、經(jīng)無線射頻接收模塊j04v 接收送至解碼芯片 pt2272,只有當(dāng) pt2272 連續(xù)三次檢測到相同的地址碼加數(shù)據(jù)碼之后,其 vt 腳才輸出高電平,同時 pt2262 的 dout 腳也輸出高電平。6pt2262:a0-a11:地址管腳,用于進(jìn)行地址編碼。d0-d5:數(shù)據(jù)輸入端。te:編碼啟動端,低電平有效。osc1/osc2:振蕩電阻的輸入/輸出端。dout:編碼輸出端,正常時為低電平。pt2272:a0-a11:地址管腳,必須與 2262 一致,否則不解碼。din:數(shù)據(jù)信號輸入端,來自接收模塊輸出端。vt:編碼有效確認(rèn)輸出端(常低),解碼有效變成高電平(瞬態(tài))。3.3.2 設(shè)計電路及說明無

20、線射頻發(fā)射電路原理框圖如下:地址設(shè)定pt2262 編碼高頻發(fā)射電路圖 3.4 無線射頻發(fā)射電路原理框圖此部分需要安裝在各個公交站點(diǎn)。本設(shè)計中,地址設(shè)定通過 pt2262 的1-8 腳設(shè)定,它一般有三種狀態(tài):接電源正極、接地及懸空。這樣就會有6561 組不同的編碼,一般城市的公交車站點(diǎn)為 20 個,滿足設(shè)計需要。pt2262 完成的是編碼功能,通過其數(shù)據(jù)端口所接的按鍵觸發(fā)電路傳送 4 位并行數(shù)據(jù),并由高頻發(fā)射電路進(jìn)行調(diào)制、功率放大和發(fā)送。這里,按鍵觸發(fā)電路與二極管組合給芯片 pt2262 上電,無線射頻發(fā)送模塊 f05p 則充當(dāng)了高頻發(fā)射電路部分。具體電路圖如下:圖 3.5 無線射頻發(fā)射電路3.

21、4 無線射頻接收電路3.4.1 設(shè)計電路及說明無線射頻接收原理框圖如下:選頻放大檢波濾波整形pt2272 解碼圖 3.6 無線射頻接收原理框圖此部分應(yīng)該與語音電路、單片機(jī)最小系統(tǒng)以及考核系統(tǒng)連在一起安裝在公交車上。本設(shè)計中,地址編碼且是加密的,只有開發(fā)者知曉。而且pt2272 的地址比須和 pt2262 的完全一致。此處,我們在接收端接收到的信號是高頻的載波信號,載波信號經(jīng)過選頻、放大、檢波、濾波、整形之后,才能由解碼芯片 pt2272 進(jìn)行解碼。由于無線接收模塊 j04v 內(nèi)部具有放大整形電路,所以它在這里起到的就是放大、檢波、濾波、整形的作用。j04v 只適合數(shù)據(jù)信號的接收,而不適合模擬信

22、號。pt2272 通過數(shù)據(jù)端和數(shù)據(jù)信號輸入端與單片機(jī)相連。其具體電路圖如下:圖 3.7 無線射頻接收電路檢波:解調(diào),從已調(diào)波提取調(diào)制信號的過程。濾波:將信號中特定波段頻率濾除的操作,提取有用信號。3.5 語音電路3.5.1 設(shè)計思路根據(jù)公交車報站的順序報站和反向報站這一特點(diǎn),本設(shè)計將語音電路設(shè)計如下:首先將所需要報站的站臺語音信息按順序分段錄入語音芯片中。由于本系統(tǒng)中 pt2262 和 pt2272 的地址碼是一樣的。所以當(dāng) pt2262 的編碼發(fā)射后,只要 pt2272 接收到相同的編碼信號,就認(rèn)為是本系統(tǒng)的信號,并且同時進(jìn)行語音信息的播放。當(dāng)進(jìn)行順向報站時,第一次接收到相同的編碼信號就播放

23、第一段錄音,也就是進(jìn)行第一站的播報;第二次接收到相同的編碼信號就播放第二段錄音,也就是進(jìn)行第二站的播報,以此類推。反向報站時,從最后一段開始播放。3.5.2 設(shè)計電路及說明本設(shè)計采用的是 isd4004 語音芯片。該芯片內(nèi)含振蕩器、防混淆濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陳列。單片 8 至 16 分鐘錄放,可反復(fù)錄音 10 萬次,滿足報站所需要求。該芯片必須由微控制器控制,操作命令可通過串行通信接口 miso 送入。由于公交車內(nèi)噪聲較大,所以采用 tda2822 集成功放電路。此功放電路具有集成度高,外圍元件少,音質(zhì)好等特點(diǎn)。由于本功放為直接耦合,輸入信號時不能帶直流成分。如果

24、有直流成分時,則必須在輸入端串接 4.7-10uf 左右的電容隔開,否則電流過大會造成揚(yáng)聲器的燒毀。圖 3.8 isd4004 語音芯片引腳圖語音芯片 isd4004 的各引腳功能如下:7ss:器件選擇,低電平有效。mosi:串行輸入端。miso:串行輸出端。nc:空腳。audout:音頻信號輸出端,能驅(qū)動 5 千歐負(fù)載。amcap:自動靜噪端,大信號下不衰減,靜音時衰減 6db。rac:行地址時鐘輸出,內(nèi)部存儲器共分為 800 行,當(dāng)操作到達(dá)行末時,本端輸出一低電平脈沖。int:中斷輸出,當(dāng)存貯器溢出或放音結(jié)束標(biāo)志位出現(xiàn)時,該端為低電平并保持。xclk:外部時鐘輸入端,不用時接地。sclk:

25、串行時鐘,用于同步串行數(shù)據(jù)。tda2822 引腳見圖 3.9,語音電路的硬件電路見圖 3.10。圖 3.9 tda2822 引腳圖圖 3.10 語音電路3.6 考核系統(tǒng)3.6.1 設(shè)計電路及說明考核系統(tǒng)主要由開關(guān)型霍爾元件電路、lcd 顯示電路以及報警電路組成。該部分的系統(tǒng)原理框圖如下:霍爾傳感器lcd 顯示報警電路單片機(jī)at89c51外部信號圖 3.11 考核系統(tǒng)原理框圖(1)開關(guān)型霍爾元件電路:作為常用的測速元件,霍爾傳感器利用霍爾效應(yīng)能將磁轉(zhuǎn)換為電。其獲取信號的方式為:在公交車的轉(zhuǎn)軸齒輪盤上粘一粒磁鋼,并將霍爾器件固定在前叉上。在車輪轉(zhuǎn)動的過程中,霍爾器件會與磁鋼接觸,然后就會不斷的產(chǎn)生

26、脈沖信號。本設(shè)計中,利用霍爾傳感器將采集到的脈沖信號輸入引腳 p3.5(t1) ,車輪每轉(zhuǎn)動一圈,霍爾傳感器就輸出一個低電平脈沖信號,用 t0 進(jìn)行定時,然后用 t1 對所定時間內(nèi)的脈沖進(jìn)行計數(shù)。這里,里程值為脈沖數(shù) n 與公交車車輪周長 l 的乘積。經(jīng)查找資料得知,型號為“10.00-20” (輪胎寬 10 英寸,鋼圈 20)的公交車車輪直徑 r1 為 1.016 米,型號為“9.00-20”的公交車車輪直徑 r2 為 0.965 米。由周長計算公式 l=3.14*r(r 為直徑值)可得:l1=3.19 米,l2=3.03 米。速度值可由公式“速度=車輪周長 l/車輪每轉(zhuǎn)一圈所用的時間 t”

27、計算得知。(2)lcd 顯示電路:本設(shè)計仿真時采用 lcd1602 作為 2*16 字、點(diǎn)陣字符式液晶顯示模塊來顯示公交車的里程及速度值,從而讓司機(jī)對該車的行駛狀況有所了解。此液晶模塊具有顯示質(zhì)量高、數(shù)字式接口、功率消耗小等特點(diǎn)。此模塊采用 14 引腳接線:vss:接地。vee:可不接。vdd:接電源正極。rs:數(shù)據(jù)/命令寄存器選擇端。高電平時選擇數(shù)據(jù)寄存器,低電平時選擇命令寄存器。rw:讀/寫選擇端。高電平讀,低電平寫。e:使能端。由高電平跳變成低電平時,液晶模塊執(zhí)行命令。d0-d7:8 位雙向數(shù)據(jù)總線。具體連接電路見圖 3.12。本模塊中:顯示緩沖區(qū) ddram 有 80 個單元,第 1

28、行的地址為 00h-0fh,第 2 行的地址為 40h-4fh。ddram 單元存放的是要顯示字符的 ascii 碼。字符發(fā)生器 cgrom 存儲了不同的點(diǎn)陣字符圖形,每一個字符在它里面都有一個固定的代碼。例如,經(jīng)查表可得,字符“.”的代碼為 2eh,字符“6”的代碼為 36h。本模塊的控制是通過操作命令完成的,它有特定的操作命令。例如:0 x04 表示的是光標(biāo)從最后一位開始往前顯示。0 x01 表示的是對 lcd進(jìn)行清屏。圖 3.12 lcd 顯示電路(3)本設(shè)計中,報警電路采用的是蜂鳴器。它是一種常用于單片機(jī)應(yīng)用系統(tǒng)的電聲轉(zhuǎn)換器件,使用 pnp 型三極管進(jìn)行驅(qū)動控制。當(dāng)所測速度超過設(shè)置的該

29、值時,p3.1(txd)引腳輸出低電平,三極管導(dǎo)通,蜂鳴器發(fā)出聲響。電路圖如下:圖 3.13 報警電路(4)單片機(jī)的 p2.4 口接開關(guān) key1 用來控制里程值及速度的顯示。 p2.5 口接 key2 用來選擇車輪的周長為 3.19 米,p2.6 口接 key3 用來選擇車輪的周長為 3.03 米??己讼到y(tǒng)與語音電路的連接圖如下:圖 3.14 語音報站與考核部分硬件電路圖4、軟件部分設(shè)計在軟件設(shè)計時,應(yīng)注意以下幾個方面:程序模塊化。程序流程圖。通常在編制程序前,要先畫出程序流程圖。合理分配資源。程序注釋。應(yīng)該在程序的有關(guān)位置添加功能注釋,提高程序的可讀性。8本設(shè)計的程序部分采用 c 語言編制

30、。c 語言是國際上廣泛流行的計算機(jī)高級語言。它具有以下特點(diǎn):語言簡潔、緊湊、使用方便、靈活。運(yùn)算符及數(shù)據(jù)類型豐富。具有結(jié)構(gòu)化的控制語句,語法限制不太嚴(yán)格,程序設(shè)計自由度大。允許直接訪問物理地址,能進(jìn)行位操作。用 c 語言編寫的程序可移植性好,生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。本設(shè)計的軟件部分設(shè)計主要包括:語音報站程序、考核模塊主程序、里程及速度值計算子程序、lcd 顯示子程序、定時計數(shù)子程序。4.1 語音報站程序設(shè)計該部分程序包括兩個子程序:錄音子程序以及放音子程序。語音芯片isd4004 在器件延時后才能開始操作。因此,當(dāng)用戶發(fā)完上電指令后,必須等待延時才能發(fā)出一條操作指令。部分指令如下:

31、powerup:上電,等待延時后器件可以工作。set paly:從指定地址開始放音,比須后跟 play 指令使放音繼續(xù)。play:從當(dāng)前地址開始放音,直至 eom 或 ovf。set rec:從指定地址開始錄音,必須后跟 rec 指令錄音繼續(xù)。rec:從當(dāng)前地址開始錄音,直至 ovf 或停止。stop:停止當(dāng)前操作。stop wrdn:停止當(dāng)前操作并掉電。rint:讀狀態(tài):ovf 和 eom。開始送錄音地址開始錄音返回鍵是否按下yn圖 4.1 錄音子程序根據(jù)地址判斷釋放哪段錄音開始自動放音送放音地址返回圖 4.2 放音子程序4.2 考核模塊主程序設(shè)計程序流程圖如下:開始初始化p1.6=1?p1

32、.7=1?出錯信息將車輪周長調(diào)入p1.0=1?調(diào)用里程、速度值子程序ynnyyny返回清屏圖 4.3 考核模塊程序流程圖先在系統(tǒng)中設(shè)定好該公交車車輪的周長,即:空調(diào)車時,p2.5 口所接的按鍵 key2 閉合,此時 l=3.19m;一般車時,p2.6 口所接的按鍵 key3閉合,此時 l=3.03m。當(dāng)按下任意周長選擇鍵后,再按下速度里程值讀取鍵 key1 時,lcd 中會顯示出相應(yīng)的里程及速度值。如果不設(shè)置公交車的周長時,當(dāng)按下 key1 鍵時,lcd 中顯示出錯信息“error” 。當(dāng)再次按下key1 鍵時,lcd 會被清屏。4.3 里程及速度計算子程序設(shè)計p1.0 口所連接的 key1

33、鍵按下時,key1=0,lcd 的顯示屏上同時顯示里程和速度值,第 1 行顯示的是里程值,第 2 行顯示的是速度值。設(shè)車輪周長為 l,里程值 s=車輪周長 l*車輪轉(zhuǎn)過的圈數(shù) n,速度(瞬時速度)=車輪周長 l/車輪轉(zhuǎn)一圈所用的時間 t。其中:用 t0 定時 10ms,用 t1 對 10ms 內(nèi)所檢測到的脈沖個數(shù) n 進(jìn)行計數(shù),t=0.01/n。本設(shè)計中,里程的單位為 m,速度的單位為 m/s。在實際應(yīng)用中,我們認(rèn)為速度大于 80km/h(22.2m/s)為超速。由于本設(shè)計中存在按鍵抖動的問題,所以我們使用軟件延時 10ms對其進(jìn)行消抖。命令為:delay(10)。計算出速度值后,與單片機(jī)中已

34、設(shè)置好的速度上限值進(jìn)行比對:如果超過該值,則觸發(fā)報警電路,蜂鳴器發(fā)出聲響,并同時顯示該速度值。如果小于該值,則只進(jìn)行相應(yīng)速度值的顯示。流程圖如下:計算里程、速度開始p1.0=1?nn清屏y是否超速?報警電路y顯示速度n返回圖 4.4 里程速度計算子程序流程圖4.4 lcd 顯示子程序首先要對 lcd 進(jìn)行初始化,然后進(jìn)行相應(yīng)功能的設(shè)置。之后在 lcd 進(jìn)行顯示之前,要對 lcd 判忙,這里我們用判忙函數(shù) check 完成此功能。在對 lcd 送地址、送數(shù)據(jù)以后就可以進(jìn)行相應(yīng)的顯示了。該部分程序流程圖如下:開始液晶初始化判斷是否顯示字符相應(yīng)功能的設(shè)置送地址送數(shù)據(jù)判斷是否顯示完返回nyyn圖 4.

35、5 lcd 顯示子程序流程圖里程的單位 m、速度的單位 m/s 以及出錯信息 error 都是通過 lcd 逐個字符顯示的。各個字符的代碼如下:m0 x6d/0 x2fs0 x73e0 x65r0 x72o0 x6f表 1 字符代碼4.5 定時計數(shù)子程序本設(shè)計使用的是單片機(jī)內(nèi)部的,由高 8 位和低 8 位兩個寄存器組成的定時/計數(shù)器:t0 和 t1。工作方式寄存器 tmod 用來設(shè)置定時/計數(shù)器的工作方式。低 4 位用于設(shè)置 t0,高 4 位用于設(shè)置 t1。其格式如下:gatec/tm1m0gatec/tm1m0t1t0圖 4.6 tmod 的格式門控位 gate=0 時,使 tr0=1 或

36、tr1=1,可以啟動定時/計數(shù)工作。其中:tr0(tcon.4)為 t0 的運(yùn)行控制位,tr1(tcon.6)為 t1 的運(yùn)行控制位。定時計數(shù)選擇位 c/t=0 時為定時模式,c/t=1 時為計數(shù)模式。工作方式設(shè)置位 m1m0:01 為工作方式 1,表示 16 位定時/計數(shù)器計數(shù)個數(shù) n 與計數(shù)初值 x 的關(guān)系為:x=65536-n,初值在 65535-0 范圍時,計數(shù)范圍為 1-65536。計數(shù)初值要分解成 2 個字節(jié)并分別送入th0、tl0(或 th1、tl1)中。本設(shè)計采用 12mhz 的晶振,所以機(jī)器周期為 tcy=1/(12*(1/12)=1us,n=t/tcy=10000,x=65

37、536-10000=5536=15a0h。其中,15h 送入 th0 中,a0h送入 tl0 中。綜上所述,當(dāng) t0 用作定時器,t1 用作計數(shù)器時,可將 tmod 設(shè)置為:0x51h,即:01010001b。由于:et0(ie.1)為定時器/計數(shù)器 t0 中斷允許位,et1(ie.3)為定時器/計數(shù)器 t1 中斷允許位,ea(ie.7)為 cpu 中斷允許位,所以在主程序設(shè)置中,et0=1,et1=1,ea=1。本設(shè)計中,t0 定時時間為10ms,計算定時內(nèi)脈沖的個數(shù) n 用公式:n=num*65536+th1*256+tl1,其中num 為定時溢出時計數(shù)器的值。5、仿真本設(shè)計主要分為三大部

38、分,無線射頻收發(fā)電路、語音電路以及考核電路。其中,無線射頻收發(fā)電路由 pt2262 及 pt2272 來完成,由于 protues中沒有此類芯片信息,所以這部分不進(jìn)行仿真。語音電路同樣也不能進(jìn)行仿真。所以這里將考核電路單獨(dú)進(jìn)行仿真。5.1 考核部分仿真protues 軟件中沒有霍爾傳感器的元件信息,所以在仿真時,直接在t1 口輸入方波信號,其頻率可隨設(shè)計需要改動。信號仿真圖如下:圖 5.1 信號仿真以下為仿真的幾組數(shù)據(jù):當(dāng)沒有輸入車輪周長信息時,顯示出錯信息。如下:圖 5.2 出錯信息的顯示當(dāng)信號的頻率設(shè)置為 10hz,車輪周長為 3.03m 時的顯示結(jié)果,亂碼顯示。圖 5.3 亂碼顯示當(dāng)輸入

39、的信號頻率設(shè)置為 1hz,車輪周長設(shè)置為 3.19m 時,顯示如下數(shù)據(jù)。我們可通過公式來驗證其錯對。圖 5.4 正常數(shù)據(jù)顯示s=l*n;v=l/t;f=n/0.01;t=0.01/n 其中,l 為車輪周長,f 為所輸入信號的頻率,n 為所測的脈沖數(shù),0.01 為定時 10ms。經(jīng)過計算得知,所測速度和里程值正確。經(jīng)過反復(fù)的測量發(fā)現(xiàn):誤差的來源是測量時接收到的脈沖數(shù)。由于脈沖數(shù)只能為整數(shù),所以只要它接收到信號就算有一個脈沖,而不管此脈沖是不是完整。 6、結(jié)論本次畢業(yè)設(shè)計的是基于單片機(jī)的公交車的自動考核與報站。它完成了設(shè)計所需的倆大基本功能,即自動報站與考核。雖然報站部分無法進(jìn)行仿真,但由于編解碼

40、芯片 pt2262/pt2272 集成電路的廣泛應(yīng)用,此部分是可以實現(xiàn)的。考核部分則實現(xiàn)了對速度和里程值的簡單測量。在本次畢業(yè)設(shè)計過程中,我對無線射頻收發(fā)電路的原理有了較深的了解,也對單片機(jī)及編解碼芯片的基本功能有了更深的認(rèn)識。由于本設(shè)計的軟件部分是用 c 語言編寫,所以此次畢業(yè)設(shè)計又讓我鞏固了以前學(xué)到的 c語言知識。雖然設(shè)計過程中遇到的問題很多,但在自己及老師的耐心工作下,它們還是被我們逐個解決。本次畢業(yè)設(shè)計雖然內(nèi)容繁多,過程繁瑣,但我收獲頗多。它讓我們?yōu)橐院蟮墓ぷ鞣e累了經(jīng)驗,也讓我們認(rèn)識到以后工作過程當(dāng)中耐心及認(rèn)真的重要性。答謝本次畢業(yè)設(shè)計是在張心歌老師的耐心指導(dǎo)下完成的,在此特表示感謝。

41、經(jīng)過本次畢業(yè)設(shè)計,我深深的了解到:只有努力才能獲得成功。在剛剛拿到這個題目時,我就被難住了,根本不知道該從哪下手。由于對單片機(jī)知識的不精通,很長一段時間我什么都沒有做出來。經(jīng)過張老師不厭其煩的講解及鼓勵,我終于有了些思路。在最后的緊要關(guān)頭,我的設(shè)計終于出來了。在此還要感謝我的舍友,是她們幫助我完成考核系統(tǒng)的編程部分,最后感謝學(xué)校領(lǐng)導(dǎo)為我們提供的這次學(xué)習(xí)、鍛煉的機(jī)會。參考文獻(xiàn)1 高峰單片微型計算機(jī)原理與接口技術(shù)第二版,北京,科學(xué)出版社 ,2008 年 1月2 李全利單片機(jī)原理及接口技術(shù)高等教育出版社,2009 年第 2 版3 王為青,邱文勛51 單片機(jī)應(yīng)用開發(fā)案例精選北京,人民郵電出版社,200

42、7 年8 月第 1 版4 全澤昌,謝自美,王文龍無線收發(fā)一體芯片 tr3001武漢,載微電子學(xué)與計算機(jī)2001 年 5 期5 李強(qiáng),唐銘卓,楊桂芹無線收發(fā)模塊設(shè)計實現(xiàn)蘭州交通大學(xué),2010 年 1 期6 趙秋利用編解碼芯片的無線收發(fā)電路南京,載信息化研究第 35 卷第 9 期,2009 年 9 月7 古玉年isd4004 系列 8-16 分鐘單片語音錄放電路及其應(yīng)用蘇州,載蘇州職業(yè)大學(xué)學(xué)報2002 年第 2 期8 魏偉,胡瑋,王永清51 單片機(jī) c 語言開發(fā)與應(yīng)用技術(shù)北京,化學(xué)工業(yè)出版社,2010 年 6 月第 1 版 9 周波,馮頑童,胡建龍公交車自動報站系統(tǒng)的設(shè)計四川理工學(xué)院,2001 第

43、 3 期10 許連華,李學(xué)慶基于 gps 的公交車自動報站系統(tǒng)山東大學(xué),2005 年 12 月11 童強(qiáng)民一種基于單片機(jī)系統(tǒng)的無線遙控技術(shù)安徽,載電腦知識與技術(shù)2009 年 5 月附錄 考核系統(tǒng)及語音報站程序#include#include#include#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit e=p22; /定義 lcd 芯片引腳sbit rs=p20;sbit rw=p21;sbit busy=p07;sbit key1=p24;sbit key

44、2=p25;sbit key3=p26;sbit spk=p31; /定義蜂鳴器引腳sbit _ss = p14; /定義語音芯片引腳sbit _sclk= p17;sbit _mosi= p15;sbit _miso= p16;sbit _rac = p13;sbit _int = p12;uchar time;uchar num; /num 為定時溢出時計數(shù)器的值long int i1,k,s1,v1,j1,d; /s 為里程值,v 為速度值unsigned long n; /n 為脈沖數(shù)long float l1,l2,l,v,t,s;uchar err=0 x72,0 x6f,0 x7

45、2,0 x72,0 x65,; /errorvoid delay(uint z)/延時 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void check() /判斷 lcd 忙或空閑 do p0=0 xff; rs=0; rw=1; /讀 rs rw 的值為 01 e=0; /e=0,禁止讀寫 delay(1); /等待,液晶顯示器處理數(shù)據(jù) e=1; /e=1,允許讀寫 while(busy=1); /判斷是否為空閑,1 為忙,0 為空閑void write_com(uchar com) /寫指令 p0=com; /p0 與液晶相連 rs=0; /選擇指

46、令寄存器 rw=0; /進(jìn)行寫操作 e=0; /e 從高變?yōu)榈停壕K執(zhí)行命令 delay(2); check(); e=1;void write_data(uchar dat)/寫數(shù)據(jù) p0=dat;rs=1; /選擇數(shù)據(jù)寄存器rw=0; /進(jìn)行寫操作e=0;delay(2); check();e=1;void error() /報錯函數(shù) write_com(0 x80+0 x4f); write_com(0 x04); for(d=0;d5;d+) write_data(errd);void init() /初始化 e=1; /使能信號為高電平 delay(1); write_com(0

47、 x38); /8 位,2 行ddram 的地址 delay(5); write_com(0 x38); delay(5); write_com(0 x0c); /顯示開,光標(biāo)關(guān),不閃爍 delay(5); write_com(0 x06); /增量方式不移位 delay(5); write_com(0 x80); /檢測忙信號 delay(5); write_com(0 x01); /顯示開,光標(biāo)關(guān),不閃爍 delay(5);void timer0()interrupt 1 time=0; th0=(65536-10000)/256; /商為計數(shù)初值的高字節(jié) tl0=(65536-10000

48、)%256;/余數(shù)為計數(shù)初值的低字節(jié) time+; if(time=0.01)/ 如果定時時間到,停止計數(shù),定時時間為 10ms time=0; tr1=0;void timer1()interrupt 3 num+; void stopmode() /停止 unsigned char m,i,j; _ss=1; _sclk=0; _ss=0; m=0 x30; for(i=0;i8;i+) m=_cror_(m,1); j=m1; _mosi=0; _sclk=0; _sclk=1; _ss=1;void powerdown() /下電 unsigned char m,i,j; _ss=1;

49、 _sclk=0; _ss=0; m=0 x10; for(i=0;i8;i+) m=_cror_(m,1); j=m1; _mosi=0; _sclk=0; _sclk=1; _ss=1;void powerup() /上電 unsigned char m,i,j; _ss=1; _sclk=0; _ss=0; m=0 x20; for(i=0;i8;i+) m=_cror_(m,1); j=m1; _mosi=0; _sclk=0; _sclk=1; _ss=1;void record4004(unsigned int address) /錄音,錄音地址 0-2400 unsigned c

50、har i,m,j; unsigned int datasoute=0; powerup(); delay(5118);/上電延時 powerup(); delay(5118);/上電延時 delay(5118);/上電延時 _ss=1; _sclk=0; m=0 xa0; _ss=0; for(i=0;i16;i+) address=_iror_(address,1); datasoute=address1; _mosi=0; _sclk=0; _sclk=1; for(i=0;i8;i+) m=_cror_(m,1); j=m1; _mosi=0; _sclk=0; _sclk=1; _ss=1; _sclk=0; m=0 xb0; _ss=0; for(i=0;i8;i+) m=_cror_(m,1); j=m1; _mosi=0; _sclk=0; _sclk=1; _ss=1; p0=0 xff; datasoute=0; while(_int=1) /存儲地址換行標(biāo)志 if(_rac) delay(20000); datasoute+

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論