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

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)論文(設(shè)計)</p><p>  題 目嵌入式公交漢字顯示系統(tǒng)的設(shè)計與實現(xiàn)</p><p>  學(xué) 院 電子子信息工程學(xué)院 </p><p>  專 業(yè) 電子信息工程 </p><p>  班 級

2、 </p><p>  學(xué) 號 </p><p>  學(xué)生姓名 </p><p>  指導(dǎo)教師 </p><p>  完

3、成日期 2013年五月 </p><p><b>  二〇一三年五月</b></p><p><b>  摘要</b></p><p>  隨著時代的進(jìn)步,公交車已經(jīng)成為我們學(xué)生族和工薪族出門必須的交通工具。由于單片機(jī)技術(shù)以及嵌入式技術(shù)飛速發(fā)展。目前,在公交車報站方面,也由傳統(tǒng)的

4、人工報站,逐漸改變?yōu)槭褂梦㈦娔X控制的語音文字報站系統(tǒng)。從以前售票員的大聲報站變成現(xiàn)在的自動語音報站以及漢字提示等新型的報站系統(tǒng),加快了現(xiàn)代化建設(shè)的進(jìn)程。</p><p>  本文介紹了一種新型的嵌入式公交車漢字顯示系統(tǒng)的設(shè)計原理,同時提供了一種以89C52RC單片機(jī)為核心,控制ISD4004語音芯片及LED點陣顯示漢字的新方案。利用89C52RC單片機(jī)作為CPU來進(jìn)行總體控制,通過語音控制電路進(jìn)行各種提示語音的播

5、放,同時使用LED點陣電路進(jìn)行漢字顯示,實現(xiàn)了公共汽車的語音自動報站以及漢字提示的功能,實現(xiàn)了圖文、語音一體化協(xié)調(diào)工作,減輕了司售人員的勞動強(qiáng)度,提高了車輛的服務(wù)質(zhì)量,是一種科技、時尚的新產(chǎn)品。同時它擺脫傳統(tǒng)電子屏"線"的束縛,使其應(yīng)用更加市場化,其流動顯示的特點更為廣告界所推崇,是一種全新的媒體。</p><p>  ISD4004語音系列芯片是美國ISD4004公司推出的產(chǎn)品,具有多次重復(fù)

6、錄放,存儲時間長,使用時不需擴(kuò)充存儲器,所需外圍電路簡單等特點。</p><p>  本系統(tǒng)是以C語言來進(jìn)行軟件設(shè)計,指令的執(zhí)行速度快,節(jié)省存儲空間。為了便于擴(kuò)展和更改,軟件的設(shè)計采用模塊化結(jié)構(gòu),使程序設(shè)計的邏輯關(guān)系更加簡潔明了,使硬件在軟件的控制下協(xié)調(diào)運(yùn)作。</p><p>  關(guān)鍵詞:89C52RC單片機(jī) LED點陣顯示 語音芯片</p><p><b

7、>  Abstract</b></p><p>  With the progress of The Times,the bus has become a general applicability and students go to the family transportation.Due to the micro controller technology and electronic

8、voice technology rapidly develope.At present, in the bus stops,also from the traditional artificial stops, gradually changing into using the microcomputer control system of bus stop announcement. From before the loud voi

9、ce stops of the conductor to be the new characters suggest and stops system,accelerating the process of mod</p><p>  This paper introduces the design principle of a new kind of bus automatic stops display sy

10、stem and provides a new plan to control ISD4004 pronunciation chip and LED dot matrix to display Chinese characters by 89C52RC cu .Useing 89C52RC as CPU to overall control and through the speech control circuit to play v

11、arious kind speech hint.Realizing the bus stops and characters of the voice of function,the text, voice integration are realized coordinationly too.Reduce the labor intensity of sales person</p><p>  ISD4004

12、 series pronunciation chip is the products of ISD company,with the char actor of repeated recording, long time storage ,without expanded memory when using and simple circuit of the periphery, etc.</p><p> 

13、 This system based on C language for software design,the instruction execute speedily and save storage space.In order to facilitate expansion and change,the design of software adopt modular structure,make the program des

14、ign of logical relationship more concise,make the hardware under the control of the software operation harmoniously .</p><p>  Keywords:89C52RC MCU, LED dot matrix display, pronunciation chip</p>&l

15、t;p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 課題背景與意義1</p><p>  1.2 選題的目的與研究內(nèi)容2</p><p>  1.3 國內(nèi)的的動態(tài)發(fā)展趨勢3</p><p>  2 μ

16、C/OS-II操作系統(tǒng)移植5</p><p>  2.1 μC/OS-II操作系統(tǒng)的工作原理5</p><p>  2.2 μC/OS-II的組成部分6</p><p>  2.3 μC/OS-II操作系統(tǒng)移植6</p><p>  2.3.1 OS_CPU.H文件的移植6</p><p>  2.3.2 O

17、S_CPU_C.C 文件的移植9</p><p>  3 系統(tǒng)硬件設(shè)計10</p><p>  3.1 方案研究10</p><p>  3.2 方案選擇11</p><p>  3.3 電路原理的總體設(shè)計11</p><p>  3.3 芯片選擇12</p><p>  3.3.1

18、 STC89C52RC單片機(jī)芯片12</p><p>  3.3.2 ISD4004語音芯片14</p><p>  3.3.3元器件清單17</p><p>  3.4 硬件電路設(shè)計17</p><p>  3.4.1電源電路17</p><p>  3.4.2 LED點陣顯示電路18</p>

19、<p>  3.4.3語音錄放音電路18</p><p>  3.4.4按鍵控制電路19</p><p>  3.5硬件電路總體設(shè)計20</p><p>  4 系統(tǒng)軟件設(shè)計21</p><p>  4.1 系統(tǒng)軟件結(jié)構(gòu)21</p><p>  4.2 系統(tǒng)軟件設(shè)計23</p>

20、<p>  4.2.1 延時設(shè)計23</p><p>  4.2.2 語音錄放設(shè)計24</p><p>  4.2.3 中斷控制設(shè)計24</p><p>  4.2.4 LED點陣漢字顯示設(shè)計25</p><p>  5 軟件程序調(diào)試27</p><p>  5.1 調(diào)試軟件27</p>

21、;<p>  5.2 軟件程序測試27</p><p>  5.3 系統(tǒng)電路功能仿真28</p><p>  5.4 Keil與Proteus對系統(tǒng)聯(lián)調(diào)29</p><p>  6 總結(jié)與展望31</p><p><b>  6.1總結(jié)31</b></p><p><

22、b>  6.2展望31</b></p><p><b>  參考文獻(xiàn)33</b></p><p><b>  致謝34</b></p><p>  附錄1 系統(tǒng)原理圖35</p><p>  附錄2 源程序代碼36</p><p>  嵌入式公交漢

23、字顯示系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b>  1 緒論</b></p><p>  1.1 課題背景與意義</p><p>  隨著現(xiàn)代社會的建設(shè),公共汽車越來越為大眾所喜愛,不僅僅可以在低消費下達(dá)到目的地,同時也能很方便的省去很多的自駕麻煩。是打工族和學(xué)生族的常用交通工具。而隨著人們使用公共汽車的普遍,車輛上一般都相當(dāng)擁擠,造成許多的乘

24、客未到站先下車或者推遲下車的情況,也加重了售票員的勞動強(qiáng)度。隨著信息社會的到來,單片機(jī)廣泛的應(yīng)用于工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)、聲學(xué)領(lǐng)域和微機(jī)技術(shù)等廣闊的領(lǐng)域。而利用單片機(jī)對語音芯片進(jìn)行控制可以達(dá)到語音報站的效果。因此,了解并掌握單片機(jī)智能控制技術(shù)工作原理及特性是非常重要的。</p><p>  在一些自動語音報站系統(tǒng)中,廣泛采用的是通過使用語音芯片進(jìn)行設(shè)計電路,然后通過MIC錄音電路以及功放電路進(jìn)行

25、語音的錄制與播放,同時通過單片機(jī)對語音芯片進(jìn)行選擇以及功能的控制,從而完成語音報站。但是由于傳統(tǒng)的語音芯片的外圍電路比較復(fù)雜,所以實現(xiàn)復(fù)雜、易受干擾、不易控制且精度不高。因此,本系統(tǒng)用一種比較昂貴且現(xiàn)代社會才剛剛常用的一種ISD4004系列語音芯片,不需復(fù)雜的外圍電路和A/D轉(zhuǎn)換電路能直接與單片機(jī)完成語音的錄制和播放,實現(xiàn)方便、精度高,可根據(jù)不同需要用于各種場合;為了提高對語音芯片的認(rèn)識和了解,尤其是對ISD4004系列的深入研究以及其

26、用法與用途,基于實用、廣泛和典型的原則而設(shè)計了本系統(tǒng)。</p><p>  本設(shè)計基于ISD4004芯片設(shè)計的公交車漢字顯示報站系統(tǒng),介紹了STC89C52RC單片機(jī)語音漢字顯示控制系統(tǒng),主要是通過單片機(jī)組成的應(yīng)用系統(tǒng)來完成對語音的錄制以及播放,漢字的LED點陣顯示以及語音播放的控制,從而實現(xiàn)了單片機(jī)對語音漢字的控制。在正常情況下,通過ISD4004對語音報站信息進(jìn)行播放以及利用LED點陣進(jìn)行相關(guān)提示漢字的顯示,

27、ISD4004芯片采用CMOS技術(shù),內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陳列。芯片設(shè)計是基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI或Microwire)送入。通過單片機(jī)對報站語音進(jìn)行采集處理,同時設(shè)定相關(guān)漢字顯示信息;當(dāng)?shù)秸景存I按下時,該系統(tǒng)會發(fā)出到站站名及相關(guān)語音聲音,同時讓LED點陣進(jìn)行漢字提示信息的顯示,報站語音以及漢字顯示結(jié)束時等待下一個到站按鍵的觸發(fā)。<

28、/p><p>  1.2 選題的目的與研究內(nèi)容</p><p>  首先是設(shè)計出一種的方便實用的公交車漢字顯示報站系統(tǒng)。單片機(jī)智能控制技術(shù)廣泛地應(yīng)用于工業(yè)控制、智能語音等方面,ISD4004 系列工作電壓3V,單片錄放時間8至16分鐘,音質(zhì)好,適用于移動電話及其他便攜式電子產(chǎn)品中。芯片采用多電平直接模擬量存儲技術(shù), 每個采樣值直接存貯在片內(nèi)閃爍存貯器中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、

29、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。采樣頻率可為 4.0,5.3,6.4,8.0kHz,頻率越低,錄放時間越長,而音質(zhì)則有所下降,片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年(典型值),反復(fù)錄音10 萬次。而本系統(tǒng)則基本完成了設(shè)計的任務(wù)要求,通過STC89C52RC單片機(jī)語音錄放控制系統(tǒng),主要是通過單片機(jī)組成的應(yīng)用系統(tǒng)來完成對語音的采集、語音的存儲處理、提示漢字的顯示以

30、及語音播放的控制,從而實現(xiàn)了單片機(jī)對公交車到站的語音漢字顯示功能。</p><p>  其次,為了聯(lián)系實際,用大學(xué)所學(xué)的理論來進(jìn)行實際工作,將知識轉(zhuǎn)變?yōu)樯a(chǎn)力。通過大學(xué)本科四年的學(xué)習(xí),已經(jīng)初步具有了一定的分析和設(shè)計能力。通過本次設(shè)計將大學(xué)所學(xué)的知識進(jìn)行系統(tǒng)地梳理,概括和總結(jié),并綜合運(yùn)用這些所學(xué)的知識。</p><p>  公共汽車為外出的人們提供了方便快捷的服務(wù),而公共汽車的報站直接影響服

31、務(wù)的質(zhì)量。傳統(tǒng)由乘務(wù)人員人工報站,該方式因其效果太差和工作強(qiáng)度太大,在很多大城市已經(jīng)被淘汰。近年來,隨著科學(xué)技術(shù)的日益發(fā)展和進(jìn)步,微型計算機(jī)技術(shù)已經(jīng)在許多領(lǐng)域得到了廣泛的應(yīng)用。在聲學(xué)領(lǐng)域,微機(jī)技術(shù)與各種語音芯片相結(jié)合,即可完成語音的合成技術(shù),使得汽車報站器的實現(xiàn)成為可能,從而為市民提供了更加人性化的服務(wù)。鑒于傳統(tǒng)公交車報站系統(tǒng)的不足之處,結(jié)合公交車輛的使用特點及實際營運(yùn)環(huán)境,設(shè)計了一種由單片機(jī)控制的公交車語音報站顯示系統(tǒng) 。</p

32、><p>  1.3 國內(nèi)的的動態(tài)發(fā)展趨勢</p><p>  當(dāng)今社會,公交車是大多數(shù)城市居民出行的重要工具之一,但就公交車目前的報站系統(tǒng)來看很難滿足大家的要求?,F(xiàn)在公交車使用普遍的還是人工按鍵報站系統(tǒng),此系統(tǒng)存在以下二個不可忽略的弊端:</p><p>  (1)存在隱形的安全隱患,因為每次駕駛員都要在行駛時對報站器進(jìn)行操作以進(jìn)行報站,而車輛在進(jìn)出站的時候路面情況都

33、很復(fù)雜,因此給行駛中的車輛和行人帶來一定的安全隱患。</p><p> ?。?)報站不夠準(zhǔn)確,因為駕駛員在行駛的過程中操作報站系統(tǒng)時時常會忘按鍵或者按錯鍵,有時在調(diào)整報站系統(tǒng)時會連續(xù)報站,這樣會給不熟悉路線的乘客帶來不便。</p><p>  目前我國的大部分城市公交自動報站的方式主要有三種:</p><p>  人工進(jìn)行報站,一般是由當(dāng)?shù)氐某藙?wù)人員用方言來進(jìn)行報站

34、,這樣會給外地乘客帶來很大的不便,但這種方式已經(jīng)被淘汰。</p><p> ?。?)半自動報站,這種報站方式是現(xiàn)在運(yùn)用普遍的,但由于這種報站系統(tǒng)需要駕駛員來控制,故會有誤報現(xiàn)象且還存在安全隱患。</p><p> ?。?)自動報站系,此報站方式已智能化,即無需駕駛員得參與,系統(tǒng)將自動識別站點雖然比較準(zhǔn)確,但也容易出現(xiàn)問題且價格昂貴,所以這種方式運(yùn)用的不是很普遍。</p>&

35、lt;p>  雖然國能外都在研究公交自動報站系統(tǒng),但采用的技術(shù)手段不一樣,如:采用GPS定位系統(tǒng)自動報站等等。這些開發(fā)成本較高,且難以實現(xiàn)普及,特別是一些中小城市難以負(fù)擔(dān),故開發(fā)一種綜合性強(qiáng)的、且價格交低、易于實現(xiàn)普及的系統(tǒng)是公交事業(yè)迫切需要的。</p><p>  2 μC/OS-II操作系統(tǒng)移植</p><p>  μC/OS-II 的前身是μC/OS,最早出自于1992 年美國

36、嵌入式系統(tǒng)專家Jean J.Labrosse 在《嵌入式系統(tǒng)編程》雜志的5 月和6 月刊上刊登的文章連載,并把μC/OS 的源碼發(fā)布在該雜志的B B S 上。μC/OS-II 是專門為計算機(jī)的嵌入式應(yīng)用設(shè)計的, 絕大部分代碼是用C語言編寫的。CPU 硬件相關(guān)部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。</p><p>  2.1 μC/OS-II

37、操作系統(tǒng)的工作原理</p><p>  μC/OS-II是一種基于優(yōu)先級的可搶先的硬實時內(nèi)核。</p><p>  要實現(xiàn)多任務(wù)機(jī)制,目標(biāo)CPU必須具備一種在運(yùn)行期更改PC的途徑,否則無法做到切換。一般CPU都允許通過類似JMP,CALL這樣的指令來間接的修改PC。多任務(wù)機(jī)制的實現(xiàn)也正是基于這個出發(fā)點,使用CALL指令或者軟中斷指令來修改PC,主要是軟中斷。但在一些CPU上,并不存在軟中斷

38、這樣的概念,所以,在那些CPU上使用幾條PUSH指令加上一條CALL指令來模擬一次軟中斷的發(fā)生。 </p><p>  在μC/OS-II里,每個任務(wù)都有一個任務(wù)控制塊(Task Control Block),這是一個比較復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。在任務(wù)控制塊的偏移為0的地方,存儲著一個指針,它記錄所屬任務(wù)的專用堆棧地址。在μC/OS-II內(nèi),每個任務(wù)都有自己的專用堆棧,彼此之間不能侵犯。一般做法是把他們申明成靜態(tài)數(shù)組,且

39、要申明成OS_STK類型。當(dāng)任務(wù)有自己的堆棧,就可以將每一個任務(wù)堆棧在那里記錄到前面談到的任務(wù)控制快偏移為0的地方。每當(dāng)發(fā)生任務(wù)切換,系統(tǒng)必然會先進(jìn)入一個中斷,這一般是通過軟中斷或者時鐘中斷實現(xiàn)。然后系統(tǒng)會先把當(dāng)前任務(wù)的堆棧地址保存起來,僅接著恢復(fù)要切換的任務(wù)的堆棧地址。由于任務(wù)的堆棧里一定存的是地址,就達(dá)到修改PC為下一個任務(wù)的地址的目的。</p><p>  2.2 μC/OS-II的組成部分</p&g

40、t;<p>  μC/OS-II可以大致分成核心、任務(wù)處理、時間處理、任務(wù)同步與通信,CPU的移植等5個部分。 </p><p> ?。?)核心部分(Os Core.c)</p><p>  是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運(yùn)行、中斷退出的前導(dǎo)、時鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多部分。能夠維持系統(tǒng)基本工作的部分都在這里。 </p><p&g

41、t; ?。?)任務(wù)處理部分(Os-task.c)</p><p>  任務(wù)處理部分中的內(nèi)容都是與任務(wù)的操作密切相關(guān)的。包括任務(wù)的建立、刪除、掛起、恢復(fù)等等。因為μC/OS-II是以任務(wù)為基本單位調(diào)度的,所以這部分內(nèi)容也相當(dāng)重要。 </p><p> ?。?)時鐘部分(Os-time.c)</p><p>  μC/OS-II中的最小時鐘單位是time tick(時鐘

42、節(jié)拍)。任務(wù)延時等操作是在這里完成的。 </p><p> ?。?)任務(wù)同步和通信部分</p><p>  為事件處理部分,包括信號量、郵箱、郵箱隊列、事件標(biāo)志等部分;主要用于任務(wù)間的互相聯(lián)系和對臨界資源的訪問。 </p><p>  (5)與CPU的接口部分</p><p>  是指μC/OS-II針對所使用的CPU的移植部分。由于μC/O

43、S-II是一個通用性的操作系統(tǒng),對于關(guān)鍵問題的實現(xiàn),是需要根據(jù)具體CPU的具體內(nèi)容和要求作相應(yīng)的移植。主要包括中斷級任務(wù)切換的底層實現(xiàn)、任務(wù)級任務(wù)切換的底層實現(xiàn)、時鐘節(jié)拍的產(chǎn)生和處理、中斷的相關(guān)處理部分等內(nèi)容。</p><p>  2.3 μC/OS-II操作系統(tǒng)移植</p><p>  2.3.1 OS_CPU.H文件的移植</p><p>  OS_CPU.H

44、包括了用#defines 定義的與處理器相關(guān)的常量、宏和類型定義。OS_CPU.H的程序結(jié)構(gòu)如下所示。 </p><p>  #if-def OS_CPU_GLOBALS </p><p>  #define OS_CPU_EXT </p><p><b>  #else </b></p><p>  #define

45、OS_CPU_EXT extern </p><p>  #en dif /* 數(shù)據(jù)類型 (與編譯器相關(guān)) */ </p><p>  type def unsigned char BOOLEAN; </p>

46、<p>  type def unsigned char INT8U; /* 無符號8位整數(shù) */ </p><p>  type def signed char INT8S; /* 有符號8位整數(shù) */ </p><p>  type def unsigned

47、int INT16U; /* 無符號16位整數(shù) */ </p><p>  type def signed int INT16S; /* 有符號16位整數(shù) */ </p><p>  type def unsigned long INT32U; /

48、* 無符號32位整數(shù) */ </p><p>  type def signed long INT32S; /* 有符號32位整數(shù) */ </p><p>  type def float FP32; /* 單精度浮點數(shù) */ </p&g

49、t;<p>  type def double FP64; /* 雙精度浮點數(shù) */ </p><p>  type def unsigned char OS_STK; /* 堆棧入口寬度為8位 */ </p><p>  /* 與處理器相關(guān)的代碼 */

50、</p><p>  #define OS_ENTER_CRITICAL() EA = 0 /* 禁止中斷 */ </p><p>  #define OS_EXIT_CRITICAL() EA = 1 /* 允許中斷 */ </p><p>  #define

51、OS_STK_GROWTH 0 /* 定義堆棧的增長方向 */ </p><p>  #define OS_TASK_SW() Oscitant() </p><p> ?。?)與編譯器相關(guān)的數(shù)據(jù)類型 </p><p>  因為不同的微處理器有不同的字長,所以μC/OS-Ⅱ的移植包括了一系列

52、的類型定義以確保其可移植性。尤其是,μC/OS-Ⅱ代碼從不使用 C 的 short,int 和 long 等數(shù)據(jù)類型,因為其是與編譯器相關(guān)的,不可移植。相反的,將其定義成整型數(shù)據(jù)結(jié)構(gòu)既是可移植的又是直觀的。為了方便, μC/OS-Ⅱ雖然不使用浮點數(shù)據(jù),但還是定義浮點數(shù)據(jù)類型。μC/OS-Ⅱ和用戶的應(yīng)用程序就可以估計出聲明為該數(shù)據(jù)類型的變量的數(shù)值范圍是 0~65535。將 μC/OS-Ⅱ移植到32 位的處理器上也就意味著 INT16U 實

53、際被聲明為無符號短整型數(shù)據(jù)結(jié)構(gòu)而不是無符號整型數(shù)據(jù)結(jié)構(gòu)。但是,μC/OS-Ⅱ所處理的仍然是INT16U。</p><p>  用戶必須將任務(wù)堆棧的數(shù)據(jù)類型告訴給μC/OS-Ⅱ。這個過程是通過為OS_STK聲明正確的 C 數(shù)據(jù)類型來完成的。MCS-51 系列單片機(jī)的堆棧成員是 8 位的,并且用戶的編譯文件指定字符型為8位數(shù),所以應(yīng)將OS_STK聲明為無符號字符型數(shù)據(jù)類型。 </p><p>

54、 ?。?)OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL() </p><p>  與所有的實時內(nèi)核一樣,μC/OS-Ⅱ需要先禁止中斷再訪問代碼的臨界段,并且在訪問完畢后重新允許中斷。這就使得μC/OS-Ⅱ能夠保護(hù)臨界段代碼免受多任務(wù)或中斷服務(wù)例程(ISR)的破壞。中斷禁止時間是商業(yè)實時內(nèi)核公司提供的重要指標(biāo)之一,因為它將影響到用戶的系統(tǒng)對實時事件的響應(yīng)能力。雖然 μC/OS-Ⅱ盡量使

55、中斷禁止時間達(dá)到最短,但是μC/OS-Ⅱ的中斷禁止時間還主要依賴于處理器結(jié)構(gòu)和編譯器產(chǎn)生的代碼的質(zhì)量的。通常每個處理器都會提供一定的指令來禁止/允許中斷,因此用戶的C編譯器必須要有一定的機(jī)制來直接從C中執(zhí)行這些操作。有些編譯器能夠允許用戶在C源代碼中插入?yún)R編語言聲明。這樣就使得插入處理器指令來允許和禁止中斷變得很容易。其它一些編譯器實際上包括語言擴(kuò)展功能,可以直接從 C 中允許和禁止中斷。μC/OS-Ⅱ 定義兩個宏來禁止和允許中斷:OS

56、_ENTER_CRITICAL() 和OS_EXIT_CRITICAL()。OS_ENTER_CRITICAL() 用來關(guān)中斷,OS_EXIT_CRITICAL()用來開中斷。執(zhí)行這兩個宏的最簡單的方法是在 OS_ENTER_CRITICAL()中調(diào)用處理</p><p> ?。?)OS_STK_GROWTH </p><p>  絕大多數(shù)的微處理器和微控制器的堆棧是從高地址往低地址增長的

57、。但是某些處理器是從低地址向高地址增長的。μC/OS-Ⅱ被設(shè)計成兩種情況都可以處理,只要在結(jié)構(gòu)常量OS_STK_GROWTH中指定堆棧的生長方式即可。 </p><p>  1)置OS_STK_GROWTH為0表示堆棧從低地址向高地址增長。 </p><p>  2)置OS_STK_GROWTH為1表示堆棧從高地址向低地址增長。 </p><p>  (4)OS_T

58、ASK_SW() </p><p>  OS_TASK_SW()是一個宏,它是在 μC/OS-Ⅱ從低優(yōu)先級任務(wù)切換到最高優(yōu)先級任務(wù)時被調(diào)用的。OS_TASK_SW()總是在任務(wù)級代碼中被調(diào)用的。另一個函數(shù)OSIntExit()被用來在 ISR 使得更高優(yōu)先級任務(wù)處于就緒狀態(tài)時,執(zhí)行任務(wù)切換功能。任務(wù)切換只是簡單的將處理器寄存器保存到將被掛起的任務(wù)的堆棧中,并且將更高優(yōu)先級的任務(wù)從堆棧中恢復(fù)出來。 </p&g

59、t;<p>  在μC/OS-Ⅱ中,處于就緒狀態(tài)的任務(wù)的堆棧結(jié)構(gòu)看起來就像剛發(fā)生過中斷并將所有的寄存器保存到堆棧中的情形一樣。為切換任務(wù)可以通過執(zhí)行 OS_TASK_SW()來產(chǎn)生中斷。大部分的處理器會提供軟中斷或是陷阱(TRAP)指令來完成這個功能。ISR 或是陷阱處理函數(shù)(也叫做異常處理函數(shù))的向量地址必須指向匯編語言函數(shù)OSCtxSw()。</p><p>  2.3.2 OS_CPU_C.C

60、 文件的移植 </p><p>  μC/OS-Ⅱ的移植實例需要編寫六個簡單的C函數(shù): </p><p>  1)OSTaskStkInit();</p><p>  2)OSTaskCreateHook(); </p><p>  3)OSTaskDelHook(); </p><p>  4)OSTaskSwHoo

61、k(); </p><p>  5)OSTaskStatHook(); </p><p>  6)OSTimeTickHook(); </p><p>  唯一必要的函數(shù)是OSTaskStkInit(),其它五個函數(shù)必須得聲明但沒必要包含代碼。</p><p><b>  3 系統(tǒng)硬件設(shè)計</b></p>

62、<p><b>  3.1 方案研究</b></p><p><b> ?。?)方案一 </b></p><p>  使用ISD語音芯片和LED點陣模塊構(gòu)成。其具有下列特點:①具有高的語音錄放質(zhì)量及實用性,可重復(fù)使用;②抗干擾能力強(qiáng),穩(wěn)定性好;③信號易于處理、傳送和自動控制;④便于現(xiàn)場錄制播放,播放語音顯示效果好⑤安裝方便,維護(hù)簡單,工

63、作可靠性高。ISD語音芯片可以采用美國ISD(Information Storage Devices)公司的ISD4004系列芯片,這類芯片采用直接模擬存儲專利技術(shù),把語音信號以原始的模擬形式直接存儲在片內(nèi)EEPROM存儲器中,無需進(jìn)行A/D 轉(zhuǎn)換和壓縮處理等,從而減少了失真、大大提高了錄放音質(zhì)量,并具有抗斷電、音質(zhì)好、使用方便、可反復(fù)錄放、無需專用的語音開發(fā)工具、能隨意列改內(nèi)容和耗電省等優(yōu)點,很適合于現(xiàn)場錄放音系統(tǒng)。</p>

64、;<p>  比較兩個方案后可以發(fā)現(xiàn),方案二更適合于用作本系統(tǒng)的實施方案。盡管方案二不需要A/D,但考慮到系統(tǒng)擴(kuò)充等因素,單片機(jī)可以選用STC89C52RC。 </p><p><b> ?。?)方案二</b></p><p>  利用8031單片機(jī)作為CPU來進(jìn)行總體控制,當(dāng)汽車到達(dá)某站時,汽車司機(jī)通過鍵盤來控制本系統(tǒng)進(jìn)行工作,并且,系統(tǒng)將使用狀態(tài)指示

65、電路,向司機(jī)指示出當(dāng)前的行駛方向及站號(如與實際方向不符,司機(jī)可通過鍵盤來調(diào)整)。原理圖框圖如圖2.1所示。</p><p><b>  圖3.1 原理框圖</b></p><p>  本系統(tǒng)使用8031作為CPU,由CPU來控制語音合成芯片TC8830AF,使其工作在CPU控制模式下。當(dāng)系統(tǒng)進(jìn)行語音再生時,由CPU控制語音合成電路中的語音芯片來讀取其外接的存儲器內(nèi)部

66、的語音信息,并合成語音信號,再通過語音輸出電路,進(jìn)行語音報站和提示。CPU同時通過程序讀取漢字信息,送入LED點陣顯示電路來進(jìn)行漢字提示。當(dāng)系統(tǒng)進(jìn)行語音錄制時,語音信號通過語音輸入電路輸入給語音合成電路中的語音合成芯片,由語音合成芯片進(jìn)行數(shù)據(jù)處理,并將生成的數(shù)字語音信息存儲到語音存儲芯片中,從而建立語音庫。</p><p><b>  3.2 方案選擇</b></p><

67、p>  將方案一與方案二進(jìn)行比較,方案二是采用8031單片機(jī)控制,通過鍵盤來控制報站時刻,并不完全符合設(shè)計的要求,它仍然需要操作員手動控制,所以本課題決定選用方案一,它使用STC89C52RC作為主控制芯片,通過對里程的計數(shù)來控制報站時刻,完全無需人工介入,選用的語音芯片是美國ISD公司的ISD4004,該芯片與其它語音芯片相比較,其語音音質(zhì)好,錄放時間長。</p><p>  3.3 電路原理的總體設(shè)計&

68、lt;/p><p>  基于ISD4004語音芯片的語音報站漢字顯示系統(tǒng)的設(shè)計研制過程主要包括:總體設(shè)計、硬件設(shè)計、軟件設(shè)計、仿真調(diào)試等幾個階段。對于總體設(shè)計,主要是畫出原理框圖、確定出主要技術(shù)指標(biāo)。如圖3.2所示:</p><p>  圖3.2系統(tǒng)總體設(shè)計框圖</p><p>  單片機(jī)芯片是與MCS-51 兼容的STC89C52RC,STC89C52RC單片機(jī)帶8K

69、字節(jié)閃爍可編程可擦除只讀存儲器的低電壓、高性能8位微處理器。</p><p>  語音錄放電路使用的是ISD4004-8MS以及其外圍錄放電路,外圍電路相當(dāng)簡單;由于其可以進(jìn)行直接模擬信號的存儲,省去了信號模數(shù)轉(zhuǎn)換的相關(guān)電路,使得信號更加的穩(wěn)定、錄放音質(zhì)量好。同時單片8至16 分鐘語音錄放,內(nèi)置微控制器串行通信接口,3V單電源工作,多段信息處理,工作電流25-30mA,維持電流1μA,不耗電信息保存100 年(典

70、型值),高質(zhì)量、自然的語音還原技術(shù),10 萬次錄音周期(典型值),自動靜噪功能,片內(nèi)免調(diào)整時鐘,可選用外部時鐘。利用9014三極管對錄制語音進(jìn)行放大處理,同時通過LM386及喇叭,對輸出語音信號進(jìn)行放大播放,讓語音質(zhì)量以及穩(wěn)定性更加高。</p><p>  漢字顯示電路采用的是16*16 LED點陣顯示。一種方法屬于靜態(tài)顯示。顯然,靜態(tài)顯示需占用較多的I/O口線。另一種是動態(tài)掃描顯示。通過控制各個顯示器公共陽極輪

71、流接高電平的辦法,逐一輪流地啟動各個LED。動態(tài)顯示法是目前各種單片機(jī)采用的流行方法。其優(yōu)點是硬件簡單,“動態(tài)”由軟件實現(xiàn)。因而選用動態(tài)顯示的方法。</p><p>  電源電路是給語音芯片ISD4004提供3V穩(wěn)壓電源,利用LM317,通過電阻分壓,輸出穩(wěn)定的3V穩(wěn)定電源,讓語音芯片可以正常的工作。實現(xiàn)語音錄制播放功能。</p><p>  按鍵控制電路完成對語音播放以及漢字顯示開始的控

72、制,通過對單片機(jī)相關(guān)引腳的高地電平的控制,從而完成對語音芯片的控制,從而達(dá)到完成語音報站漢字顯示功能。</p><p><b>  3.3 芯片選擇</b></p><p>  3.3.1 STC89C52RC單片機(jī)芯片</p><p>  STC89C52RC是STC公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8Kb的可反復(fù)擦寫的Fla

73、sh只讀程序存儲器和512b的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用高密度,非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS—51指令系統(tǒng),片內(nèi)置通用中央處理器(CPU)和Flash存儲單元,功能強(qiáng)大STC89C52RC單片機(jī)可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100000次。將多功能8位CPU和閃爍存儲器組合在單個芯片中,是一種高效微控制器, STC89C52RC單片機(jī)為很多嵌入式控制系

74、統(tǒng)提供了一種靈活性高且價廉的方案。如圖3.1</p><p>  圖3.3 STC89C52RC管腳圖</p><p>  STC89C52RC有P0、P1、P2、P3四個端口,共有32I/O口,P3口也可作為一些特殊功能口,如下表所示:</p><p>  表3.1 P3口的第二功能</p><p>  P3口同時為閃爍編程和編程校驗接收一

75、些控制信號。</p><p>  STC89C52RC單片機(jī)主要性能參數(shù):</p><p>  時鐘頻率(HZ):0~80M</p><p>  8Kash程序存儲器</p><p>  512內(nèi)程序存儲器(RAM)</p><p><b>  2個數(shù)據(jù)指針</b></p><

76、p>  3個16位定時器/計數(shù)器T0/T1</p><p>  4個8位輸入輸出接口(P0~P3),共32根I/O口線</p><p><b>  8個中斷源</b></p><p><b>  4個優(yōu)先級</b></p><p>  3.3.2 ISD4004語音芯片</p>

77、<p>  ISD4000系列單片聲音錄放器件是用CMOS工藝實現(xiàn)的高語音質(zhì)量、3V工作電壓的集成電路芯片,特別適用于移動電話和各種便攜式產(chǎn)品。按錄放時間又分ISD4002、ISD4003和ISD4004三個子系列。片內(nèi)集成有振蕩器、抗混疊濾波器、平滑濾波器、自動靜音電路、音頻放大器和高密度多級Flash存儲陣列。這個系列的新片要求用于微處理器或微控制器系列,通過串行外圍接口SPI或Microwire串行接口進(jìn)行尋址和控制。錄

78、音數(shù)據(jù)被存放方法是通過ISD的多級存儲專利技術(shù)實現(xiàn)的,用聲音和聲頻信號的自然形式直接存放在故態(tài)存儲器中,從而提供高質(zhì)量回放語音的保真度。</p><p> ?。?)ISD4004的主要性能及其特點 </p><p>  1)單片實現(xiàn)聲音錄放功能;采用單一3V工作電壓;</p><p>  2)低功耗:典型的錄音工作電流為25mA;典型的放音工作電流為15mA;<

79、;/p><p>  3)典型待機(jī)節(jié)能狀態(tài)電流為1uA ;單片錄放時間為8min、10min、12min和16min;</p><p>  4)高質(zhì)量自然的聲音/音頻回放;自動靜音電路可以在無聲狀態(tài)時消除背景噪音;</p><p>  5)不需要考慮實現(xiàn)算法;具有微控制器SPI或Microwire串行接口;</p><p>  6)可以對多段信息尋

80、址控制;可以通過SPI或Microwire控制寄存器控制功耗;</p><p>  7)語音數(shù)據(jù)斷電不丟失,可以保存100年;允許反復(fù)錄音10萬次</p><p>  8)片上帶有時鐘源;有PDIP、SOIC、TSOP和CSP多種封裝形式;</p><p> ?。?)外部引腳及其說明</p><p>  圖3.4 ISD4004引腳圖<

81、/p><p>  電源 (VCCA,VCCD):為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳上,模擬和數(shù)字電源端最好分別走線,盡可能在靠近供電端處相連,而去耦電容應(yīng)盡量靠近器件。</p><p>  地線(VSSA,VSSD):芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。</p><p>  同相模擬輸入(ANA IN+): 這是錄音

82、信號的同相輸入端。輸入放大器可用單端或差分驅(qū)動。單端輸入時,信號由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3KΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅(qū)動時,信號最大幅度為峰峰值16mV,與ISD33000系列相同。</p><p>  反相模擬輸入(ANA IN-):差分驅(qū)動時,這是錄音信號的反相輸入端。信號通過耦合電容輸入,最大幅度為峰峰值16mV</p><p&g

83、t;  音頻輸出(AUD OUT):提供音頻輸出,可驅(qū)動5KΩ的負(fù)載。</p><p>  片選(SS):此端為低,即向該ISD4004芯片發(fā)送指令,兩條指令之間為高電平。</p><p>  串行輸入(MOSI):此端為串行輸入端,主控制器應(yīng)在串行時鐘上升沿之前半個周期將數(shù)據(jù)放到本端,供ISD輸入。</p><p>  串行輸出(MISO):ISD的串行輸出端。I

84、SD未選中時,本端呈高阻態(tài)。</p><p>  串行時鐘(SCLK):ISD的時鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI和MISO的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。</p><p>  中斷(/INT):本端為漏極開路輸出。ISD在任何操作(包括快進(jìn))中檢測到EOM或OVF時,本端變低并保持。中斷狀態(tài)在下一個SPI周期開始時清除。中斷狀態(tài)也可用RINT指

85、令讀取。OVF標(biāo)志----指示ISD的錄、放操作已到達(dá)存儲器的未尾。EOM標(biāo)志----只在放音中檢測到內(nèi)部的EOM標(biāo)志時,此狀態(tài)位才置1。</p><p>  行地址時鐘(RAC):漏極開路輸出。每個RAC周期表示ISD存儲器的操作進(jìn)行了一行(ISD4004系列中的存貯器共2400行)。該信號175ms保持高電平,低電平為25ms。快進(jìn)模式下,RAC的218.75μs是高電平,31.25μs為低電平。該端可用于存

86、儲管理技術(shù)。</p><p>  外部時鐘(XCLK):本端內(nèi)部有下拉元件。芯片內(nèi)部的采樣時鐘在出廠前已調(diào)校,誤差在 +1%內(nèi)。商業(yè)級芯片在整個溫度和電壓范圍內(nèi), 頻率變化在+2.25%內(nèi)。工業(yè)級芯片在整個溫度和電壓范圍內(nèi),頻率變化在-6/+4%內(nèi),此時建議使用穩(wěn)壓電源。若要求更高精度,可從本端輸入外部時鐘(如前表所列)。由于內(nèi)部的防混淆及平滑濾波器已設(shè)定,故上述推薦的時鐘頻率不應(yīng)改變。輸入時鐘的占空比無關(guān)緊要,

87、因內(nèi)部首先進(jìn)行了分頻。在不外接地時鐘時,此端必須接地。</p><p>  自動靜噪(AMCAP):當(dāng)錄音信號電平下降到內(nèi)部設(shè)定的某一閾值以下時,自動靜噪功能使信號衰弱,這樣有助于養(yǎng)活無信號(靜音)時的噪聲。通常本端對地接1mF的電容,構(gòu)成內(nèi)部信號電平峰值檢測電路的一部分。檢出的峰值電平與內(nèi)部設(shè)定的閾值作比較,決定自動靜噪功能的翻轉(zhuǎn)點。大信號時,自動靜噪電路不衰減,靜音時衰減6dB。1mF的電容也影響自動靜噪電路

88、對信號幅度的響應(yīng)速度。本端接VCCA則禁止自動靜噪。</p><p>  3.3.3元器件清單</p><p><b>  表3.2元器件清單</b></p><p>  3.4 硬件電路設(shè)計</p><p><b>  3.4.1電源電路</b></p><p>  由于語

89、音芯片ISD4004的工作電壓時3V,不同于單片機(jī)的5V工作電壓,所以就必須有電源電路,提供3V的穩(wěn)定電壓,本電路才用LM317電源電路,5V進(jìn),3V出的一個穩(wěn)壓電路,很適合于產(chǎn)品電源。利用電容濾波,使語音電路噪聲減少。電路圖如圖3.5所示。</p><p>  圖 3.5 電源電路</p><p>  3.4.2 LED點陣顯示電路</p><p>  圖 3.

90、6 LED點陣顯示電路</p><p>  在這次顯示電路的設(shè)計中使用了四個8*8 LED點陣,利用74HC138譯碼器的E1、E2低有效,E3高電平有效進(jìn)行點陣行列的控制顯示,然后通過單片機(jī)控制,進(jìn)行漢字的顯示。電路圖如圖3.6所示。</p><p>  3.4.3語音錄放音電路</p><p>  語音錄放電路如下:使用的是ISD4004-8MS以及其外圍錄放

91、電路,外圍電路相當(dāng)簡單。由于其可以進(jìn)行直接模擬信號的存儲,省去了信號模數(shù)轉(zhuǎn)換的相關(guān)電路,使得信號更加的穩(wěn)定、錄放音質(zhì)量好。同時單片8至16 分鐘語音錄放,內(nèi)置微控制器串行通信接口,3V單電源工作,多段信息處理,工作電流25-30mA,維持電流1μA,不耗電信息保存100 年,高質(zhì)量、自然的語音還原技術(shù),10 萬次錄音周期,自動靜噪功能,片內(nèi)免調(diào)整時鐘,可選用外部時鐘。利用9014三極管對錄制語音進(jìn)行放大處理,同時通過LM386及喇叭,對

92、輸出語音信號進(jìn)行放大播放,讓語音質(zhì)量以及穩(wěn)定性更加高。電路圖如圖3.7所示。</p><p>  圖3.7 ISD4004 語音錄放電路</p><p>  3.4.4按鍵控制電路</p><p>  利用按鍵與單片機(jī)相關(guān)引腳進(jìn)行連接,我們都知道單片機(jī)的引腳在工作狀態(tài)時無負(fù)載時均是高電平,故如果需要進(jìn)行相關(guān)控制,只需其通過按鍵與地連接,然后通過程序控制,當(dāng)按鍵按下時

93、,程序控制其他的引腳高低變化,從而讓語音報站以及漢字顯示。電路圖如圖 3.8所示。</p><p>  圖3.8按鍵控制電路圖</p><p>  本章節(jié)主要是對電路的硬件個部分的設(shè)計,電路的各部分硬件功能設(shè)計基本完成。</p><p>  3.5硬件電路總體設(shè)計</p><p>  根據(jù)以上的語音錄放電路、電源電路、按鍵電路以及LED點陣顯

94、示電路的設(shè)計,構(gòu)成了整體系統(tǒng)的總電路圖,具體電路見附錄1</p><p><b>  4 系統(tǒng)軟件設(shè)計</b></p><p>  4.1 系統(tǒng)軟件結(jié)構(gòu)</p><p>  整個程序包括主程序和延時子程序以及ISD語音錄放程序等幾部分。STC89C52RC單片機(jī)提供了用戶按鍵、顯示和ISD4004所需接口。它接收擊鍵功作,并將相應(yīng)指令傳給ISD

95、4004,同時監(jiān)控ISD4004的中斷輸出。當(dāng)開關(guān)閉合時,讀取ISD4004的狀態(tài)寄存器,從而根據(jù)OVF和EOM的狀態(tài)進(jìn)行相應(yīng)的處理。當(dāng)OVF=1,即存儲器溢出時,則不管當(dāng)前為何種狀態(tài)均將ISD4004的地址置零,并繼續(xù)運(yùn)行原指令;當(dāng)EOM=1時,當(dāng)前狀態(tài)只可能為放音或快進(jìn),若為快進(jìn)則置為放音態(tài),并繼續(xù)運(yùn)行。如此設(shè)計便實現(xiàn)了循環(huán)錄放的功能,同時在快進(jìn)時,自動停止在下一個語音段開始處,并繼續(xù)放音。流程圖如圖4.1所示。</p>

96、<p>  圖4.1主程序流程圖</p><p>  程序就是為計算機(jī)某一算式或完成某一工作的若干指令的有序集合。計算機(jī)的全部工作概括起來就是執(zhí)行這一指令序列的過成。這一指令序列稱為程序。主程序主要調(diào)用了4個子程序,分別是延時子程序、ISD4004語音錄放程序、LED點陣顯示子程序、中斷控制程序等。</p><p>  4.2 系統(tǒng)軟件設(shè)計</p><p&

97、gt;  4.2.1 延時設(shè)計</p><p>  為了精確的控制單總線接口的特殊時序要求,延時函數(shù)是相當(dāng)關(guān)鍵的,它是所有讀控制和寫控制的組成部分以及顯示時延時用;下面us的延時(12M)延時子程序和ms的延時(12M)延時子程序。</p><p>  void delay1(void)</p><p><b>  {</b></p>

98、;<p><b>  int16 i;</b></p><p>  for (i=0;i<50;i++)</p><p><b>  ;</b></p><p><b>  }</b></p><p>  void delay(unsigned int ti

99、me) //延時n微秒</p><p>  {while(time!=0)</p><p><b>  {time--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void delayms

100、(unsigned char g){/*延時gms*/</p><p>  unsigned char i,j;</p><p>  for(i=0;i<g;i++){</p><p>  for(j=0;j<121;j++){;}}</p><p><b>  }</b></p><p&

101、gt;  4.2.2 語音錄放設(shè)計</p><p>  //***********************************</p><p>  //入口:放音位置的高低位</p><p><b>  //放音程序</b></p><p>  //功能:從指定位置放音</p><p>  /

102、/***********************************</p><p>  void play(unsigned char adl,unsigned char adh)</p><p><b>  {</b></p><p>  unsigned char ovflog;</p><p>  while

103、(AN == 0) {;}</p><p>  isd_setplay(adl,adh); //發(fā)送setplay指令,從0x0000地址開始放音</p><p><b>  do</b></p><p><b>  {</b></p><p>  isd_play();

104、 //發(fā)送放音指令</p><p>  delay(20);</p><p>  while(ISD_INT == 1) //等待放音完畢的EOM中斷信號</p><p><b>  {;}</b></p><p><b>  LED2 = 1;</b>

105、</p><p>  isd_stop(); //放音完畢,發(fā)送stop指令</p><p>  if(ovflog == chk_isdovf()) //檢查芯片是否溢出,如溢出則停止放音,芯片復(fù)位</p><p><b>  break;</b></p><p>  while(A

106、N == 1) //等待AN鍵再次按下</p><p><b>  {</b></p><p>  if(STOP == 0)</p><p><b>  break;</b></p><p>  if(AN == 0)</p><p>  del

107、ayms(20);</p><p><b>  }</b></p><p>  }while(AN == 0); //An鍵再次按下,播放下一段語音</p><p><b>  }</b></p><p>  4.2.3 中斷控制設(shè)計</p><p>

108、;  中斷定時控制程序,對LED點陣動態(tài)掃描進(jìn)行控制,同時也對漢字顯示進(jìn)行中斷控制,讓漢字可以按照從右至左的順序進(jìn)行滾動顯示。</p><p>  /*****定時器T0中斷子程序*******/</p><p>  void timer0() interrupt 1 using 3</p><p><b>  {</b></p>

109、<p><b>  TF0=0;</b></p><p><b>  TH0=0xb1;</b></p><p><b>  TL0=0xe0;</b></p><p><b>  if (n<10)</b></p><p><b&

110、gt;  {</b></p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  off

111、set+=2;</p><p>  if (offset>860)</p><p><b>  offset=0;</b></p><p><b>  n=0;</b></p><p><b>  }</b></p><p><b>  

112、}</b></p><p>  4.2.4 LED點陣漢字顯示設(shè)計</p><p>  該程序段主要完成向LED點陣點陣動態(tài)掃描顯示,控制系統(tǒng)的漢字顯示部分。</p><p>  /*********漢字顯示函數(shù)**************/</p><p><b>  while (1)</b></p

113、><p><b>  {</b></p><p>  for (i=0;i<8;i++) //顯示左半邊屏幕</p><p><b>  {</b></p><p>  P0=*(p+offset+2*i);</p><p>  P2=i|

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論