藍(lán)本畢業(yè)設(shè)計基于單片機(jī)的公交車自動報站系統(tǒng)_第1頁
藍(lán)本畢業(yè)設(shè)計基于單片機(jī)的公交車自動報站系統(tǒng)_第2頁
藍(lán)本畢業(yè)設(shè)計基于單片機(jī)的公交車自動報站系統(tǒng)_第3頁
藍(lán)本畢業(yè)設(shè)計基于單片機(jī)的公交車自動報站系統(tǒng)_第4頁
藍(lán)本畢業(yè)設(shè)計基于單片機(jī)的公交車自動報站系統(tǒng)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE1基于單片機(jī)的公交車自動報站系統(tǒng)設(shè)計

【摘要】隨著多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,許多舊的生產(chǎn)生活方式逐漸被新技術(shù)代替,本文就針對公交車報站問題提出了解決方案。系統(tǒng)使用單片機(jī)AT89C51來控制語音合成芯片ISD4004和液晶顯示模塊LCD1602以及無線收發(fā)模塊PT2262/PT2272。語音合成芯片ISD4004,采用模擬數(shù)據(jù)半導(dǎo)體存儲器直接存儲的專利技術(shù),即將模擬語音數(shù)據(jù)直接寫入單個存儲單元,不需經(jīng)過A/D、D/A轉(zhuǎn)換,因此能夠較好地真實再現(xiàn)語音的自然效果,避免了一般固體語音電路因為量化和壓縮造成的量化噪聲和失真現(xiàn)象。配合液晶屏顯示,就使得該報站系統(tǒng)更加實用,實現(xiàn)報站的準(zhǔn)確性、及時性、穩(wěn)定性和操作簡單、方便、智能等特點(diǎn)?!娟P(guān)鍵字】單片機(jī),語音提示,文字顯示,公交報站ABSTRCTWiththedevelopmentofmultimediatechnologyandnetworktechnology,manyoftheoldwayofproductionandlivingisgraduallyreplacedbynewtechnology,thispaperwillputforwardthesolutionsforthebusstops.SystemusingsinglechipmicrocomputerAT89C51tocontrolthespeechsynthesischipISD4004andLCD1602LCDdisplaymoduleandwirelesstransceivermodulePT2262/PT2272.SpeechsynthesischipISD4004,patentedtechnologyofsemiconductormemorystoragedirectlyusingdatasimulation,thesimulationofvoiceanddatadirectlyintoAsinglestorageunit,donotneedthroughA/D,D/Aconversion,thuscanreproducethevoicebetterrealnaturaleffect,avoidsthegeneralsolidvoicecircuitforquantitativeandquantitativenoiseanddistortioncausedbycompression.CooperatewithLCDdisplay,makesthepaperstationsystemmorepractical,realizethestopstheaccuracy,timeliness,stability,andtheoperationissimple,convenient,smart,etc.KEYWORDS:Single-chipMicrocomputer,AudioPrompt,CharacterDisplay,Bus-Stop目錄TOC\o"1-3"\h\u第一章緒論 11.1本課題的研究意義 11.2目前幾種公交車報站器詳細(xì)比較 11.2.1GPS公交車自動報站器 11.2.2手動式公交車自動報站器 11.2.3基于單片機(jī)的公交車自動報站系統(tǒng) 2第二章系統(tǒng)方案的確定 32.1系統(tǒng)主要要實現(xiàn)的功能 32.2無線傳輸模塊的選擇 32.3控制模塊的選擇 32.4液晶顯示模塊及語音模塊的選擇 32.5系統(tǒng)整體硬件電路的確定 3第三章系統(tǒng)功能模塊詳細(xì)介紹 53.1單片機(jī)AT89C51 53.1.1管腳說明 73.1.2外部晶振的選擇 83.1.3復(fù)位電路 83.1.4按鍵電路設(shè)計 93.2無線收發(fā)模塊PT2262/PT2272 103.2.1PT2262/PT2272引腳圖 103.2.2PT2262/2272接線圖以及工作原理 123.2.3無線數(shù)傳模塊F05V/J05V 133.3顯示模塊LCD1602 143.3.1排阻Respack-8 143.3.2LCD1602的引腳定義 143.3.3液晶LCD1602常用的11條指令 163.4語音模塊ISD4004 183.5蜂鳴器和LED指示燈 20第四章系統(tǒng)程序設(shè)計 214.1系統(tǒng)仿真主程序流程圖 214.2程序子函數(shù)模塊 224.2.1延時函數(shù) 224.2.2檢查忙函數(shù) 224.2.3寫指令函數(shù) 224.2.4寫數(shù)據(jù)函數(shù) 234.2.5光標(biāo)位置函數(shù) 234.2.6初始化函數(shù) 234.2.7其他數(shù)組定義以及端口定義 234.3主程序流程圖 24第五章系統(tǒng)仿真實現(xiàn) 285.1開發(fā)環(huán)境KeilC51介紹 285.2仿真環(huán)境PROTEUS介紹 285.3仿真運(yùn)行結(jié)果截圖 285.4仿真結(jié)果 29結(jié)束語 31致謝 33參考文獻(xiàn) 34附錄A系統(tǒng)仿真全部代碼 35閩南理工學(xué)院本科畢業(yè)設(shè)計PAGE48第一章緒論1.1本課題的研究意義近些年來,隨著城市人口的不斷增加,人們生活節(jié)奏的不斷加快,公交車在大城市以及中小城市已經(jīng)普及,并且有了日新月異的發(fā)展,在人民生活中起著重要作用,因此,公交車的正常運(yùn)行與人們的正常生活息息相關(guān)。傳統(tǒng)公交車報站大多是由乘務(wù)人員來人工報站,但是因為方言的差異或者人多時語音嘈雜,這種方式不利于人民生活的和諧。所以根據(jù)這種需要市面上產(chǎn)生流行了多種公交車報站器也方便人們的生活。目前雖然現(xiàn)在在一些大城市的公交車上已經(jīng)采用GPS定位系統(tǒng)自動報站,但其造價昂貴,難以在一些中小城市實現(xiàn)普及。另外,現(xiàn)在也有一些城市正在使用的一種半自動語音報站系統(tǒng),這種系統(tǒng)需要由司機(jī)在車子進(jìn)出站的時候人工操作,由于這兩個時間點(diǎn)往往是路面情況最復(fù)雜的時刻,因此也給行駛中的車輛帶來了安全隱患。所以本設(shè)計針對目前常見公交車報站系統(tǒng)的主要缺陷,研究介紹了一種基于單片機(jī)控制的公交車自動報站系統(tǒng),實現(xiàn)在到站時的自動語音報站和LCD液晶顯示,而且該系統(tǒng)造價廉價,可以在中小城市中普及。1.2目前幾種公交車報站器詳細(xì)比較公交車對社會影響巨大,對城市發(fā)展起著最基本的推動作用。隨著公交車的不斷普及市面上也出現(xiàn)各種各樣的公交車報站器,現(xiàn)在市面上流行的幾種報站器主要有下列幾種類型:1.2.1GPS公交車自動報站器利用GPS全球衛(wèi)星定位系統(tǒng)的公交車報站系統(tǒng),在司機(jī)座位后面隔板上,安裝了一臺15英寸的液晶電視和GPS信號接收器,安裝了這套設(shè)備后,公交車在語音報站的同時,通過液晶電視還可以顯示到站站名的字幕,這樣如果沒聽清報站的話,通過顯示屏,乘客也可以一目了然。當(dāng)出現(xiàn)緊急情況時,調(diào)度中心將會給公交車發(fā)出相應(yīng)的信息,以短信的形式傳送到顯示屏上,同時車載臺會發(fā)出相應(yīng)的提示音;駕駛員也可以通過相應(yīng)的工具進(jìn)行回復(fù)。目前在美國部分城市GPS衛(wèi)星定位系統(tǒng)已經(jīng)投入使用,國內(nèi)也有此類產(chǎn)品的研制開發(fā),其功能強(qiáng)大,系統(tǒng)穩(wěn)定,但其投資昂貴,尤其是一些中小城市無法承受。1.2.2手動式公交車自動報站器手動式公交車自動報站器通過主機(jī)上的漢字顯示器,顯示當(dāng)前車站名稱,即將達(dá)到站名指示功能;通過主機(jī)屏幕的顯示,可直觀的觀察到進(jìn)站和下一站信息;通過按鍵,可播放進(jìn)站,出站,服務(wù)用語等語音。但是該種報站器需要由司機(jī)在車子進(jìn)出站的時候人工操作,由于這兩個時間點(diǎn)往往是路面情況最復(fù)雜的時刻,因此也給行駛中的車輛帶來了安全隱患,不利于公交車的安全行駛。1.2.3基于單片機(jī)的公交車自動報站系統(tǒng)基于單片機(jī)的公交車自動報站系統(tǒng),而這種系統(tǒng)又大致分為兩種技術(shù)支持。其中一種的技術(shù)關(guān)鍵是對車輪轉(zhuǎn)軸的轉(zhuǎn)角的脈沖進(jìn)行計數(shù),將計數(shù)值與預(yù)置值對比,即可確定報站時刻,達(dá)到準(zhǔn)確自動的目的。該方式應(yīng)用單片機(jī)的高速計數(shù)器端口進(jìn)行脈沖計數(shù),以距離來控制報站時刻,首次實現(xiàn)了模糊控制,改變現(xiàn)有設(shè)備的不足。做到簡單實用自動化程度高。傳感器在公交車上的應(yīng)用極大的提高了設(shè)備功能。另外一種基于單片機(jī)的公交車自動報站系統(tǒng)就是利用編碼解碼芯片PT2262/PT2272進(jìn)行解碼編碼,利用無線數(shù)傳模塊F05V/J05V和天線進(jìn)行發(fā)射和接收來實現(xiàn)的。在每個站牌上設(shè)置一個編碼發(fā)送裝置PT2262和無線數(shù)傳模塊F05V,通過公交車上設(shè)置的接收裝置J05V和譯碼裝置PT2272進(jìn)行譯碼并傳輸?shù)絾纹瑱C(jī)。發(fā)送裝置按照延時3到5秒不斷發(fā)送信號,公交車在距離站牌10到20米的時候就能接收到信號,然后根據(jù)程序來實現(xiàn)語音報站,LCD液晶顯示。這種報站系統(tǒng)軟件編寫比較簡單,也容易修改,并且芯片價格低廉,大批生產(chǎn)能夠獲得比GPS系統(tǒng)達(dá)到更高的性價比,是公交車自動報站系統(tǒng)的較佳選擇。綜合上述各種公交車自動報站系統(tǒng),本設(shè)計選擇了基于單片機(jī)的公交車自動報站系統(tǒng),并利用無線數(shù)傳模塊來實現(xiàn)公交車的自動報站。第二章系統(tǒng)方案的確定2.1系統(tǒng)主要要實現(xiàn)的功能該系統(tǒng)應(yīng)實現(xiàn)無線信號收發(fā)確認(rèn),到站時的公交車站名的液晶顯示以及自動語音提示。系統(tǒng)的硬件設(shè)計中應(yīng)充分考慮了性價比,用最少的器件設(shè)計出滿足要求的硬件電路。本次設(shè)計主要是完成實現(xiàn)基本的仿真,該系統(tǒng)仿真電路的總體結(jié)構(gòu)以51單片機(jī)為核心,由模擬接收電路、LCD(LiquidCrystalDisplay,液晶顯示屏)顯示電路等組成。2.2無線傳輸模塊的選擇PT2262/PT2272集成芯片。方案采用低功耗、低價位、通用編解碼電路,發(fā)送用高β的達(dá)林頓管,所以在靈敏度和抗干擾性方面有保障。無線數(shù)傳模塊F05V/J05V(典型遙控應(yīng)用電路):F05V采用的SMT工藝,優(yōu)點(diǎn)是低電壓微功率、體積小、低功耗發(fā)射模塊,適合單片機(jī)數(shù)據(jù)傳輸以及短距離無線遙控報警。J05V作為接收模塊優(yōu)點(diǎn)是低電壓、體積小,兩者連接在PT2262/2272配合使用2.3控制模塊的選擇所學(xué)專業(yè)課中學(xué)習(xí)過51單片機(jī),并且單片機(jī)體積小,重量輕,具有很強(qiáng)的靈活性而且價格便宜,所以控制模塊選用單片機(jī)。2.4液晶顯示模塊及語音模塊的選擇隨著科學(xué)技術(shù)的日益發(fā)展和進(jìn)步,微型計算機(jī)已經(jīng)在很多領(lǐng)域得到廣泛應(yīng)用。LCD與微機(jī)技術(shù)結(jié)合,比傳統(tǒng)的LED顯示效果更佳。所以結(jié)合公交車報站的使用特點(diǎn)和運(yùn)營環(huán)境,設(shè)計一種由單片機(jī)控制、LCD顯示的公交車報站顯示系統(tǒng)。公交車報站顯示系統(tǒng)的設(shè)計應(yīng)用單片機(jī),LCD顯示,使到站信息及提示信息以顯示的方式告知市民,為市民提供人形化、完美的服務(wù)。所以本次設(shè)計中重點(diǎn)使用了LCD1602液晶顯示模塊鑒于使用Proteus仿真,在仿真中使用蜂鳴器代替語音模塊,使用蜂鳴器的連續(xù)間斷發(fā)聲作為提示。為了以后實際需要,在文章中介紹了常用的語音模塊ISD4004。2.5系統(tǒng)整體硬件電路的確定根據(jù)系統(tǒng)要實現(xiàn)的功能,以及各個模塊的選擇,確定了整個報站系統(tǒng)主要組成部分分為兩個模塊。發(fā)射模塊即電子站牌部分主要由AT89C51單片機(jī),PT2262編碼裝置,無線傳輸模塊F05V和天線組成。接收控制模塊即車載部分是主要部分,選擇AT89C51為核心的控制器,PT2272譯碼裝置和無線數(shù)傳模塊J05V以及天線作為接收信號裝置,語音錄放芯片ISD4004組成的語音播放電路以及LCD1602液晶顯示屏構(gòu)成液晶顯示模塊。系統(tǒng)各部分框圖如下圖所示。通過天線(Antenna)發(fā)射信號,間隔5秒。通過天線(Antenna)發(fā)射信號,間隔5秒。無線數(shù)傳模塊F05VPT2662信號發(fā)射AT89C51單片機(jī)產(chǎn)生周期信號 圖2-1公交車站牌發(fā)射部分方框圖接收天線接收無線數(shù)傳模塊J05VLCD1602液晶顯示接收天線接收無線數(shù)傳模塊J05VLCD1602液晶顯示PT2272信號接收AT89C51單片機(jī)控制ISD4004語音模塊ISD4004語音模塊晶振,外部中斷復(fù)位電路晶振,外部中斷復(fù)位電路按鍵控制按鍵控制圖2-2公交車車載接收部分方框圖公交車自動報站系統(tǒng)就是利用編碼解碼芯片PT2262/PT2272進(jìn)行解碼編碼,利用無線數(shù)傳模塊F05V/J05V和天線進(jìn)行發(fā)射和接收來實現(xiàn)的。在每個站牌上設(shè)置一個編碼發(fā)送裝置PT2262和無線數(shù)傳模塊F05V,通過公交車上設(shè)置的接收裝置J05V和譯碼裝置PT2272進(jìn)行譯碼并傳輸?shù)絾纹瑱C(jī)。發(fā)送裝置按照延時3到5秒不斷發(fā)送信號,公交車在距離站牌10到20米的時候就能接收到信號,然后根據(jù)程序來實現(xiàn)語音報站,LCD液晶顯示。發(fā)射部分通過編碼芯片PT2262,無線數(shù)傳模塊F05V和天線不停發(fā)射周期信號,發(fā)射的一個周期的內(nèi)容包括本站點(diǎn)的地址、站名等信息的編碼信息。當(dāng)公交車行駛進(jìn)人該信號范圍內(nèi),車載部分的通過天線,經(jīng)無線數(shù)傳模塊J05V和PT2272譯碼就會接收到這個編碼信息,單片機(jī)將編碼信息處理后,向顯示模塊和語音模塊發(fā)送對應(yīng)的信息,就能實現(xiàn)液晶顯示屏顯示對應(yīng)的站名和語音報站,完成自動報站。第三章系統(tǒng)功能模塊詳細(xì)介紹3.1單片機(jī)AT89C51隨著計算機(jī)技術(shù)的發(fā)展,單片機(jī)技術(shù)已成為計算機(jī)技術(shù)中的一個獨(dú)特的分支,單片機(jī)的應(yīng)用領(lǐng)域也越來越廣泛,特別是在工業(yè)控制和儀器儀表智能化中扮演著極其重要的角色。縱觀單片機(jī)發(fā)展的30多年來,單片機(jī)正往多功能、高性能、高速度、低電壓、低價格、低噪聲、低功耗、小體積、大容量、專用化和外圍電路內(nèi)裝化的方向發(fā)展。單片機(jī)的出現(xiàn)使的過去經(jīng)常采用模擬電路、數(shù)字電路實現(xiàn)的電路系統(tǒng),轉(zhuǎn)變成現(xiàn)在用單片機(jī)予以實現(xiàn),并且傳統(tǒng)的電路設(shè)計方法演變成硬件和軟件相結(jié)合的設(shè)計方法,并且許多電路設(shè)計問題將轉(zhuǎn)化為純粹的程序設(shè)計問題。誠然,單片機(jī)的應(yīng)用意義遠(yuǎn)不限于它的應(yīng)用范疇或由此帶來的經(jīng)濟(jì)效益,更重要的是它已從根本上改變了傳統(tǒng)的控制方法和設(shè)計思想,是控制技術(shù)的一次革命,是一座重要的里程碑微控制器通常將主要的組成部分集成在一個芯片上,就是把中央處理器(CPU)、隨機(jī)存儲器(RAM)、只讀存儲器(ROM)、中斷系統(tǒng)、定時器/計數(shù)器以及I/O接口電路等主要部件集成在一個芯片上。AT89C51俗稱單片機(jī),可擦除只讀存儲器可以反復(fù)擦除1000次。主要特性:1、一個CPU,一個片內(nèi)振蕩器以及時鐘電路,2、4K(RAM)程序存儲器,3、128B(ROM)數(shù)據(jù)存儲器4、21個特殊功能寄存器5、數(shù)據(jù)能夠保存的時間:10年6、與MCS-51指令相兼容7、32個可編程I/O線(4個8位并行I/O端口)8、16位定時器/計數(shù)器有兩個9、5個中斷源,兩個優(yōu)先級嵌套結(jié)構(gòu)10、一個可編程全雙工串行接口11、低功耗的閑置和掉電模式12、片內(nèi)振蕩器和時鐘電路盡管目前單片機(jī)種類多,各類單片機(jī)的指令系統(tǒng)各不相同,功能各有所長,但市場占有率最高的是51系列單片機(jī)。單片機(jī)體積小,重量輕,具有很強(qiáng)的靈活性而且價格便宜,得到越來越廣泛的運(yùn)用。例如工業(yè)控制領(lǐng)域、家電產(chǎn)品,智能化儀器儀表,計算機(jī)外部設(shè)備,特別是機(jī)電一體化產(chǎn)品中都有重要的用途,其中的51單片機(jī)系列發(fā)展規(guī)模最大。51單片的運(yùn)用廣泛,并且具有優(yōu)異的性能價格比,集成度高,體積小,有很高的可靠性,并且控制功能強(qiáng)。所以是核心控制期間的最佳選擇。圖3-1AT89C51單片機(jī)引腳圖3.1.1管腳說明下面對設(shè)計中用到的一些管腳進(jìn)行簡要的介紹:VCC:供電電壓,一般接+5V電源正端。GND:接地,一般接+5V電源地端。P0口(39~32腳):輸入輸出線P0.0~P0.7統(tǒng)稱為P0口??梢杂米鳒?zhǔn)雙向輸入/輸出口使用,但由于內(nèi)部無上拉電阻,一般外加上拉電阻:在進(jìn)行片外存儲器擴(kuò)展或I/O擴(kuò)展時,P0口作為分時服用的低8位地址總線和雙向數(shù)據(jù)總線。P1口(1~8腳):P1口作為準(zhǔn)雙向I/O口使用。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口(21~28腳):P2口也可作為準(zhǔn)雙向I/O口,當(dāng)進(jìn)行片外村春氣擴(kuò)展或I/O口擴(kuò)展時,P2口用作高8位地址總線。P3口(10~17腳):P3口作為準(zhǔn)雙向I/O口使用外,每一個端口還具有第二功能。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0RXD(串行口輸入端)P3.1TXD(串行口輸出端)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(定時器/計時器0計數(shù)脈沖輸入)P3.5T1(定時器/計時器1計數(shù)脈沖輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通信號輸出)P3.7/RD(外部數(shù)據(jù)存儲器讀選通信號輸出)RST(9腳):復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持10ms高電平時間才能保證有效的復(fù)位。ALE/PROG(30腳):地址鎖存允許/編程線。采用了地址/數(shù)據(jù)總線復(fù)用技術(shù)。/PSEN(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。/EA/VPP(31腳):片外程序存儲器選用端,低電平有效。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:外接晶體振蕩器一端。XTAL2:外接晶體振蕩器另一端。3.1.2外部晶振的選擇AT89C51的內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。通過XTAL1,ATAL2外部接上一片作為反饋元件的晶體,與C1和C2構(gòu)成了并聯(lián)諧振電路,使其構(gòu)成自激振蕩器。電容的值通常30PF。具體的接線電路如圖3—2外部晶振電路:AT89C51單片機(jī)外接的是12MHZ的晶振,則機(jī)器周期為1us。圖3-2外部晶振電路3.1.3復(fù)位電路復(fù)位的作用是使程序自動從0000H開始執(zhí)行,因此我們只要在AT89C51單片機(jī)的RST端加上一個高電平信號,并持續(xù)10ms以上即可,RST端接有一個上電復(fù)位電路,它是由一個小的電容和一個接地的電阻組成的。按鍵復(fù)位電路另外采用一個按鈕來給RST端加上高電平信號。本設(shè)計采用放電型的進(jìn)行人工復(fù)位的電路,如圖按鍵復(fù)位電路,上電時C3通過R2充電,維持寬度大于10ms的正脈沖,就可以完成復(fù)位操作。當(dāng)C3結(jié)束充電后,RST端出現(xiàn)低電平,這是CPU將正常的工作。在本次設(shè)計中如果需要按鍵進(jìn)行復(fù)位,就按下按鈕BUTTON3,C3通過BUTTON3和R2放電,RST端電位將會上升到高電平,從而實現(xiàn)人工復(fù)位,BUTTON3松開后C3重新充電,當(dāng)結(jié)束充電后,CPU將會重新工作。下圖中,R2是限流電阻,阻值不可以過大,否則不能起到復(fù)位作用。圖3-3按鍵復(fù)位電路3.1.4按鍵電路設(shè)計對于此設(shè)計來說要準(zhǔn)確的顯示設(shè)計所要對應(yīng)的信息,每按下一次按鍵要顯示所要顯示的信息。這按鍵是主要用來模擬無線信號的收發(fā)而設(shè)計的,即PT2262/PT2272的無線信號收發(fā)。功能的實現(xiàn)主要是通過程序來實現(xiàn),BUTTON1控制順向報站,當(dāng)報站系統(tǒng)啟動后,按下BUTTON1開始按預(yù)先設(shè)置好的站名進(jìn)行順向報站,本設(shè)計設(shè)置的是從站名“AAAAAAA”到“EEEEEEE”依次報站,每次按鍵按下時實現(xiàn)LED提示燈亮,蜂鳴器連續(xù)鳴叫7次。BUTTON2按鍵是實現(xiàn)公交車逆向返回時的報站,即從站名“EEEEEEE”到“AAAAAAA”的依次報站,也滿足每次按鍵按下時實現(xiàn)LED提示燈亮,蜂鳴器連續(xù)鳴叫7次。圖3-4按鍵設(shè)置如果使用過程中出現(xiàn)錯誤時,可以使用按鍵復(fù)位,重現(xiàn)選擇正向或者逆向報站。同時,為了防止一次按鍵產(chǎn)生站名的漏報,在軟件設(shè)計中使用了延時函數(shù),防止站名的漏報。3.2無線收發(fā)模塊PT2262/PT2272PT2262/PT2272是臺灣普城公司生產(chǎn)的一種CMOS工藝制造通用編解碼電路,PT2262/PT2272它具有低功耗低價位,外部元器件少,RC振蕩電阻,工作電壓范圍寬為2.6~15V的特點(diǎn),最多可有12位(A0—A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),地址碼最多可達(dá)53144l(212),PT2262可有6位(D0~D5)的數(shù)據(jù)端的管腳,設(shè)計可以設(shè)定地址碼以及數(shù)據(jù)碼在第17腳進(jìn)行串行輸出,以便于應(yīng)用于無線的遙控發(fā)射的電路。3.2.1PT2262/PT2272引腳圖在PT2262/2272這種器件的使用,根據(jù)資料一般將會使用8位的地址碼和4位的數(shù)據(jù)碼。PT2262編碼電路引腳的選擇是:第l~8腳作為地址的設(shè)定腳,他可以選擇三種狀態(tài):懸空、接正電源、接地。3的8次方為6561,即地址編碼的不重復(fù)度是6561組。PT2262/2272的配對使用是要求發(fā)射端PT2262和接收端PT2272的地址編碼需要完全相同,用戶如果想改變地址編碼,只要將PT2262和PT2272設(shè)置相同即可,兩者的地址的編碼相同時,PT2272輸出端將會輸出大約4V左右的互鎖的高電平的控制信號。圖3-5PT2262/PT2272引腳圖PT2262/PT2272引腳基本類似,作為無線收發(fā)譯碼解碼器,兩者配對使用引腳連接必須一致。下面接收PT2262/PT2272的引腳說明圖表3-1PT2262引腳說明 表3-2PT2272引腳說明圖 表3-3PT2262/PT2272工作參數(shù) 3.2.2PT2262/2272接線圖以及工作原理發(fā)射電路主要由AT89C51、編碼模塊PT2262、無線數(shù)傳模塊F05V和一片74LS04(六輸入非門,實際上就是六個非門集成在一塊74LS04里面了)構(gòu)成,發(fā)射部分電路如圖3-6所示。接收電路主要由AT89C51、譯碼模塊PT2272、無線數(shù)傳模塊J05V和一片74LS04構(gòu)成,接收部分模擬電路如圖3-7所示圖3-6PT2262發(fā)射部分模擬接線圖圖3-7PT2272接收部分模擬接線圖發(fā)射的部分主要用于形成一個周期的編碼信號。編碼信號的內(nèi)容包括三個部分,分別是起始標(biāo)志、數(shù)據(jù)編碼和結(jié)束標(biāo)志,而無線收發(fā)模塊是四路的,即因為每次收發(fā)半個字節(jié)的數(shù)據(jù),所以一幀數(shù)據(jù)至少是16位的,其編碼數(shù)據(jù)格式如表3-4所示。表3-416位編碼數(shù)據(jù)格式0123456789101112131415D0D1D2D3D0D1D2D3D0D1D2D3D0D1D2D34位起始標(biāo)志8位編碼數(shù)據(jù)4位起始標(biāo)志由上圖可以得知每一幀數(shù)據(jù)需要四次才能發(fā)送完畢。在現(xiàn)實生活應(yīng)用中不需要編碼信號不間斷的發(fā)送,三秒鐘或者五秒鐘發(fā)送一次即可,因此程序里還需要有一段三秒或五秒的延時。在公交車上設(shè)置的接收裝置J05V和譯碼裝置PT2272進(jìn)行譯碼并傳輸?shù)絾纹瑱C(jī),通過單片機(jī)判斷車輛到達(dá)的站點(diǎn)信息,根據(jù)這個站點(diǎn)的信息進(jìn)行語音播報以及液晶顯示提示。射頻觸發(fā)信號是以中斷的的方式送入單片機(jī)的,硬件電路將這個控制信號與單片機(jī)的INT0口相連接,所以本段程序是一個外部中斷0的子程序。當(dāng)射頻信號到來時PT2272D的VT引腳端由低變高,經(jīng)非門送到單片機(jī)INT0,使單片機(jī)跳到外部中斷O子程序。3.2.3無線數(shù)傳模塊F05V/J05V無線數(shù)傳模塊F05V/J05V(典型遙控應(yīng)用電路):F05V采用的SMT工藝,優(yōu)點(diǎn)是低電壓微功率、體積小、低功耗發(fā)射模塊,適合單片機(jī)數(shù)據(jù)傳輸以及短距離無線遙控報警。J05V作為接收模塊優(yōu)點(diǎn)是低電壓、體積小,兩者連接在PT2262/2272配合使用F05V引腳定義:1=正電源3V;2=接地;3=數(shù)據(jù)信號輸入;Y=外接天線。J05V引腳定義:1=正電源3V;2=接地;3=數(shù)據(jù)信號輸出;Y=外接天線。圖3-8f05V/J05V引腳接線圖3.3顯示模塊LCD1602我們知道的用來顯示的器件很多。比如數(shù)碼管、LCD、點(diǎn)陣式LED。數(shù)碼管只能顯示數(shù)字,LCD可以顯示漢字、符號、數(shù)字和圖形,為了報站器的人性化LCD1602能夠同時顯示16列2行的字符,可以顯示數(shù)字、字母、以及各種符號。這種液晶模塊由若干個5X7或者5X11等點(diǎn)陣字符位組成,這種點(diǎn)陣字符顯示字符并且自帶間隔,也就是有自然的間距和行間距,也是因為這個特性不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)?,F(xiàn)在基于HD44780液晶芯片的字符液晶在市場上是最常見、數(shù)量最大的,控制原理是完全相同的,因此控制程序可以基于HD44780液晶芯片,這樣可以很方便地應(yīng)用于市面上大部分的字符型的液晶。3.3.1排阻Respack-8Respack-8接在51單片機(jī)的P0口,因為P0口內(nèi)部沒有上拉電阻,不能輸出高電平,所以要接上拉電阻,1端為公共端接VCC。3.3.2LCD1602的引腳定義字符型LCD一般是16條引腳線14條引腳線,多出來的兩條線是背光電源線VCC(15腳)和地線GND(16腳),與14腳LCD的控制原理基本完全一樣,定義如下表所示:表3-5LCD1602引腳定義引腳號引腳名電平輸入/輸出作用1VSS電源地2VCC電源(+5V)3VEE進(jìn)行對比的調(diào)整電壓4RS0/1輸入0進(jìn)行輸入I指令1進(jìn)行輸入O數(shù)據(jù)5R/W0/1輸入0=向LCD寫入指令以及數(shù)據(jù)1=從LCD中來讀取信息6E1,1—0輸入使能信號,1是進(jìn)行讀取信息1—0下降沿執(zhí)行指令7DB00/1I/O數(shù)據(jù)總線line0(最低位)8DB10/1I/O數(shù)據(jù)總線line09DB20/1I/O數(shù)據(jù)總線line010DB30/1I/O數(shù)據(jù)總線line011DB40/1I/O數(shù)據(jù)總線line012DB50/1I/O數(shù)據(jù)總線line013DB60/1I/O數(shù)據(jù)總線line014DB70/1I/O數(shù)據(jù)總線line015A+VCCLCD背光燈電源正極16K接地LCD背光燈電源負(fù)極圖3-9LCD1602引腳接線圖在LCD模塊上固化了字模存儲器,這就是CGROM和CGRAM,HD44780內(nèi)置了192個常用字符的字模,存于字符產(chǎn)生器CGROM中,另外還有8個允許用戶自定義的字符產(chǎn)生RAM,成為CGRAM。下圖3-10說明了CGROM和CGRAM與字符的對應(yīng)關(guān)系。讀的時候,先讀左邊那列,再讀上面那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制)圖3-10CGROM和CGRAM中字符代碼與字符圖形對應(yīng)關(guān)系3.3.3液晶LCD1602常用的11條指令表3-6液晶LCD1602常用指令指令功能RSR/WDB7DB6DB5DB4DB3DB2DB1DB0執(zhí)行時間清屏00000000011.64ms功能詳解:清除液晶顯示器的內(nèi)容。光標(biāo)歸位000000001X1.64ms功能詳解:光標(biāo)撤回到顯示器的左上方,地址計數(shù)器(AC)值為0,DDRAM值不變進(jìn)入模式設(shè)置00000001I/DS40us功能詳解:I/D當(dāng)為0時寫入數(shù)據(jù)后光標(biāo)左移,當(dāng)為1時寫入數(shù)據(jù)后光標(biāo)右移S為0時寫入新數(shù)據(jù)后顯示屏不移動,為1時寫入新數(shù)據(jù)后顯示屏整體右移1字符顯示開關(guān)控制0000001DCB40us功能詳解:D為0時顯示功能關(guān),為1時顯示功能開C為0時無光標(biāo)。1時有光標(biāo)B為0時光標(biāo)閃爍,1時光標(biāo)不閃爍設(shè)定顯示屏或光標(biāo)移動方向000001S/CR/LXX40us功能詳解:S/CR/L設(shè)定的情況00光標(biāo)左移1格,且AC值減101光標(biāo)右移1格,且AC值加110顯示器上字符全部左移一格,但光標(biāo)不移動11顯示器上字符全部右移一格,但光標(biāo)不移動功能設(shè)定00001DLNFXX40us功能詳解:DL為0時數(shù)據(jù)總線為4位,1時數(shù)據(jù)總線為8位N為0時顯示1行,1時顯示兩行F為0時5*7點(diǎn)陣/每個字符,1時5*10點(diǎn)陣/每個字符設(shè)定CGRAM地址指令0001CGRAM的地址(6位)40us功能詳解:設(shè)定下個要存入的數(shù)據(jù)的CGRAM的地址設(shè)定DDRAM地址指令001CGRAM的地址(7位)40us功能詳解:設(shè)定下個要存入的數(shù)據(jù)的DDRAM的地址讀取忙碌信號或AC地址01BFAC內(nèi)容(7位)40us功能詳解:BF為1表示液晶顯示器忙,為0時,液晶顯示器可以接收單片機(jī)送來的數(shù)據(jù)或指令數(shù)據(jù)寫入到DDRAMH或CGRAM10要寫入的數(shù)據(jù)D7~D040us功能詳解:(1)將字符碼寫入DDRAM,液晶顯示屏并顯示對應(yīng)的字符(2)使用者設(shè)計的圖形存入CGRAM從CARAM或DDRAM讀取數(shù)據(jù)11要讀出的數(shù)據(jù)D7~D040us功能詳解:讀取DDRAM或CGRAM的內(nèi)容3.4語音模塊ISD4004實際公交車報站都是語音報站,因為本設(shè)計用Proteus仿真,所以用蜂鳴器替代語音模塊進(jìn)行仿真試驗,下面簡要介紹下語音模塊的基本知識。ISD4004語音模塊工作特點(diǎn):工作時的電壓在3V,能夠完成的錄放的時間在8到16分鐘左右,同型號的ISD1730等,錄音時間一般在4分鐘以內(nèi)。并且它的音質(zhì)也很不錯,目前在移動電話以及其他電子產(chǎn)品中應(yīng)用比較廣泛。ISD4004是經(jīng)過CMOS技術(shù)來制作的,內(nèi)部有各種模塊:音頻放大器、平滑濾波器、振蕩器、自動靜噪及高密度多電平閃爍存貯、防混淆濾波器。芯片經(jīng)過微控制器設(shè)計,其指令采用的是串行通信,如(SPI)。芯片采用了多電平接模擬量的存儲技術(shù),采樣值可以在片內(nèi)的閃爍存貯器進(jìn)行直接存儲,因此可以非常真實得還原聲音。而一般固錄音電路是有很多缺點(diǎn)的,會有很多噪聲和"金屬聲"。采樣的頻率可以選為8.0、6.4、5.3、4.0kHz,這幾個頻率選擇的越低,錄放的時間也就會越長,確實是造成音質(zhì)的下降,閃爍存貯器中的信息,可保存的時間是100年(典型值),并且可以反復(fù)錄音10萬次。ISD4004芯片優(yōu)點(diǎn)是無須A/D的轉(zhuǎn)換和A/D的壓縮,能過進(jìn)行直接的儲存,并且沒有A/D轉(zhuǎn)換的誤差,還具有所需的外圍的電路是比較簡單的、使用時不用擴(kuò)充存儲器、、存儲時間也很長、也可以進(jìn)行多次重復(fù)錄放。圖3-10ISD4004的引腳排列圖在本次設(shè)計后續(xù)設(shè)計中,也可以利用AT89C51控制該芯片,實現(xiàn)語音的存儲以及語音報站。1、電源端(VCCA,VCCD):為了使噪聲最小,芯片內(nèi)部的數(shù)字和模擬電路要使用不同的電源的總線,,并且分別引出到外封裝的不同的管腳上。數(shù)字和模擬電源端最好走不同的線,比如,選擇在離供電端相近的地方相連,而去耦電容就應(yīng)盡量選擇離器件近。2、地線(VSSD,VSSA):芯片的內(nèi)部的模擬和數(shù)字電路也使用不同的地線。3、同相的模擬輸入(ANAIN+):即錄音信號同相輸入端。這時輸入放大器采用單端或差分驅(qū)動。當(dāng)采用單端時,在耦合電容中輸入信號,最大的幅度是32mV峰峰值,芯片頻帶的低端截止頻率決定耦合電容和本端的3KΩ電阻的輸入阻抗。作為差分的驅(qū)動時,信號最大幅度是16mV峰峰值,這是和ISD33000系列一樣的。4、反相的模擬輸入(ANAIN-):作為差分驅(qū)動是錄音信號的反相的輸入端。信號是通過耦合電容來輸入,最大幅度是16mV峰峰值5、音頻輸出(AUDOUT):作用是提供音頻的輸出,可以驅(qū)動5KΩ的負(fù)載。6、片選(SS):此端為低電平,在向ISD4004芯片發(fā)送指令時,并且該兩條指令間應(yīng)該為高電平。7、串行輸入(MOSI):此端是串行的輸入端。主控制器應(yīng)該在串行時鐘的上升沿前半周期把數(shù)據(jù)放到這個端口,來讓ISD輸入。8、串行輸出(MISO):作為ISD的串行的輸出端。當(dāng)ISD沒有選中時本端會呈高阻態(tài)。9、串行時鐘(SCLK):作為ISD的時鐘的輸入端。從主控制器中產(chǎn)生,可以用于同步的MOSI和MISO的數(shù)據(jù)傳輸。10、中斷(/INT):本端作為漏極的開路輸出。ISD在任何操作過程(比如快進(jìn))中檢測到了EOM或OVF時,本端會變低電平并保持。并且中斷的狀態(tài)在下一個SPI周期開始時清除。中斷狀態(tài)也可以用RINT的指令讀取。OVF標(biāo)志指示ISD的錄放操作是否已經(jīng)到存儲器未尾狀態(tài)。EOM標(biāo)志只在放音過程中檢測到內(nèi)部的EOM標(biāo)志時,狀態(tài)才會置1。11、行地址時鐘(RAC):漏極的開路輸出。每經(jīng)過一個RAC周期,表示ISD存儲器操作進(jìn)行了一行。該端口并且可以用于存儲的管理技術(shù)。12、外部時鐘(XCLK):本端內(nèi)部帶有下拉元件。工業(yè)級的芯片在整個溫度和電壓范圍內(nèi),頻率變化范圍在-6/+4%內(nèi),此時建議使用穩(wěn)壓電源。如果要求更高精度,可從本端來輸入外部時鐘(如前邊所描述)。并且由于內(nèi)部的防混淆及平滑濾波器已經(jīng)設(shè)定好,所以上述推薦時鐘頻率不應(yīng)該再改變。輸入時鐘占空比是無關(guān)緊要的,因為內(nèi)部首先進(jìn)行了分頻。并且在不外接地時鐘時,此端是必須接地的。13、自動靜噪(AMCAP):一般本端對地會接1mF的電容,來構(gòu)成內(nèi)部信號的電平峰值檢測電路一部分。并且與內(nèi)部設(shè)定閾值和峰值電平來作比較,從而決定自動靜噪的功能的翻轉(zhuǎn)點(diǎn)。大信號時,自動靜噪的電路不衰減,靜音時衰減6dB。1mF的電容也影響自動靜噪的電路對信號幅度的響應(yīng)速度。本端接VCCA則應(yīng)該禁止自動靜噪。3.5蜂鳴器和LED指示燈蜂鳴器鑒于用Proteus仿真,語音模塊用蜂鳴器代替如圖3-7,采用三極管NPN,當(dāng)P11為高電平時電路導(dǎo)通,通過程序使P11進(jìn)行短時間內(nèi)高低電平轉(zhuǎn)換,以達(dá)到斷續(xù)蜂鳴提示的效果。圖3-11蜂鳴器接線圖到站LED提示燈鑒于用Proteus仿真,語音模塊用蜂鳴器代替如圖3-7,采用三極管PNP,當(dāng)P1.0為低電平時電路導(dǎo)通,到站提示燈亮。圖3-12LED提示燈接線圖第四章系統(tǒng)程序設(shè)計4.1系統(tǒng)仿真主程序流程圖開始界面開始界面蜂鳴器提示,LCD顯示第一行字符蜂鳴器提示,LCD顯示第一行字符“WelcometoYanTai”運(yùn)行方式運(yùn)行方式P34=0?P35=0?NNP34=0?P35=0?YY順序報站,蜂鳴器提示,LED下車指示燈亮逆序報站,蜂鳴器提示,LED下車指示燈亮順序報站,蜂鳴器提示,LED下車指示燈亮逆序報站,蜂鳴器提示,LED下車指示燈亮液晶顯示當(dāng)前到站站名液晶顯示當(dāng)前到站站名液晶顯示當(dāng)前到站站名液晶顯示當(dāng)前到站站名圖4-1系統(tǒng)仿真主程序流程圖系統(tǒng)仿真,初始化運(yùn)行程序時,LCD第一行顯示歡迎字符,蜂鳴器蜂鳴,選擇BUTTON1或者BUTTON2(通過控制P35,P34)選擇順序或者逆序報站,按下按鍵之后,蜂鳴器提示,LED指示燈亮,延遲一段時間后顯示站名。隨后可以每到一個站依次顯示公交車站名,如果出現(xiàn)錯誤或者重新選擇另一順序報站,可以使用按鍵復(fù)位,重新選擇報站方式。4.2程序子函數(shù)模塊4.2.1延時函數(shù)/*******延時*********/voiddelay(uintn){uinti;for(;n>0;n--)for(i=200;i>0;i--);}4.2.2檢查忙函數(shù)/*******判斷是否忙*******/voidcheck(){rs=0; rw=1; //讀e=1; port=0x00; e=1; while(busy); e=0;}4.2.3寫指令函數(shù)/*******寫指令******/voidsend(ucharcommand){check(); rs=0; //指令 rw=0; //寫e=0; port=command; e=1; _nop_();_nop_(); e=0; //寫入指令}4.2.4寫數(shù)據(jù)函數(shù)/********寫數(shù)據(jù)********/voidwrite(uchardat){check(); rs=1; //數(shù)據(jù) rw=0; port=dat; e=1;_nop_();_nop_(); e=0;}4.2.5光標(biāo)位置函數(shù)/********光標(biāo)位置*********/voidpos(uintp){send(p|0x80);//第一行第一個0x80;}4.2.6初始化函數(shù)/**********初始化*********/voidinit(){send(0x38);//8位數(shù)據(jù),雙列,5*7字形delay(1);send(0x0c);//開0x08關(guān)delay(1);send(0x06);//地址增加一delay(1);send(0x01);//清屏delay(1);}4.2.7其他數(shù)組定義以及端口定義用數(shù)組定義站點(diǎn)信息字符串ucharcodedis1[]="AAAAAAA";//站點(diǎn)的內(nèi)容可更新也可以增加ucharcodedis2[]="BBBBBBB";//每個字符串假設(shè)了10個字符ucharcodedis3[]="CCCCCCC";ucharcodedis4[]="DDDDDDD";ucharcodedis5[]="EEEEEEE";ucharnum[]="WelcometoYanTai";液晶顯示第一行(剛好18個字符)端口定義#defineportP0//DB0~DB7數(shù)據(jù)口sbitP34=P3^4;//控制反向報站sbitP35=P3^5;//控制正向正向sbitled=P1^0;//到站指示燈sbitfmq=P1^1;//蜂鳴器sbite=P2^2;//使能sbitrw=P2^1;//讀寫sbitrs=P2^0;//數(shù)據(jù)/命令sbitbusy=P0^7;//檢測忙4.3主程序流程圖voidmain(){inti=0,j=0,k=0,s=0;ucharn;init();delay(10);pos(0x00);delay(1);//或者使用i=0,刪除后會發(fā)現(xiàn)不能顯示第一個數(shù)。for(n=0;n<18;n++){write(num[n]);delay(1);}while(1){if(P35==0){j++; if(j==1) {loop1:{s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) gotoloop1; } s=0; pos(0x40); delay(1);for(n=0;n<10;n++){write(dis1[n]); delay(5);} }if(j==2) {loop2:{s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) gotoloop2; } s=0; pos(0x40); delay(1); for(n=0;n<10;n++) {write(dis2[n]); delay(5); } } if(j==3) {loop3:{s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) gotoloop3; } s=0; pos(0x40); delay(1); for(n=0;n<10; n++) {write(dis3[n]); delay(5); }} if(j==4) {loop4:{s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) gotoloop4; } s=0; pos(0x40); delay(1); for(n=0;n<10; n++) { write(dis4[n]); delay(5); }} if(j==5) {loop5:{s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) gotoloop5; } s=0; pos(0x40); delay(1); for(n=0;n<10; n++) {write(dis5[n]); delay(5); }} } 第五章系統(tǒng)仿真實現(xiàn)5.1開發(fā)環(huán)境KeilC51介紹KeilC51是集編輯,編譯,仿真于一體,支持匯編,PLM語言和C語言的程序設(shè)計,,易學(xué)易用。在KeilC51集成開發(fā)環(huán)境下使用工程的方法來管理文件,所有的源文件、頭文件甚至說明性文檔都可以放在工程項目文件里統(tǒng)一管理。本次設(shè)計使用KeilC51的開發(fā)工具大致流程如下:(1)運(yùn)行KeilC51軟件,進(jìn)入KeilC51集成開發(fā)環(huán)境。(2)選擇工具欄的Project選項,彈出下拉菜單,選擇NewProject命令建立一個新的μVision2工程。這時會彈出所示的工程文件保存對話框,選擇工程目錄并輸入文件名后,單擊保存。(3)本次設(shè)計建立好一個空白工程,現(xiàn)在需要人工為工程添加程序文件,如果還沒有程序文件則必須建立它,可以選擇工具欄的File選項,在彈出的下拉菜單中選擇New目錄。這次設(shè)計我采用的是將.c的文件導(dǎo)入工程。(4)輸入程序,完畢后點(diǎn)擊“保存”命令保存源程序,KeilC51支持匯編和C語言,μVision2會根據(jù)文件后綴判斷文件的類型,進(jìn)行自動處理。(5)不斷糾正源文件錯誤,檢查無誤后生成HEX文件,并將HEX文件導(dǎo)入Proteus中的51單片機(jī)來運(yùn)行實現(xiàn)。5.2仿真環(huán)境PROTEUS介紹Proteus是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件(EDA工具軟件)。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的十分適用于仿真設(shè)計。該軟件具備許多優(yōu)點(diǎn),首先能夠仿真的器件非常多,里面有30多個元件庫,包括各種型號單片機(jī)、電阻、二極管、三極管、晶振、按鍵、電壓表電流表等各種實驗會用到的器件。再次,該軟件能實現(xiàn)單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、單片機(jī)的數(shù)字電路仿真、模擬電路仿真、鍵盤和LCD的仿真等等各種功能,并且能使用示波器等各種輔助工具研究器件。最后該軟件還能提供軟件調(diào)試的功能,觀察各器件在程序運(yùn)行時的狀態(tài),當(dāng)然,該軟件支持KeilC51生成的HEX文件。5.3仿真運(yùn)行結(jié)果截圖初始化運(yùn)行界面圖5-1初始化運(yùn)行界面用Proteus進(jìn)行仿真,模擬基本的公交車報站。初始化運(yùn)行程序時,LCD第一行顯示歡迎字符,蜂鳴器蜂鳴,選擇BUTTON1或者BUTTON2選擇順序或者逆序報站,按下按鍵之后,蜂鳴器提示,LED指示燈亮,延遲一段時間后顯示站名。隨后可以每到一個站依次顯示公交車站名,如果出現(xiàn)錯誤或者重新選擇另一順序報站,可以使用機(jī)械復(fù)位,重新選擇報站方式。5.4仿真結(jié)果本次課題用Proteus設(shè)計出硬件電路,用KeilC51編寫程序共同完成課題的仿真,基本完成了公交車的模擬報站。功能的實現(xiàn)主要是通過程序來實現(xiàn),BUTTON1控制順向報站,當(dāng)報站系統(tǒng)啟動后,按下BUTTON1開始按預(yù)先設(shè)置好的站名進(jìn)行順向報站,本設(shè)計設(shè)置的是從站名“AAAAAAA”到“EEEEEEE”依次報站,每次按鍵按下時實現(xiàn)LED提示燈亮,蜂鳴器連續(xù)鳴叫7次。BUTTON2按鍵是實現(xiàn)公交車逆向返回時的報站,即從站名“EEEEEEE”到“AAAAAAA”的依次報站,也滿足每次按鍵按下時實現(xiàn)LED提示燈亮,蜂鳴器連續(xù)鳴叫7次。如果使用過程中出現(xiàn)錯誤時,可以使用機(jī)械復(fù)位,重現(xiàn)選擇正向或者逆向報站。同時,為了防止一次按鍵產(chǎn)生站名的漏報,在軟件設(shè)計中使用了延時函數(shù),防止站名的漏報圖5-2系統(tǒng)正向報站圖5-3系統(tǒng)反向報站結(jié)束語經(jīng)過了近幾個月的學(xué)習(xí)和努力,我終于完成了基于單片機(jī)的公交車自動報站系統(tǒng)的設(shè)計,在這個過程中我的收獲是非常多的,并且需要改進(jìn)和學(xué)習(xí)的地方也非常多。我從以下兩個方面來對自己在這次畢業(yè)設(shè)計的過程中的感想來做一下總結(jié):(一)收獲通過這次設(shè)計我知道了在做一個系統(tǒng)之前很重要的是要做好需求分析,為此,我在網(wǎng)上查看了大量的相關(guān)資料,對目前市面上流行的幾種公交車報站器進(jìn)行了分析和比較,來為此次設(shè)計個方案確定來做了充足的準(zhǔn)備。通過研究各種公交車報站器來自己確定要完成的公交車報站器的工作原理和要具備的各種功能。在這次畢業(yè)設(shè)計過程中王躍樺老師進(jìn)行了專門的輔導(dǎo),老師具有豐富的理論及實踐經(jīng)驗,給我提供了許多非常具有參考價值的資料,開拓我的眼界,本來不懂的地方茅塞頓開。當(dāng)我在遇到困難時王躍樺老師耐心的幫我分析,幫助我克服各種困難,這樣我的畢業(yè)設(shè)計才可以更加順利進(jìn)行。說實話,在我做這次畢業(yè)設(shè)計之前,我以為這東西很好做,一做起來才感動力不從心,并且我對一些EDA的軟件基本沒有了解,甚至都不知道它是干什么,怎么用,對程序的理解也僅僅局限于書本上有限的知識。但是通過了這次設(shè)計,我深入了解了單片機(jī)的工作原理和機(jī)制,對它的各個模塊功能有了更深層認(rèn)識和更本質(zhì)的理解,并且在這個過程中,我更加深入認(rèn)識了Proteus和KeilC51這兩個軟件,對這軟件的基本操作能夠熟練的使用,了解了軟件的優(yōu)缺點(diǎn),并且熟練了對C語言的使用和LCD1602程序設(shè)計。在做課程設(shè)計的過程中我遇到了很多困難,很多方案確定不下來,編寫代碼時也總是出現(xiàn)這樣或者那樣的錯誤,并且有些功能自己也不知道該用什么方法來實現(xiàn),經(jīng)過向同學(xué)的請教和討論以及王躍樺老師的深刻指導(dǎo),我克服了這一些困難。最終基本完成了用Proteus來實現(xiàn)公交車的模擬報站,但是模塊還是很簡陋,也需要進(jìn)一步的優(yōu)化(二)不足之處該系統(tǒng)還存在著一些不足,主要體現(xiàn)在:仿真過程沒有辦法使用PT2262/2272和ISD4004語音模塊,用了按鍵和蜂鳴器來代替,只對這兩個模塊根據(jù)資料進(jìn)行了相應(yīng)的介紹。如果以后做實物的過程,那應(yīng)該完善這兩部分。并且在設(shè)計過程中也暴露了很多的缺點(diǎn),比如編程能力有待提高,需要通過不斷的編譯仿真調(diào)整才能最終得到想要的結(jié)果,英語技術(shù)文檔閱讀也很不熟練,需要反復(fù)斟酌才能下結(jié)論(三)總結(jié)本次設(shè)計用Proteus仿真基本達(dá)到了預(yù)先的要求。設(shè)計采用了Atmel公司的AT89C51單片機(jī)來設(shè)計的一個公交自動報站系統(tǒng),該系統(tǒng)主要包含PT2262/PT2272無線信號收發(fā)模塊,LCD1602液晶顯示模塊,ISD4004語音模塊,各個模塊通過AT89C51單片機(jī)來控制實現(xiàn)無線信號收發(fā)與識別、信息顯示及語音報站任務(wù)。本設(shè)計使用了C語言進(jìn)行編程,利用了KeilC51軟件進(jìn)行編譯生成HEX文件,使用了Proteus軟件進(jìn)行了基本的仿真實現(xiàn),能夠完成對輸入信號的判斷處理,自動液晶顯示站名以及聲音提示。這次設(shè)計能夠?qū)崿F(xiàn)設(shè)計中提出的功能方案。通過這次的設(shè)計,對于在KeilC51環(huán)境下的編程能力有了進(jìn)一步的提高,同時對單片機(jī)系統(tǒng)設(shè)計理念也有了進(jìn)一步認(rèn)識,理解了模塊化設(shè)計在整個系統(tǒng)設(shè)計中的作用。最后要感謝王老師在我的畢業(yè)設(shè)計過程中對我的悉心指導(dǎo)以及許多同學(xué)們對我的幫助,正是有了大家的幫助,我才能順利的完成了畢業(yè)設(shè)計,在這里,我由衷地對幫助過我的人表示感謝。

致謝光陰似箭,四年的大學(xué)生活即將過去了。在這七月的日子里,我即將告別我的大學(xué)時代,去繼續(xù)我的人生旅途,有遺憾也有收獲,感謝學(xué)院給我的許多美好的回憶。這篇文章應(yīng)該可是我四年本科生活的一點(diǎn)總結(jié)。因此,我要真心地感謝所有曾經(jīng)傳授給我們知識,給我們?nèi)松返拇髮W(xué)老師,感謝所有每個曾幫助過我的同學(xué),謝謝你們讓我擁有了一段美好的大學(xué)生活。關(guān)于這篇論文,首先我要感謝我的指導(dǎo)老師王躍樺老師的耐心指導(dǎo)與關(guān)懷,王老師專業(yè)知識豐富,引導(dǎo)我大膽得去思考去設(shè)計,當(dāng)我在遇到困難時王老師耐心的幫我分析,幫助我克服各種困難,非常感謝老師的耐心指導(dǎo)

參考文獻(xiàn)汪貴平,新編單片機(jī)原理及應(yīng)用,北京:機(jī)械工業(yè)出版社,2009.9趙德安,單片機(jī)原理與應(yīng)用,北京:機(jī)械工業(yè)出版社,2005周波,公交車自動報站系統(tǒng)的設(shè)計,四川理工學(xué)院學(xué)報(自然科學(xué)版),2008.6韋日華,張春,王志華.一種點(diǎn)對多點(diǎn)無線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計.電訊技術(shù),2003版向賽輝,基于單片機(jī)實現(xiàn)遙控編碼器PT2262的軟件解碼,國外電子元器件,2008年第5期安穎,遙控編碼芯片PT2262的單片機(jī)譯碼模塊,計算機(jī)與數(shù)字工程,2005,33(8)于志贛,液顯LCD1602模塊的應(yīng)用,機(jī)電技術(shù),2009,32(3)張建華,ISD4004語音芯片在語音報站器中的應(yīng)用,電子技術(shù)應(yīng)用,2003,29(8)張常年,ISD4004語音芯片的工作原理及其在智能控制系統(tǒng)中的應(yīng)用,2001,20(6)[10]竇振中.單片機(jī)外圍器件實用手冊[M].北京,北京航空航天大學(xué)出版社,2003[11]顏世強(qiáng),李樹廣.公交車自動報站系統(tǒng)的設(shè)計[J].工業(yè)控制計算機(jī),2004,17(6),60.[12]求是科技.單片機(jī)典型模塊設(shè)計實例導(dǎo)航[M].北京,人民郵電出版社,2008

附錄A系統(tǒng)仿真全部代碼#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineportP0//DB0~DB7數(shù)據(jù)口sbitP31=P3^1;//無線信號接收端(控制反向)sbitP32=P3^2;//無線信號接收端(控制正向)sbitled=P1^0;//到站指示燈sbitfmq=P1^1;//蜂鳴器sbite=P2^2;//使能sbitrw=P2^1;//讀寫sbitrs=P2^0;//數(shù)據(jù)/命令sbitbusy=P0^7;//檢測忙ucharcodedis1[]="AAAAAAA";//站點(diǎn)內(nèi)容可更新或增加ucharcodedis2[]="BBBBBBB";ucharcodedis3[]="CCCCCCC";ucharcodedis4[]="DDDDDDD";ucharcodedis5[]="EEEEEEE";ucharnum[]="WelcometoYanTai";/*******延時*********/voiddelay(uintn){uinti;for(;n>0;n--)for(i=200;i>0;i--);}/*******判斷是否忙*******/voidcheck(){rs=0; rw=1; //讀e=1; port=0x00; e=1; while(busy); e=0;}/*******寫指令******/voidsend(ucharcommand){check(); rs=0; //指令 rw=0; //寫e=0; port=command; e=1; _nop_();_nop_(); e=0; //寫入指令}/********寫數(shù)據(jù)********/voidwrite(uchardat){check(); rs=1; //數(shù)據(jù) rw=0; port=dat; e=1;_nop_();_nop_(); e=0;}/********光標(biāo)位置*********/voidpos(uintp){send(p|0x80);//第一行第一個0x80;}/**********初始化*********/voidinit(){send(0x38);//8位數(shù)據(jù),雙列,5*7字形delay(1);send(0x0c);//開0x08關(guān)delay(1);send(0x06);//地址增加一delay(1);send(0x01);//清屏delay(1);}voidmain(){inti=0,j=0,k=0,s=0;ucharn;init();delay(10);pos(0x00);delay(1);//或者用i=0,刪除后會發(fā)現(xiàn)不能顯示第一個數(shù)。for(n=0;n<18;n++){write(num[n]);delay(1);}while(1){if(P32==0){j++; if(j==1) {loop1:{s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) gotoloop1; } s=0; pos(0x40); delay(1);for(n=0;n<9;n++){write(dis1[n]); delay(5);} }if(j==2) {loop2:{s=s+1; led=0; fmq=

溫馨提示

  • 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

提交評論