版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)</p><p><b> 誠(chéng)信聲明</b></p><p> 本人鄭重聲明:本論文及其研究工作是本人在指導(dǎo)教師的指導(dǎo)下
2、獨(dú)立完成的,在完成論文時(shí)所利用的一切資料均已在參考文獻(xiàn)中列出。</p><p> 本人簽名: 年 月 日</p><p><b> 畢業(yè)設(shè)計(jì)任務(wù)書(shū)</b></p><p> 設(shè)計(jì)題目: 基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)
3、 </p><p><b> 1.課題意義及目標(biāo)</b></p><p> 學(xué)習(xí)并掌握單片機(jī)及相關(guān)知識(shí);實(shí)現(xiàn)公交車(chē)語(yǔ)音報(bào)站并有誤報(bào)糾錯(cuò)功能,能播報(bào)語(yǔ)音提示信息及服務(wù)用語(yǔ);在查閱資料的基礎(chǔ)上,完成系統(tǒng)整體方案設(shè)計(jì);完成系統(tǒng)硬件設(shè)計(jì),完成控制、顯示及語(yǔ)音部分的設(shè)計(jì),完成系統(tǒng)元器件的選型,在掌握電子線路圖繪制工具軟件的基礎(chǔ)上,完成系統(tǒng)組成框圖的繪制、完成相關(guān)
4、電路圖及系統(tǒng)原理圖的繪制;完成系統(tǒng)軟件設(shè)計(jì)包括軟件流程圖的繪制及程序的編制及調(diào)試。</p><p><b> 2.主要內(nèi)容</b></p><p> (1)、認(rèn)真閱讀任務(wù)書(shū),通過(guò)查閱相關(guān)文獻(xiàn)資料,在了解課題研究目的意義及現(xiàn)狀</p><p> 等基礎(chǔ)上,構(gòu)建設(shè)計(jì)方案并進(jìn)行充分論證,并撰寫(xiě)開(kāi)題報(bào)告;</p><p>
5、 (2)、進(jìn)行系統(tǒng)總體設(shè)計(jì),熟悉開(kāi)發(fā)環(huán)境;</p><p> (3)、系統(tǒng)硬件設(shè)計(jì),系統(tǒng)軟件設(shè)計(jì);</p><p> (4)、畢業(yè)設(shè)計(jì)說(shuō)明書(shū);</p><p><b> 3.主要參考資料</b></p><p> [1]李曉林.單片機(jī)原理與接口技術(shù)[M] . 北京:電子工業(yè)出版社, 2013</p>
6、<p> [2]徐沐龍.單片機(jī)原理及應(yīng)用[M] . 北京:機(jī)械工業(yè)出版社, 2013</p><p><b> 4.進(jìn)度安排</b></p><p> 審核人: 年 月 日</p><p> 基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)</p><p>
7、; 摘 要:公交車(chē)作為常用的交通工具為人們的出行提供了方便快捷的服務(wù),公交車(chē)的報(bào)站則直接影響服務(wù)的質(zhì)量。針對(duì)當(dāng)前普遍使用的公交報(bào)站器,本課題在其基礎(chǔ)上進(jìn)行了改進(jìn),設(shè)計(jì)了一款基于單片機(jī)的手動(dòng)公交報(bào)站系統(tǒng)。 </p><p> 該系統(tǒng)以AT89C51單片機(jī)為核心控制部分集合了LCD顯示,ISD4004語(yǔ)音播放,按鍵控制等多個(gè)模塊。主要實(shí)現(xiàn)的功能為:進(jìn)站和出站時(shí),通過(guò)鍵盤(pán)手動(dòng)控制報(bào)站,同時(shí)可將信息及服務(wù)用語(yǔ)
8、在顯示屏上顯示,使得乘客能及時(shí)了解所需信息,為市民提供更人性化,更完善的服務(wù)。與此同時(shí),還增加了誤報(bào)糾錯(cuò)功能使系統(tǒng)更加完善。</p><p> 關(guān)鍵詞:公交報(bào)站,LCD,AT89C51單片機(jī)</p><p> Design of bus station system based on MCU</p><p> Abstract:Bus as the commo
9、nly used transport for people to travel to provide a convenient and fast service.The newspaper station directly affects the quality of service. Aiming at the bus stop which is used widely today.This thesis has carried on
10、 the improvement, designs a manual public transportation station system based on SCM. </p><p> The system takes single-chip microcomputer as the core control part of the collection of LCD display, ISD4
11、004 voice playback, buttons control and other modules. The main function is: The driver can control the report station through the keyboard manual when inbound and outbound.At the same time, the information of station w
12、ill be displayed on the LCD screen so that the passengers can understand the required information in time. This will provide the public with more humane and more perfect serv</p><p> Keywords: bus station,
13、LCD, AT89c51 microcontroller</p><p><b> 目錄</b></p><p><b> 1 前言1</b></p><p> 1.1 選題的背景及意義1</p><p> 1.2 公交報(bào)站系統(tǒng)的研究現(xiàn)狀與發(fā)展方向2</p><
14、;p> 2系統(tǒng)的方案設(shè)計(jì)4</p><p> 2.1系統(tǒng)的工作原理4</p><p> 2.2方案比較與選擇4</p><p><b> 3 硬件設(shè)計(jì)6</b></p><p> 3.1 主控電路設(shè)計(jì)6</p><p> 3.1.1 單片機(jī)選型6</p>
15、<p> 3.1.2 振蕩電路6</p><p> 3.1.3 復(fù)位電路8</p><p> 3.2語(yǔ)音電路設(shè)計(jì)10</p><p> 3.3顯示電路設(shè)計(jì)14</p><p> 3.4按鍵電路設(shè)計(jì)14</p><p> 3.4.1按鍵的確認(rèn)16</p><p>
16、; 3.4.2按鍵防抖動(dòng)技術(shù)16</p><p> 3.4.3按鍵保護(hù)16</p><p><b> 4 軟件設(shè)計(jì)17</b></p><p> 4.1主程序流程圖17</p><p> 4.2模塊程序設(shè)計(jì)18</p><p> 4.2.1語(yǔ)音播放流程圖18</p&g
17、t;<p> 4.2.2顯示模塊流程圖20</p><p> 4.2.3按鍵模塊21</p><p><b> 5 總結(jié)22</b></p><p><b> 參考文獻(xiàn)24</b></p><p><b> 致 謝25</b></p&g
18、t;<p><b> 附 錄26</b></p><p><b> 1 前言</b></p><p> 1.1 選題的背景及意義</p><p> 當(dāng)今社會(huì)在伴隨著經(jīng)濟(jì)快速發(fā)展,城市化進(jìn)程提高的同時(shí),對(duì)于交通出行的要求也越來(lái)越高。而作為一個(gè)人口大國(guó),這一問(wèn)題尤為明顯。近年來(lái)人們的個(gè)人收入都有了很大
19、的提高,因此越來(lái)越多的人都有了私家車(chē),但這最直接的后果就是增大了城市交通的壓力。公交車(chē)的存在極大的緩解了城市交通的壓力,公交線路遍布整個(gè)城市,完全能夠滿(mǎn)足人們?nèi)粘5某鲂校粌H方便快捷而且經(jīng)濟(jì)實(shí)惠,與此同時(shí)更減少了汽車(chē)尾氣排放,發(fā)展公共交通事業(yè)是城市發(fā)展建設(shè)中非常重要的一環(huán)。想要吸引市民乘坐公交車(chē)出行,首要的方法就是提高公交車(chē)運(yùn)營(yíng)服務(wù)水平。</p><p> 作為市民出行的主要交通工具之一,公交車(chē)的服務(wù)系統(tǒng)配置將
20、直接影響乘客的出行體驗(yàn)。對(duì)于公交車(chē)大家都是非常熟悉的,在工作日出行最避免不了的就是擠公交了,過(guò)去,公交車(chē)上通常是由司機(jī)或者售票員在到站時(shí)報(bào)站,由于各地的方言口音等都存在或多或少的差異,很容易給乘客造成困擾,導(dǎo)致坐錯(cuò)或坐過(guò)站,有時(shí)需要售票員喊好幾遍,這種方式既費(fèi)時(shí)費(fèi)力又有很多弊端,這點(diǎn)在過(guò)去本人也深有體會(huì)。</p><p> 隨著科技進(jìn)步,現(xiàn)在大多數(shù)城市中公交車(chē)都已經(jīng)實(shí)現(xiàn)了無(wú)人售票方式,而微機(jī)技術(shù)和語(yǔ)音芯片等技術(shù)
21、的發(fā)展使得公交報(bào)站器誕生了,手動(dòng)公交報(bào)站即由司機(jī)手動(dòng)操作,通過(guò)操作系統(tǒng)的按鍵,當(dāng)汽車(chē)進(jìn)站時(shí),按下按鍵,系統(tǒng)調(diào)用程序中當(dāng)前站點(diǎn)的信息通過(guò)語(yǔ)音芯片由擴(kuò)音設(shè)備播放給乘客;出站時(shí)同理,提醒乘客下一站的站名。現(xiàn)在的報(bào)站系統(tǒng)除了基本的報(bào)站功能外還添加了許多服務(wù)用語(yǔ),例如:在上車(chē)時(shí)提醒乘客給老人、孕婦讓座,下車(chē)時(shí)注意安全等。這些功能使得公交系統(tǒng)更加完善同時(shí)也為乘客提供了更加人性化的服務(wù)。</p><p> 手動(dòng)公交報(bào)站雖然操
22、作簡(jiǎn)便但也存在一些弊端,司機(jī)在開(kāi)車(chē)的同時(shí),還要分出精力操作報(bào)站器,容易分散注意力也增加了工作量,尤其是上下班高峰期,車(chē)輛擁堵、路況復(fù)雜,這種情況下會(huì)存在很大的安全隱患,這就是為什么大家有時(shí)在乘車(chē)時(shí)會(huì)發(fā)現(xiàn)司機(jī)沒(méi)有報(bào)站。另一方面,由于是人工操作,出現(xiàn)差錯(cuò)是必不可少的,如錯(cuò)報(bào)、漏報(bào)等在所難免,有時(shí)沒(méi)有報(bào)站,下一站又連報(bào)了好幾站的情況相信大家也是遇到過(guò)的。</p><p> 針對(duì)上述情況,本課題模擬設(shè)計(jì)了一款手動(dòng)公交報(bào)
23、站系統(tǒng),具有基本的報(bào)站功能。同時(shí)增加了改錯(cuò)功能,即出現(xiàn)錯(cuò)報(bào)、漏報(bào)時(shí),司機(jī)可以通過(guò)按鍵選擇上一站或下一站重新報(bào)站,減少了報(bào)站出錯(cuò)帶來(lái)的影響;另外,系統(tǒng)配備了液晶顯示屏,能夠顯示當(dāng)前站及下一站站名。因?yàn)榫捅救怂?jiàn)的公交車(chē)上都是在車(chē)內(nèi)一側(cè)設(shè)有公交線路站牌,到一站后該站紅燈亮,由于方位問(wèn)題很多乘客不容易看到,對(duì)于不熟悉線路的乘客如果沒(méi)聽(tīng)清報(bào)站很容易坐過(guò)站,而通過(guò)車(chē)載液晶屏可以及時(shí)獲取站臺(tái)信息,很好的避免了上述情況發(fā)生。</p>&
24、lt;p> 1.2 公交報(bào)站系統(tǒng)的研究現(xiàn)狀與發(fā)展方向</p><p> 公交車(chē)自誕生以來(lái)一直伴隨著城市交通事業(yè)的變化發(fā)展。在不同的城市,受到人口、環(huán)境、人均收入等各種因素影響公交系統(tǒng)稍有差別。根據(jù)公交車(chē)報(bào)站的方式可以將起分為:人工報(bào)站、手動(dòng)語(yǔ)音報(bào)站、自動(dòng)報(bào)站。過(guò)去在鄉(xiāng)鎮(zhèn)中乘車(chē)人數(shù)很少,地域也小,到目的地時(shí)只要乘務(wù)人員提醒一下即可;在城市中人口流動(dòng)大,交通線路復(fù)雜只靠乘務(wù)人員很難承擔(dān)這樣的工作量,因此一套
25、智能公交報(bào)站系統(tǒng)是必不可少的,而手動(dòng)報(bào)站器造價(jià)低廉,操作簡(jiǎn)單,低成本即可實(shí)現(xiàn)所需的各種功能。在交通線路繁多的城市是首選方案;在較為發(fā)達(dá)的大城市中人流量極大,經(jīng)濟(jì)科技條件完全可以建立自動(dòng)報(bào)站系統(tǒng)設(shè)施,可以達(dá)到報(bào)站零錯(cuò)誤的同時(shí)也減輕了司機(jī)的工作量。 </p><p> 公交車(chē)報(bào)站系統(tǒng)的研究不論是在國(guó)內(nèi)還是國(guó)外都經(jīng)歷了很久的歷史:</p><p><b> 國(guó)內(nèi)研究現(xiàn)狀</
26、b></p><p> 我國(guó)由于經(jīng)濟(jì)起步較晚,所以從事該方面研究的時(shí)間較短。城市公共交通設(shè)施的建設(shè)和發(fā)展一直都落后于其他國(guó)家,公交車(chē)在其中的作用也一直沒(méi)有受到過(guò)重視。直到近些年來(lái)隨著車(chē)輛的急劇增加導(dǎo)致的交通擁擠、尾氣污染、環(huán)境惡化等一系列問(wèn)題引起了人們的重視,政府認(rèn)識(shí)到了公交車(chē)在其中的重要性,開(kāi)始加大對(duì)公交設(shè)施建設(shè)的投資。由此產(chǎn)生的公交車(chē)報(bào)站系統(tǒng)也有了很大進(jìn)步,到目前為止全國(guó)大多城市已基本普及了智能報(bào)站系
27、統(tǒng),而部分發(fā)達(dá)城市已經(jīng)建立了完整的自動(dòng)報(bào)站設(shè)施,由總站統(tǒng)一調(diào)度,能讓資源得到充分的利用。</p><p><b> 國(guó)外研究現(xiàn)狀</b></p><p> 在國(guó)外對(duì)于這方面的研究要比國(guó)內(nèi)早幾十年,而其中較早的則是日本,大約是在</p><p> 20世紀(jì)70年代研制出了公共汽車(chē)定位系統(tǒng),這一研究就是智能公交系統(tǒng)的雛形。而后來(lái)人們所知道的C
28、TCS系統(tǒng)也是由日本設(shè)計(jì)開(kāi)發(fā)的;之后稍晚一些從事該方面研究的是美國(guó)。與日本不同,美國(guó)的側(cè)重點(diǎn)在對(duì)出行者性息、電子收費(fèi)、車(chē)隊(duì)管理以及交通需求管理等方面的研究,而其中也包括了車(chē)輛自動(dòng)定位系統(tǒng);歐洲各國(guó)家城市都有著悠久的歷史,基于街道較為狹窄的特點(diǎn),其研究重點(diǎn)在于建設(shè)公交專(zhuān)用道和公交信號(hào)優(yōu)先。</p><p> 無(wú)論是何種的研究方向,其最終目的都是為人們提供更加方便快捷更加舒適的出行體驗(yàn)。通過(guò)這些我們不難看出公交報(bào)站
29、器將逐漸由人工手動(dòng)向自動(dòng)化、智能化發(fā)展,實(shí)現(xiàn)完全自動(dòng)化是其必然的發(fā)展方向。 </p><p> 2 系統(tǒng)的方案設(shè)計(jì) </p><p> 2.1 系統(tǒng)的工作原理</p><p> 根據(jù)公交報(bào)站器的功能要求,設(shè)計(jì)了如圖2.1的結(jié)構(gòu)圖,其中包括單片機(jī)核心控制部
30、分、單片機(jī)最小系統(tǒng)(電源、振蕩、復(fù)位電路等)、按鍵電路、顯示模塊、語(yǔ)音模塊。</p><p> 本系統(tǒng)使用八位單片機(jī)作為控制器。當(dāng)系統(tǒng)接收到報(bào)站按鍵指令時(shí),單片機(jī)通過(guò)語(yǔ)音芯片調(diào)用語(yǔ)音模塊錄制好的語(yǔ)音信息,再通過(guò)語(yǔ)音輸出電路進(jìn)行語(yǔ)音報(bào)站。同時(shí),單片機(jī)通過(guò)程序讀取站點(diǎn)信息,送入液晶顯示模塊,將站名、站數(shù)等信息顯示在屏幕上。當(dāng)汽車(chē)到達(dá)某站時(shí),司機(jī)或乘務(wù)人員通過(guò)鍵盤(pán)來(lái)控制系統(tǒng)進(jìn)行工作。</p><p
31、> 圖2.1 系統(tǒng)結(jié)構(gòu)圖</p><p> 2.2 方案比較與選擇</p><p> 方案一:公交車(chē)自動(dòng)報(bào)站器</p><p> 就目前來(lái)說(shuō),常見(jiàn)的自動(dòng)報(bào)站方式有如下幾種:一種是基于GPS的公交報(bào)站系統(tǒng),</p><p> 其原理是通過(guò)GPS定位系統(tǒng)確定汽車(chē)當(dāng)前所在位置的坐標(biāo),當(dāng)公交車(chē)到達(dá)預(yù)設(shè)站點(diǎn)一</p>&l
32、t;p> 定范圍內(nèi)時(shí)即自動(dòng)播報(bào)站臺(tái)信息以及服務(wù)用語(yǔ)等等,同樣離開(kāi)該范圍后,亦會(huì)播放出站語(yǔ)音;另一種是無(wú)線射頻識(shí)別技術(shù),在各個(gè)站臺(tái)建設(shè)一個(gè)無(wú)線信號(hào)發(fā)射裝置,而車(chē)上配備有接收裝置,到達(dá)站點(diǎn)范圍內(nèi),解碼接收到的信號(hào),調(diào)用程序,對(duì)站臺(tái)信息進(jìn)行播報(bào);除此之外 還有一種是通過(guò)對(duì)車(chē)輪軸的轉(zhuǎn)角脈沖進(jìn)行計(jì)數(shù),將計(jì)數(shù)值和預(yù)置值對(duì)比,即可確定報(bào)站時(shí)刻,達(dá)到準(zhǔn)確報(bào)站的目的。還有一些使用很少的方式,這里就不一一列舉了。</p><p&
33、gt; 這種報(bào)站方式最顯著的優(yōu)點(diǎn)就是節(jié)約勞動(dòng)力,全程自動(dòng)實(shí)現(xiàn),無(wú)需人工操作而且準(zhǔn)確快捷。但其最大的前提是要花費(fèi)大量人力物力進(jìn)行系統(tǒng)的建設(shè),一旦建成所帶來(lái)的效益也是不容忽視的。</p><p><b> 方案二:手動(dòng)報(bào)站</b></p><p> 在公交車(chē)上配有控制器,到站時(shí)司機(jī)只需按下按鍵,即可調(diào)用程序控制輸出模塊進(jìn)行報(bào)站。</p><p&g
34、t; 與自動(dòng)報(bào)站的方式相比較,手動(dòng)報(bào)站功能雖然落后很多,但其最大的優(yōu)勢(shì)在于造價(jià)低廉,系統(tǒng)簡(jiǎn)單,易于實(shí)現(xiàn)。雖然在一定程度上增加了司機(jī)的工作,但由于低付出高回報(bào),只需少量操作即可達(dá)到接近自動(dòng)報(bào)站的效果,使得手動(dòng)報(bào)站在很多地區(qū)仍占有較大的比例。</p><p> 對(duì)上述方案進(jìn)行比較,自動(dòng)報(bào)站系統(tǒng)普遍造價(jià)較高,定位精度能否符合要求,有待研究;站臺(tái)裝置建設(shè)不僅費(fèi)時(shí)費(fèi)力,同時(shí)不同線路的信號(hào)干擾問(wèn)題也須要考慮。而且一旦公交
35、線路發(fā)生變化,增減站臺(tái)等都會(huì)造成系統(tǒng)無(wú)法正常運(yùn)行。由此也可以看出自動(dòng)報(bào)站系統(tǒng)尚處于研究發(fā)展階段,還存在一些缺陷。</p><p> 自動(dòng)報(bào)站與手動(dòng)報(bào)站在輸出部分基本上相同,區(qū)別在于輸入信號(hào)是來(lái)源于手動(dòng)還是其他方式。綜合上述分析結(jié)合單片機(jī)系統(tǒng)設(shè)計(jì)的原則,本設(shè)計(jì)選用手動(dòng)報(bào)站系統(tǒng)。與自動(dòng)報(bào)站相比可靠性和性?xún)r(jià)比較高同時(shí)操作簡(jiǎn)單,更重要的是設(shè)計(jì)周期短,易于實(shí)現(xiàn)和檢測(cè),發(fā)現(xiàn)問(wèn)題也能夠及時(shí)修正。</p><
36、;p><b> 3 硬件設(shè)計(jì)</b></p><p> 3.1 主控電路設(shè)計(jì)</p><p> 3.1.1 單片機(jī)選型</p><p> 單片機(jī)的選擇對(duì)于后續(xù)的電路設(shè)計(jì)和軟件編程的工作量和復(fù)雜程度都有著很大的影響,在選型時(shí)應(yīng)遵循基本原則,功能最低要求要能夠達(dá)到設(shè)計(jì)要求,在此基礎(chǔ)上考慮可靠性以及性?xún)r(jià)比等。同時(shí)在設(shè)計(jì)時(shí)還要盡量用芯片完
37、成,少用外圍器件,因?yàn)檫^(guò)多的外接電路不僅會(huì)增加成本還會(huì)增加系統(tǒng)復(fù)雜性出錯(cuò)率也會(huì)相應(yīng)提高,因此要簡(jiǎn)化外圍電路,盡可能用軟件功能取代硬件功能。綜合上述原則,本人選用了AT89C51單片機(jī)。</p><p> AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器。選擇該型號(hào)是基于以下幾點(diǎn):指令簡(jiǎn)單,易學(xué)易懂;外圍電路簡(jiǎn)單,硬件設(shè)計(jì)方便;IO口操作簡(jiǎn)單,無(wú)方向寄存器;資源豐富,一般設(shè)計(jì)足
38、夠用了,要實(shí)現(xiàn)本設(shè)計(jì)的功能完全足夠了;價(jià)格便宜、容易購(gòu)買(mǎi),資料豐富容易查到,程序燒寫(xiě)簡(jiǎn)單等多種優(yōu)點(diǎn)。同時(shí)在單片機(jī)的學(xué)習(xí)中我們教學(xué)使用的也是該型號(hào),因此對(duì)其功能和指令都較為熟悉,在設(shè)計(jì)時(shí)也方便很多。</p><p> 3.1.2 振蕩電路</p><p> 單片機(jī)系統(tǒng)內(nèi)都有晶體振蕩器,它通過(guò)與單片機(jī)內(nèi)部電路結(jié)合產(chǎn)生系統(tǒng)所需的時(shí)鐘頻率,而晶振頻率的高低直接決定了單片機(jī)運(yùn)行的快慢。主要由一個(gè)
39、單級(jí)反相器組成。XTAL1為反相器的輸入,XTAL2為反相器的輸出??梢岳盟鼉?nèi)部的振蕩器產(chǎn)生時(shí)鐘,只要在XTAL1和XTAL2引腳上外接一個(gè)晶體及電容組成的并聯(lián)諧振電路,便構(gòu)成一個(gè)自激振蕩器,此方法稱(chēng)為內(nèi)部方式。 </p><p> 另一種方法為外部時(shí)鐘方式,外部振蕩信號(hào)通過(guò)XTAL2端直接接至內(nèi)部時(shí)鐘電路內(nèi)部反相放大器的輸入端XTAL1端接地。</p><p> 上述兩種方式作用都
40、是一樣的,即向系統(tǒng)提供時(shí)鐘,其區(qū)別是外部方式頻率穩(wěn)定且精度高而內(nèi)部方式一般不夠準(zhǔn)確,存在一定誤差。在應(yīng)用時(shí)如果對(duì)準(zhǔn)確性要求不高的話(huà)可以選用內(nèi)部時(shí)鐘方式。</p><p> 本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,這種方式的結(jié)構(gòu)緊湊,成本低廉,可靠性高。 振蕩器的電路中包括外接的反饋元件,即片外晶體振蕩器及電容C1,C2,它們組成的并聯(lián)諧振回路構(gòu)成了一個(gè)自激振蕩器,向內(nèi)部時(shí)鐘電路提供振蕩時(shí)鐘。電容的大小取決于片外晶體的振蕩頻率。
41、振蕩器的電路如圖3.1所示。</p><p> 圖3.1 振蕩電路圖</p><p> 在單片機(jī)中對(duì)所使用的振蕩晶體的參數(shù)要求如下: </p><p> ESR(等效串聯(lián)電阻):根據(jù)所需頻率按圖3.2選取。 </p><p> C0(并聯(lián)電容):最大7.0pF。 </p><p> CL(負(fù)載電容):30pF
42、+3pF。 </p><p> 其誤差及溫度變化的范圍要按系統(tǒng)的要求來(lái)確定。</p><p> 圖3.2 ESR與頻率的關(guān)系曲線 </p><p> 在本設(shè)計(jì)中,在XTAL1和XTAL2引腳上外接一個(gè)12MHZ的晶振及兩個(gè)20nF的電容。</p><p> 3.1.3 復(fù)位電路</p><p> 所有單片
43、機(jī)在啟動(dòng)的時(shí)候都需要復(fù)位,使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開(kāi)始工作。AT89C51單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)時(shí)鐘電路工作后,持續(xù)給出2個(gè)機(jī)器周期的高電平即可完成復(fù)位操作。復(fù)位方式分為手動(dòng)復(fù)位和上電復(fù)位: </p><p><b> 手動(dòng)復(fù)位</b></p><p> 手動(dòng)復(fù)位需要人為在復(fù)位輸入端RST上加入
44、高電平。通常采取的辦法是在RST端和正電源VCC之間接一個(gè)按鈕。按下按鈕后電源端的高電平就會(huì)直接加到RST端。由于人的動(dòng)作即使很快也能使按鈕保持接通數(shù)十毫秒,保證能滿(mǎn)足復(fù)位的時(shí)間要求。</p><p><b> 2、 上電復(fù)位</b></p><p> AT89C51的上電復(fù)位電路,只要在RST復(fù)位輸入引腳上接一電容至VCC端,下接一個(gè)電阻到地即可。上電復(fù)位的過(guò)程
45、是在加電時(shí),復(fù)位電路通過(guò)電容加給RST端一個(gè)短暫的高電平信號(hào),此高電平信號(hào)隨著VCC對(duì)電容的充電過(guò)程而逐漸回落,即RST端的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)間。</p><p> 上電復(fù)位適用于較為成熟的產(chǎn)品中,而手動(dòng)按鍵復(fù)位比較適合樣本制作或?qū)嶒?yàn)調(diào)試等場(chǎng)合,因此本設(shè)計(jì)中采用手動(dòng)復(fù)位方式,電路圖如圖3.3所示</p><p><b> 圖3.3 復(fù)位電路</b><
46、;/p><p> 3、 復(fù)位后寄存器的狀態(tài)</p><p> 當(dāng)系統(tǒng)復(fù)位后,內(nèi)部寄存器的狀態(tài)如表3.1所列,即在SFRS中,除了端口鎖存器、堆棧指針SP和串行口的SBUF外,其余的寄存器全部清0,端口鎖存器的復(fù)位值為0FFH,堆棧指針值為07H,SBUF內(nèi)為不定值。內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí),RAM的內(nèi)容是不定的。</p><p> 表3.1 復(fù)
47、位后寄存器狀態(tài)</p><p> 3.2 語(yǔ)音電路設(shè)計(jì)</p><p> 報(bào)站系統(tǒng)中語(yǔ)音部分也是重要的一塊,隨著科技產(chǎn)品集成化提高,語(yǔ)音芯片的研究和應(yīng)用也越來(lái)越廣泛,因此也造成了芯片的種類(lèi)繁多,功能各異,要從眾多芯片中做出合適的選擇,要考慮多方面的因素。</p><p> 在選擇時(shí)首先要考慮設(shè)計(jì)的功能要求,本設(shè)計(jì)為公交報(bào)站器,因此芯片要以放音功能為主,但同時(shí)考
48、慮到站點(diǎn)變更等因素,也需要具有錄音功能;由于報(bào)站器的使用時(shí)間會(huì)很久,因此語(yǔ)音內(nèi)容保存的時(shí)間要久。通常有錄音功能的芯片也具有放音功能。</p><p> 就目前市場(chǎng)上常見(jiàn)的一些語(yǔ)音芯片中WTN3、WT5S、WTH等系列是一次性語(yǔ)音的,不作考慮;排除其它音質(zhì)不好的,語(yǔ)音長(zhǎng)度不合適的芯片后,我選擇了ISD4004系列語(yǔ)音芯片。</p><p> 首先該系列語(yǔ)音芯片采用多電平直接模擬量存儲(chǔ)技術(shù)
49、, 每個(gè)采樣值直接存貯在片內(nèi)閃爍存貯器中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂(lè)、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。在音質(zhì)上完全可以滿(mǎn)足報(bào)站的要求;同時(shí)芯片單片錄放時(shí)間為8到16分鐘,非常適用于移動(dòng)電話(huà)及其他便攜式電子產(chǎn)品中。語(yǔ)音信息存存放在閃爍存儲(chǔ)器中,可在斷電情況下保存一百年(典型值),可反復(fù)錄音十萬(wàn)次。</p><p><b> 表3
50、.2 管腳功能</b></p><p> ISD4004與外圍設(shè)備的連接:</p><p> 語(yǔ)音芯片ISD4004主要與三部分外圍設(shè)備連接,即單片機(jī)控制電路、語(yǔ)音錄入電路和語(yǔ)音播放電路。電路圖如圖3.4所示:</p><p> 圖3.4 ISD4004外圍電路連接圖</p><p> 3.3 顯示電路設(shè)計(jì)</p&
51、gt;<p> 顯示屏共分為電子顯示屏(LED)和液晶顯示屏(LCD)兩種。兩種顯示器各有特點(diǎn),并不能簡(jiǎn)單的作比較。由于液晶顯示器LCD(Liquid Crystal Display)廣泛應(yīng)用于微型計(jì)算機(jī)系統(tǒng)中,具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn),LCD在大小和形狀上更加靈活,接口簡(jiǎn)單,不但可以顯示數(shù)字、字符,還可以顯示文字和圖形。而且現(xiàn)在LCD已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件了。因此本設(shè)計(jì)選用的是LCD1
52、602液晶顯示屏。</p><p> 該顯示屏能同時(shí)顯示16列2行即32個(gè)字符,是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。1602采用14腳接口,與單片機(jī)的連接電路如圖3.5所示:</p><p> 圖3.5 LCD1602與單片機(jī)連接電路圖</p><p> 3.4 按鍵電路設(shè)計(jì)</p><p> 最后是輸入部分的設(shè)計(jì)
53、,本設(shè)計(jì)使用最簡(jiǎn)單的鍵盤(pán)輸入。鍵盤(pán)是由一些按鍵或開(kāi)關(guān)組合而成的輸入設(shè)備,它是單片機(jī)系統(tǒng)中最常用的人機(jī)聯(lián)系的設(shè)備。操作人員可以向系統(tǒng)輸入一些簡(jiǎn)單的數(shù)據(jù)或指令。</p><p> 鍵盤(pán)按其結(jié)構(gòu)形式可分為編碼式鍵盤(pán)和非編碼式鍵盤(pán)兩種類(lèi)型。編碼式鍵盤(pán)通過(guò)其內(nèi)部的硬件電路自動(dòng)產(chǎn)生被按鍵的編碼。這種鍵盤(pán)使用方便但是價(jià)格較為昂貴;非編碼式鍵盤(pán)則通過(guò)軟件程序來(lái)識(shí)別按鍵及鍵值;這種方式結(jié)構(gòu)簡(jiǎn)單,但是不如編碼式的使用起來(lái)方便,按鍵
54、識(shí)別程序的編制也比較麻煩。</p><p> 此外鍵盤(pán)還可分為獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán)。當(dāng)所用按鍵較少時(shí)可選用獨(dú)立式按鍵;矩陣式則用于按鍵較多的地方。本設(shè)計(jì)中需要實(shí)現(xiàn)的功能有進(jìn)站及出站語(yǔ)音報(bào)站還有在報(bào)錯(cuò)時(shí),可以調(diào)節(jié)到上一站和下一站,因此一共需要四個(gè)按鍵,所以選擇獨(dú)立式按鍵,即各個(gè)按鍵單獨(dú)使用一根接口。按鍵電路圖如圖3.6所示</p><p><b> 圖3.6 按鍵電路<
55、/b></p><p> 在選定鍵盤(pán)后還必須要解決以下問(wèn)題: </p><p> 3.4.1 按鍵的確認(rèn)</p><p> 每一個(gè)按鍵即是一個(gè)機(jī)械開(kāi)關(guān),按下按鍵后,首先要判斷按鍵是否按下,而鍵的閉合與否則取決于口線的高低電平上。由于是機(jī)械開(kāi)關(guān),考慮到機(jī)械觸點(diǎn)的彈性及電壓突跳的因素,往往在觸電閉合或斷開(kāi)的瞬間會(huì)出現(xiàn)電壓抖動(dòng),很容易造成按鍵確認(rèn)失誤,因此就需
56、要按鍵防抖動(dòng)技術(shù)。</p><p> 3.4.2 按鍵防抖動(dòng)技術(shù)</p><p> 為了使系統(tǒng)對(duì)一次按鍵動(dòng)作只確認(rèn)一次鍵值,必須排除抖動(dòng)的影響,主要有硬件及軟件兩種解決手段。</p><p> 硬件方法就是在按鍵電路中加入與非門(mén)電路,這樣即使按鍵時(shí)反生抖動(dòng)也不會(huì)影響系統(tǒng)判斷鍵值;其特點(diǎn)是在每個(gè)按鈕上都要加消抖電路,對(duì)于按鍵較多的地方并不適用;</p>
57、;<p> 本設(shè)計(jì)中選用軟件消抖方式,即采用時(shí)間延遲的方法避開(kāi)抖動(dòng),當(dāng)程序第一次檢測(cè)到按鍵信號(hào)后延遲約10到20毫秒,再次檢測(cè),如果按鍵處的電平狀態(tài)仍然保持不變,則判定為按鍵按下,在按鍵釋放時(shí)同理。</p><p> 3.4.3 按鍵保護(hù)</p><p> 除上述問(wèn)題外,還有另外一種情況即有時(shí)會(huì)有同時(shí)按下雙鍵或多個(gè)鍵。這種情況是不在原先考慮情況中的,因此我們要通過(guò)嚴(yán)格的
58、邏輯處理。每次只處理一個(gè)按鍵,期間對(duì)任何按鍵的操作不作處理,且不論一次按鍵時(shí)間有多長(zhǎng),系統(tǒng)僅執(zhí)行一次的按鍵程序。</p><p><b> 4 軟件設(shè)計(jì)</b></p><p><b> 4.1主程序流程圖</b></p><p> 圖4.1 主程序流程圖</p><p> 打開(kāi)系統(tǒng)后,進(jìn)行
59、初始化設(shè)置,使系統(tǒng)各部分恢復(fù)到初始狀態(tài),本系統(tǒng)旨在模擬實(shí)現(xiàn)報(bào)站功能,所以預(yù)設(shè)5個(gè)站點(diǎn)。起始時(shí)默認(rèn)為上行線,系統(tǒng)開(kāi)始執(zhí)行按鍵掃描程序,如有按鍵按下則判斷鍵值,并按照指令調(diào)用程序給語(yǔ)音模塊和顯示模塊執(zhí)行報(bào)站功能,期間程序會(huì)不斷檢測(cè)是否到達(dá)終點(diǎn)站,如果到達(dá)終點(diǎn)站則會(huì)自動(dòng)切換到下行線,重復(fù)上述過(guò)程。</p><p> 軟件設(shè)計(jì)過(guò)程采用模塊化設(shè)計(jì),本系統(tǒng)共分為以下幾個(gè)模塊:主程序、語(yǔ)音模塊、顯示模塊、按鍵模塊。</
60、p><p> 4.2 模塊程序設(shè)計(jì)</p><p> 4.2.1 語(yǔ)音播放流程圖</p><p> 語(yǔ)音部分較為簡(jiǎn)單,系統(tǒng)運(yùn)行后執(zhí)行上電操作,并進(jìn)行上電延遲直至上電結(jié)束后開(kāi)始執(zhí)行指令,調(diào)用預(yù)設(shè)地址中的內(nèi)容,進(jìn)行語(yǔ)音播放。</p><p> 圖4.2 語(yǔ)音播放流程圖</p><p> 4.2.2 顯示模塊流程圖&l
61、t;/p><p> 系統(tǒng)上電后,顯示模塊初始化,當(dāng)接收到鍵盤(pán)指令后,調(diào)用預(yù)存的字符代碼,解碼并通過(guò)液晶屏幕顯示出來(lái)。</p><p> 圖4.3 顯示模塊流程圖4.2.3 按鍵模塊</p><p> 在按鍵控制部分,本設(shè)計(jì)采取的是軟件處理的方式。系統(tǒng)運(yùn)行后,開(kāi)始掃描按鍵當(dāng)有按鍵按下,程序判斷按鍵電平狀態(tài),若為低電平,則延時(shí)100MS,之后再次檢測(cè)按鍵信號(hào),若按鍵仍
62、為低電平,則認(rèn)為此時(shí)為按下?tīng)顟B(tài),之后再判斷鍵值,根據(jù)按鍵執(zhí)行指令,跳轉(zhuǎn)執(zhí)行語(yǔ)音和顯示程序。否則判定按鍵沒(méi)有按下,重新進(jìn)行掃描。模塊軟件控制流程如圖所示</p><p> 圖4.4 按鍵部分流程圖</p><p><b> 5 總結(jié)</b></p><p> 經(jīng)過(guò)幾個(gè)月的努力,本次設(shè)計(jì)已接近尾聲。通過(guò)后期的調(diào)試、修改,系統(tǒng)已經(jīng)基本實(shí)現(xiàn)了公交
63、報(bào)站的功能。</p><p> 本設(shè)計(jì)應(yīng)用了單片機(jī)的多種功能,從輸入信號(hào)采集,到數(shù)據(jù)處理,再到輸出控制綜合了硬件軟件等手段。首先,本系統(tǒng)成本低,系統(tǒng)簡(jiǎn)單穩(wěn)定,只需簡(jiǎn)單的操作即可完成完整的公交報(bào)站功能。系統(tǒng)運(yùn)行時(shí)默認(rèn)為上行線,到達(dá)站點(diǎn)時(shí),按下按鍵即開(kāi)始報(bào)站,同時(shí)在液晶屏上顯示站點(diǎn)信息及服務(wù)用語(yǔ);出站時(shí)提示下一站,到達(dá)終點(diǎn)站自動(dòng)切換到下行線。本系統(tǒng)的創(chuàng)新點(diǎn)在于增加了誤報(bào)糾錯(cuò)功能,即出現(xiàn)錯(cuò)誤時(shí)可通過(guò)上調(diào)和下調(diào)按鍵選擇
64、站點(diǎn)重新報(bào)站。就目前的報(bào)站系統(tǒng)來(lái)說(shuō),當(dāng)司機(jī)漏報(bào)一兩站時(shí),下一站就會(huì)連按幾下,所以會(huì)出現(xiàn)連報(bào)數(shù)站的情況,這會(huì)對(duì)乘客造成一定困擾。因此本系統(tǒng)對(duì)此作出了一些改進(jìn)。</p><p> 在調(diào)試階段,本人也發(fā)現(xiàn)了系統(tǒng)存在的許多不足。相比來(lái)說(shuō),自動(dòng)報(bào)站還是要優(yōu)于手動(dòng)報(bào)站的,但是由于實(shí)現(xiàn)有難度而且能力有限,所以退而求其次選擇了手動(dòng)報(bào)站。另外本次所用LCD顯示屏只能顯示字符而無(wú)法顯示文字,因?yàn)槲淖诛@示涉及到了字模提取等軟件,所以
65、沒(méi)有實(shí)現(xiàn)。此外語(yǔ)音部分只有原理設(shè)計(jì)也是不足之處。</p><p> 總體來(lái)說(shuō),本次設(shè)計(jì)還是讓我受益匪淺,由最初拿到課題時(shí)的茫然無(wú)措,再到查閱資料,方案篩選直到一步步實(shí)現(xiàn),使我不僅僅對(duì)所學(xué)的知識(shí)鞏固和加強(qiáng),更重要的是讓我學(xué)會(huì)了研究問(wèn)題的方法,只要認(rèn)準(zhǔn)目標(biāo),知道自己要做什么,剩下的就是一點(diǎn)點(diǎn)去付諸行動(dòng)。</p><p><b> 參考文獻(xiàn)</b></p>
66、<p> [1] 李曉林.《單片機(jī)原理與接口技術(shù)》(第2版)[M]. 電子工業(yè)出版社, 2013</p><p> [2] 徐沐龍.《單片機(jī)原理及應(yīng)用》[M]. 機(jī)械工業(yè)出版社 , 2013</p><p><b> (3)窗體頂端</b></p><p><b> 窗體底端</b></p&g
67、t;<p> [3] 陳洪軍,陳和平.《語(yǔ)音錄放芯片ISD4003及其應(yīng)用》[M]. 電子技術(shù), 2000-03-12</p><p> [4] 李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M] .北京航空航天大學(xué)出版社,2003 </p><p> [5] 李建榮,錢(qián)松.Protel軟件在電路設(shè)計(jì)中的應(yīng)用[M].電子技術(shù), 2010-12-25</p>&
68、lt;p> [6] 唐正.Proteus在單片機(jī)教學(xué)中的應(yīng)用[M].華中科技大學(xué), 2008-06-01</p><p> [7] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京航天出版社,1990 </p><p> [8] 郭天祥.新概念51單片機(jī)C語(yǔ)言教程——入門(mén)、提高、開(kāi)發(fā)、拓展[M] . 電子工業(yè)出版社</p><p> [9] 郭
69、金影. 基于單片機(jī)的LED顯示屏系統(tǒng)設(shè)計(jì)與PROTEUS仿真[M]. 大連交通大學(xué), 2010</p><p> [10] 周波.公交車(chē)自動(dòng)報(bào)站系統(tǒng)的設(shè)計(jì)[J]. 四川理工學(xué)院學(xué)報(bào):自然科學(xué)版,2008.</p><p> [11] 許連華,李學(xué)慶. 基于GPS的公交車(chē)自動(dòng)報(bào)站系統(tǒng)[J].計(jì)算工程程 ,2005.</p><p> [12] 潘新民、王燕芳.微
70、型計(jì)算機(jī)控制技術(shù).北京:電子工業(yè)出版社,2006.</p><p> [13] V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 </p><
71、p> [14] Yeager Brent.How to troubleshoot your electronic scale[J].. Powder and Bulk Engineering. 1995 </p><p> [15] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J].. TQM Journ
72、al. 2008 </p><p><b> 致 謝</b></p><p> 畢業(yè)設(shè)計(jì)終于在老師的悉心指導(dǎo)下完成了。作為一名即將離開(kāi)大學(xué)校門(mén)的學(xué)生,我把本次設(shè)計(jì)看作是大學(xué)中的最后一門(mén)功課,投入了巨大的時(shí)間和精力。設(shè)計(jì)題目是用單片機(jī)實(shí)現(xiàn)公交車(chē)報(bào)站。由于在大學(xué)中重點(diǎn)學(xué)習(xí)的是機(jī)械方面的知識(shí),僅靠自己的力量完成設(shè)計(jì)任務(wù)的難度是相當(dāng)大的。在制作設(shè)計(jì)的過(guò)程中,我確實(shí)遇到了
73、許多棘手的問(wèn)題,碰到了很多的困難。但是,這些問(wèn)題和困難在和同學(xué)們的幫助下都被一一解決。在這段時(shí)間里張老師也給予了我很大的幫助,她的一些建議和指導(dǎo)讓我少走了很多彎路。在本次設(shè)計(jì)中,我不僅學(xué)到了很多科學(xué)知識(shí)和工作方法,而且學(xué)到了作為一個(gè)研究人員應(yīng)有的治學(xué)態(tài)度和為人處世的道理,這一切都將使我終身受益。謹(jǐn)在此向致以崇高的敬意!對(duì)給予我支持和幫助的所有同學(xué)們表示衷心的感謝!</p><p><b> 附 錄&
74、lt;/b></p><p> 附錄一: 系統(tǒng)原理圖</p><p> 附錄二:LCD1602頭文件程序</p><p> #include <AT89X52.h></p><p> #include <intrins.h></p><p> sbit LcdRs=P2^0;&l
75、t;/p><p> sbit LcdRw=P2^1;</p><p> sbit LcdEn=P2^2;</p><p> sfr DBPort= 0x80; </p><p> unsigned char LCD_Wait(void)</p><p><b> {</b></p
76、><p><b> LcdRs=0;</b></p><p> LcdRw=1;_nop_();</p><p> LcdEn=1;_nop_();</p><p><b> LcdEn=0;</b></p><p> return DBPort;</p&
77、gt;<p> } </p><p> #define LCD_COMMAND0 </p><p> #define LCD_DATA1 </p><p> #define LCD_CLEAR_SCREEN0x01 </p><p> #
78、define LCD_HOMING 0x02 </p><p> void LCD_Write(bit style,unsigned char input)</p><p><b> {</b></p><p><b> LcdEn=0;</b></p><p> LcdRs
79、=style;</p><p> LcdRw=0; </p><p><b> _nop_();</b></p><p> DBPort=input; </p><p> _nop_(); </p><p> LcdEn=1; </p&
80、gt;<p> _nop_(); </p><p> LcdEn=0; </p><p><b> _nop_();</b></p><p> LCD_Wait();</p><p> } </p><p> #define
81、LCD_SHOW 0x04 </p><p> #define LCD_HIDE 0x00 </p><p> #define LCD_CURSOR0x02 </p><p> #define LCD_NO_CURSOR0x00 </p><p> #define
82、 LCD_FLASH0x01 </p><p> #define LCD_NO_FLASH0x00 </p><p> void LCD_SetDisplay(unsigned char DisplayMode)</p><p><b> {</b></p><p> LCD_Write(L
83、CD_COMMAND,0x08|DisplayMode); </p><p> } </p><p> #define LCD_AC_UP 0x02</p><p> #define LCD_AC_DOWN0x00 </p><p> #define
84、LCD_MOVE0x01 </p><p> #define LCD_NO_MOVE0x00 </p><p> void LCD_SetInput(unsigned char InputMode)</p><p><b> {</b></p><p> LCD_Write(
85、LCD_COMMAND,0x04|InputMode);</p><p><b> }</b></p><p> void LCD_Initial()</p><p><b> {LcdEn=0;</b></p><p> LCD_Write(LCD_COMMAND,0x38); &l
86、t;/p><p> LCD_Write(LCD_COMMAND,0x38);</p><p> LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); </p><p> LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);</p><p> LCD_SetInput(LCD_AC
87、_UP|LCD_NO_MOVE); </p><p><b> }</b></p><p> void GotoXY(unsigned char x,unsigned char y)</p><p><b> {</b></p><p><b> if(y==0)<
88、;/b></p><p> LCD_Write(LCD_COMMAND,0x80|x); </p><p><b> if(y==1)</b></p><p> LCD_Write(LCD_COMMAND,0x80|(x-0x40));</p><p><b> }</
89、b></p><p> void Print(unsigned char*str)</p><p><b> {</b></p><p> while(*str!='\0')</p><p><b> {</b></p><p> LCD_Wr
90、ite(LCD_DATA,*str);</p><p><b> str++; </b></p><p><b> }</b></p><p><b> }</b></p><p><b> 附錄三:主程序清單</b></p>&l
91、t;p> #include"AT89C51.H"</p><p> #include"LCD1602.h"</p><p> #define uchar unsigned char</p><p> sbit beep=P3^4;</p><p> sbit P31=P3^1;
92、 </p><p> sbit P24=P2^4; </p><p> sbit P25=P2^5; </p><p> sbit led=P1^0; </p><p> sbit re=P3^0; </p&
93、gt;<p> //sbit reset=P3^4; </p><p><b> char i;</b></p><p> uchar code dis0[]="busstation";</p><p> uchar code dis1[]="A zhan &
94、quot;; </p><p> uchar code dis2[]="B zhan ";</p><p> uchar code dis3[]="C zhan ";</p><p> uchar code dis4[]="D zhan ";</p><p>
95、; uchar code dis5[]="E z han ";</p><p><b> uchar *p;</b></p><p> uchar *p0;</p><p> void Delay1ms(unsigned int count) </p><p><b> {&
96、lt;/b></p><p> unsigned int i,j;</p><p> for(i=0;i<count;i++)</p><p> for(j=0;j<120;j++);</p><p><b> }</b></p><p> void delay()&l
97、t;/p><p><b> {</b></p><p><b> int i,j;</b></p><p> for(i=0;i<255;i++)</p><p> for(j=0;j<120;j++);</p><p><b> }</b&
98、gt;</p><p> void send() </p><p><b> {</b></p><p><b> re=0;</b></p><p> TMOD=0x02;</p><p><b> EA=1;</b></p>
99、<p><b> TH0=0xf3;</b></p><p><b> TL0=0xf3;</b></p><p><b> ET0=1;</b></p><p><b> }</b></p><p><b> main(
100、)</b></p><p><b> {</b></p><p> LCD_Initial(); </p><p> GotoXY(0,0);</p><p> Print("Now:");</p><p> GotoXY(0,1);</p>
101、<p> Print("Next:");</p><p><b> i=0;</b></p><p> GotoXY(5,0); </p><p> Print(dis0); </p><p> p=dis1; </p><p> Go
102、toXY(6,1); </p><p> Print(dis1); </p><p><b> delay();</b></p><p> beep=1; </p><p><b> delay();</b></p><p><b> d
103、elay();</b></p><p><b> delay();</b></p><p><b> beep=0; </b></p><p><b> P31=1;</b></p><p> send(); </p><p&
104、gt; TR0=1; </p><p><b> while(1)</b></p><p><b> {</b></p><p> Delay1ms(300);</p><p> while(P31); </p><p><b> d
105、elay();</b></p><p> P24=0; </p><p><b> delay();</b></p><p><b> P24=1;</b></p><p><b> delay();</b></p><
106、p><b> P25=0;</b></p><p><b> delay();</b></p><p><b> P25=1;</b></p><p><b> if(i==5)</b></p><p><b> {i=0;}&l
107、t;/b></p><p><b> else</b></p><p><b> {i++;}</b></p><p><b> switch(i)</b></p><p><b> {</b></p><p> c
108、ase 0:{p0=dis0;p=dis1;}break;</p><p> case 1:{p0=dis1;p=dis2;}break;</p><p> case 2:{p0=dis2;p=dis3;}break;</p><p> case 3:{p0=dis3;p=dis4;}break;</p><p> case 4:{p
109、0=dis4;p=dis5;}break;</p><p><b> };</b></p><p> GotoXY(5,0); </p><p> Print(p0); </p><p> GotoXY(6,1); </p><p> Print(p); <
110、/p><p><b> delay();</b></p><p> beep=1; </p><p><b> delay();</b></p><p><b> delay();</b></p><p><b> delay()
111、;</b></p><p><b> beep=0; </b></p><p> while(!P31) </p><p><b> {</b></p><p><b> delay();</b></p><p><b
112、> led=0;</b></p><p><b> }</b></p><p><b> led=1;</b></p><p><b> delay();</b></p><p><b> }</b></p>&l
113、t;p><b> }</b></p><p> void ttl(void)interrupt 1</p><p><b> {</b></p><p><b> re=~re;</b></p><p><b> }</b></p&g
114、t;<p> 附錄四:鍵盤(pán)接口參考程序:</p><p> #include<reg51.h> </p><p> void delay() //用于鍵盤(pán)消除抖動(dòng)的延時(shí)函數(shù) </p><p><b> { </b></p><p> unsigned char; for{i
115、=400;i>0;i--}; </p><p><b> } </b></p><p> void main() //主函數(shù)main() </p><p><b> { </b></p><p> unsigned char key; </p><p
116、> while(1) </p><p><b> { </b></p><p> P1=0xff; //從P1口讀數(shù)據(jù)必須先給P1口寫(xiě)1 </p><p> key=P1; //讀入P1口的數(shù)據(jù)必須先給P1口寫(xiě)1 </p><p> if(key!=0x00) //判斷是否有鍵按下,
117、當(dāng)沒(méi)有鍵按下時(shí),P1口的 數(shù)據(jù)為0x00 </p><p><b> { </b></p><p> delay(); //延時(shí),去抖動(dòng) </p><p> key=P1; //再次讀入P1口的數(shù)據(jù),賦值給變量key </p><p> if(key!=0x00) //再次
118、判斷是否有鍵按下 </p><p> switch(key) </p><p><b> { </b></p><p> case 0x01:key0();break; //按鍵0功能函數(shù) </p><p> case 0x02:key1();break; //按
119、鍵1功能函數(shù) </p><p> case 0x04:key2();break; //按鍵2功能函數(shù) </p><p> default:break; </p><p><b> } </b></p><p><b> } </b>&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子與信息工程畢業(yè)論文單片機(jī)公交車(chē)報(bào)站器設(shè)計(jì)
- 基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)論文
- 基于單片機(jī)的公交車(chē)自動(dòng)報(bào)站器畢業(yè)論文
- 基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的公交車(chē)自動(dòng)報(bào)站器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)公交車(chē)語(yǔ)音報(bào)站系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的公交車(chē)自動(dòng)報(bào)站系統(tǒng)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的公交車(chē)自動(dòng)報(bào)站系統(tǒng)
- 畢業(yè)設(shè)計(jì)基于單片機(jī)的公交車(chē)自動(dòng)報(bào)站系統(tǒng)
- 基于51單片機(jī)的公交車(chē)報(bào)站系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的公交車(chē)自動(dòng)報(bào)站系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的語(yǔ)音及顯示公交車(chē)自動(dòng)報(bào)站器畢業(yè)論文
- 畢業(yè)論文--基于單片機(jī)的公交報(bào)站系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)---公交車(chē)自動(dòng)報(bào)站系統(tǒng)
- 通信工程畢業(yè)論文_基于單片機(jī)的公交報(bào)站系統(tǒng)設(shè)計(jì)
- 公交車(chē)自動(dòng)報(bào)站系統(tǒng)畢業(yè)論文
- 單片機(jī)公交車(chē)報(bào)站器設(shè)計(jì)【開(kāi)題報(bào)告】
評(píng)論
0/150
提交評(píng)論