畢業設計--基于單片機的公交車自動報站系統_第1頁
畢業設計--基于單片機的公交車自動報站系統_第2頁
畢業設計--基于單片機的公交車自動報站系統_第3頁
畢業設計--基于單片機的公交車自動報站系統_第4頁
畢業設計--基于單片機的公交車自動報站系統_第5頁
已閱讀5頁,還剩40頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上目 錄專心-專注-專業第一章 緒 論1.1 本課題的研究意義近些年來,隨著城市人口的不斷增加,人們生活節奏的不斷加快,公交車在大城市以及中小城市已經普及,并且有了日新月異的發展,在人民生活中起著重要作用,因此,公交車的正常運行與人們的正常生活息息相關。傳統公交車報站大多是由乘務人員來人工報站,但是因為方言的差異或者人多時語音嘈雜,這種方式不利于人民生活的和諧。所以根據這種需要市面上產生流行了多種公交車報站器也方便人們的生活。目前雖然現在在一些大城市的公交車上已經采用GPS定位系統自動報站,但其造價昂貴,難以在一些中小城市實現普及。另外,現在也有一些城市正在使用的一種半

2、自動語音報站系統,這種系統需要由司機在車子進出站的時候人工操作,由于這兩個時間點往往是路面情況最復雜的時刻,因此也給行駛中的車輛帶來了安全隱患。所以本設計針對目前常見公交車報站系統的主要缺陷,研究介紹了一種基于單片機控制的公交車自動報站系統,實現在到站時的自動語音報站和LCD液晶顯示,而且該系統造價廉價,可以在中小城市中普及。1.2 目前幾種公交車報站器詳細比較公交車對社會影響巨大,對城市發展起著最基本的推動作用。隨著公交車的不斷普及市面上也出現各種各樣的公交車報站器,現在市面上流行的幾種報站器主要有下列幾種類型:1.2.1 GPS公交車自動報站器利用GPS全球衛星定位系統的公交車報站系統,在

3、司機座位后面隔板上,安裝了一臺15英寸的液晶電視和 GPS信號接收器,安裝了這套設備后,公交車在語音報站的同時,通過液晶電視還可以顯示到站站名的字幕,這樣如果沒聽清報站的話,通過顯示屏,乘客也可以一目了然。當出現緊急情況時,調度中心將會給公交車發出相應的信息,以短信的形式傳送到顯示屏上,同時車載臺會發出相應的提示音;駕駛員也可以通過相應的工具進行回復。目前在美國部分城市GPS衛星定位系統已經投入使用,國內也有此類產品的研制開發,其功能強大,系統穩定,但其投資昂貴,尤其是一些中小城市無法承受。1.2.2 手動式公交車自動報站器手動式公交車自動報站器通過主機上的漢字顯示器,顯示當前車站名稱,即將達

4、到站名指示功能;通過主機屏幕的顯示,可直觀的觀察到進站和下一站信息;通過按鍵,可播放進站,出站,服務用語等語音。但是該種報站器需要由司機在車子進出站的時候人工操作,由于這兩個時間點往往是路面情況最復雜的時刻,因此也給行駛中的車輛帶來了安全隱患,不利于公交車的安全行駛。1.2.3 基于單片機的公交車自動報站系統基于單片機的公交車自動報站系統,而這種系統又大致分為兩種技術支持。其中一種的技術關鍵是對車輪轉軸的轉角的脈沖進行計數,將計數值與預置值對比,即可確定報站時刻,達到準確自動的目的。該方式應用單片機的高速計數器端口進行脈沖計數,以距離來控制報站時刻,首次實現了模糊控制,改變現有設備的不足。做到

5、簡單實用自動化程度高。傳感器在公交車上的應用極大的提高了設備功能。另外一種基于單片機的公交車自動報站系統就是利用編碼解碼芯片PT2262/PT2272進行解碼編碼,利用無線數傳模塊F05V/J05V和天線進行發射和接收來實現的。在每個站牌上設置一個編碼發送裝置PT2262和無線數傳模塊F05V,通過公交車上設置的接收裝置J05V和譯碼裝置PT2272進行譯碼并傳輸到單片機。發送裝置按照延時3到5秒不斷發送信號,公交車在距離站牌10到20米的時候就能接收到信號,然后根據程序來實現語音報站,LCD液晶顯示。這種報站系統軟件編寫比較簡單,也容易修改,并且芯片價格低廉,大批生產能夠獲得比GPS系統達到

6、更高的性價比,是公交車自動報站系統的較佳選擇。綜合上述各種公交車自動報站系統,本設計選擇了基于單片機的公交車自動報站系統,并利用無線數傳模塊來實現公交車的自動報站。第二章 系統方案的確定2.1 系統主要要實現的功能該系統應實現無線信號收發確認,到站時的公交車站名的液晶顯示以及自動語音提示。系統的硬件設計中應充分考慮了性價比,用最少的器件設計出滿足要求的硬件電路。本次設計主要是完成實現基本的仿真,該系統仿真電路的總體結構以52單片機為核心,由模擬接收電路、LCD(Liquid Crystal Display,液晶顯示屏)顯示電路等組成。2.2 無線傳輸模塊的選擇PT2262/PT2272集成芯片

7、。方案采用低功耗、低價位、通用編解碼電路,發送用高的達林頓管,所以在靈敏度和抗干擾性方面有保障。無線數傳模塊F05V/J05V(典型遙控應用電路):F05V采用的SMT工藝,優點是低電壓微功率、體積小、低功耗發射模塊,適合單片機數據傳輸以及短距離無線遙控報警。J05V作為接收模塊優點是低電壓、體積小,兩者連接在PT2262/2272配合使用2.3 控制模塊的選擇所學專業課中學習過51單片機,并且單片機體積小,重量輕,具有很強的靈活性而且價格便宜,所以控制模塊選用單片機。2.4 液晶顯示模塊及語音模塊的選擇隨著科學技術的日益發展和進步,微型計算機已經在很多領域得到廣泛應用。LCD與微機技術結合,

8、比傳統的LED顯示效果更佳。所以結合公交車報站的使用特點和運營環境,設計一種由單片機控制、LCD顯示的公交車報站顯示系統。公交車報站顯示系統的設計應用單片機,LCD顯示,使到站信息及提示信息以顯示的方式告知市民,為市民提供人形化、完美的服務。所以本次設計中重點使用了LCD1602液晶顯示模塊鑒于使用Proteus仿真,在仿真中使用蜂鳴器代替語音模塊,使用蜂鳴器的連續間斷發聲作為提示。為了以后實際需要,在文章中介紹了常用的語音模塊ISD4004。2.5系統整體硬件電路的確定根據系統要實現的功能,以及各個模塊的選擇,確定了整個報站系統主要組成部分分為兩個模塊。發射模塊即電子站牌部分主要由AT89C

9、51單片機,PT2262編碼裝置,無線傳輸模塊F05V和天線組成。接收控制模塊即車載部分是主要部分,選擇AT89C51為核心的控制器,PT2272譯碼裝置和無線數傳模塊J05V以及天線作為接收信號裝置,語音錄放芯片ISD4004組成的語音播放電路以及LCD1602液晶顯示屏構成液晶顯示模塊。系統各部分框圖如下圖所示。通過天線(Antenna)發射信號,間隔5秒。無線數傳模塊F05VPT2662信號發射AT89C51單片機產生周期信號圖2-1 公交車站牌發射部分方框圖接收天線接收無線數傳模塊J05VLCD1602液晶顯示PT2272信號接收AT89C51單片機控制ISD4004語音模塊晶振,外部

10、中斷復位電路按鍵控制圖2-2 公交車車載接收部分方框圖公交車自動報站系統就是利用編碼解碼芯片PT2262/PT2272進行解碼編碼,利用無線數傳模塊F05V/J05V和天線進行發射和接收來實現的。在每個站牌上設置一個編碼發送裝置PT2262和無線數傳模塊F05V,通過公交車上設置的接收裝置J05V和譯碼裝置PT2272進行譯碼并傳輸到單片機。發送裝置按照延時3到5秒不斷發送信號,公交車在距離站牌10到20米的時候就能接收到信號,然后根據程序來實現語音報站,LCD液晶顯示。發射部分通過編碼芯片PT2262,無線數傳模塊F05V和天線不停發射周期信號,發射的一個周期的內容包括本站點的地址、站名等信

11、息的編碼信息。當公交車行駛進人該信號范圍內,車載部分的通過天線,經無線數傳模塊J05V和PT2272譯碼就會接收到這個編碼信息,單片機將編碼信息處理后,向顯示模塊和語音模塊發送對應的信息,就能實現液晶顯示屏顯示對應的站名和語音報站,完成自動報站。第三章 系統功能模塊詳細介紹3.1 單片機AT89C51隨著計算機技術的發展,單片機技術已成為計算機技術中的一個獨特的分支,單片機的應用領域也越來越廣泛,特別是在工業控制和儀器儀表智能化中扮演著極其重要的角色??v觀單片機發展的30多年來,單片機正往多功能、高性能、高速度、低電壓、低價格、低噪聲、低功耗、小體積、大容量、專用化和外圍電路內裝化的方向發展。

12、單片機的出現使的過去經常采用模擬電路、數字電路實現的電路系統,轉變成現在用單片機予以實現,并且傳統的電路設計方法演變成硬件和軟件相結合的設計方法,并且許多電路設計問題將轉化為純粹的程序設計問題。誠然,單片機的應用意義遠不限于它的應用范疇或由此帶來的經濟效益,更重要的是它已從根本上改變了傳統的控制方法和設計思想,是控制技術的一次革命,是一座重要的里程碑微控制器通常將主要的組成部分集成在一個芯片上,就是把中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、中斷系統、定時器/計數器以及I/O接口電路等主要部件集成在一個芯片上。AT89C51俗稱單片機,可擦除只讀存儲器可以反復擦除100

13、0次。主要特性:1、一個CPU,一個片內振蕩器以及時鐘電路, 2、4K(RAM)程序存儲器,3、128B(ROM)數據存儲器4、21個特殊功能寄存器5、數據能夠保存的時間:10年6、與MCS-51指令相兼容7、32個可編程I/O線(4個8位并行I/O端口)8、16位定時器/計數器有兩個9、5個中斷源,兩個優先級嵌套結構10、一個可編程全雙工串行接口11、低功耗的閑置和掉電模式12、片內振蕩器和時鐘電路盡管目前單片機種類多,各類單片機的指令系統各不相同,功能各有所長,但市場占有率最高的是51系列單片機。單片機體積小,重量輕,具有很強的靈活性而且價格便宜,得到越來越廣泛的運用。例如工業控制領域、家

14、電產品,智能化儀器儀表,計算機外部設備,特別是機電一體化產品中都有重要的用途,其中的51單片機系列發展規模最大。51單片的運用廣泛,并且具有優異的性能價格比,集成度高,體積小,有很高的可靠性,并且控制功能強。所以是核心控制期間的最佳選擇。圖3-1 AT89C51單片機引腳圖3.1.1 管腳說明下面對設計中用到的一些管腳進行簡要的介紹:VCC:供電電壓,一般接+5V電源正端。GND:接地,一般接+5V電源地端。P0口(3932腳):輸入輸出線P0.0P0.7統稱為P0口??梢杂米鳒孰p向輸入/輸出口使用,但由于內部無上拉電阻,一般外加上拉電阻:在進行片外存儲器擴展或I/O擴展時,P0口作為分時服用

15、的低8位地址總線和雙向數據總線。P1口(18腳):P1口作為準雙向I/O口使用。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。 P2口(2128腳):P2口也可作為準雙向I/O口,當進行片外村春氣擴展或I/O口擴展時,P2口用作高8位地址總線。P3口(1017腳):P3口作為準雙向I/O口使用外,每一個端口還具有第二功能。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能P3.0 RXD(串行口輸入端)P3.1 TXD(串行口輸出端)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3

16、.4 T0(定時器/計時器0計數脈沖輸入)P3.5 T1(定時器/計時器1計數脈沖輸入)P3.6 /WR(外部數據存儲器寫選通信號輸出)P3.7 /RD(外部數據存儲器讀選通信號輸出)RST(9腳):復位輸入。當振蕩器復位器件時,要保持10ms高電平時間才能保證有效的復位。ALE/PROG(30腳):地址鎖存允許/編程線。采用了地址/數據總線復用技術。/PSEN(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。/EA/VPP(31腳):片外程序存儲器選用端,低電平有效。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳

17、也用于施加12V編程電源(VPP)。XTAL1:外接晶體振蕩器一端。XTAL2:外接晶體振蕩器另一端。3.1.2 外部晶振的選擇AT89C51的內部有一個用于構成振蕩器的高增益反相放大器。通過XTAL1,ATAL2外部接上一片作為反饋元件的晶體,與C1和C2構成了并聯諧振電路,使其構成自激振蕩器。電容的值通常30PF。具體的接線電路如圖32外部晶振電路:AT89C51單片機外接的是12MHZ的晶振,則機器周期為1us。圖3-2 外部晶振電路3.1.3 復位電路復位的作用是使程序自動從0000H開始執行,因此我們只要在AT89C51單片機的RST端加上一個高電平信號,并持續10ms以上即可,RS

18、T端接有一個上電復位電路,它是由一個小的電容和一個接地的電阻組成的。按鍵復位電路另外采用一個按鈕來給RST端加上高電平信號。本設計采用放電型的進行人工復位的電路,如圖按鍵復位電路,上電時C3通過R2充電,維持寬度大于10ms的正脈沖,就可以完成復位操作。當C3結束充電后,RST端出現低電平,這是CPU將正常的工作。在本次設計中如果需要按鍵進行復位,就按下按鈕BUTTON3,C3通過BUTTON3和R2放電,RST端電位將會上升到高電平,從而實現人工復位,BUTTON3松開后C3重新充電,當結束充電后,CPU將會重新工作。下圖中,R2是限流電阻,阻值不可以過大,否則不能起到復位作用。圖3-3 按

19、鍵復位電路3.1.4 按鍵電路設計對于此設計來說要準確的顯示設計所要對應的信息,每按下一次按鍵要顯示所要顯示的信息。這按鍵是主要用來模擬無線信號的收發而設計的,即PT2262/PT2272的無線信號收發。功能的實現主要是通過程序來實現,BUTTON1控制順向報站,當報站系統啟動后,按下BUTTON1開始按預先設置好的站名進行順向報站,本設計設置的是從站名“AAAAAAA”到“EEEEEEE”依次報站,每次按鍵按下時實現LED提示燈亮,蜂鳴器連續鳴叫7次。BUTTON2按鍵是實現公交車逆向返回時的報站,即從站名“EEEEEEE”到“AAAAAAA”的依次報站,也滿足每次按鍵按下時實現LED提示燈

20、亮,蜂鳴器連續鳴叫7次。圖3-4 按鍵設置如果使用過程中出現錯誤時,可以使用按鍵復位,重現選擇正向或者逆向報站。同時,為了防止一次按鍵產生站名的漏報,在軟件設計中使用了延時函數,防止站名的漏報。3.2 無線收發模塊PT2262/PT2272PT2262/PT2272是一種CMOS工藝制造的低功耗低價位通用編解碼電路,PT2262/PT2272最多可有12位(A0A11)三態地址端管腳(懸空,接高電平,接低電平),任意組合可提供53144l(212)地址碼,PT2262可有6位(D0D5)的數據端的管腳,設計可以設定地址碼以及數據碼在第17腳進行串行輸出,以便于應用于無線的遙控發射的電路。3.2

21、.1 PT2262/PT2272引腳圖在PT2262/2272這種器件的使用,根據資料一般將會使用8位的地址碼和4位的數據碼。PT2262編碼電路引腳的選擇是:第l8腳作為地址的設定腳,他可以選擇三種狀態:懸空、接正電源、接地。3的8次方為6561,即地址編碼的不重復度是6561組。PT2262/2272的配對使用是要求發射端PT2262和接收端PT2272的地址編碼需要完全相同,用戶如果想改變地址編碼,只要將PT2262和PT2272設置相同即可,兩者的地址的編碼相同時,PT2272輸出端將會輸出大約4V左右的互鎖的高電平的控制信號。圖3-5 PT2262/PT2272引腳圖PT2262/P

22、T2272引腳基本類似,作為無線收發譯碼解碼器,兩者配對使用引腳連接必須一致。下面接收PT2262/PT2272的引腳說明圖表3-1 PT2262引腳說明名稱管腳說明A0A111-810-13地址管腳,用于進行地址編碼,可置為“0”,“1”,“f”(懸空)D0D57-810-13數據輸入端,有一個為“1”即有編碼發出,內部下拉VCC18電源正端(+)VSS9電源負端(-)TE14編碼啟動端,用于多數據的編碼發射,低電平有效OSC116振蕩電阻輸入端,與OSC2所接電阻決定振蕩頻率OSC215振蕩電阻振蕩器輸出端Dout17編碼輸出端(正常時為低電平)參數名稱符號工作條件最小值典型值最大值單位工

23、作電壓VD03V工作電流ID0VD0=12V停振0.020.03uAA0-A11開路輸出驅動電流IOHVD0=5V,VOH=3V3mAVD0=8V, VOH=4V6VD0=12V, VOH=6V10輸入驅動電流IOLVD0=5V, VOH=3V2mAVD0=8V, VOH=4V5VD0=12V, VOH=6V9表3-2 PT2272引腳說明圖名稱管腳說明A0A111-810-13地址管腳,用于進行地址編碼,可置為“0”,“1”,“f”(懸空),必須與2262一致,不然不解碼D0D57-810-13地址或數據管腳,當做為數據管腳時,只有在地址碼與2262一致,數據管腳才能輸出與2262數據端對應

24、的高電平,否則輸出為低電平VCC18電源正端(+)VSS9電源負端(-)DIN14數據信號輸入端,來自接收模塊輸出端OSC116振蕩電阻輸入端,與OSC2所接電阻決定振蕩頻率OSC215振蕩電阻振蕩器輸出端VT17解碼有效確認 輸出端(常低)解碼有效變成高電平(瞬態)表3-3 PT2262/PT2272工作參數3.2.2 PT2262/2272接線圖以及工作原理發射電路主要由AT89C51、編碼模塊PT2262、無線數傳模塊F05V和一片74LS04(六輸入非門,實際上就是六個非門集成在一塊74LS04里面了)構成,發射部分電路如圖3-6所示。接收電路主要由AT89C51、譯碼模塊PT2272

25、、無線數傳模塊J05V和一片74LS04構成,接收部分模擬電路如圖3-7所示圖3-6 PT2262發射部分模擬接線圖圖3-7 PT2272接收部分模擬接線圖發射部分主要產生一個周期的編碼信號。編碼信號的內容包括起始標志、數據編碼和結束標志,由于無線收發模塊是四路的,即每次收發半個字節的數據所以一幀數據至少是16位的,其信息格式如表3-4所示。表3-4 16位編碼數據格式0123456789101112131415D0D1D2D3D0D1D2D3D0D1D2D3D0D1D2D34位起始標志8位編碼數據4位起始標志由上圖可以看出每一幀數據需要四次才能發送完畢。在實際應用中不需要編碼信號不間斷的發送

26、,三秒鐘或者五秒鐘發送一次即可,因此程序里還需要有一段三秒或五秒的延時。在公交車上設置的接收裝置J05V和譯碼裝置PT2272進行譯碼并傳輸到單片機,通過單片機判斷車輛到達的站點信息,根據這個站點的信息進行語音播報以及液晶顯示提示。射頻觸發信號是以中斷的的方式送入單片機的,硬件電路將這個控制信號與單片機的INT0口相連接,所以本段程序是一個外部中斷0的子程序。當射頻信號到來時PT2272D的VT引腳端由低變高,經非門送到單片機INT0,使單片機跳到外部中斷O子程序。3.2.3 無線數傳模塊F05V/J05V無線數傳模塊F05V/J05V(典型遙控應用電路):F05V采用的SMT工藝,優點是低電

27、壓微功率、體積小、低功耗發射模塊,適合單片機數據傳輸以及短距離無線遙控報警。J05V作為接收模塊優點是低電壓、體積小,兩者連接在PT2262/2272配合使用F05V引腳定義:1=正電源3V;2=接地;3=數據信號輸入;Y=外接天線。J05V引腳定義:1=正電源3V;2=接地;3=數據信號輸出;Y=外接天線。圖3-8 f05V/J05V引腳接線圖3.3 顯示模塊LCD1602我們知道的用來顯示的器件很多。比如數碼管、LCD、點陣式LED。數碼管只能顯示數字,LCD可以顯示漢字、符號、數字和圖形,為了報站器的人性化LCD1602能夠同時顯示16列2行的字符,可以顯示數字、字母、以及各種符號。這種

28、液晶模塊由若干個5X7或者5X11等點陣字符位組成,這種點陣字符顯示字符并且自帶間隔,也就是有自然的間距和行間距,也是因為這個特性不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。市面上字符液晶大多數是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型的液晶。3.3.1 排阻Respack-8Respack-8接在51單片機的P0口,因為P0口內部沒有上拉電阻,不能輸出高電平,所以要接上拉電阻,1端為公共端接VCC。3.3.2 LCD1602的引腳定義字符型LCD一般是16條引腳線14條引腳線,多出來的兩條線是背

29、光電源線VCC(15腳)和地線GND(16腳),與14腳LCD的控制原理基本完全一樣,定義如下表所示:表3-5 LCD1602引腳定義引腳號引腳名電平輸入/輸出作用1VSS電源地2VCC電源(+5V)3VEE進行對比的調整電壓4RS0/1輸入0進行輸入I指令1進行輸入O數據5R/W0/1輸入0=向LCD寫入指令以及數據1=從LCD中來讀取信息6E1,10輸入使能信號,1是進行讀取信息10下降沿執行指令7DB00/1I/O數據總線line0(最低位)8DB10/1I/O數據總線line09DB20/1I/O數據總線line010DB30/1I/O數據總線line011DB40/1I/O數據總線l

30、ine012DB50/1I/O數據總線line013DB60/1I/O數據總線line014DB70/1I/O數據總線line015A+VCCLCD背光燈電源正極16K接地LCD背光燈電源負極圖3-9 LCD1602引腳接線圖在LCD模塊上固化了字模存儲器,這就是CGROM和CGRAM,HD44780內置了192個常用字符的字模,存于字符產生器CGROM中,另外還有8個允許用戶自定義的字符產生RAM,成為CGRAM。下圖3-10說明了CGROM和CGRAM與字符的對應關系。讀的時候,先讀左邊那列,再讀上面那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六

31、進制)圖3-10 CGROM和CGRAM中字符代碼與字符圖形對應關系3.3.3 液晶LCD1602常用的11條指令表3-6 液晶LCD1602常用指令指令功能RSR/WDB7DB6DB5DB4DB3DB2DB1DB0執行時間清屏00000000011.64ms功能詳解:清除液晶顯示器的內容。光標歸位000000001X1.64ms功能詳解:光標撤回到顯示器的左上方,地址計數器(AC)值為0,DDRAM值不變進入模式設置00000001I/DS40us功能詳解:I/D當為0時寫入數據后光標左移,當為1時寫入數據后光標右移S為0時寫入新數據后顯示屏不移動,為1時寫入新數據后顯示屏整體右移1字符顯示

32、開關控制0000001DCB40us功能詳解:D為0時顯示功能關,為1時顯示功能開C為0時無光標。1時有光標B為0時光標閃爍,1時光標不閃爍設定顯示屏或光標移動方向000001S/CR/LXX40us功能詳解:S/CR/L設定的情況00光標左移1格,且AC值減101光標右移1格,且AC值加110顯示器上字符全部左移一格,但光標不移動11顯示器上字符全部右移一格,但光標不移動功能設定00001DLNFXX40us功能詳解:DL為0時數據總線為4位,1時數據總線為8位N為0時顯示1行,1時顯示兩行F為0時5*7點陣/每個字符,1時5*10點陣/每個字符設定CGRAM地址指令0001CGRAM的地址

33、(6位)40us功能詳解:設定下個要存入的數據的CGRAM的地址設定DDRAM地址指令001CGRAM的地址(7位)40us功能詳解:設定下個要存入的數據的DDRAM的地址讀取忙碌信號或AC地址01BFAC內容(7位)40us功能詳解:BF為1表示液晶顯示器忙,為0時,液晶顯示器可以接收單片機送來的數據或指令數據寫入到DDRAMH或CGRAM10要寫入的數據D7D040us功能詳解:(1)將字符碼寫入DDRAM,液晶顯示屏并顯示對應的字符(2)使用者設計的圖形存入CGRAM從CARAM或DDRAM讀取數據11要讀出的數據D7D040us功能詳解:讀取DDRAM或CGRAM的內容3.4 語音模塊

34、ISD4004實際公交車報站都是語音報站,因為本設計用Proteus仿真,所以用蜂鳴器替代語音模塊進行仿真試驗,下面簡要介紹下語音模塊的基本知識。ISD4004語音模塊工作特點:工作時的電壓在3V,能夠完成的錄放的時間在8到16分鐘左右,同型號的ISD1730等,錄音時間一般在4分鐘以內。并且它的音質也很不錯,目前在移動電話以及其他電子產品中應用比較廣泛。ISD4004是經過CMOS技術來制作的,內部有各種模塊:音頻放大器、平滑濾波器、振蕩器、自動靜噪及高密度多電平閃爍存貯、防混淆濾波器。芯片經過微控制器設計,其指令采用的是串行通信,如(SPI)。芯片采用了多電平接模擬量的存儲技術,采樣值可以

35、在片內的閃爍存貯器進行直接存儲,因此可以非常真實得還原聲音。而一般固錄音電路是有很多缺點的,會有很多噪聲和"金屬聲"。采樣的頻率可以選為8.0、6.4、5.3、4.0kHz,這幾個頻率選擇的越低,錄放的時間也就會越長,確實是造成音質的下降,閃爍存貯器中的信息,可保存的時間是100年(典型值),并且可以反復錄音10萬次。ISD4004芯片優點是無須A/D的轉換和A/D的壓縮,能過進行直接的儲存,并且沒有A/D轉換的誤差,還具有所需的外圍的電路是比較簡單的、使用時不用擴充存儲器、存儲時間也很長、也可以進行多次重復錄放。圖3-10 ISD4004的引腳排列圖在本次設計后續設計中,

36、也可以利用AT89C51控制該芯片,實現語音的存儲以及語音報站。1、電源端(VCCA,VCCD):為了使噪聲最小,芯片內部的數字和模擬電路要使用不同的電源的總線,并且分別引出到外封裝的不同的管腳上。數字和模擬電源端最好走不同的線,比如,選擇在離供電端相近的地方相連,而去耦電容就應盡量選擇離器件近。2、地線(VSSD,VSSA):芯片的內部的模擬和數字電路也使用不同的地線。3、同相的模擬輸入(ANA IN+):即錄音信號同相輸入端。這時輸入放大器采用單端或差分驅動。當采用單端時,在耦合電容中輸入信號,最大的幅度是32mV峰峰值,芯片頻帶的低端截止頻率決定耦合電容和本端的3K電阻的輸入阻抗。作為差

37、分的驅動時,信號最大幅度是16mV峰峰值,這是和ISD33000系列一樣的。4、反相的模擬輸入(ANA IN-):作為差分驅動是錄音信號的反相的輸入端。信號是通過耦合電容來輸入,最大幅度是16mV峰峰值5、音頻輸出(AUD OUT):作用是提供音頻的輸出,可以驅動5K的負載。6、片選(SS):此端為低電平,在向ISD4004芯片發送指令時,并且該兩條指令間應該為高電平。7、串行輸入(MOSI):此端是串行的輸入端。主控制器應該在串行時鐘的上升沿前半周期把數據放到這個端口,來讓ISD輸入。8、串行輸出(MISO):作為ISD 的串行的輸出端。當ISD沒有選中時本端會呈高阻態。9、串行時鐘(SCL

38、K):作為ISD 的時鐘的輸入端。從主控制器中產生,可以用于同步的MOSI和MISO的數據傳輸。10、中斷(/INT):本端作為漏極的開路輸出。ISD 在任何操作過程(比如快進)中檢測到了EOM 或OVF 時,本端會變低電平并保持。并且中斷的狀態在下一個SPI周期開始時清除。中斷狀態也可以用RINT 的指令讀取。OVF 標志-指示ISD的錄放操作是否已經到存儲器未尾狀態。EOM 標志-只在放音過程中檢測到內部的EOM 標志時,狀態才會置1。11、行地址時鐘(RAC):漏極的開路輸出。每經過一個RAC 周期,表示ISD存儲器操作進行了一行。該端口并且可以用于存儲的管理技術。12、外部時鐘(XCL

39、K):本端內部帶有下拉元件。工業級的芯片在整個溫度和電壓范圍內,頻率變化范圍在-6/+4%內,此時建議使用穩壓電源。如果要求更高精度,可從本端來輸入外部時鐘(如前邊所描述)。并且由于內部的防混淆及平滑濾波器已經設定好,所以上述推薦時鐘頻率不應該再改變。輸入時鐘占空比是無關緊要的,因為內部首先進行了分頻。并且在不外接地時鐘時,此端是必須接地的。13、自動靜噪(AMCAP):一般本端對地會接1mF的電容,來構成內部信號的電平峰值檢測電路一部分。并且與內部設定閾值和峰值電平來作比較,從而決定自動靜噪的功能的翻轉點。大信號時,自動靜噪的電路不衰減,靜音時衰減6dB。1mF 的電容也影響自動靜噪的電路對

40、信號幅度的響應速度。本端接VCCA 則應該禁止自動靜噪。3.5 蜂鳴器和LED指示燈蜂鳴器鑒于用Proteus仿真,語音模塊用蜂鳴器代替如圖3-7,采用三極管NPN,當P11為高電平時電路導通,通過程序使P11進行短時間內高低電平轉換,以達到斷續蜂鳴提示的效果。圖3-11 蜂鳴器接線圖到站LED提示燈鑒于用Proteus仿真,語音模塊用蜂鳴器代替如圖3-7,采用三極管PNP,當P1.0為低電平時電路導通,到站提示燈亮。 圖3-12 LED提示燈接線圖第四章 系統程序設計4.1 系統仿真主程序流程圖開始界面蜂鳴器提示,LCD顯示第一行字符“Welcometo YanTai”運行方式 P34=0?

41、P35=0? N N Y Y順序報站,蜂鳴器提示,LED下車指示燈亮逆序報站,蜂鳴器提示,LED下車指示燈亮液晶顯示當前到站站名液晶顯示當前到站站名圖4-1 系統仿真主程序流程圖系統仿真,初始化運行程序時,LCD第一行顯示歡迎字符,蜂鳴器蜂鳴,選擇BUTTON1或者BUTTON2(通過控制P35,P34)選擇順序或者逆序報站,按下按鍵之后,蜂鳴器提示,LED指示燈亮,延遲一段時間后顯示站名。隨后可以每到一個站依次顯示公交車站名,如果出現錯誤或者重新選擇另一順序報站,可以使用按鍵復位,重新選擇報站方式。4.2 程序子函數模塊4.2.1 延時函數/*延時*/void delay(uint n) u

42、int i; for(;n>0;n-) for(i=200;i>0;i-);4.2.2 檢查忙函數/*判斷是否忙*/void check() rs=0; rw=1; /讀 e=1;port=0x00;e=1; while(busy);e=0;4.2.3 寫指令函數/*寫指令*/void send(uchar command) check();rs=0; /指令rw=0; /寫 e=0;port=command;e=1;_nop_();_nop_();e=0;/寫入指令4.2.4 寫數據函數/*寫數據*/void write(uchar dat) check();rs=1; /數據r

43、w=0;port=dat;e=1; _nop_();_nop_();e=0;4.2.5 光標位置函數/*光標位置*/void pos(uint p) send(p|0x80);/第一行第一個0x80;4.2.6 初始化函數/*初始化*/void init() send(0x38); / 8位數據,雙列,5*7字形 delay(1); send(0x0c); /開 0x08關 delay(1); send(0x06);/地址增加一 delay(1); send(0x01);/清屏 delay(1);4.2.7 其他數組定義以及端口定義用數組定義站點信息字符串uchar code dis1=&qu

44、ot;AAAAAAA " /站點的內容可更新也可以增加uchar code dis2="BBBBBBB "/每個字符串假設了10個字符uchar code dis3="CCCCCCC "uchar code dis4="DDDDDDD "uchar code dis5="EEEEEEE "uchar num="Welcometo YanTai"液晶顯示第一行(剛好18個字符)端口定義#define port P0 /DB0DB7數據口sbit P34=P34; /控制反向報站sbit

45、P35=P35; /控制正向正向sbit led=P10; /到站指示燈sbit fmq=P11; /蜂鳴器sbit e=P22;/使能sbit rw=P21;/讀寫sbit rs=P20;/數據/命令sbit busy=P07;/檢測忙4.3 主程序流程圖void main() int i=0,j=0,k=0,s=0; uchar n; init(); delay(10); pos(0x00); delay(1); /或者使用i=0,刪除后會發現不能顯示第一個數。 for(n=0;n<18;n+) write(numn);delay(1); while(1)if (P35=0) j+;

46、 if(j=1) loop1:s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) goto loop1; s=0; pos(0x40); delay(1); for(n=0;n<10;n+) write(dis1n); delay(5); if(j=2) loop2:s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) goto loop2; s=0; pos(0x40); delay(1); for(n=0;n<10;n+) write(dis2n);

47、 delay(5); if(j=3) loop3:s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) goto loop3; s=0; pos(0x40); delay(1); for(n=0;n<10;n+) write(dis3n); delay(5); if(j=4) loop4:s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) goto loop4; s=0; pos(0x40); delay(1); for(n=0;n<10;n+) wri

48、te(dis4n); delay(5); if(j=5) loop5:s=s+1; led=0; fmq=1; delay(100); led=1; fmq=0; if(s<=7) goto loop5; s=0; pos(0x40); delay(1); for(n=0;n<10;n+) write(dis5n); delay(5); 第五章 系統仿真實現5.1 開發環境KeilC51介紹KeilC51是集編輯,編譯,仿真于一體,支持匯編,PLM 語言和 C 語言的程序設計,易學易用。在 KeilC51 集成開發環境下使用工程的方法來管理文件,所有的源文件、頭文件甚至說明性文檔都

49、可以放在工程項目文件里統一管理。本次設計使用KeilC51的開發工具大致流程如下:(1)運行 Keil C51 軟件,進入 Keil C51 集成開發環境。(2)選擇工具欄的 Project 選項,彈出下拉菜單,選擇 NewProject 命令建立一個新的Vision2 工程。這時會彈出所示的工程文件保存對話框,選擇工程目錄并輸入文件名后,單擊保存。(3)本次設計建立好一個空白工程,現在需要人工為工程添加程序文件,如果還沒有程序文件則必須建立它,可以選擇工具欄的 File 選項,在彈出的下拉菜單中選擇 New 目錄。這次設計我采用的是將.c的文件導入工程。(4)輸入程序,完畢后點擊“保存”命令

50、保存源程序,KeilC51 支持匯編和C語言,Vision2 會根據文件后綴判斷文件的類型,進行自動處理。(5)不斷糾正源文件錯誤,檢查無誤后生成HEX文件,并將HEX文件導入Proteus中的51單片機來運行實現。5.2 仿真環境PROTEUS介紹 Proteus是英國Labcenter公司開發的電路分析與實物仿真軟件(EDA工具軟件)。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的十分適用于仿真設計。該軟件具備許多優點,首先能夠仿真的器件非常多,里面有30多個元件庫,包括各種型號單片機、電阻、二極管、三極管、晶振、按鍵、電壓表電流表等各種實驗會用到的器件。再次,該軟件能實現單片機及其外圍電路組成的系統的仿真、單片機的數字電路仿真、模擬電路仿真、鍵盤和LCD的仿真等等各種功能,并且能使用示波器等各種輔助工具研

溫馨提示

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

評論

0/150

提交評論