版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河北大學(xué)工商學(xué)院2015屆本科生畢業(yè)論文(設(shè)計(jì))河北大學(xué)工商學(xué)院裝訂線 本科生畢業(yè)論文(設(shè)計(jì)) 題目: 基于單片機(jī)的語音交通燈設(shè)計(jì) 學(xué) 部 信息科學(xué)與工程學(xué)部 學(xué)科門類 工學(xué) 專 業(yè) 電子科學(xué)與技術(shù) 學(xué) 號(hào) 2011481061 姓 名 裴芳 指導(dǎo)教師 孫雪 2015年5月10日4基于單片機(jī)的語音交通燈設(shè)計(jì)摘要本文介紹了一個(gè)基于spce061a單片機(jī)的語音交通燈控制系統(tǒng),包含硬件設(shè)計(jì)和軟件設(shè)計(jì)。本設(shè)計(jì)以spce061a單片機(jī)作為整個(gè)系統(tǒng)的控制中心,利用其強(qiáng)大的語音處理性能配合音頻放大電路實(shí)現(xiàn)語音播放。本設(shè)計(jì)硬件電路主要包括電源電路、單片機(jī)最小系統(tǒng)電路、數(shù)碼管驅(qū)動(dòng)電路、獨(dú)立按鍵電路、音頻放大電路
2、。軟件部分主要包括主程序、語音編解碼程序、數(shù)碼管顯示程序、紅綠燈切換程序、按鍵檢測(cè)程序。軟硬件有機(jī)組合,實(shí)現(xiàn)了一套完善的交通燈控制系統(tǒng)。本設(shè)計(jì)利用數(shù)碼管進(jìn)行倒計(jì)時(shí)顯示,采用雙色發(fā)光二極管作為紅綠燈,當(dāng)信號(hào)燈切換時(shí)可以進(jìn)行語音提示,基于spce061a單片機(jī)語音交通燈控制系統(tǒng)具有成本低、穩(wěn)定性強(qiáng)、電路簡(jiǎn)單等特點(diǎn)。裝訂線關(guān)鍵字:spce061a;交通燈;語音提示;數(shù)碼管design of voice traffic lights based on mcuabstractin this paper, based on a spce061a the voice-traffic light contro
3、l system, including hardware and software design and focus on the design process. this design to spce06ea as the system's control center, using its powerful voice processing performance combined with voice playback audio amplifier circuit. the design of hardware circuit as long as including a po
4、wer supply circuit, a microcontroller system circuit, digitron tube driver circuits, independent press circuit, audio amplifier circuit. speech codec software consists of a main program, programs, digitron tube display, traffic lights switching programs, key monitoring programs. organic combination
5、of hardware and software, implemented a complete set of traffic light control system.this design uses a digital countdown display, dual-color led as traffic lights, traffic lights can make voice prompts when switching, voice traffic light control system based on spce061a single-chip has the advantag
6、es of low cost, stability, simple circuits, which can be widely applied in practice.key words:spce061a;traffic light;voice prompt;digitron目錄 1緒論52語音交通燈總體方案設(shè)計(jì)62.1總體方案的論證與選擇62.2主要功能模塊論證與選擇62.3語音交通燈工作過程73語音交通燈的硬件電路設(shè)計(jì)83.1電源電路83.2復(fù)位電路93.3時(shí)鐘和鎖相環(huán)電路103.4獨(dú)立按鍵電路103.5音頻放大電路113.6數(shù)碼管顯示電路和紅綠燈顯示電路113.7總體硬件電路原理134語
7、音交通燈的軟件設(shè)計(jì)144.1主程序144.2硬件初始化程序154.3數(shù)碼管和紅綠燈程序164.4獨(dú)立按鍵檢測(cè)程序184.5 語音播放程序195開發(fā)及調(diào)試過程215.1硬件開發(fā)及調(diào)試215.2軟件開發(fā)及調(diào)試226總結(jié)236.1特點(diǎn)236.2不足與改進(jìn)23參考文獻(xiàn)24致謝24附錄25附錄251緒論隨著國民生產(chǎn)總值的提高,人民的生活質(zhì)量也穩(wěn)步提升,城市化步伐逐漸加快,道路上的車輛越來越多,城市的交通安全引起越來越多的關(guān)注。而交通安全與十字路口的行車狀況息息相關(guān),所以在這種情況下,各大十字路口的交通燈控制起著極其重要的作用。而十字路口的行車狀態(tài)得到合理、多元化的管理,除了要對(duì)十字路口實(shí)際路況進(jìn)行一下數(shù)
8、據(jù)采集并進(jìn)行詳細(xì)分析之外,還需要有一套完善的交通燈控制系統(tǒng)。因此如何研究設(shè)計(jì)出一套功能完善的十字路口交通燈控制系統(tǒng)顯得極為重要,它將對(duì)我國的城市交通發(fā)揮很大的作用。早在19世紀(jì),紅綠燈就是用來在十字路口疏導(dǎo)交通狀況的工具。當(dāng)時(shí)英國的首都倫敦相關(guān)政府為了有效管理馬路上的馬車,就在主要十字路口安裝了以燃煤氣為光源的紅、藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用這個(gè)信號(hào)燈來指示街道上的馬車通行1。這就是最早的交通信號(hào)燈了。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,其中藍(lán)色表示通行,紅色表示停止。隨著這種交通工具的出現(xiàn),使得交通得到了合理的管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有了明顯效果。采用凌陽公司1
9、6位spce061a單片機(jī)設(shè)計(jì)了一個(gè)基于單片機(jī)的帶語音提示的交通燈控制系統(tǒng)。在此設(shè)計(jì)中紅黃綠燈會(huì)交替倒計(jì)時(shí)顯示,并且在紅燈和綠燈切換時(shí)會(huì)有語音提示,另外本設(shè)計(jì)還可以通過板子上的十二個(gè)按鍵來實(shí)時(shí)模擬交通路況。設(shè)計(jì)的亮點(diǎn)就是帶語音提示功能,交通燈共分為四個(gè)狀態(tài),分別為normal狀態(tài)、emergency狀態(tài)、setup狀態(tài)、以及polling狀態(tài)。各狀態(tài)相互配合使系統(tǒng)更加完善,使用更便捷。 2語音交通燈總體方案設(shè)計(jì)本課題的目標(biāo)是設(shè)計(jì)一個(gè)基于單片機(jī)的語音交通燈。該設(shè)計(jì)主要分為控制部分、顯示部分和語音輸出部分。控制部分采用凌陽spce061a單片機(jī)最小系統(tǒng)板,顯現(xiàn)部分采用傳統(tǒng)的led燈和七段八位數(shù)碼管
10、。語音輸出部分通過spce061a單片機(jī)片內(nèi)adc輸出經(jīng)音頻電路放大,再通過揚(yáng)聲器播放。2.1總體方案的論證與選擇方案一:控制器采用凌陽公司的spce061a單片機(jī),利用其強(qiáng)大的語音處理性能配合音頻放大電路實(shí)現(xiàn)語音播放。方案二:控制部分采用ti公司的tms320系列的 dsp。顯示部分采用led燈加數(shù)碼管顯示。語音采用dsp配合外置音頻譯碼電路實(shí)現(xiàn)語音的播放。方案一優(yōu)點(diǎn)是軟件和硬件實(shí)現(xiàn)簡(jiǎn)單,且成本低,缺點(diǎn)是語音質(zhì)量略差。方案二優(yōu)點(diǎn)是語音失真度小,質(zhì)量好,但是硬件部分比較復(fù)雜,軟件算法也很復(fù)雜,而且成本很高。由于本設(shè)計(jì)對(duì)語音質(zhì)量要求不是很高,所以最終采用方案一。2.2主要功能模塊論證與選擇(1)
11、電源采用3節(jié)1.5v干電池串聯(lián),總電壓為4.5v。單片機(jī)電源采用三端ldo(spy0029)供電,輸入電壓為4.5v,輸出電壓為3.3v。(2)本設(shè)計(jì)選用凌陽公司的spce061a單片機(jī)作為主控芯片,spce061a與傳統(tǒng)的51單片機(jī)相比具有更強(qiáng)的數(shù)據(jù)處理能力。(3)音頻電路采用spce061a單片機(jī)片內(nèi)部的dac通道,音頻放大器采用凌陽公司的spy0030,該放大器具有供電電壓低、輸出功率大的特點(diǎn)2。除上述主要功能模塊外還包括鍵盤電路、車輛行人流量模擬電路、時(shí)鐘電路、鎖相環(huán)電路以及數(shù)碼管倒計(jì)時(shí)電路。系統(tǒng)設(shè)計(jì)框圖如圖2-1所示。圖2-1 系統(tǒng)設(shè)計(jì)框圖2.3語音交通燈工作過程 語音交通燈的控制中
12、心為單片機(jī),單片機(jī)上電后開始逐條執(zhí)行rom當(dāng)中的程序,通過程序可以控制單片機(jī)i/o口高低電平的狀態(tài),這樣i/o口就可以輸出一個(gè)開關(guān)量,從而實(shí)現(xiàn)控制外圍器件的功能3。本設(shè)計(jì)倒計(jì)時(shí)顯示采用的是數(shù)碼管,數(shù)碼管內(nèi)部有8個(gè)發(fā)光二極管按八字形順序排列,共分為七個(gè)段外加一個(gè)小數(shù)點(diǎn),可以通過單片機(jī)輸出的開關(guān)量來控制8個(gè)發(fā)光二極管中具體哪一個(gè)亮、哪一個(gè)滅,這樣就可以組合成0-9內(nèi)的任意數(shù)字。如果采用二位數(shù)碼管就可以顯示0-99內(nèi)任意的數(shù)字。經(jīng)單片機(jī)解碼出的音頻信號(hào)從dac輸出,對(duì)語音信號(hào)進(jìn)行放大,經(jīng)放大后的語音信號(hào)就可以驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,這就是整個(gè)系統(tǒng)的工作原理。語音交通燈上電后開始執(zhí)行主程序,主程序主要完成了對(duì)
13、硬件的初始化,接著數(shù)碼管開始倒計(jì)時(shí),當(dāng)數(shù)碼管減到零時(shí)進(jìn)行一次紅綠燈的切換,同時(shí)進(jìn)行語音提示,程序依次循環(huán)。主程序里一直檢測(cè)是否按下設(shè)置鍵,如果按下進(jìn)入設(shè)置狀態(tài),設(shè)置狀態(tài)下可以修改數(shù)碼管倒計(jì)時(shí)的最大值,這樣可以根據(jù)不同的路況來設(shè)置倒計(jì)時(shí)時(shí)間,方便適用于不同路口,也可以在不同時(shí)間段設(shè)置不同值;如果按下緊急鍵,程序跳轉(zhuǎn)到緊急狀態(tài)子程序,在緊急狀態(tài)下所有路口均為紅燈,該功能用于處理一些突發(fā)情況。3語音交通燈的硬件電路設(shè)計(jì)語音交通燈硬件采用模塊化的設(shè)計(jì)思想,將不同功能的電路分開設(shè)計(jì),然后組合在一起完成特定功能。本設(shè)計(jì)主要分為兩個(gè)模塊,即單片機(jī)最小系統(tǒng)模塊和交通燈控制模塊,整體硬件框圖由主板、數(shù)碼管、紅綠
14、燈、揚(yáng)聲器、獨(dú)立按鍵、電源六部分構(gòu)成,如圖3-1所示。 圖3-1整體硬件框圖3.1電源電路在電子設(shè)計(jì)中電源設(shè)計(jì)是系統(tǒng)設(shè)計(jì)中最重要的步驟之一,電源的穩(wěn)定性直接影響到系統(tǒng)的穩(wěn)定性。常用的電源方案有兩種,一種是采用dc-dc(開關(guān)電源),另一種是采用ldo(低壓差線性穩(wěn)壓電源)4。開關(guān)電源的主要優(yōu)點(diǎn)在于電源效率高,但是開關(guān)電源的外圍器件比較多從而導(dǎo)致系統(tǒng)成本上升。本設(shè)計(jì)采用的是低壓差線性穩(wěn)壓電源(spy0029),低壓差線性穩(wěn)壓電源具有成本低、紋波小等優(yōu)勢(shì)。spy0029需要的最小壓差僅為1v,本設(shè)計(jì)中輸入電壓為4.5v輸出電壓為3.3v,輸出電流能夠達(dá)到1a,完全滿足本次設(shè)計(jì)的需要。圖中電容(c3
15、3、c34、c35、c36)主要起濾波的作用。d3、d4是穩(wěn)壓二極管,主要起穩(wěn)壓和保護(hù)作用。系統(tǒng)電源電路如圖3-2所示。圖3-2電源電路3.2復(fù)位電路spce061a單片機(jī)為低電平復(fù)位。復(fù)位電路包括上電復(fù)位和手動(dòng)復(fù)位。剛上電時(shí),電容視為短路,rst腳相當(dāng)于接地,然后電容開始充電,隨著電容電壓不斷升高,電阻電壓不斷下降,即rst引腳電壓不斷上升至變?yōu)楦唠娖剑瑥?fù)位結(jié)束;當(dāng)按下按鍵時(shí),rst直接與gnd相連,同時(shí)電解電容被短路放電,按鍵松開時(shí),vdd對(duì)電容充電,充電電流在電阻上,rst依然為低電平,仍然是復(fù)位,充電完成后,電容相當(dāng)于開路,rst為高電平,正常工作。系統(tǒng)復(fù)位電路如圖3-3所示。圖3-3
16、復(fù)位電路3.3時(shí)鐘和鎖相環(huán)電路spce061a單片機(jī)的時(shí)鐘輸入為32.768khz,通過鎖相環(huán)電路spce061a,單片機(jī)可以倍頻到40mhz。c14和c15為晶振的負(fù)載電容。系統(tǒng)復(fù)位電路如圖3-4所示。圖3-4時(shí)鐘電路3.4獨(dú)立按鍵電路獨(dú)立按鍵電路用于程序狀態(tài)的切換。當(dāng)獨(dú)立按鍵按下時(shí)對(duì)應(yīng)的i/o口為高電平,單片機(jī)通過讀取i/o口的高低電平狀態(tài)實(shí)現(xiàn)程序狀態(tài)的切換。語音交通燈共分為四個(gè)狀態(tài),分別為normal狀態(tài)、emergency狀態(tài)、setup狀態(tài)、以及polling狀態(tài)。在normal狀態(tài)下如果按下key1則會(huì)進(jìn)入emergency狀態(tài),該狀態(tài)用于突發(fā)情況下封鎖路口,即所以路口全部為紅燈,
17、不允許任何車輛和行人通過。在normal狀態(tài)下如果按下key2則進(jìn)入setup狀態(tài),該狀態(tài)用于設(shè)置各個(gè)路口的通行時(shí)間,設(shè)置完成后通過key3保存本次設(shè)置并返回到normal狀態(tài)。在normal狀態(tài)下如果按下key3則進(jìn)入polling狀態(tài),polling狀態(tài)用于統(tǒng)計(jì)車流量,此時(shí)通過key1和key2選擇播報(bào)各個(gè)路口的車流量。獨(dú)立按鍵電路電路如圖3-5所示。圖3-5獨(dú)立按鍵電路3.5音頻放大電路spce061a單片機(jī)片內(nèi)集成2路10位電流型dac,本設(shè)計(jì)中采用dac1作為音頻輸出端口。dac輸出的電流范圍為0-3ma無法直接驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,所以需要放大器對(duì)其進(jìn)行放大。放大器選用凌陽公司的spy0
18、030集成運(yùn)放,spy0030是一款專門用于對(duì)音頻信號(hào)進(jìn)行放大的芯片,該芯片有供電電壓低輸出功率大的特點(diǎn)5,而且輸出功率可以通過外部電阻調(diào)節(jié)。音頻放電路電路如圖3-6所示。圖3-6語音播放電路3.6數(shù)碼管顯示電路和紅綠燈顯示電路語音交通燈采用四組兩位七段數(shù)碼管進(jìn)行倒計(jì)時(shí)顯示,分別分布在四個(gè)路口。紅綠燈采用16個(gè)雙色led進(jìn)行顯示,其中在東西南北四個(gè)路口各放四個(gè)。數(shù)碼管和紅綠燈電路原理類似,所以一起介紹。數(shù)碼管分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管,共陽數(shù)碼管在使用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平
19、時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮6。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。本設(shè)計(jì)中采用的是共陽數(shù)碼管。數(shù)碼管結(jié)構(gòu)圖如圖3-7所示。圖3-7數(shù)碼管結(jié)構(gòu)圖由于數(shù)碼管內(nèi)部二極管數(shù)量較多,而且i/o口的輸出電流比較小無法直接驅(qū)動(dòng)數(shù)碼管,本設(shè)計(jì)中采用三極管驅(qū)動(dòng)數(shù)碼管,如圖3-8所示,當(dāng)cs-0為低電平時(shí)三極管處于飽和狀態(tài),三極管輸出電流最大,起到驅(qū)動(dòng)的作用。同理,雙色led的工作電流也比較
20、大也需要三級(jí)管擴(kuò)流才能正常工作。數(shù)碼管紅綠燈電路如圖3-8所示。圖3-8數(shù)碼管和紅綠燈電路3.7總體硬件電路原理語音交通燈硬件主要分為兩個(gè)模塊,分別是最小系統(tǒng)模塊和交通燈控制模塊。最小系統(tǒng)模塊是整個(gè)控制的核心,主要包括電源電路、復(fù)位電路、時(shí)鐘電路、鎖相環(huán)電路、i/o界面電路以及音頻播放電路。交通燈控制板是整個(gè)系統(tǒng)的功能電路,主要包括led顯示電路、數(shù)碼管顯示電路、數(shù)碼管驅(qū)動(dòng)電路、以及流量監(jiān)測(cè)電路,各電路之間相互配合。系統(tǒng)電源采用的3節(jié)5號(hào)電池,總電壓為4.5v經(jīng)ldo穩(wěn)壓到3.3v為單片機(jī)供電。上電后最小系統(tǒng)板上的電源指示燈亮,單片機(jī)完成上電復(fù)位后開始工作。單片機(jī)通過i/o口控制數(shù)碼管顯示倒計(jì)
21、時(shí)和led燈顏色的切換。當(dāng)單片機(jī)通過i/o口狀態(tài)檢測(cè)到有按鍵按下時(shí)進(jìn)行程序狀態(tài)切換。需要發(fā)出聲音信號(hào)時(shí)單片機(jī)負(fù)責(zé)把音頻信號(hào)譯碼然后由adc1通道輸出,經(jīng)放大器放大驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。4語音交通燈的軟件設(shè)計(jì)語音交通軟件采用c語言開發(fā)。編譯器選用凌陽科技股份有限公司的ide(集成開發(fā)環(huán)境)。程序設(shè)計(jì)思想采用模塊化編程,即將程序模塊分開設(shè)計(jì),每個(gè)程序模塊負(fù)責(zé)不同的功能,在對(duì)應(yīng)的頭文件中對(duì)接口函數(shù)進(jìn)行聲明。主程序可以通過對(duì)應(yīng)的頭文件調(diào)用各個(gè)程序模塊。本設(shè)軟件部分共分為五個(gè)程序模塊。分別是初始化程序模塊、紅綠燈程序模塊、數(shù)碼管顯示模塊、獨(dú)立按鍵程序模塊、語音播放程序模塊。本章將詳細(xì)介紹各個(gè)程序模塊的執(zhí)行流程
22、。4.1主程序主程序是整個(gè)程序的入口,單片機(jī)上電后從main函數(shù)開始執(zhí)行。主程序完成硬件初始化后開始進(jìn)入主循環(huán)。主循環(huán)中數(shù)碼管開始倒計(jì)時(shí),當(dāng)數(shù)碼管減到零時(shí)進(jìn)行一次紅綠燈的切換,配合語音提示。同時(shí)主程序中循環(huán)調(diào)用按鍵檢測(cè)程序,當(dāng)有按鍵按下時(shí)返回相應(yīng)的鍵值。主程序通過鍵值選擇執(zhí)行哪個(gè)子函數(shù)。當(dāng)鍵值為1時(shí),此時(shí)key1被按下,程序會(huì)跳轉(zhuǎn)到emergency子函數(shù)當(dāng)中。當(dāng)鍵值為2時(shí),此時(shí)key2被按下,程序會(huì)跳轉(zhuǎn)到setup子程序當(dāng)中,依次類推主程序完成整個(gè)程序狀態(tài)的切換。主程序流程如圖4-1所示。圖4-1主程序流程圖主程序:main() bspinit(); /硬件初始化g_cntshi=displ
23、aycnt/10; / 數(shù)碼管十位g_cntge=displaycnt%10; / 數(shù)碼管個(gè)位 for(;)inputstat = getkeyvalue();/ 循環(huán)檢測(cè)按鍵switch(inputstat)case normalstat: / normal狀態(tài)funk_normal();break; case emergencystat: / emergency狀態(tài)funk_emergency();break;case setupstat: / setup狀態(tài)funk_setup();break;case pollingstat: / polling狀態(tài)funk_query();break
24、;default:break;4.2硬件初始化程序硬件初始化程序主要完成對(duì)單片機(jī)各個(gè)外設(shè)的初始化,其中包括i/o口初始化、定時(shí)器初始化、看門狗初始化。i/o口初始化程序設(shè)置a口為帶下拉電阻的輸入,設(shè)置b口為同相低電平輸出。定時(shí)器初始化程序設(shè)置定時(shí)器為中斷方式,定時(shí)器用于音頻的解碼,調(diào)用sacm_s480_initial庫函數(shù)即可完成。看門狗用于產(chǎn)生1ms的定時(shí),在看門狗中斷服務(wù)程序中進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值為1000時(shí),則對(duì)應(yīng)1s,這樣就可以產(chǎn)生精確的延時(shí)。通過看門定時(shí)器就能實(shí)現(xiàn)數(shù)碼管計(jì)數(shù)的精確控制。圖4-1硬件初始化流程圖硬件初始化程序:void bsp_init(void) /設(shè)置a口為帶下拉電
25、阻的輸入 set_ioa_dir(0x0000);set_ioa_attrib(0x0000);set_ioa_data(0x0000);/設(shè)置b口為同相低電平輸出 set_iob_dir(0xffff);set_iob_attrib(0xffff);set_iob_data(0x0000); /設(shè)置看門狗定時(shí)時(shí)間為1ms watchdoginit(1); /使能看門狗 watchdogenable(); /完成定時(shí)器及語音播放初始化 sacm_s480_initial();4.3數(shù)碼管和紅綠燈程序紅綠燈程序主要完成雙色led的切換。當(dāng)數(shù)碼管從最大值減到0時(shí),通過片選信號(hào)選擇相應(yīng)路口的紅綠燈,
26、當(dāng)i/ob口輸出高低電平時(shí)對(duì)紅綠燈進(jìn)行顏色切換控制。數(shù)碼管顯示的控制原理與紅綠燈類似,數(shù)碼管的管腳中有段選信號(hào)和位選信號(hào)。通過片選端選擇具體哪一位顯示。由于人眼是存在視覺暫留大約為0.17s,如果片選信號(hào)切換的夠快就可以完成數(shù)碼管的動(dòng)態(tài)顯示。程序流程圖如圖4-2所示。首先通過片選信號(hào)選中低位數(shù)碼管然后發(fā)送數(shù)據(jù),延時(shí)一段時(shí)間后關(guān)閉低位數(shù)碼管,接著以同樣的方法發(fā)送高位數(shù)據(jù)。這樣就可以完成顯示0-99內(nèi)任意的數(shù)字。圖4-2主程序流程圖數(shù)碼管顯示程序:void digdisplay(unsigned char data) unsigned char hightemp; unsigned char lo
27、wtemp; hightemp = data/10; lowtemp = data%10; / 數(shù)碼管清零,防止重影 pboutput=0; / 選通高位數(shù)碼管 digcs5=0; digcs4=1; / 發(fā)送高位數(shù)據(jù) pboutput=datatablehightemp; /取位碼 / 稍作延時(shí) delayms(200); / 選通低位數(shù)碼管 digcs15=0; digcs14=1; / 發(fā)送低位數(shù)據(jù) pboutput=datatablei; / 稍作延時(shí) delayms(200); 4.4獨(dú)立按鍵檢測(cè)程序在理想情況下若單片機(jī)的i/o口出現(xiàn)低電平即可認(rèn)為是對(duì)應(yīng)的鍵被按下,但在實(shí)際情況中由于
28、按鍵在閉合和斷開的瞬間觸點(diǎn)會(huì)存在抖動(dòng)現(xiàn)象7,所以按鍵所連接的i/o口上就會(huì)出現(xiàn)一些雜波信號(hào)造成單片機(jī)的檢測(cè)錯(cuò)誤,如圖4-3所示。另外主程序中對(duì)按鍵的檢測(cè)是循環(huán)進(jìn)行的,若按鍵按下的時(shí)間較長(zhǎng)會(huì)造成單片機(jī)多次檢測(cè)到按鍵按下的情況,從而造成程序混亂。本設(shè)計(jì)在按鍵按下后以及松手后的瞬間加入了一個(gè)短時(shí)間的延時(shí)函數(shù)來濾除這段時(shí)間內(nèi)的雜波信號(hào),該濾波程序?qū)Ω哳l雜波信號(hào)的濾除具有很好的效果,另外通過在程序中加入松手檢測(cè)有效的避免了單片機(jī)誤檢測(cè)的情況。圖4-3按鍵抖動(dòng)按鍵檢測(cè)函數(shù):unsigned char getkeyvalue(void)if(key1 = 0)delay(10);if(key1 = 0)wh
29、ile(!key1);return 1;if(key2 = 0)delay(10);if(key2 = 0)while(!key2);return 2;if(key3 = 0)delay(10);if(key3 = 0)while(!key3);return 3;4.5 語音播放程序語音播放程序是整個(gè)設(shè)計(jì)的核心,語音播放主要分為三個(gè)過程分別是數(shù)據(jù)讀取、數(shù)據(jù)譯碼、數(shù)模轉(zhuǎn)換。數(shù)據(jù)讀取過程將語音資源放入解壓縮隊(duì)列,數(shù)據(jù)譯碼過程將解壓縮隊(duì)列的內(nèi)容放入輸出隊(duì)列,然后在定時(shí)器中斷的控制下進(jìn)行數(shù)模轉(zhuǎn)換,最后模擬信號(hào)經(jīng)放大后就可以通過揚(yáng)聲器輸出。所以語音播放程序主要分為主程序和定時(shí)器程序,主程序完成語音函數(shù)的
30、初始化以及將語音數(shù)據(jù)讀取到輸出隊(duì)列。定時(shí)器中斷服務(wù)程序里調(diào)用sacm_s480音頻譯碼算法將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)經(jīng)adc1輸出。語音播放程序流程圖如圖4-4所示和4-5所示。由于定時(shí)器程序比較復(fù)雜,程序代碼見附錄1。 圖4-4語音播放主程序流程圖語音播放主程序:void plays480(int index)sacm_s480_play(index, 3, 3);while(sacm_s480_status()&0x0001) != 0)sacm_s480_serviceloop();*p_watchdog_clear = c_wdtclr;sacm_s480_stop();5開發(fā)及
31、調(diào)試過程本設(shè)計(jì)開發(fā)周期為三個(gè)月,主要完成三個(gè)方面的設(shè)計(jì),硬件電路的設(shè)計(jì)、軟件程序的設(shè)計(jì)、整體調(diào)試。本章將詳細(xì)介紹開發(fā)過程中用到的工具軟件、開發(fā)過程中遇到的問題、以及問題的最終解決辦法。5.1硬件開發(fā)及調(diào)試 硬件開發(fā)是本設(shè)計(jì)的難點(diǎn),如果硬件不正常工作就無法繼續(xù)進(jìn)行,硬件設(shè)計(jì)也占用了整個(gè)開發(fā)周期的2/3。其中遇到的問題主要有元器件的選型、原理圖繪制工具的選擇、電路板的焊接、以及各個(gè)硬件模塊的測(cè)試。元器件選型過程中發(fā)現(xiàn)同種功能的芯片很多,但是通過查看產(chǎn)品的數(shù)據(jù)手冊(cè)發(fā)現(xiàn)它們之間還是有很大的區(qū)別。比如在設(shè)計(jì)數(shù)碼管啟動(dòng)電路時(shí)通過查詢資料了解到可以通過三極管實(shí)現(xiàn),但是三極管的型號(hào)卻很多,有pnp的還有npn
32、而且其各項(xiàng)參數(shù)也不一樣。這些都需要我們?cè)谠O(shè)計(jì)電路的過程中格外注意。完成元器件選型后需要進(jìn)行原理圖和pcb的設(shè)計(jì),由于eda課上學(xué)習(xí)過protel的使用于是我安裝在自己的計(jì)算機(jī)上,但是發(fā)現(xiàn)這個(gè)軟件無法在win7操作系統(tǒng)下使用,通過查詢資料發(fā)現(xiàn)它的升級(jí)版altium designer可以解決這個(gè)問題。altium designer操作也比protel靈活應(yīng)用8。altium designer操作界面如圖5-1所示。圖5-1altium designer操作界面 5.2軟件開發(fā)及調(diào)試軟件開發(fā)相對(duì)于硬件要簡(jiǎn)單很多,軟件開發(fā)的周期占整個(gè)開發(fā)周期的1/3。本設(shè)計(jì)軟件主要針對(duì)凌陽公司spce06ea單片機(jī),
33、該公司提供的ide編譯器(unspide)使用簡(jiǎn)單方便,而且支持c語言編程。采用c語言編程簡(jiǎn)化了很多工作。unspide操作界面如圖5-4-1所示。圖5-4-1unspidekeil操作界面本設(shè)計(jì)軟件的核心是如何利用凌陽提供的庫函數(shù)完成語音的編碼譯碼。凌陽壓縮算法中sacm _a2000、sacm_s 480 、sacm_s 240 主要是用來放音,可用于語音提示。本設(shè)計(jì)中采用了sacm_s 480算法。其中主要用到庫函數(shù)有sacm_s480_initial、sacm_ s480_play、sacm_ s480_stop9。sacm_s480_initial函數(shù)用于語音播放之前的初始化,sac
34、m_ s480_play函數(shù)用于播放語音隊(duì)列的語音,sacm_ s480_stop函數(shù)用于停止播放。通過這三個(gè)函數(shù)即可完成本設(shè)計(jì)中語音播放的功能。 6總結(jié)本文設(shè)計(jì)了一款帶語音提示功能的交通燈控制系統(tǒng)。本設(shè)計(jì)利用spce061a芯片的強(qiáng)大的功能,通過控制四組數(shù)碼管來模擬交通燈路口的延時(shí),并且在紅燈綠燈切換時(shí)會(huì)有語音提示。6.1特點(diǎn)在傳統(tǒng)的交通燈控制系統(tǒng)中,只考慮視覺方面,忽略了輕度近視或者色盲人群的安全問題,所以不夠人性化。而本設(shè)計(jì)就此缺點(diǎn)進(jìn)行了改進(jìn),功能簡(jiǎn)單且易行,成本也相對(duì)較低,而且重要的一點(diǎn)是加入了語音提示功能,組成了一個(gè)有聲有色的安全指示系統(tǒng),這樣就可以有效的幫助輕度近視或者色盲人群安心
35、過馬路,從而減少了交通安全事故的發(fā)生。 6.2不足與改進(jìn)(1) 本設(shè)計(jì)在設(shè)計(jì)電路時(shí)采用的是用三極管來驅(qū)動(dòng)數(shù)碼管,所以在運(yùn)行過程中數(shù)碼管亮度可能不夠亮,針對(duì)這個(gè)不足,提出的改進(jìn)方法是更換驅(qū)動(dòng)方式,用74ls595來驅(qū)動(dòng)數(shù)碼管,由于74ls595具有數(shù)據(jù)存儲(chǔ)寄存器,在移位的時(shí)候它的輸出數(shù)據(jù)基本不發(fā)生改變,數(shù)碼管也不存在閃爍感。(2) 本設(shè)計(jì)只是對(duì)交通燈運(yùn)行狀態(tài)的簡(jiǎn)單模擬,要想將其應(yīng)用到實(shí)際的路口,就需要把小數(shù)碼管換成大數(shù)碼管;但是換成室外大數(shù)碼管之后,就要考慮到電路板的防雷防水設(shè)計(jì)。 (3)電路上的獨(dú)立按鍵是需要人頻繁操作的器件,在操作過程中人體帶有的靜電可能通過按鍵接口燒毀單片機(jī)或其它器件,若在
36、按鍵接口加上一個(gè)鉗位電路將電位鉗位在一個(gè)范圍內(nèi)這樣可保護(hù)電路,防止電路的燒毀10。參考文獻(xiàn):1百度文庫: _8vqoqdxyc9s3mfrw3syxlb8cm5nmvzkh mebdrmobkxoiw3i4aodmp6 hexrtlfsm2張嚴(yán)斌凌陽16位單片機(jī)原理及應(yīng)用m北京:北京航空航天大學(xué)出版社,年3張毅坤單片微型計(jì)算機(jī)原理及應(yīng)用m出版社地點(diǎn):西安電子科技大學(xué)出版社,1998 4張志偉硬件系統(tǒng)工程師寶典m人民郵電出版社,20155高陽一種基于凌陽單片機(jī)的交通燈控制系統(tǒng)j內(nèi)蒙古科技與經(jīng)濟(jì),2011.卷月:頁碼6陳忠平單片機(jī)原理及接口技術(shù)m出版社地點(diǎn):人民郵電出版社,20117羅亞飛凌陽16
37、位單片機(jī)應(yīng)用基礎(chǔ)m出版社地點(diǎn):北京航空航天大學(xué)出版社,20038 高海賓altium designer 10從入門到精通m出版社地點(diǎn):機(jī)械工業(yè)出版社,20129羅亞飛凌陽16位單片機(jī)應(yīng)用基礎(chǔ)m北京.:北京航空航天大學(xué)出版社,200310 周志敏,紀(jì)愛華高效功率器件驅(qū)動(dòng)與保護(hù)電路設(shè)計(jì)應(yīng)用實(shí)例m出版社地點(diǎn):人 民郵電出版社,2009致 謝經(jīng)過三個(gè)多月不懈的努力,我的畢業(yè)論文接近尾聲,在不斷摸索的過程中我學(xué)習(xí)到了很多專業(yè)知識(shí),對(duì)本專業(yè)的認(rèn)識(shí)也得到了進(jìn)一步的提高。作為一個(gè)本科生的畢業(yè)論文,由于經(jīng)驗(yàn)與專業(yè)知識(shí)的匱乏,難免會(huì)遇到很多棘手的問題,做的設(shè)計(jì)可能也不不那么優(yōu)秀,所以感謝所有給予我?guī)椭睦蠋熀屯瑢W(xué)
38、,沒有你們的幫助我的論文不可能完成的這么快,而我取得這些進(jìn)步,在此首先要感謝的是我的指導(dǎo)老師孫雪孫老師,感謝孫老師在繁雜的工作中抽出時(shí)間不厭其煩的給我解答我的疑問,她嚴(yán)謹(jǐn)而不苛刻的教學(xué)方式給了我很大的幫助和影響,孫老師教會(huì)我的不僅是一些專業(yè)知識(shí),還有就是怎么去面對(duì)人生中的種種壓力與挫折,更多的是做人的道理,再次由衷的感謝孫老師在這期間給予我的指導(dǎo)與關(guān)心。由于我的學(xué)術(shù)水品有限,本篇論文參考了大量文獻(xiàn)資料,感謝學(xué)術(shù)界的前輩!也懇請(qǐng)各位老師以及學(xué)長(zhǎng)前輩批評(píng)與指正。附錄原理圖:附錄/* * file main.c * author pfang * version v1.0 * date 2015-4-
39、10 *briefm main file*/#include "spce061a.h"#include "trafficlight.h"unsigned int cnt=0;unsigned int inputstat;unsigned int g_cntshi;unsigned int g_cntge;unsigned int g_cnt;void delayms(unsigned int ret);void irq4(void) _attribute_ (isr);/* * brief: main 函數(shù) * param: 無 * retval: 無
40、*/main() bspinit(); g_cntshi=displaycnt/10; g_cntge=displaycnt%10; for(;)inputstat = getkeyvalue();switch(inputstat)case normalstat: funk_normal();break; case emergencystat: funk_emergency();break;case setupstat: funk_setup();break;case pollingstat: funk_polling;break;default:break;/* * brief: 延時(shí)函數(shù)
41、* param: 無 * retval: 無 */void delayms(unsigned int ret)int i = 0; int j = 0; for(i = 0; i < ret; i+) for(j = 0; j < =100; j+);/* * brief: nromal 子程序 * param: 無 * retva: 無 */void funk_normal(void)switch(inputstat)case c_key1:cruentstat = g_emergency_stat;break;case c_key2:cruentstat = g_setup_s
42、tat;break;case c_key3:cruentstat = g_polling_stat;break;default :break;/* * brief: emergency子程序 * param: 無 * retval: 無 */void funk_emergency(void)cnt+;if(inputstat = c_key3)cruentstat = c_status_normal;cruentstat_normal = c_1_lv;g_cnt = _sn_lvlight;g_cntshi=g_cnt/10;g_cntge=g_cnt%10;if(cnt%6000=1)pl
43、ays480(c_jingdi);*p_iob_data = c_all_red;/* * brief: setup子程序 * param: 無 * retva: 無 */void funk_setup(void)if(inputstat = c_key1)_sn_redlight+;if(_sn_redlight>99)_sn_redlight = 20;g_cnt = _sn_redlight;else if(inputstat = c_key2)_sn_lvlight+;if(_sn_lvlight>99)_sn_lvlight = 20;g_cnt = _sn_lvligh
44、t;else if(inputstat = c_key3)cruentstat = c_status_normal;cruentstat_normal = c_1_lv;g_cntshi=g_cnt/10;g_cntge=g_cnt%10;/* * brief: polling子程序 * param: 無 * retva: 無 */void funk_polling(void)if(inputstat = c_key1)southcnt = eastcnt_l + northcnt_s + weastcnt_r;northcnt = weastcnt_l + southcnt_s + east
45、cnt_r;play2number(southcnt,c_nan);play2number(northcnt,c_bei);else if(inputstat = c_key2)eastcnt = northcnt_l + weastcnt_s + southcnt_r;weastcnt = southcnt_l + eastcnt_s + northcnt_r;play2number(eastcnt,c_dong);play2number(weastcnt,c_xi);else if(inputstat = c_key3)cruentstat = c_status_normal;cruent
46、stat_normal = c_1_lv;/* * brief: 語言播放函數(shù) * param: index 索引 * retva: 無 * retva: 無 */void plays480(int index)sacm_s480_initial(1);sacm_s480_play(index, 3, 3);while(sacm_s480_status()&0x0001) != 0)sacm_s480_serviceloop();*p_watchdog_clear = c_wdtclr;sacm_s480_stop();/* * brief: 數(shù)碼管顯示函數(shù) * param: 無 *
47、retva:無 */void digdisplay(unsigned char data) unsigned char hightemp; unsigned char lowtemp; hightemp = data/10; lowtemp = data%10; pboutput=0; digcs5=0; digcs4=1; pboutput=datatablehightemp; delayms(200); digcs15=0; digcs14=1; pboutput=datatablei; delayms(200); /* * brief: 紅綠燈控制函數(shù) * param: 無 * retv
48、a: 無 */void showcontrol(void)g_cntflag+;switch(cruentstat_normal)case c_1_lv:e_2colorled = c_1_e_lv;w_2colorled = c_1_w_lv;s_2colorled = c_1_s_lv;n_2colorled = c_1_n_lv;if(g_cnt-c_shantime)if(g_cntflag>=2)g_cntflag = 0;g_cnt-;elsecruentstat_normal = c_1_shan;g_cntshi=g_cnt/10;g_cntge=g_cnt%10;break;case c_1_shan:if(shan_flag)e_2colorled = c_1_e_shan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人貸款合同電子合同續(xù)簽服務(wù)3篇
- 2025年度個(gè)人貨車租賃合同綠色物流服務(wù)標(biāo)準(zhǔn)3篇
- 2025年度個(gè)人房屋室內(nèi)裝修設(shè)計(jì)與施工環(huán)保評(píng)估合同4篇
- 2025年度個(gè)人房產(chǎn)投資合作合同范本2篇
- 二零二五年度新型面包磚研發(fā)與應(yīng)用合作協(xié)議4篇
- 征收補(bǔ)償協(xié)議書(2篇)
- 2025年度個(gè)人旅游住宿無息分期支付合同2篇
- 鐵礦粉供應(yīng)與采購合同2025版5篇
- 財(cái)務(wù)季度報(bào)告模板
- 2024年注冊(cè)城鄉(xiāng)規(guī)劃師考試題庫附參考答案(滿分必刷)
- 《壓力性尿失禁》課件
- 國企綜合素質(zhì)測(cè)評(píng)試題
- 肺功能檢查的操作與結(jié)果解讀
- 松遼盆地南部致密砂巖儲(chǔ)層成因與天然氣聚集模式研究的中期報(bào)告
- 急性戊肝護(hù)理查房
- 打樣員工作總結(jié)
- JGJT411-2017 沖擊回波法檢測(cè)混凝土缺陷技術(shù)規(guī)程
- 某新能源(風(fēng)能)公司:風(fēng)電場(chǎng)崗位月度績(jī)效考評(píng)管理辦法
- 污水管網(wǎng)溝槽槽鋼支護(hù)專項(xiàng)方案
- 深靜脈血栓(DVT)課件
- 2023年四川省廣元市中考數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論