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

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ?。ǘ?屆)</b></p><p>  基于單片機(jī)的公交報(bào)站系統(tǒng)設(shè)計(jì)</p><p>  所在學(xué)院 </p><p>  專業(yè)班級(jí) 電子信息工程 </p&

2、gt;<p>  學(xué)生姓名 學(xué)號(hào) </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要</b></p><p> 

3、 隨著科技的進(jìn)步,技術(shù)的發(fā)展,人們?cè)絹碓教岢悄芑唵位?,用科技來改變?cè)械纳罘绞?。作為一個(gè)城市的公交企業(yè),它既要代表政府體現(xiàn)當(dāng)?shù)爻鞘械男蜗?,又要盡一切力量減少政府投資,創(chuàng)造良好的社會(huì)效益和經(jīng)濟(jì)效益。而傳統(tǒng)的公交運(yùn)營系統(tǒng)的裝備和管理模式較難達(dá)到這兩者的完美結(jié)合。 為了改變這種狀況,本文利用單片機(jī)來設(shè)計(jì)一種適合在公交車上用的智能報(bào)站系統(tǒng)。采用AT89C51作為CPU進(jìn)行總體控制,根據(jù)鍵盤信息,對(duì)語音和液晶顯示進(jìn)行控制。由語音芯

4、片ISD4003構(gòu)成的語音電路實(shí)現(xiàn)錄音和回放,LCD進(jìn)行漢字顯示,從而實(shí)現(xiàn)公交車語音報(bào)站和液晶顯示雙重功能。</p><p>  由于該系統(tǒng)在工作中可降低司機(jī)的工作強(qiáng)度,可以提高車輛的運(yùn)行安全,所以具有廣泛的適用性和推廣性。</p><p>  關(guān)鍵詞:公交報(bào)站,語音芯片ISD4003,液晶顯示</p><p>  Design of a bus-stop Repo

5、rting System Based on MCU</p><p><b>  Abstract</b></p><p>  With the development of science technology, people increasingly advocate the intelligence and simplification. As a city bu

6、s companies, not it only represent city imagine , but also make every effort to reduce government investment and create a good social and economic benefits. Traditional bus system can not satisfy the need of the moderniz

7、ed system development.</p><p>  In order to change the situation, This paper researched a kind of Deisgn method of intelligent bus_stop system. This design is mainly to use 89S51 microcontroller as CPU to ca

8、rry out over all controls .Through the program reads characters into the LCD liquid circuit character prompt.</p><p>  As the system can reduce the drivers’work intensity and improve the safty of vehicles

9、,so it can be applied and spred. </p><p>  Keywords: bus-stop Reporting, AT89C51,voice chip ISD4003, LCD display </p><p><b>  目錄</b></p><p><b>  摘 要I</b>

10、</p><p>  AbstractII</p><p><b>  目錄III</b></p><p><b>  1 緒論1</b></p><p>  1.1課題來源及意義1</p><p>  1.2發(fā)展現(xiàn)狀及趨勢1</p><p>

11、;  1.3課題研究的主要內(nèi)容2</p><p>  2方案分析與總體設(shè)計(jì)3</p><p><b>  2.1方案對(duì)比3</b></p><p><b>  2.2方案總結(jié)3</b></p><p>  2.3方案總體設(shè)計(jì)4</p><p>  3公交報(bào)站系統(tǒng)硬件

12、設(shè)計(jì)5</p><p>  3.1主體控制(AT89C51)5</p><p><b>  3.2語音模塊7</b></p><p>  3.2.1語音芯片ISD40038</p><p>  3.2.2音頻小功率放大電路LM3869</p><p>  3.3 液晶顯示模塊10<

13、;/p><p>  3.3.1 液晶顯示-12864系列與MCU的接口11</p><p>  3.3.2 12864系列內(nèi)置硬件說明11</p><p>  3.4 時(shí)間顯示模塊12</p><p>  3.5 鍵控模塊14</p><p>  4公交報(bào)站系統(tǒng)軟件設(shè)計(jì)15</p><p>

14、;  4.1主程序流程圖及程序15</p><p>  4.2鍵盤子程序模塊流程圖及程序17</p><p>  4.3語音子程序模塊流程圖及程序18</p><p>  4.4顯示子程序模塊流程圖及程序20</p><p><b>  總結(jié)24</b></p><p><b>

15、;  參考文獻(xiàn)25</b></p><p>  致 謝錯(cuò)誤!未定義書簽。</p><p><b>  附錄26</b></p><p>  附錄圖1 電路原理圖26</p><p>  附錄圖2 PCB版圖27</p><p>  附錄圖3 實(shí)物圖27</p>

16、<p><b>  1 緒論</b></p><p>  1.1課題來源及意義</p><p>  隨著社會(huì)信息化的加快,人們的工作,生活和通訊,信息的關(guān)系日益緊密。信息化社會(huì)在改變?nèi)藗兩罘绞脚c工作習(xí)慣的同時(shí),也對(duì)傳統(tǒng)的公交提出了挑戰(zhàn):人們對(duì)公交的要求早已不只是簡單的交通運(yùn)輸工具,更為關(guān)注的是一個(gè)安全,方便,舒適的智能交通車[1]。作為一個(gè)城市的公交企業(yè)

17、,它不僅代表社會(huì)體現(xiàn)當(dāng)?shù)爻鞘械男蜗?,又要盡一切力量減少投資,創(chuàng)造良好的經(jīng)濟(jì)效益及社會(huì)效益;而傳統(tǒng)公交由于人工售票,人工報(bào)站等一些人為因素影響,難以滿足現(xiàn)代城市公交發(fā)展需求[2]。</p><p>  現(xiàn)在是一個(gè)高科技的電子時(shí)代,提倡的是智能電子系統(tǒng)?,F(xiàn)代電子系統(tǒng)的基本核心是嵌入式計(jì)算機(jī)系統(tǒng)(簡稱嵌入式系統(tǒng)),而單片機(jī)是最典型、最廣泛、最普及的嵌入式系統(tǒng),發(fā)展到現(xiàn)在技術(shù)已相當(dāng)成熟,應(yīng)用十分廣泛。單片機(jī)體積小,重量輕

18、,價(jià)格便宜且具有很強(qiáng)的靈活性,這為智能公交的發(fā)展提供了十分有利的條件,并且具有很強(qiáng)的市場適用性。公共交通智能化系統(tǒng)是公交信息化系統(tǒng)的重要組成部分,是提高公共交通服務(wù)水平、吸引出行量的必要手段,體現(xiàn)了一個(gè)城市的現(xiàn)代化交通管理水平,是中國解決交通問題的重要措施之一。</p><p>  1.2發(fā)展現(xiàn)狀及趨勢</p><p>  單片機(jī)生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段

19、,F(xiàn)LASH的使用使MCU技術(shù)進(jìn)入第四代,發(fā)展到現(xiàn)在技術(shù)已相當(dāng)成熟。目前,國內(nèi)外單片機(jī)最新的技術(shù)包括:數(shù)字單片機(jī)技術(shù),以單片機(jī)為核心的嵌入式系統(tǒng)技術(shù)以及單片機(jī)的可靠性技術(shù)。</p><p>  智能公交最新發(fā)展現(xiàn)狀可由智能汽車作為代表,它是一個(gè)集環(huán)境感知、規(guī)劃決策、多等級(jí)輔助駕駛等功能于一體的綜合系統(tǒng),它集中運(yùn)用了計(jì)算機(jī)、現(xiàn)代傳感、信息融合、通訊、人工智能及自動(dòng)控制等技術(shù),是典型的高新技術(shù)綜合體[3]。在目前的汽

20、車駕駛中,駕駛員的人為因素占了很大的比重,一旦出現(xiàn)駕駛員長時(shí)間駕車、疲勞駕車、判斷失誤的情況,很容易造成交通事故。通過對(duì)車輛智能化技術(shù)的研究和開發(fā),可以提高車輛的控制與駕駛水平,保障車輛行駛的安全暢通、高效。智能車輛的主要特點(diǎn)是以技術(shù)彌補(bǔ)人為因素的缺陷,使得即便在很復(fù)雜的道路情況下,也能自動(dòng)地操縱和駕駛車輛繞開障礙物,沿著預(yù)定的道路軌跡行駛。</p><p>  隨著最新技術(shù)的發(fā)展,車載信息系統(tǒng)成為未來發(fā)展趨勢。

21、從計(jì)算機(jī)領(lǐng)域看,汽車車載信息系統(tǒng)是一個(gè)移動(dòng)的計(jì)算平臺(tái)。車載信息系統(tǒng)除了能夠幫助安全駕駛外,另一方面還能幫助消費(fèi)者將車上的設(shè)備都接入互聯(lián)網(wǎng),和其他車輛連接,和云計(jì)算連接,和交通流量、天氣等各種實(shí)時(shí)數(shù)據(jù)連接[4]。</p><p>  1.3課題研究的主要內(nèi)容</p><p>  本論文設(shè)計(jì)一種自動(dòng)播報(bào)公交站名的智能系統(tǒng),采用單片機(jī)AT89S51作為主控制中心,ISD4003語音芯片控制報(bào)站,

22、LCD顯示電路控制站名顯示。</p><p>  本次設(shè)計(jì)以Keil C51開發(fā)環(huán)境為編程平臺(tái)進(jìn)行代碼的編譯和運(yùn)行,在Protel 99進(jìn)行仿真。該報(bào)站系統(tǒng)具有如下的基本功能:</p><p>  1)按鍵輸入控制:1.復(fù)位鍵:初始化狀態(tài);2.時(shí)間設(shè)置鍵:對(duì)時(shí)間進(jìn)行設(shè)置;3.提示鍵:語音提示;4.報(bào)站鍵:車站提醒。</p><p>  2)語音播報(bào):對(duì)車站名語音播報(bào)

23、,并有溫馨提醒。</p><p>  3)液晶顯示:站名漢字顯示和時(shí)間顯示。</p><p>  4)芯片控制:以AT89C51芯片作為主控制核心。</p><p>  本論文總體設(shè)計(jì)的主要內(nèi)容有:</p><p><b>  1)總體布置設(shè)計(jì);</b></p><p>  2)繪制總體設(shè)計(jì)電路圖

24、;</p><p>  3)確定總體主要參數(shù);</p><p>  4)編寫設(shè)計(jì)程序及技術(shù)說明書等。</p><p>  2方案分析與總體設(shè)計(jì)</p><p><b>  2.1方案對(duì)比</b></p><p>  一、基于單片機(jī)AT89S51設(shè)計(jì)</p><p>  優(yōu)點(diǎn)

25、:51是8位單片機(jī),內(nèi)部的硬件到軟件有一套完整的按位操作系統(tǒng),易于編程;它體積小,功耗低,性價(jià)比低,網(wǎng)上學(xué)習(xí)資源豐富,十分適合初學(xué)者;采用C語言編程,程序易懂。</p><p>  缺點(diǎn):運(yùn)行速度慢(采用CISC(集中指令));所有I/O口都是準(zhǔn)雙向口,I/O口驅(qū)動(dòng)能力弱。</p><p>  二、基于TMS320C5X系列的DSP設(shè)計(jì)</p><p>  優(yōu)點(diǎn):D

26、SP芯片采用哈佛結(jié)構(gòu),運(yùn)行速度快,精度高;有自己完整的指令系統(tǒng)和一些特殊的DSP指令,有強(qiáng)大的數(shù)據(jù)處理能力。</p><p>  缺點(diǎn):適用范圍窄,DSP系統(tǒng)是不同于模擬電路和數(shù)字邏輯電路系統(tǒng),所需處理的是數(shù)字信號(hào);一般適用于信號(hào)處理和圖形、圖像處理。</p><p>  三、基于UC/OS_Ⅱ操作系統(tǒng)的ARM設(shè)計(jì)</p><p>  優(yōu)點(diǎn):ARM是32位RISC微

27、處理器,具有極高的性價(jià)比、代碼密度,以及出色的實(shí)時(shí)中斷響應(yīng)和極低的功耗;UC/OS_Ⅱ具有可移植,可固化,可裁剪,多任務(wù)管理的特點(diǎn),代碼執(zhí)行效率高、占用空間少、實(shí)時(shí)性能優(yōu)良,適合高端應(yīng)用領(lǐng)域。</p><p>  缺點(diǎn):ARM相對(duì)于51而言,成本較高,且ARM在接口設(shè)計(jì)和編程方面較復(fù)雜,適合專業(yè)設(shè)計(jì)人員;</p><p>  四、基于FPGA的VHDL語言設(shè)計(jì)</p><

28、;p>  優(yōu)點(diǎn):FPGA是一種現(xiàn)場可編程門陣列,集成度高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn);FPGA器件修改方便,設(shè)計(jì)周期短,使系統(tǒng)研制開發(fā)成本降低;用VHDL編程,靈活性強(qiáng),可進(jìn)行編程、除錯(cuò)、再編程重復(fù)操作,可進(jìn)行充分地設(shè)計(jì)開發(fā)和驗(yàn)證。</p><p>  缺點(diǎn):VHDL語言編程難以符合該課題,仿真環(huán)境難以體現(xiàn)功能優(yōu)越性;專業(yè)性太強(qiáng),研發(fā)工作普通用戶難以完成。</p><p><

29、;b>  2.2方案總結(jié)</b></p><p>  本課題設(shè)計(jì)的系統(tǒng)屬于小型項(xiàng)目,信息處理量不大,對(duì)速度、功耗要求不高,故選用8位的AT89S51就能滿足系統(tǒng)的設(shè)計(jì)需求;通用廉價(jià)的AT89S51,作為控制芯片,不僅控制方便,成本低,而且設(shè)計(jì)簡單?;谏鲜?,選用1號(hào)基于單片機(jī)AT89S51設(shè)計(jì)方案。</p><p><b>  2.3方案總體設(shè)計(jì)</b&g

30、t;</p><p><b>  基本原理:</b></p><p>  本系統(tǒng)采用89C51作為CPU,由CPU控制語音電路,液晶顯示電路和鍵盤電路。鍵盤電路采用中斷模式,當(dāng)有鍵按下,系統(tǒng)產(chǎn)生中斷,CPU響應(yīng)中斷;CPU處理后,決定播放語音芯片中已錄制好的的錄音,再經(jīng)過一個(gè)功率放大電路來緩沖,播放錄音;同時(shí)CPU通過程序讀取漢字信息,送入LCD顯示電路。 其系統(tǒng)框圖

31、如圖2-1所示:</p><p>  圖2-1總體設(shè)計(jì)系統(tǒng)框圖</p><p><b>  設(shè)計(jì)主要內(nèi)容</b></p><p><b> ?。?)語音模塊</b></p><p>  選用ISD4003芯片實(shí)現(xiàn)報(bào)站。特點(diǎn):播放時(shí)間長,單片4至8分鐘語音錄放,多段信息處理,不耗電信息保存100年,1

32、0萬次錄音周期,外圍電路簡單。</p><p>  實(shí)現(xiàn)功能:1.播放錄音;2.復(fù)位</p><p><b>  (2)液晶顯示模塊</b></p><p>  選用12864顯示屏,控制簡單,顯示數(shù)據(jù)多,顯示資料提供64×2位元組的空間,最多控制4行×16字(64字)中文字型顯示。</p><p>

33、  實(shí)現(xiàn)功能:1.漢字顯示,顯示站名;2.時(shí)間顯示</p><p><b> ?。?)時(shí)間顯示模塊</b></p><p>  選用DS1302,它是充電時(shí)間芯片,通過簡單串行接口與單片機(jī)進(jìn)行通信;時(shí)間可自行調(diào)整,設(shè)置初值后,芯片自動(dòng)計(jì)數(shù)時(shí)間。時(shí)間在液晶顯示屏上顯示,通過按鍵可調(diào)整。</p><p><b> ?。?)鍵控模塊<

34、/b></p><p>  鍵盤是人機(jī)交流的重要組成部分,通過鍵盤控制,向單片機(jī)提供指令,從而達(dá)到控制的目的。根據(jù)鍵盤的數(shù)目和占用資源的相對(duì)多少選擇鍵盤形式。由于本文中鍵盤數(shù)目較少,控制簡單,故選用獨(dú)立式鍵盤。</p><p>  3公交報(bào)站系統(tǒng)硬件設(shè)計(jì)</p><p>  3.1主體控制(AT89C51)</p><p>  為保持系

35、統(tǒng)的穩(wěn)定,系統(tǒng)采用AT89S51。它是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元。單片機(jī)最小系統(tǒng)電路圖3-1如下:</p><p>  圖3-1單片機(jī)最小系統(tǒng)</p><p>  該單片機(jī)最小系統(tǒng)包括一個(gè)復(fù)

36、位電路、時(shí)鐘電路和由晶振、負(fù)載電容組成的時(shí)鐘振蕩電路。復(fù)位電路由一個(gè)10uF的電容和一個(gè)10K的電阻組成,當(dāng)這個(gè)管腳有連續(xù)兩個(gè)以上機(jī)器周期的高電平時(shí),這個(gè)單片機(jī)就會(huì)復(fù)位,復(fù)位電路高電平有效;時(shí)鐘振蕩電路由一個(gè)12M的晶振和2個(gè)30pF的負(fù)載電容組成,輸出時(shí)鐘脈沖,在51單片機(jī)中,晶振輸出的脈沖周期為脈沖周期,12個(gè)脈沖周期為機(jī)器周期,單片機(jī)工作時(shí)間的最小單片機(jī)是機(jī)器周期;使用的單片機(jī)需要在+5V的直流電壓下工作,且這個(gè)電源必須很穩(wěn)定,否

37、則會(huì)導(dǎo)致單片機(jī)的復(fù)位。</p><p>  AT89C51有2種可用軟件編程的省電模式,它們是空閑模式和掉電模式。在空閑模式狀態(tài)下,CPU保持睡眠狀態(tài)而所有片內(nèi)的外設(shè)仍保持激活狀態(tài);在掉電模式下,振蕩器停止工作,進(jìn)入掉電模式的指令是最后一條被執(zhí)行的指令。</p><p><b>  主要引腳描述:</b></p><p>  RST/VPD(9

38、引腳):復(fù)位信號(hào)輸入端,高電平有效。完成復(fù)位操作時(shí),需要在該引腳加上2個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平;正常工作時(shí),引腳電壓≦0.5V。 </p><p>  ALE/PROG(30引腳):ALE引腳輸出為地址鎖存允許信號(hào);PROG引腳作為編程脈沖輸入端。它的第二功能是對(duì)片內(nèi)EPROM型單片機(jī)編程寫入時(shí),此引腳作為編程脈沖輸入端。</p><p>  PSEN(29引腳):程

39、序存儲(chǔ)器允許輸出控制端。在單片機(jī)訪問外部存儲(chǔ)器時(shí),此引腳輸出脈沖負(fù)跳沿作為讀外部程序存儲(chǔ)器的選通信號(hào)。</p><p>  EA/VPP(31引腳):內(nèi)外程序存儲(chǔ)器選擇控制端。當(dāng)EA為高電平時(shí),訪問片內(nèi)程序存儲(chǔ)器,EA為低電平時(shí),只訪問外部程序存儲(chǔ)器。</p><p>  其性能參數(shù)和管腳圖如3-2下:</p><p><b>  圖3-2管腳配置圖<

40、;/b></p><p>  單片機(jī)需要在+5V的直流電壓下工作,且這個(gè)電源必須很穩(wěn)定,否則會(huì)導(dǎo)致單片機(jī)的復(fù)位。用7805三端穩(wěn)壓塊進(jìn)行穩(wěn)壓,輸入和輸出加兩個(gè)濾波電容。</p><p>  其電源電路如下3-3所示:</p><p><b>  圖3-3電源電路圖</b></p><p><b>  3.

41、2語音模塊</b></p><p>  語音部分采用ISD4003系列高保真語音集成芯片。ISD4003系列語音芯片的錄放電路設(shè)計(jì)包括了錄音和放音的電路,其電路方框圖如圖3-4所示:</p><p>  圖3-4 ISD4003 錄放電路方框圖</p><p>  本設(shè)計(jì)中采用單端輸入的連接方式來輸入錄音信號(hào),將錄制好的信號(hào)送出相應(yīng)的地址,再報(bào)站狀態(tài)下,

42、只需由單片機(jī)找到語句存儲(chǔ)地址,可開始放音??芍爸梅糯箅娐肥且粋€(gè)電壓并聯(lián)負(fù)反饋單管放大電路,通過實(shí)際實(shí)驗(yàn),該電路的輸出信號(hào)滿足ISD4003的輸入電壓要求。本論文中,語音已錄制后,故省略錄音前置放大電路。</p><p>  ISD4003的基本應(yīng)用電路是根據(jù)芯片說明書上的要求,采用芯片說明書推薦的應(yīng)用電路使用。ISD4003有數(shù)字電源和模擬電源,控制芯片說明書的要求,兩個(gè)電源在做電路板的時(shí)候最好分開走線,而數(shù)字

43、地和模擬地則盡量在焊盤上直接連接后用低阻通路連接到電源的地線。而音頻輸入端采用單端輸入方式,其同相輸入端通過一個(gè)電容接地,反相輸入端通過一個(gè)電容接到前置放大器的輸出,可以濾去前置放大器輸出的直流信號(hào)。ISD4003的音頻輸出端通過一個(gè)4.7uF的電容接到后級(jí)的功率放大電路(由LM386芯片構(gòu)成)。該應(yīng)用電路圖如3-5下所示:</p><p>  圖3-5 ISD4003的應(yīng)用電路</p><p

44、>  3.2.1語音芯片ISD4003</p><p>  ISD4003系列芯片是高保真語音錄放IC,3V單電源工作,無需開發(fā)系統(tǒng),采用高質(zhì)量、自然語音還原技術(shù)。</p><p>  其引腳圖如3-6下:</p><p>  圖3-6 ISD4003管腳圖</p><p><b>  主要引腳描述</b><

45、/p><p>  電源(VCCA,VCCD):芯片的模擬和數(shù)字電路使用不同的電源總線,且分別總線,盡可能靠近供電端處相連去耦電容靠近器件。</p><p>  地線(VSSA,VSSD):用低阻通路連接至電源,接地通路使VSSA與VSSD之間阻值<3Ω。</p><p>  同相模擬輸入(ANA IN+):錄音信號(hào)同相輸入端,本文采用單端輸入方式。 <

46、/p><p>  反相模擬輸入(ANA IN-):錄音信號(hào)的反相輸入端。單端方式下,該管腳通過電容接地。且ANA IN+和ANA IN-端的電容值相同。</p><p>  片選(SS):低電平有效。</p><p>  串行輸入(MOSI):串行輸入端,主控制器在串行時(shí)鐘沿上升之前半個(gè)周期將數(shù)據(jù)放到末端。</p><p>  串行輸出(MISO

47、):串行輸出端,芯片未選中,本端呈高阻狀態(tài)。</p><p>  串行時(shí)鐘(SCLK):時(shí)鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI和MISO數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。</p><p>  行地址時(shí)鐘(RAC):漏極開路輸出。每個(gè)RAC周期表示ISD存儲(chǔ)器進(jìn)行了一行的操作,該端用于存儲(chǔ)管理技術(shù)。</p><p>  音頻輸出(A

48、UD OUT):音頻輸出端,可驅(qū)動(dòng)5Ω的負(fù)載。</p><p>  自動(dòng)靜躁(AMCAP):該端對(duì)地接1µF的電容,構(gòu)成內(nèi)部信號(hào)電平峰值檢測電路的一部分。</p><p>  SPI(串行外接口)</p><p>  ISD4003工作于SPI串行接口。SPI協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,假定SPI移位寄存器在SCLK的下降沿動(dòng)作,在時(shí)鐘上升沿鎖存MOS

49、I引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)傳送至MISO引腳。</p><p><b>  (1)信息快進(jìn) </b></p><p>  用戶不需要知道信息的確切地址,就能快進(jìn)跳過一條信息。 信息快進(jìn)只用于放音模式。遇到EOM后停止,內(nèi)部地址計(jì)數(shù)器加1,指向下條信息的開始處。 </p><p><b>  (2)上電順序 </b><

50、;/p><p>  器件延時(shí)TPUD(8kHz采樣時(shí),約為25ms)后才能開始操作。所以用戶發(fā)完上電指令后,必須等待TPUD,才能發(fā)出一條操作指令。器件會(huì)從此00地址開始放音,當(dāng)出現(xiàn)EOM時(shí),立即中斷,停止放音。</p><p>  該芯片設(shè)計(jì)是基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI或Microwire)送入。芯片采用多電平直接模擬量存儲(chǔ)技術(shù), 每個(gè)采樣值直接存貯在

51、片內(nèi)閃爍存貯器中,能夠非常真實(shí)、自然地再現(xiàn)語音、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"[5]。文選用ISD4003-04M,外部鐘頻:1024KHz。</p><p>  表3-1 4003系列型號(hào)與性能對(duì)照表</p><p>  ISD4003系列工作電壓3V,單片錄放時(shí)間4~8分鐘。ISD4003系列芯片內(nèi)含振蕩器、防混淆濾波器、

52、音頻放大器、自動(dòng)靜噪、平滑濾波器及高密度多電平閃爍存貯陳列。采樣頻率可為 4.0,5.3,6.4,8.0kHz,頻率越低,錄放時(shí)間越長,而音質(zhì)有所下降。片內(nèi)信息可在斷電情況下保存100年(典型值)[6]。</p><p>  3.2.2音頻小功率放大電路LM386</p><p>  因?yàn)镮SD4003的輸出最大可以驅(qū)動(dòng)5K的負(fù)載,所以要設(shè)計(jì)一個(gè)功率放大電路來緩沖??梢允褂煤唵蔚娜龢O管放大

53、電路也可以采用專用的功率放大芯片來構(gòu)成。采用三極管構(gòu)成的功率放大電路有成本低的優(yōu)點(diǎn),但是它的工作穩(wěn)定性比較差,而且電路不簡潔[7]。而采用專用的功率放大芯片(如LM386)構(gòu)成的放大電路有電路簡潔、工作穩(wěn)定等優(yōu)點(diǎn),而且價(jià)格也不會(huì)太高,所以本設(shè)計(jì)采用LM386來構(gòu)成ISD4003輸出信號(hào)的功率放大電路[8]。</p><p>  LM386是低電壓應(yīng)用的音頻功率放大電路,有如下特點(diǎn):</p><

54、p> ?。?)電源電壓范圍寬,;</p><p> ?。?)靜態(tài)電流小,當(dāng)時(shí),靜態(tài)電流典型值為4mA。</p><p>  (3)電壓增益可調(diào),輸出端直流電壓自動(dòng)跟蹤,外圍元件少。</p><p>  其應(yīng)用電路如3-7下:</p><p>  圖3-7 LM386功率放大電路</p><p>  LM386的應(yīng)

55、用電路簡單:6管腳接電源4~12V或5~18V,由于系統(tǒng)中有多組電源,電壓不同,電容不同,故可將上電、調(diào)電時(shí)間短的電源調(diào)至+12V且它的值不得低于4V;4管腳接地;通過1、8管腳間的電容改變?cè)鲆妫瑪嚅_時(shí)增益為20dB;7管腳一定要接電容,該電容的作用是:濾除噪聲,當(dāng)工作穩(wěn)定后,該管腳電壓為原先的一半,若要減緩直流基準(zhǔn)電壓的上升、下降速度,抑制噪聲比,可增大該電容的容值;2、3管腳采用雙音輸入/輸出方式,輸出端可以抵消共模信號(hào),有效抑制共

56、模噪聲比,在輸出端再接一個(gè)輸出耦合電容,該電容的作用是隔直通交和耦合,接4.7Uf/10uF最合適;電位器的選擇一般采用10K最合適,阻值不會(huì)特別大。</p><p>  3.3 液晶顯示模塊</p><p>  本部分采用12864B液晶顯示模塊。它控制簡單、接口方式靈活,有4位/8位并行,2線或3線串行多種接口方式;為了能夠簡單、有效地顯示漢字和圖形,該模塊內(nèi)部設(shè)計(jì)有2MB的中文字型C

57、GROM和64*256點(diǎn)陣的GDRAM繪圖區(qū)域;同時(shí),該模塊還提供有4組可編程控制的16*16點(diǎn)陣造字空間[9]。字符顯示通過將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn),根據(jù)寫入方式的不同,顯示不同類別的內(nèi)容。</p><p>  本設(shè)計(jì)液晶模塊串口顯示,PSB接低電平(接地)。數(shù)據(jù)線(D0-D7)空接,RS、R/W、E分別與P0.0、P0.1、P0.2連接。每次上電后,單片機(jī)初始化完成后,進(jìn)入系統(tǒng)默認(rèn)的報(bào)站模式,一

58、旦有鍵按下,通過軟件解碼讀出鍵值,根據(jù)軟件所設(shè)置的功能去執(zhí)行[10]。模塊電路圖如3-8下:</p><p>  圖3-8液晶串口顯示電路圖</p><p>  3.3.1 液晶顯示-12864系列與MCU的接口</p><p>  引腳描述(串行狀態(tài)下):</p><p>  VCC(2引腳):模塊電源輸入,一般為5V;</p>

59、<p>  V0(3引腳):對(duì)比度調(diào)節(jié);通過電位器調(diào)節(jié)后,從接口的V0腳引入模塊來驅(qū)動(dòng)LCD;</p><p>  VEE(1引腳):液晶電壓輸出端;</p><p>  RST(17引腳):復(fù)位信號(hào),低電平有效;</p><p>  PSB(15引腳):并口/串口選擇,H并口;L串口;</p><p>  RS(4引腳):片選

60、,低有效;</p><p>  R/W(5引腳):串行數(shù)據(jù)線;</p><p>  E(6引腳):串行時(shí)鐘輸入;</p><p>  DB0-DB7(7-14引腳):空接;</p><p>  LEDK(19引腳):背光負(fù);</p><p>  LEDA(20引腳):背光正。</p><p> 

61、 3.3.2 12864系列內(nèi)置硬件說明</p><p>  12864液晶顯示模塊是采用控制芯片ST7920來控制顯示的。ST7920是一種內(nèi)置128*64-12漢字圖形點(diǎn)陣的液晶顯示控制模塊,用于顯示漢字及圖形。該芯片共內(nèi)置8192個(gè)中文漢字(16*16點(diǎn)陣)、128個(gè)字符的ASCII字符庫(8*16點(diǎn)陣)及64*256點(diǎn)陣顯示RAM(GDRAM)。</p><p>  中文字型產(chǎn)生R

62、OM(CGROM)及半寬字型為字符產(chǎn)生器ROM(HCGORM):ST7920</p><p>  的字型產(chǎn)生ROM通過8192個(gè)16*16點(diǎn)陣的中文字型,以及126個(gè)16*8點(diǎn)陣的西文字符,用2個(gè)字節(jié)提供編碼選擇,硬件依照編碼自動(dòng)從CGROM中選擇將要顯示的字型;</p><p>  字型發(fā)生RAM(CGRAM):提供用戶自定義字符生成(造字)功能,可提供4組16*16點(diǎn)陣空間,可將CGR

63、OM中沒有定義的字符定義到CGRAM;</p><p>  顯示RAM(DDRAM):用以存放LCD顯示的數(shù)據(jù),將標(biāo)準(zhǔn)的ASCII碼放入DDRAM,內(nèi)部控制線路就會(huì)自動(dòng)將數(shù)據(jù)傳送到顯示器上,并顯示出該ASCII碼對(duì)應(yīng)的字符。提供64*2字節(jié)的空間,最多可控制4行*16字的中文字,寫入顯示RAM,可分別顯示CGROM、HCGROM、CGRAM的字型。三種字型的選擇可通過在DDRAM中寫入編碼來進(jìn)行設(shè)定,各種字型的詳

64、細(xì)編碼如下:</p><p>  1)顯示HCGROM字型,將一個(gè)字節(jié)的編碼寫入DDRAM,范圍為02-7FH;</p><p>  2)顯示CGRAM字型:將兩個(gè)字節(jié)的編碼寫入DDRAM中來實(shí)現(xiàn),有0000H、0002H、0004H、0006H四種編碼方式;</p><p>  3)顯示中文字型:將兩字節(jié)的編碼寫入DDRAM中,先寫高8位,后寫低8位,范圍為A14

65、0H-D75FH,A1A0H-F7FFH(GB)。</p><p>  繪圖RAM:提供64*32個(gè)字節(jié)空間(擴(kuò)充指令設(shè)定繪圖RAM地址),最多可控制256*64點(diǎn)陣的二維繪圖緩沖空間。更改時(shí),先設(shè)置GDRAM地址的垂直地址后水平地址,再2個(gè)字節(jié)的數(shù)據(jù)繪圖RAM(先高8位后低8位)。</p><p>  采用串口接線方式,PSB接低電平,只用兩根線來完成數(shù)據(jù)傳輸。當(dāng)多個(gè)連續(xù)指令被送入時(shí),需

66、考慮指令時(shí)間,必須等待上一個(gè)指令執(zhí)行完畢后才送入下一個(gè)指令。</p><p>  一個(gè)完整的串行傳輸周期由以下部分組成:</p><p> ?。?)送入啟動(dòng)字節(jié):發(fā)送5個(gè)連續(xù)的“1”啟動(dòng)周期,然后指定2個(gè)位傳輸方向和傳輸性質(zhì)(RW:確定讀/寫;RS:確定命令寄存器/數(shù)據(jù)寄存器),最后寫入一個(gè)“0”;</p><p>  (2)送入指令/顯示數(shù)據(jù):指令或代碼以字節(jié)為單

67、位,送入的指令/數(shù)據(jù)以2個(gè)字節(jié)來處理。</p><p>  3.4 時(shí)間顯示模塊</p><p>  時(shí)間顯示我們采用DS1302芯片,因?yàn)樗卿噶鞒潆姇r(shí)鐘芯片,自償充放電,功耗低,外圍電路簡單。主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能,普通采用32.768kHz晶振[11]。</p><p>  管腳圖如圖3-9所示:

68、</p><p><b>  圖3-9管腳配置圖</b></p><p>  DS1302 是一種帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302與單片機(jī)之間能簡單地采用同步串行的方式通信,僅需要三個(gè)口線:(1)RES(復(fù)位),(2)I/O數(shù)據(jù)線

69、,(3)SCLK(串行時(shí)鐘)。內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器,時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式組成。</p><p>  在DS1302的時(shí)鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時(shí),DS1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。DS1302與RAM

70、相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個(gè)字節(jié)。</p><p>  DS1302有2個(gè)電源:后備電源Vcc1,主電源Vcc2,且由Vcc1,Vcc2兩者中較大者供電。當(dāng)Vcc2> Vcc1+0.2V,由Vcc2供電;Vcc1&

71、gt;Vcc2,由Vcc1供電。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK為時(shí)鐘輸入端,X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線。DS1302的外圍應(yīng)用電路如3-10所示:</p><p>  圖3-10 DS1302應(yīng)用電路圖</p><p> 

72、 DS1302在與CPU進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令,且命令字節(jié)最高位邏輯為高電平,低電平則禁止寫入DS1302;位6=0,表示取日歷時(shí)鐘數(shù)據(jù),位6=1時(shí),取RAM數(shù)據(jù);位5-位1指示操作單元的地址;位0=0,進(jìn)行寫操作,位0=1,進(jìn)行讀操作,控制字節(jié)從最低位開始輸出。在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下

73、降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。</p><p><b>  3.5 鍵控模塊</b></p><p>  報(bào)站系統(tǒng)的鍵盤采用獨(dú)立式鍵盤接口。電路鍵盤共有6個(gè)鍵,采用軟件查詢和外部中斷相結(jié)合的方法設(shè)計(jì),當(dāng)某個(gè)鍵按下時(shí),低電平有效。6個(gè)鍵S1-S6功能的定義如表3-2所示:</p><p>  表3-2 6個(gè)鍵S1-S6

74、的定義</p><p>  本設(shè)計(jì)的獨(dú)立式鍵盤電路圖如圖3-11所示,</p><p>  圖3-11 鍵盤電路圖</p><p>  獨(dú)立式鍵盤就是各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可以判斷哪個(gè)按鍵被按下。 鍵盤的電路圖如下所示,各按鍵均采用了上拉電阻,為了保證在按鍵斷開時(shí),各I/O口有確定的高電平。若同時(shí)有2個(gè)按鍵閉合,將不做任何操

75、作。</p><p>  4公交報(bào)站系統(tǒng)軟件設(shè)計(jì)</p><p>  公交報(bào)站系統(tǒng)的軟件設(shè)計(jì),利用C語言進(jìn)行編程,采用了結(jié)構(gòu)化、模塊化的設(shè)計(jì)方法,由主程序以及鍵盤子程序、顯示子程序和語音子程序等模塊組成。C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為系統(tǒng)設(shè)計(jì)語言,編寫工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。C語言

76、. 簡潔緊湊、靈活方便、運(yùn)算符豐富、數(shù)據(jù)結(jié)構(gòu)豐富,應(yīng)用范圍非常廣泛[12-15]。</p><p>  4.1主程序流程圖及程序</p><p>  系統(tǒng)采用模塊化結(jié)構(gòu),上電后,先對(duì)語音芯片和液晶顯示器進(jìn)行初始化;然后調(diào)用鍵盤程序?qū)崿F(xiàn)控制,當(dāng)有不同的鍵按下,通過掃描鍵盤、尋址(每個(gè)車站都有唯一的編碼數(shù)據(jù)),調(diào)用其他子程序,從而基本實(shí)現(xiàn)公交報(bào)站和顯示功能。其流程圖如下圖4-1所示:</

77、p><p>  圖4-1主程序流程圖</p><p><b>  主函數(shù)程序:</b></p><p><b>  main()</b></p><p><b>  {</b></p><p>  unsigned char temp;</p>

78、<p>  DS1302SendData(WPR,0x00);//關(guān)閉寫保護(hù)</p><p>  temp = DS1302GetData(SEC); //讀出時(shí)鐘開關(guān),SEC寄存器的第七位是時(shí)鐘控制位,為0時(shí)時(shí)鐘運(yùn)行</p><p>  temp &= 0x7f;//打開時(shí)鐘開關(guān)</p><p>  DS13

79、02SendData(SEC,temp);//寫入</p><p>  temp = DS1302GetData(HOU);</p><p>  temp &= 0x7f;</p><p>  DS1302SendData(HOU,temp);//選擇24小時(shí)制</p><p>  DS1302SendData(CHARG

80、ER,0xaa); //開啟充電功能,給備用電池充電,選擇兩個(gè)二極管和4K的電阻.</p><p>  Timer0Init();</p><p>  init_12864();</p><p>  OldHour=12;</p><p>  Lcd_beel = 0;</p><p><b> 

81、 while(1)</b></p><p><b>  {</b></p><p>  ReadTimeData();//讀取時(shí)間數(shù)據(jù)</p><p>  DisplayReady();//準(zhǔn)備顯示數(shù)據(jù)</p><p>  Display();//顯示</p>&

82、lt;p>  ScanKeyborad();//掃描鍵盤</p><p>  if(PLAY_KEY == 0)</p><p>  ISDPlay(0x00);</p><p><b>  }</b></p><p><b>  }</b></p><p>

83、  void Timer0Int(void) interrupt 1//定時(shí)器0中斷函數(shù),定時(shí)時(shí)間為1ms</p><p><b>  {</b></p><p>  TH0 = 0xfd;</p><p>  TL0 = 0x18;</p><p>  if(ucTimerKeyChange >

84、 0)</p><p>  { ucTimerKeyChange--;}</p><p>  if(ucTimerDelay > 0)</p><p>  { ucTimerDelay--; }</p><p>  uiTimerHalfSecond++;</p><p>  if(uiTimerH

85、alfSecond == 2000)</p><p>  { uiTimerHalfSecond = 0; }</p><p>  if(uiTimerHalfSecond < 1200)</p><p>  { bFlagFlshTime = 1;//beel = 0;}</p><p><b>  else &

86、lt;/b></p><p>  { bFlagFlshTime = 0;//beel =1;}</p><p><b>  }</b></p><p>  4.2鍵盤子程序模塊流程圖及程序</p><p>  在單片機(jī)應(yīng)用系統(tǒng)中,按鍵是重要的組成部分,用于向單片機(jī)應(yīng)用系統(tǒng)輸入數(shù)據(jù)和控制信息。由于按鍵數(shù)目較少

87、,控制簡單,采用獨(dú)立式鍵盤。為了消除鍵的抖動(dòng),采用軟件的方法消抖。其程序流程圖4-2所示:</p><p>  圖4-2獨(dú)立式鍵盤子程序模塊流程圖</p><p><b>  程序如下:</b></p><p>  void ScanKeyborad(void)//鍵盤掃描程序</p><p><b> 

88、 {</b></p><p>  if(FUNTION_KEY == 0)//如果是功能鍵盤按下</p><p><b>  {</b></p><p>  Delayms(10); //延時(shí)10ms</p><p>  if(FUNTION_KEY == 0)</p&

89、gt;<p><b>  {</b></p><p>  while(!FUNTION_KEY)//等待鍵盤放開</p><p><b>  {</b></p><p>  ReadTimeData();//讀取時(shí)間數(shù)據(jù)</p><p>  DisplayReady()

90、;//準(zhǔn)備顯示數(shù)據(jù)</p><p>  Display();//顯示</p><p><b>  }</b></p><p>  if(ucClockStatu != RUNING)</p><p><b>  {</b></p><p>  DS130

91、2SendData(HOU,OldHour);</p><p>  DS1302SendData(MIN,OldMinute);</p><p>  DS1302SendData(SEC,OldSecond);</p><p><b>  }</b></p><p>  ucClockStatu++;</p>

92、<p>  if(ucClockStatu == 0x04)</p><p><b>  {</b></p><p>  ucClockStatu = RUNING;</p><p>  lcdClear();</p><p>  init_12864(); } } }</p><

93、p>  4.3語音子程序模塊流程圖及程序</p><p>  電路上電后,先完成程序初始化,進(jìn)入系統(tǒng)待機(jī)狀態(tài)。若有鍵按下,轉(zhuǎn)向執(zhí)行該鍵指向的程序,直至語音播放結(jié)束。按鍵包括報(bào)站鍵、提示鍵、加1鍵和減1鍵。若放音鍵首次按下,自動(dòng)讀出第一站的放音內(nèi)容;若不是首次按下,先判斷當(dāng)前站名,以該站名獲得放音內(nèi)容的首地址,進(jìn)行放音。語音芯片數(shù)據(jù)的串行輸入/輸出,串行時(shí)鐘信號(hào)分別與單片機(jī)的P0口相接,中斷引腳INT(25)

94、引腳空接,自動(dòng)靜噪(14引腳)對(duì)地接1uF的電容,構(gòu)成內(nèi)部信號(hào)電平峰值檢測電路的一部分。</p><p>  圖4-3語音子程序模塊流程圖</p><p><b>  程序如下:</b></p><p>  void Timer0Init(void)//定時(shí)器2初始化,自動(dòng)重裝初值模式,定時(shí)時(shí)間為1ms</p><p&

95、gt;<b>  {</b></p><p>  TMOD=0x01;TH0 = 0xfd;</p><p>  TL0 = 0x18;TR0 = 1;</p><p>  ET0 = 1;EA = 1; }</p><p>  void DelayTPUD(void)//延時(shí)上電等待時(shí)間約25ms</p&

96、gt;<p><b>  {</b></p><p>  uchar i = 100;</p><p><b>  uchar j;</b></p><p>  for(j = 20; j > 0; j--)</p><p><b>  {</b></

97、p><p>  while(--i){ } } }</p><p>  void ISDSendCommand(uint com)</p><p><b>  {</b></p><p>  uchar i;SS = 0;CLK = 0;</p><p>  for(i = 16; i &

98、gt; 0; i--)</p><p><b>  {</b></p><p>  if(com & 0x0001)</p><p>  { MOSI = 1; }</p><p>  Else { MOSI = 0; }</p><p><b>  CLK = 1;&l

99、t;/b></p><p><b>  CLK = 0;</b></p><p>  com = com >> 1;}</p><p><b>  SS = 1;}</b></p><p>  void ISDPowerUP(void)//ISD上電函數(shù)</p>

100、<p><b>  {</b></p><p>  ISDSendCommand(POWERUP);</p><p><b>  }</b></p><p>  void ISDPlay(uint addr)//ISD放音函數(shù)</p><p><b>  {</b

101、></p><p>  ISDPowerUP();//器件上電命令</p><p>  DelayTPUD();//等待上電延時(shí)</p><p>  ISDSendCommand(SETPLAY | addr);//設(shè)定放音地址</p><p>  ISDSendCommand(PLAY);}//開始放音&l

102、t;/p><p>  void Delayms(unsigned char time)//延時(shí)函數(shù),實(shí)現(xiàn)延時(shí),具體時(shí)間根據(jù)晶振調(diào)整</p><p><b>  {</b></p><p>  ucTimerDelay = time;</p><p>  while(ucTimerDelay != 0);</p>

103、<p><b>  }</b></p><p>  void Flash_Lcd()</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for (i = 0;i<5;i++) </p>

104、;<p>  Lcd_beel = 0;</p><p>  Delayms(500);</p><p>  Lcd_beel = 1;</p><p>  Delayms(500);</p><p><b>  }</b></p><p>  Lcd_beel = 0;}</

105、p><p>  4.4顯示子程序模塊流程圖及程序</p><p>  液晶顯示器是一種功耗極低的顯示器件。通常把它與驅(qū)動(dòng)電路做在一塊,形成液晶顯示模塊(LCM),使用者只要向lcm送入相應(yīng)的命令和數(shù)據(jù)就可以實(shí)現(xiàn)所需要顯示的內(nèi)容。其程序流程圖如圖4-4所示:</p><p>  圖4-4顯示子程序模塊程序流程圖</p><p><b> 

106、 程序如下:</b></p><p>  void Display(void)//顯示函數(shù),把顯示緩沖區(qū)的時(shí)間數(shù)據(jù)送到數(shù)碼管顯示</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  w_12864(com_byte,0x92);</p&

107、gt;<p>  for(i = 0;i < 10;i++)</p><p><b>  {</b></p><p>  w_12864(dat_byte,TAB3[aucDisplayBuff[i]]); </p><p><b>  } }</b></p><p>  v

108、oid DisplayReady(void)//顯示前的準(zhǔn)備</p><p><b>  {</b></p><p>  if(ucClockStatu == RUNING)//如果時(shí)鐘正在運(yùn)行,就把顯示數(shù)據(jù)送到顯示緩沖區(qū)</p><p><b>  {</b></p><p>  auc

109、DisplayBuff[1] = OldHour & 0x0f;</p><p>  aucDisplayBuff[0] = OldHour >> 4;</p><p>  aucDisplayBuff[5] = OldMinute & 0x0f;</p><p>  aucDisplayBuff[4] = OldMinute >&

110、gt; 4;</p><p>  aucDisplayBuff[9] = OldSecond & 0x0f;</p><p>  aucDisplayBuff[8] = OldSecond >> 4;</p><p><b>  }</b></p><p>  if(ucClockStatu == M

111、ODIFY_HOU)//如果時(shí)鐘正在修改小時(shí),就讓小時(shí)數(shù)據(jù)閃爍顯示</p><p><b>  {</b></p><p>  if(bFlagFlshTime)</p><p><b>  {</b></p><p>  aucDisplayBuff[1] = OldHour & 0x0

112、f;</p><p>  aucDisplayBuff[0] = OldHour >> 4;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  c

113、onvertChar(1,2,2);//hour</p><p><b>  }</b></p><p>  aucDisplayBuff[5] = OldMinute & 0x0f;</p><p>  aucDisplayBuff[4] = OldMinute >> 4;</p><p>  au

114、cDisplayBuff[9] = OldSecond & 0x0f;</p><p>  aucDisplayBuff[8] = OldSecond >> 4;</p><p><b>  }</b></p><p>  else if(ucClockStatu == MODIFY_MIN)//如果時(shí)鐘正在修改分鐘,就讓

115、分鐘數(shù)據(jù)閃爍顯示</p><p><b>  {</b></p><p>  if(bFlagFlshTime)</p><p><b>  {</b></p><p>  aucDisplayBuff[5] = OldMinute & 0x0f;</p><p> 

116、 aucDisplayBuff[4] = OldMinute >> 4;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  convertChar(1,4,2);<

117、/p><p><b>  }</b></p><p>  aucDisplayBuff[1] = OldHour & 0x0f;</p><p>  aucDisplayBuff[0] = OldHour >> 4;</p><p>  aucDisplayBuff[9] = OldSecond &

118、; 0x0f;</p><p>  aucDisplayBuff[8] = OldSecond >> 4;</p><p><b>  }</b></p><p>  else if(ucClockStatu == MODIFY_SEC)//如果時(shí)鐘正在修改秒,就讓秒顯示數(shù)據(jù)閃爍顯示</p><p><

119、;b>  {</b></p><p>  if(bFlagFlshTime)</p><p><b>  {</b></p><p>  aucDisplayBuff[9] = OldSecond & 0x0f;</p><p>  aucDisplayBuff[8] = OldSecond &

120、gt;> 4;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  convertChar(1,6,2);</p><p><b>  }<

121、;/b></p><p>  aucDisplayBuff[1] = OldHour & 0x0f;</p><p>  aucDisplayBuff[0] = OldHour >> 4;</p><p>  aucDisplayBuff[5] = OldMinute & 0x0f;</p><p>  au

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論