2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  公交客車已經(jīng)在各個城市普及,給人們的出行帶來很大方便,傳統(tǒng)的公交車是由乘務人員人工報站名,因工作強度大并且其效果也差,隨著科學技術的日益發(fā)展和進步, 無人售票公交車在很多城市開始使用,自動語音報站器也應運而生,客車自動報站器是安裝在客車或公交汽車上,每到一個停車站點,能夠向車內(nèi)外人員報告車輛運行情況的自動化電子報話裝置。它在相

2、當大的程度上免除了乘務人員沿途報站的麻煩,更加方便了人們的出行,同時直接提高了公交客車服務的質(zhì)量。</p><p>  本設計介紹了一種由單片機為控制核心的客車自動報站器,該設計采用AT89S51單片機和專用的語音控制芯片ISD4004以及鍵盤顯示電路構(gòu)成客車自動報站器系統(tǒng)的硬件電路,文中詳細設計了AT89S51單片機的基本電路、ISD4004驅(qū)動電路、功能鍵電路和顯示電路的實現(xiàn)方法,采用C語言和匯編語言進行了客

3、車自動報站器的軟件設計,完成了系統(tǒng)主程序流程圖設計、鍵盤掃描子程序設計、顯示子程序設計和語音播放子程序設計。</p><p>  本設計實現(xiàn)了公交車自動報站器的語音報站和站號顯示功能,進站、出站只需由司機按下功能鍵便完成自動播報站名及服務用語,為市民提供了更人性化,更完善的服務;系統(tǒng)具有穩(wěn)定可靠、抗干擾性好、性價比高等特點。</p><p>  關鍵詞:自動報站器;51單片機;ISD400

4、4語音芯片;LED數(shù)碼管</p><p><b>  Abstract</b></p><p>  Buses have been popular in every city, for people to travel a great convenience, the traditional bus is reported the name of the statio

5、n by trainman manually, because of work intensity and its effects are poor, with the increasing development and progress of science and technology , Automated collection bus started in many cities, automatic speech stati

6、ons broadcasting device have emerged, bus stop reporter is installed in the bus or public transportation vehicle, and service in various cities, </p><p>  This design introduce a single-chip microcomputer as

7、 central-control of the bus stop reporter, the design uses AT89S51 microcontroller and a dedicated control chip ISD4004 voice and keyboard and display circuitry bus stop reporter hardware circuit, this paper designed AT8

8、9S51 SCM basic circuit, ISD4004 drive circuit, function keys circuit and display circuit realization method in detail, using C language and assembly language for a bus stop reporter software design, completed the main pr

9、ogram fl</p><p>  The design come true of the bus stop reporter's speech stations broadcasting and the station number display, pull in and outbound, the station only by the driver pressing the function k

10、ey will complete the automatic broadcast station names and service terms, to provide a more personalized and better services; system has a good stable and reliable, good anti-interference and good cost performance. </

11、p><p>  Key words:Automatic stations;51 SCM;ISD4004 voice chip; LED digital tube</p><p><b>  目 錄</b></p><p><b>  第1章 緒 論1</b></p><p>  1.1自動報站器的來源

12、與意義1</p><p>  1.2自動報站器的發(fā)展現(xiàn)狀1</p><p>  第2章 客車自動報站器設計方案4</p><p>  2.1 客車自動報站器工作原理4</p><p>  2.2 客車自動報站器的設計方案4</p><p>  第3章 客車自動報站器硬件設計6</p><

13、p>  3.1 單片機的選擇及簡介6</p><p>  3.2 單片機最小系統(tǒng)設計7</p><p>  3.2.1 晶振電路7</p><p>  3.2.2 復位電路7</p><p>  3.2.3 最小系統(tǒng)基本電路8</p><p>  3.3 電源電路8</p><p&

14、gt;  3.4 鍵盤電路9</p><p>  3.4.1 消除鍵抖動9</p><p>  3.4.2 按鍵方式10</p><p>  3.4.3 按鍵的設置10</p><p>  3.4.4 緩沖器的選擇及特點10</p><p>  3.4.5 電路連接11</p><p&g

15、t;  3.5 語音驅(qū)動電路11</p><p>  3.5.1 語音芯片12</p><p>  3.5.2 音頻功放芯片13</p><p>  3.5.3 語音驅(qū)動電路13</p><p>  3.6 顯示電路14</p><p>  3.6.1 LED簡介15</p><p>

16、;  3.6.2 數(shù)碼管結(jié)構(gòu)及工作原理15</p><p>  3.6.3 驅(qū)動器的選擇及特點16</p><p>  3.6.4 電路連接16</p><p>  第4章 客車自動報站器軟件設計17</p><p>  4.1 主程序設計17</p><p>  4.2 鍵盤程序設計19</p>

17、;<p>  4.3 顯示程序設計20</p><p>  4.4 語音錄放程序設計21</p><p><b>  第5章 結(jié)論23</b></p><p><b>  致謝24</b></p><p><b>  參考文獻25</b></p&g

18、t;<p><b>  附錄Ⅰ26</b></p><p><b>  附錄II27</b></p><p><b>  緒 論</b></p><p>  1.1自動報站器的來源與意義</p><p>  如今公交客車已經(jīng)在各個城市普及,給人們帶來很多方便,

19、在公交車上安裝自動報站器更加方便了人們的出行,尤其是對不熟悉公交線路的乘客,同時在相當大的程度上免除了乘務人員沿途報站的麻煩。因此,公共汽車的報站直接影響服務的質(zhì)量。</p><p>  隨著科學技術的日益發(fā)展和進步, 無人售票公交車在街上多起來了,自動語音報站器被廣泛使用,傳統(tǒng)由乘務人員人工報站的方式,因其</p><p>  鑒于傳統(tǒng)公交車報站系統(tǒng)的不足之處,結(jié)合公交車輛的使用特點及實

20、際營運環(huán)境,本文擬設計一種由單片機控制的公交車自動報站器。</p><p>  公交車自動報站器的設計主要是為了彌補改變傳統(tǒng)語音報站器必須由乘務員報站的落后方式,進站、出站只需由司機按下功能鍵完成自動播報站名及服務用語,為市民提供更人性化,更完善的服務 。</p><p>  1.2自動報站器的發(fā)展現(xiàn)狀</p><p>  公共汽車行駛在現(xiàn)代文明程度高的市區(qū),它是一

21、道流動的風景線,因而對整車外形乃至色彩都有更高的要求。作為公共汽車還要求有醒目和減少乘務人員勞動強度的電子報站器,電子顯示路牌,無人售票裝置,前后電視監(jiān)視系統(tǒng)等新技術的采用也將越來越普及。</p><p>  作為一個城市的公交企業(yè),它既要代表政府體現(xiàn)當?shù)爻鞘械男蜗螅忠M一切力量減少政府投資,創(chuàng)造良好的社會效益和經(jīng)濟效益。而傳統(tǒng)的公交運營系統(tǒng)的裝備和管理模式較難達到這兩者的完美結(jié)合。隨著科學技術的發(fā)展,公交應用

22、系統(tǒng)</p><p>  目前公交車報站有三種方式。</p><p>  一種是利用GPS全球衛(wèi)星定位系統(tǒng)的公交車報站系統(tǒng)。GPS 系統(tǒng)是由美國</p><p>  GPS自動語音報站器具有一下特點:</p><p><b>  a.</b></p><p><b>  b.</b

23、></p><p><b>  c. </b></p><p><b>  d.</b></p><p><b>  e. </b></p><p>  目前在美國部分城市GPS衛(wèi)星定位系統(tǒng)已經(jīng)投入使用,國內(nèi)也有此類產(chǎn)品的研制開發(fā),其功能強大,系統(tǒng)穩(wěn)定,但其投資昂貴,尤其

24、是一些中小城市無法承受。國內(nèi)GPS 語音自動報站系統(tǒng)處于試驗階段僅有部分發(fā)達城市有試驗線路采用GPS 語音自動報站器。</p><p>  第二種是基于MP3的自動報站器。隨著城市的快速發(fā)展,公交線路不時地在進行調(diào)整,站名也隨之進行變化,</p><p>  因而使研制一種新型汽車報站器顯得極為重要?;贛P3報站器可非常方便地更換播放內(nèi)容,并可播放高品質(zhì)的音樂基于MP3的新型公交車自動報

25、站器系統(tǒng)以MP3格式作為語音存儲方式,具有音質(zhì)好、抗干擾、功能強、使用簡便等一系列優(yōu)點。</p><p>  采用單片機作為主控CPU及解碼MP3數(shù)據(jù),實現(xiàn)對報站信息播放、點陣字符顯示、文件存儲以及用作優(yōu)盤功能時USB與PC機聯(lián)機的控制。</p><p>  第三種是基于CPLD 的公共汽車智能語音報站系統(tǒng)。采用復雜可編程邏輯器件(CPLD)和語音芯片ISD2560組成的智能語音報站系統(tǒng),

26、由于</p><p>  因此系統(tǒng)硬件電路簡單、調(diào)試和升級方便、可靠性高、實用性強。</p><p>  另外一種是人工報站的方式,這種方式離不開乘務人員,工作強度要求高,且目前主流的是無人售票車,人工報站的方式已經(jīng)基本被淘汰。</p><p>  客車自動報站器設計方案</p><p>  客車自動報站器工作原理</p>&l

27、t;p>  為了實現(xiàn)城市公交車的自動報站,本文設計了一套低廉、高性能的城市公交車自動報站器系統(tǒng)。</p><p>  系統(tǒng)由51單片機控制整個系統(tǒng)的錄音、放音與顯示部分,首先是鍵盤輸入,當鍵盤上有鍵按下時,通過鍵掃描程序確定按下的鍵并將鍵號送單片機,單片機調(diào)用對應按鍵子程序,同時繼續(xù)進行鍵掃描,整個過程發(fā)揮了報站器的基本功能。即客車每到一站,由司機按下放音鍵,語音電路自動工作,播報對應的到站信息;并能通過通

28、信接口電路,向語音存儲電路更新語音信息。</p><p>  也就是說客車報站器的設計主要包括:</p><p> ?。?)鍵盤輸入部分;(2)語音錄放部分;(3)LED顯示部分;(4)電源部分。</p><p>  客車自動報站器的設計方案</p><p>  服務于各城市的,每到一個停車站點,都需要報站名;本設計就是針對城市的公交客車設計

29、一款基于單片機系統(tǒng)的客車自動報站器,該客車報站器由單片機做控制器,主要由語音存儲電路、語音驅(qū)動電路、功能鍵電路、顯示電路、通信接口電路等組成;實現(xiàn)客車每到一站,由司機按下功能鍵,語音電路自動工作,播報對應的到站信息;并能通過通信接口電路,向語音存儲電路更新語音信息??傮w結(jié)構(gòu)原理框圖如圖2.1所示。</p><p>  圖2.1 客車自動報站器總體結(jié)構(gòu)原理框圖</p><p>  本次設計的

30、主控制芯片選用的是AT89S51,鍵盤部分是以獨立式按鍵方式構(gòu)成的鍵盤電路,設置七個按鍵對語音錄放進行控制,顯示部分選擇LED數(shù)碼管進行站號和工作狀態(tài)的顯示,在對鍵盤及顯示電路進行設計時需要兩個鎖存器:</p><p> ?、?4LS273是一種帶清除功能的8D觸發(fā)器;</p><p> ?、?4LS244緩沖器也就是輸入鎖存器;</p><p>  在語音報站部分

31、,即語音信號的處理上選擇的是ISD4004語音芯片,語音功率放大部分選擇LM386語音功放芯片。</p><p><b>  系統(tǒng)具有如下功能:</b></p><p> ?、?可重復性的預報站名、報站名;</p><p> ?、?可設置上、下行路線;</p><p><b>  ③ 音量可調(diào);</b&g

32、t;</p><p> ?、?在語音報站名的同時,用LED 顯示站號和上、下行狀態(tài)。</p><p>  本系統(tǒng)采用51單片機作為CPU,控制ISD4004語音芯片進行語音錄放和站名播報等功能,同時通過8段碼LED顯示器顯示站號和系統(tǒng)工作狀態(tài),鍵盤主要用于上、下行報站,播放文明宣傳語以及調(diào)整上、下行狀態(tài)和調(diào)節(jié)音量。</p><p>  客車自動報站器硬件設計<

33、/p><p><b>  單片機的選擇及簡介</b></p><p>  AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機,</p><p>  管腳圖如圖3.1所示:</p><p>  圖3.1 AT89S51管腳圖</p><p><b>  引腳功能如下:&

34、lt;/b></p><p>  P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表3.2所示。</p><p>  表3.2 P3口第二功能</p><p><b>  單片機最小系統(tǒng)設計</b></p><p>  51系列單片機最小系統(tǒng)一般應該包括:單片機、晶振電路、復位電路。本次設計首先需要

35、搭建最小系統(tǒng)的硬件電路。</p><p><b>  晶振電路</b></p><p>  如果說CPU是單片機的心臟,那么石英晶體震蕩器就相當于心臟起搏器。單片機系統(tǒng)的各部分都要以時鐘頻率為基礎,才能在CPU指揮下有條不紊一拍一拍的協(xié)調(diào)工作。AT89S51單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。</p><p>&

36、lt;b>  如圖3.2所示。</b></p><p>  A:內(nèi)部時鐘電路 B:外部時鐘電路</p><p><b>  圖3.2 晶振電路</b></p><p>  本文采用的是內(nèi)時鐘方式。</p><p><b>  復位電路<

37、/b></p><p>  復位是使CPU和系統(tǒng)其他部件處于一個確定的初始狀態(tài),并從這個初始狀態(tài)開始工作。當MCS-5l系列單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。</p><p><b>  復位電路</b></p><p>  根據(jù)應用的要求,復位操作通常有兩種基本形式:上電復位和

38、上電或開關復位。</p><p>  上電復位如圖3.3所示。</p><p>  圖 3.3 復位電路</p><p><b>  最小系統(tǒng)基本電路</b></p><p>  相應的最小系統(tǒng)電路圖,如圖3.4所示。</p><p>  圖 3.4 最小系統(tǒng)電路圖</p><

39、p>  這里設計一個發(fā)光二極管,連接在P1.0口,作為簡單的工作指示。當單片機的P1.0輸出低電平(0V)時,有正向工作電流流過發(fā)光二極管,發(fā)光二極管就亮;相反,當P1.0輸出高電平(5V)時, </p><p><b>  電源電路</b></p><p>  本文選用7805三端集成穩(wěn)壓塊將車載DC12V直流電壓變壓成DC5V,作為單片機芯片及各種驅(qū)動電路的

40、供電電源。</p><p>  電路圖如圖3.5所示。</p><p>  圖3.5 DC5V穩(wěn)壓電源電路圖</p><p>  在語音電路部分選用ISD4004語音芯片,ISD4004的工作電壓為3V,所以需要一個DC3V的穩(wěn)壓電源,這里設計一個開關電源,作為其供電電源。電路圖如圖3.6所示。</p><p>  圖3.6 DC3V開關電源

41、電路圖</p><p><b>  鍵盤電路</b></p><p>  在本文設計的系統(tǒng)中,為了控制系統(tǒng)的工作狀態(tài),系統(tǒng)中設計有功能鍵盤。</p><p>  在單片機應用系統(tǒng)中,按鍵或鍵盤的每個鍵都賦予特定的功能,它們通過接口電路與單片機相連接,通過軟件了解按鍵的狀態(tài)及鍵信息的輸入,并轉(zhuǎn)去執(zhí)行該鍵的功能處理程序。鍵盤的接口方法有多種,但鍵輸

42、入過程與軟件結(jié)構(gòu)基本是一樣的。對一組鍵或鍵盤上的每一個鍵都有一個編號,CPU可以采用中斷方式或是查詢方式了解有無鍵輸入,并檢查是那個鍵按下,將鍵號送入累加器A,然后通過鍵號轉(zhuǎn)移指令執(zhí)行該鍵的功能程序。</p><p><b>  消除鍵抖動</b></p><p>  硬件消抖是可以采用簡單的R-S觸發(fā)器或單穩(wěn)電路構(gòu)成。</p><p>  軟

43、件消除鍵抖動的方法是用延時來躲過暫態(tài)抖動過程,執(zhí)行一段大于10ms的延時程序后,在讀取穩(wěn)定的鍵狀態(tài)。</p><p>  本設計中采取軟件去抖動方法。</p><p><b>  按鍵方式</b></p><p><b>  1、獨立式鍵盤</b></p><p><b>  獨立式按鍵是

44、指</b></p><p>  獨立式按鍵接口電路配置</p><p>  故在按鍵數(shù)量不多時,采用這種見結(jié)構(gòu)。</p><p><b>  2、行列式鍵盤</b></p><p>  行列式鍵盤又叫矩陣鍵盤。用I/O口線組成行、列結(jié)構(gòu),</p><p>  在鍵數(shù)量較多時,采用行列式

45、鍵盤可以節(jié)省I/O口線。</p><p>  因為本次設計用到的按鍵比較少,在設計中采用獨立式按鍵。</p><p><b>  按鍵的設置</b></p><p>  系統(tǒng)中設有7個功能鍵,依次為:</p><p>  K0:上、下行選擇鍵,按下此鍵,選擇下行方向或上行方向的站名順序。</p><p

46、>  K1:特殊語音鍵,播報服務用語,播報安全提示語。</p><p>  K2:報站鍵,到站按下此鍵,播報車輛到站時的服務用語。</p><p>  K3:重復鍵,按下此鍵,將重復前一按鍵的播報內(nèi)容。</p><p>  K4:音量調(diào)節(jié)鍵。音量設定為高、中、低三檔,開機時設定為中檔,按下此鍵,音量變?yōu)楦邫n,再按則為低檔,再按又回到中檔,如此循環(huán)。</p

47、><p>  K5:快進鍵,按下此鍵,則向前越過一個站名,按下n次,則越過n各站名。</p><p>  K6:快退鍵,按下此鍵,則向后越過一個站名,依此類推。</p><p><b>  緩沖器的選擇及特點</b></p><p>  74LS244是一種三態(tài)輸出的八緩沖器和線驅(qū)動器,</p><p&g

48、t;  管腳圖如圖3.7所示。</p><p>  圖3.7 74LS244管腳圖</p><p><b>  管腳功能如下:</b></p><p><b>  電路連接</b></p><p>  根據(jù)如上介紹,設計的按鍵接口電路如圖3.8所示。</p><p>  圖3

49、.8 按鍵接口電路</p><p><b>  語音驅(qū)動電路</b></p><p>  語音電路由MIC放大電路、語音電路、模擬開關電路、音頻功率放大電路等組成,其設計非常重要,其中語音芯片的選擇很關鍵,其音質(zhì)的優(yōu)劣決定了報站器的語音效果,其功能的強弱、接口與微控制器的兼容性都對電路的設計有很大影響。</p><p>  本文選用美國ISD公

50、司生產(chǎn)的高保真錄放一體化的單片固態(tài)語音集成電路ISD4000系列中的ISD4004語音芯片。</p><p>  ISD4004語音芯片是由美國ISD公司推出的新產(chǎn)品。</p><p><b>  語音芯片</b></p><p><b>  1、語音芯片的特點</b></p><p>  語音芯片

51、應用美國ISD公司制造的語音芯片ISD4004來實現(xiàn)簡單的雙聲道立體聲語音錄放系統(tǒng),</p><p><b>  2、引腳描述</b></p><p>  ISD4004語音芯片引腳圖如圖3.9所示。</p><p>  圖3.9 ISD4004語音芯片引腳圖</p><p><b>  引腳功能如下:<

52、/b></p><p><b>  電源: </b></p><p><b>  地線:</b></p><p>  同相模擬輸入(ANA IN+)</p><p>  音頻輸出(AUD OUT) </p><p>  3、SPI(串行接口)</p>&l

53、t;p>  ISD4004工作于SPI串行接口。SPI協(xié)議是一個</p><p><b>  詳見表3.3。</b></p><p>  表 3.3 SPI 控制寄存器功能表</p><p><b>  音頻功放芯片</b></p><p>  本設計選用LM386作為音頻功放芯片,LM3

54、86是音頻集成功率放大芯片,該芯片具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應用于錄音機和收音機之中。</p><p>  LM386音頻功放芯片管腳圖如圖3.10所示。</p><p>  圖3.10 LM386管腳圖</p><p><b>  引腳功能如下:</b></p><

55、;p><b>  語音驅(qū)動電路</b></p><p>  根據(jù)上述ISD4004芯片的介紹,設計出語音驅(qū)動部分的電路圖,如圖3.11所示。</p><p>  圖 3.11 語音驅(qū)動電路原理圖</p><p>  其中SPI串行口協(xié)議的I/O分配表如表3.4所示。</p><p>  表3.4 SPI串行口協(xié)議的

56、I/O分配表</p><p><b>  顯示電路</b></p><p>  本次設計根據(jù)設計要求設置了顯示器,這里設計4個共陽極LED數(shù)碼管組成顯示器,以顯示站號和簡單工作狀態(tài)指示。四個數(shù)碼管中,個位和十位顯示站號,顯示范圍為0~99;百位顯示上、下行狀態(tài)指示,當下行時,數(shù)碼管顯示“1”;當上行時顯示“0”;千位上顯示錄放音指示,錄音時顯示“0”,播放報站語音時顯

57、示“1”。</p><p><b>  LED簡介</b></p><p>  LED數(shù)碼管即發(fā)光二極管,由8個發(fā)光二極管組成“8”字形的LED顯示器,也稱數(shù)碼管。</p><p>  在設計中采用的是8段LED數(shù)碼管。8段數(shù)碼管的引腳圖如圖3.12所示。</p><p>  圖3.12 8段發(fā)光二極管示意圖</

58、p><p>  數(shù)碼管結(jié)構(gòu)及工作原理</p><p>  本設計LED顯示器采用動態(tài)顯示方式,全部數(shù)碼管共用一套段碼驅(qū)動電路, </p><p>  段碼的值與數(shù)碼管公共引腳的接法(共陰極和共陽極)有關。8段數(shù)碼管顯示十六進制數(shù)的數(shù)碼值在表3.6中列出(僅列出共陽極段碼)。</p><p>  本設計采用共陽極接法。</p><

59、;p>  表3.6 8位十六進制數(shù)段碼表</p><p>  為了存放段碼,通常要在單片機的內(nèi)部RAM中設置一個顯示緩沖區(qū),存儲單元個數(shù)與LED顯示器的位數(shù)相同,一個單元對應一個顯示位。本設計中有4個數(shù)碼管,顯示緩沖區(qū)就應當有4個單元,</p><p>  表3.7 數(shù)碼管與LED顯示位對應關系</p><p><b>  驅(qū)動器的選擇及特點<

60、;/b></p><p>  74LS273是一種帶清除功能的8D觸發(fā)器, 1D~8D為數(shù)據(jù)輸入端,1Q~8Q為數(shù)據(jù)輸出端,正脈沖觸發(fā),低電平清除,常用作8位地址鎖存器。管腳圖如圖3.13所示。</p><p>  圖3.13 74LS273管腳圖</p><p><b>  引腳功能如下:</b></p><p>

61、;<b>  電路連接</b></p><p>  根據(jù)設計的要求,設計的顯示電路,采用動態(tài)顯示、軟件譯碼,如圖3.14所示。</p><p>  圖 3.14 顯示電路</p><p>  客車自動報站器軟件設計</p><p>  客車自動報站器的軟件設計包括:主程序設計、鍵盤程序設計、顯示程序設計、語音錄放程序設計

62、。</p><p><b>  主程序設計</b></p><p>  電路上電后,首先完成程序的初始化,初始化即先清理數(shù)據(jù)存儲器,設置中斷,初始化串口和定時計數(shù)器。隨后查詢按鍵狀態(tài),進入系統(tǒng)待機狀態(tài)。如果有按鍵按下,則轉(zhuǎn)去執(zhí)行該按鍵指向的工作程序。按鍵包括報站鍵、快進鍵、快退鍵、特殊語鍵、重復鍵、上下行選擇鍵以及音量調(diào)節(jié)鍵。在待機狀態(tài)下,如果報站鍵首次被按下,程序?qū)?/p>

63、首先判斷是去還是回,即上行還是下行,并點亮相應的指示燈,自動讀出第一站的放音內(nèi)容,站號顯示。如果不是首次按下,則首先判斷當前站號,并以該站號為依據(jù)獲得存放該站放音內(nèi)容的首地址;然后調(diào)用放音子程序,讀入前面獲得的本站放音內(nèi)容首地址, 開始報站。每一句放音完畢后,ISD4004 的中斷引腳(25腳)會自動送一低電平信號。在硬件設計中,該引腳與單片機的P3.2(INT0)連接,因此會引起一次中斷, 在中斷子程序中有一個計數(shù)器記錄中斷次數(shù),從而

64、判斷何時當前一站結(jié)束,站號加一并刷新顯示。快進鍵按下后,程序放音內(nèi)容轉(zhuǎn)向下一站;快退鍵按下后,則使程序放音內(nèi)容轉(zhuǎn)向上一站,相應的站號顯示也將隨之刷新;特殊語鍵按下后,程序轉(zhuǎn)向執(zhí)行特殊語放音(譬如“拐彎請注意”等語句);重復鍵按下,將重復前一按鍵的播報內(nèi)容。音量調(diào)</p><p>  圖4.1 主程序流程圖</p><p><b>  鍵盤程序設計</b></p&

65、gt;<p>  為使CPU能正確地讀出鍵盤的狀態(tài),對每一次按鈕只作一次響應,就必須考慮如何去除抖動,常用的去抖動的辦法有兩種:硬件辦法和軟件辦法。本次設計采用的是軟件消除抖動的方法。</p><p>  軟件法其實很簡單,就是在單片機獲得鍵盤被按下的信息后,不是立即認定按鍵已被按下,而是延時10毫秒或更長一些時間后再次檢測,如果按鍵仍是按下的,說明鍵鍵的確是被按下了,這實際上是避開了按鈕按下時的抖

66、動時間。而在檢測到按鈕釋放后再延時5~10個毫秒,消除后沿的抖動,然后再對鍵值處理。</p><p>  鍵盤掃描程序流程圖如圖4.2所示。</p><p>  圖 4.2 鍵盤掃描程序流程圖</p><p><b>  顯示程序設計</b></p><p>  本設計LED顯示器采用動態(tài)顯示方式,顯示時通過位控信號,采

67、用掃描的方法逐位的循環(huán)點亮各位數(shù)碼管。動態(tài)顯示雖然在任意時刻只有一位數(shù)碼管被點亮,但是由于人眼具有的視覺殘留效應,看起來與全部數(shù)碼管持續(xù)點亮的效果完全一樣。</p><p>  LED顯示器動態(tài)顯示程序的開始要建立顯示緩沖區(qū)首址,然后位控碼初值,查表取字形代碼,延時1ms,轉(zhuǎn)向下一緩沖單元后判斷是否到最高位,到則保存位控碼,不到,向顯示器高位移位,繼續(xù)掃描。</p><p>  為了保證先

68、顯示亮度,在掃描過程中,應在每一位數(shù)碼管上都駐留一段時間(約1ms),以使數(shù)碼管穩(wěn)定的點亮一段時間,以保證其顯示亮度。為此在掃描過程中,位與位之間要加進一段時間延遲。LED顯示程序流程圖如圖4.3所示。</p><p>  圖 4.3 LED顯示程序流程圖</p><p><b>  語音錄放程序設計</b></p><p>  根據(jù)ISD4

69、004的硬件部分原理圖及上電時序的分析,編寫出語音錄放程序并繪制出語音錄放程序流程圖。該部分程序主要完成語音錄制和放音操作,把錄制的語音存放在ISD4004中,并通過放音程序播放語音。</p><p>  放音和錄音程序中,都要嚴格按照ISD4004 的時序要求編寫。放音時,首先要送上電指令,然后等待25ms 的延遲,再送16位放音起始地址,最后送8位的開始放音指令開始放音,直到出現(xiàn)放音停止信號(EOM)時,停止

70、放音。錄音時,首先要送上電指令,然后等待25ms 的延遲,再送上電指令,等待25ms的延遲,再送16位錄音起始地址,最后送8位的開始錄音指令開始錄音,直到出現(xiàn)錄音停止信號(OVF)時,停止錄音。放音流程圖如圖4.4所示。</p><p>  圖 4.4 放音程序流程圖</p><p>  錄音流程圖如圖4.5所示。</p><p>  圖 4.5 錄音程序流程圖&l

71、t;/p><p><b>  結(jié)論</b></p><p>  本次畢業(yè)設計是客車自動報站器的設計,在設計的過程中,首先進行了大量的資料搜集,使得自己對51單片機的了解更加的深刻。最終選擇目前使用比較普遍,性能比較好的AT89S51,這樣進行程序編寫和調(diào)試會較為簡單,因為它的兼容性較好。語音芯片使用的是ISD公司的ISD4004,此語音芯片的優(yōu)點在文章中已經(jīng)做了簡單的介紹

72、,即記錄聲音沒有段長度限制,并且聲音記錄不需要A/D轉(zhuǎn)換和壓縮等,這兩點關鍵的選擇會使得設計變得比較簡單。由于報站器設計中的鍵盤比較少按照相應的選擇原理,選擇的是獨立式按鍵的方式進行鍵盤的設計,與單片機相結(jié)合對整個報站器的語音報站和顯示部分進行控制,根據(jù)有可能發(fā)生的情況進行了對鍵盤相關功能的設計。LED顯示部分選擇4個共陽極8段碼LED數(shù)碼管進行站號及工作狀態(tài)的顯示。電源部分設計了兩個電源,一個是DC3V的開關電源,為語音芯片供電,另一

73、個是用7805搭建的5V直流穩(wěn)壓電源,為除語音芯片外的其他芯片及各部分電路供電。這樣就完成了客車自動報站器系統(tǒng)的設計。</p><p>  在進行報站器的資料整理時,根據(jù)要設計求與選擇的元器件進行了硬件電路的設計,這樣會使自己在選擇芯片和器件基礎上,不斷學習芯片的引腳圖、引腳作用功能、數(shù)據(jù)的處理等相關知識。完成了語音存儲電路、語音驅(qū)動電路、功能鍵電路、顯示電路、通信接口電路等部分的設計,并且進一步進行軟件部分的程

74、序編寫,在進行程序編寫的步驟中,首先進行單片機程序編寫的學習,根據(jù)硬件電路的工作原理繪制程序流程圖,再根據(jù)流程圖編寫相應的程序。這樣報站器的硬件設計與軟件設計就完成了。實現(xiàn)客車每到一站,由司機按下功能鍵,語音電路自動工作,播報對應的到站信息;并能通過通信接口電路,向語音存儲電路更新語音信息等功能。</p><p>  這樣本次設計就已經(jīng)滿足了客車自動報站器的設計要求,由于技術的不斷進步,科技的不斷發(fā)展,人們的需求

75、的提高使得自動報站器在今后的發(fā)展中一樣會有大的變化,但是它的基本原理是不變的,基本的功能需要是不會變化的,當然是會向更加的便利,更加的人性化,更加的自動化的方向發(fā)展。</p><p><b>  致謝</b></p><p>  四年的大學生活轉(zhuǎn)眼而過,回首匆匆而過的歲月,心中百感交集,當我寫完這篇畢業(yè)論文的時候,回首過去的一幕幕,我感慨良多。在這里,感謝在這四年大學

76、生活中給予我支持和幫助的所有人。</p><p>  首先誠摯的感謝我的論文指導老師。</p><p>  其次,感謝在撰寫論文過程中幫助過我的同學、朋友們。</p><p>  最后,感謝學校為我提供了良好的學習環(huán)境</p><p>  當然,在這四年的大學生活中,我最應該感謝的就是我的父母,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠

77、健康快樂是我最大的心愿!</p><p>  再一次誠摯的感謝以上提到的所有人,還有我可能沒有想起的、給予我很多幫助的人,感謝你們,謝謝!</p><p><b>  參考文獻</b></p><p>  [1] 張毅坤.單片微型計算機原理及應用.西安電子科技大學出版社.1998</p><p>  [2] 梅麗鳳.單片

78、機原理及接口技術.清華大學出版社.2006.5</p><p>  [3] 朱民雄.計算機語音技術[M].北京:北京航空航天大學出版社.2002 </p><p>  [4] 馬忠梅,馬巖.單片機的C語言應用程序設計[M].北京航空航天大學出版社,1997第一版</p><p>  [5] 何立民.單片機應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,1990&l

79、t;/p><p>  [6] 李鐘實.實用電子報警器精選百例北京:科學技術文獻出版社.2002.4</p><p>  [7] ISD4004語音芯片說明書</p><p>  [8] 何希才.新型集成電路及其應用實例.北京:科學出版社.2002,4</p><p>  [9] 肖洪兵.跟我學用單片機[J].北京:北京航空航天大學出版社.2002

80、.8</p><p>  [10] 何立民.單片機高級教程.北京.北京航空航天大學出版社.2001</p><p>  [11] 陳愛第.Protel99實用培訓教程人民郵電出版社.2000</p><p>  [12 ]趙曉安.MCS-51單片機原理及應用.天津:天津大學出版社.2001.3</p><p>  [15]Bus rapid

81、transit systems: a comparative assessment. Volume 35, Number 4. Springer Netherlands. ISSN0049-4488(Print) 1572-9435 (Online).2008: 501~518</p><p>  [16] Broadcasting in bus interconnection networks. Lecture

82、 Notes in Computer Science. Volume 854 Springer Berlin / Heidelberg. ISSN 0302-9743 (Print) 1611-3349 (Online).2006: 797~807</p><p>  [17] 張建華,高守瑋,楊建國.語音芯片在語音報站器中的應用[J].電子技術應用.2008年第3期:103</p><p&g

83、t;  [18] 韋麗華,系列語音芯片及其在微機系統(tǒng)中的應用[J].遼寧師范大學學報(自然科學出版社).2001,24(1):33~45</p><p>  [19] 孫佩龍.實現(xiàn)自動報站的新方法[J] .遼寧省阜新公交公司.2008.6:23~66</p><p>  [20] 許連華.基于GPS的自動汽車報站器.濟南山東大學計算機科學.2005,12 </p><p

84、><b>  附錄Ⅰ</b></p><p><b>  總體硬件電路圖</b></p><p><b>  附錄II</b></p><p><b>  軟件清單</b></p><p><b>  主程序:</b></

85、p><p>  #include<reg51.h> /*預處理命令,插入頭文件reg51.h*/</p><p>  #include<absacc.h> /*預處理命令,插入頭文件absacc.h*/</p><p>  #define uchar unsigned char /*宏定義,將字符串表示內(nèi)容定義為uchar

86、 */</p><p>  #define P273 XBYTE [OXFE00]</p><p>  #define P244 XBYTE [OXFE00]</p><p>  uchar i,j;</p><p>  void keyin(void)</p><p><b>  main( )</b

87、></p><p>  { i=8; /*定義鍵盤取值子函數(shù)keyin */</p><p>  switch( P244)</p><p>  { case 1:i=0;key[1];break;</p><p>  case 2:i=0;key[2];break;</p><p&

88、gt;  case 4:i=0;key[3];break;</p><p>  case 8:i=0;key[4];break;</p><p>  case 16:i=0;key[5];break;</p><p>  case 32:i=0;key[6];break;</p><p>  case 64:i=0;key[7];break;

89、</p><p>  default:break;</p><p><b>  }</b></p><p>  void delay(void) /*鍵盤消抖延時子程序 */</p><p>  { for(j=0;j<12000;j++)</p><p><b>  {;}&l

90、t;/b></p><p><b>  }</b></p><p>  main( ) /*鍵盤按鍵處理子程序 */</p><p>  { P3=0xfe;</p><p><b>  while(1)</b></p><p>  { key[i](

91、)</p><p>  P273=LED[i]</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  鍵盤掃描程序:</b></p><p>  KEY: ACALL KS </p>

92、<p><b>  JNZ LK1</b></p><p>  ACALL DIR</p><p><b>  AJMP KEY</b></p><p>  LK1:ACALL DIR</p><p>  ACALL DIR</p><p><b&g

93、t;  ACALL KS</b></p><p><b>  JNZ LK2</b></p><p>  ACALL DIR</p><p><b>  AJMP KEY</b></p><p>  LK2:MOV R2, #FEH</p><p>  L

94、K4:MOV DPTR,#8000H</p><p>  MOV A, R2</p><p>  MOVX @DPTR,A</p><p><b>  INC DPTR</b></p><p>  INC DPTTR</p><p>  MOVX A, @DPTR</p>

95、;<p>  JB ACC.0, NEXT</p><p>  MOV A, #00H</p><p><b>  AJMP LKP</b></p><p>  LKP:ADD A, R4</p><p><b>  PUSH ACC</b></p>&l

96、t;p>  LK3:ACALL DIR</p><p><b>  ACALL KS</b></p><p><b>  JNZ LK3</b></p><p><b>  POP ACC</b></p><p><b>  RET </b>

97、</p><p>  NEXT:INC R4</p><p>  JNB ACC.7, KND</p><p><b>  AJMP LK4</b></p><p>  KND:AJMP KEY </p><p>  判斷有無閉合鍵的子程序:</p><p&

98、gt;  KS: MOV DPTR, #8000H</p><p>  MOV A, #00H</p><p>  MOVX @DPTR, A</p><p><b>  INC DPTR</b></p><p><b>  INC DPTR</b></p><p&g

99、t;  MOVX A, @DPTR</p><p><b>  CPL A </b></p><p>  ANL A, #0FH</p><p><b>  RET</b></p><p><b>  LED驅(qū)動程序:</b></p><p

100、>  DIR: MOV R0,#79H ;建立顯示緩沖區(qū)首址</p><p>  MOV R3,#01H ;從右邊開始顯示</p><p>  MOV A, R3 ;位控碼初值</p><p>  LD0:MOV DPTR,#8002H ;位控口地址</p><p>  

101、MOVX @DPTR, A ;輸出位控碼</p><p>  MOV DPTR, #8000H ;段控口地址</p><p>  MOV A, @R0 ;取出顯示數(shù)據(jù)</p><p>  DIR0: ADD A,#0DH</p><p>  MOVC A,@A+PC ;查表取字形代碼</p&

102、gt;<p>  DIR1: MOVX @DPTR,A ;輸出段控碼</p><p>  ACALL DL ;調(diào)用延時</p><p>  INC R0 ;轉(zhuǎn)向下一緩沖單元</p><p><b>  MOV A,R3</b></p><p> 

103、 JB ACC.4, LD1 ;判斷是否到最高位,到則返回</p><p>  RL A ;不到,向顯示器高位移位</p><p>  MOV R3,A ;位控碼送R3保存</p><p>  AJMP LD0 ;繼續(xù)掃描</p><p>  LD1:

104、RET ;子程序結(jié)束</p><p>  DSEG:DB 0C0H 0F9H 0A4H 0B0H 99H ;字形代碼表</p><p>  DB 92H 82H 0F8H 80H</p><p><b>  語音錄放程序:</b></p><p>

105、;  #include <reg51.h></p><p>  #include <delay.h></p><p>  sbit SCK = P1^7; //語音模塊控制管腳定義</p><p>  sbit SS = P1^4;</p><p>  sbit MOSI = P1^5;</p>&l

106、t;p>  sbit MISO = P1^6;</p><p>  sbit INT = P1^2;</p><p>  sbit RAC = P1^3;</p><p>  sbit PLAY = P1^1; //錄音/放音 按鍵</p><p>  sbit STOP = P2^1;//復位按鍵</p><

107、p>  sbit P_R = P2^2;//錄音/放音跳線</p><p><b>  /*</b></p><p>  ISD4003 SPI串行發(fā)送子程序 8位數(shù)據(jù)</p><p><b>  */</b></p><p>  //向語音芯片發(fā)送數(shù)據(jù)函數(shù)</p><p

108、>  void spi_send(unsigned char isdx)</p><p><b>  {</b></p><p>  unsigned char i;</p><p><b>  SS = 0;</b></p><p><b>  SCK = 0;</b>

109、</p><p>  for(i = 0;i < 8;i++) //先發(fā)低位再發(fā)高位,依次發(fā)送</p><p><b>  {</b></p><p>  if((isdx&0x01) == 1) MOSI = 1;</p><p>  else MOSI = 0;</p><p&g

110、t;<b>  isdx>>=1;</b></p><p><b>  SCK = 1;</b></p><p>  delay_us(2);</p><p><b>  SCK = 0;</b></p><p>  delay_us(2);</p>

111、<p><b>  }</b></p><p><b>  }</b></p><p>  void isd_stop(void) //發(fā)送STOP指令</p><p><b>  {</b></p><p>  delay_us(10);</p>

112、<p>  spi_send(0x30);</p><p><b>  SS = 1;</b></p><p>  delay_ms(50);</p><p><b>  }</b></p><p>  void isd_pu(void) //發(fā)送上電指令,延時50ms</p&

113、gt;<p><b>  {</b></p><p>  delay_us(10);</p><p><b>  SS = 0;</b></p><p>  spi_send(0x20);</p><p><b>  SS = 1;</b></p>

114、<p>  delay_ms(50);</p><p><b>  }</b></p><p>  void isd_pd(void) //發(fā)送掉電指令</p><p><b>  {</b></p><p>  delay_us(10);</p><p>  

115、spi_send(0x10);</p><p><b>  SS = 1;</b></p><p>  delay_ms(50);</p><p><b>  }</b></p><p>  void isd_play(void) //發(fā)送放音指令</p><p><

116、b>  {</b></p><p><b>  LED=0;</b></p><p>  spi_send(0xf0);</p><p><b>  SS = 1;</b></p><p><b>  }</b></p><p>  v

117、oid isd_rec(void) //發(fā)送錄音指令</p><p><b>  {</b></p><p><b>  LED=0;</b></p><p>  spi_send(0xb0);</p><p><b>  SS = 1;</b></p>&l

118、t;p><b>  }</b></p><p>  void isd_setplay(unsigned char adl,unsigned char adh) //發(fā)送放音地址指令</p><p><b>  {</b></p><p>  spi_send(adl); //發(fā)送放音起始低地址</p&g

119、t;<p>  adh = adh|0xe0;</p><p>  spi_send(adh); //發(fā)送放音起始高地址</p><p><b>  SS = 1;</b></p><p><b>  }</b></p><p>  void isd_setrec(unsign

120、ed char adl,unsigned char adh) //發(fā)送錄音地址指令</p><p><b>  {</b></p><p>  spi_send(adl); //發(fā)送錄音起始低地址</p><p>  adh = adh|0xa0;</p><p>  spi_send(adh); /

121、/發(fā)送錄音起始高地址</p><p><b>  SS = 1;</b></p><p><b>  }</b></p><p>  void isd_overflow(void) //芯片溢出警告函數(shù)</p><p><b>  {</b></p><p

122、>  while(0 == PLAY) </p><p><b>  {</b></p><p><b>  LED = 0;</b></p><p>  delay_ms(300);</p><p><b>  LED = 1;</b></p><p

123、>  delay_ms(300);</p><p><b>  }</b></p><p><b>  }</b></p><p>  unsigned char chk_isdovf() //檢測芯片溢出函數(shù)</p><p><b>  {</b></p>

124、<p><b>  SS = 0;</b></p><p>  delay_us(2);</p><p><b>  SCK = 0;</b></p><p>  delay_us(2);</p><p><b>  SCK = 1;</b></p>

125、<p><b>  SCK = 0;</b></p><p>  delay_us(2);</p><p>  if (1 == MISO)</p><p><b>  {</b></p><p>  SCK = 0; //</p><p>  SS = 1

126、; //關閉SPI通信端</p><p>  isd_stop(); //發(fā)送STOP指令</p><p>  return (1); //OVF為1 返回 1 </p><p><b>  }</b></p><p><b>  else </b></p><p&

溫馨提示

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

評論

0/150

提交評論