公交車自動報站系統(tǒng)要點



《公交車自動報站系統(tǒng)要點》由會員分享,可在線閱讀,更多相關(guān)《公交車自動報站系統(tǒng)要點(34頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、公交車自動報站系統(tǒng) 【摘 要】本設(shè)計介紹了一種利用紅外線遙控技術(shù) ,模擬公交車自動報站的系統(tǒng)。以 AT89C52為主 芯片。公交車上的接收電路收到站臺信息后解碼, 解碼后把信號傳送給 AT89C52單片機,啟動LCD12864 顯示站名。同時,應(yīng)用語音模塊播報站名 .還可以實現(xiàn)手動報站功能。報站的時候,相應(yīng)的指示燈亮; 蜂鳴器蜂鳴一聲報警。系統(tǒng)由紅外線的發(fā)射模塊、接收模塊、 LCD12864顯示模塊及ISD4004語音播報 模塊組成 目錄 1引言 (3) 1.1 本課題研究的意義 (3) 1.2 AT89C52單片機介紹 (3) 2設(shè)計要求 (4) 3方案
2、分析與論證 (4) 3.1 無線收發(fā)模塊的分析與論證 (4) 3.2 控制模塊的分析與論證 (4) 4系統(tǒng)硬件設(shè)計 (4) 4.1 系統(tǒng)的硬件設(shè)計 (4) 4.1.1 電路設(shè)計原理框圖 (5) 4.2 單元電路的設(shè)計和分析 (5) 4.2.1 遙控收發(fā)電路 (5) 4.2.2 AT89C52 控制的 LCD12864電路 (6) 4.2.3 ISD4004 語音錄放電路 (9) 4.2.4 本設(shè)計總原理圖 (11) 5系統(tǒng)軟件設(shè)計 (12) 5.1系統(tǒng)流程圖 (12) 5.2程序設(shè)計 (14) 6系統(tǒng)測試 (15) 致
3、謝 (15) 參考文獻(xiàn) (15) 附錄 (16) 1.1 本課題研究的意義 現(xiàn)今社會,人口多、流動大, 公交事業(yè)關(guān)乎到大多數(shù)城市居民的出行,但公交車上的報站系統(tǒng)依然 無法滿足大家對其的要求。 由于公交車上普遍使用的人工按鍵報站會出現(xiàn)報站不準(zhǔn)確。 并且每次報站時 都需要由駕駛員對報站器進行手動操作, 但是在車輛起動與進站時, 往往是路面情況最復(fù)雜的時候, 駕 駛員不僅對行駛中的汽車進行起動或制動等操作, 而且還要兼顧報站系統(tǒng)的操作, 給行駛中的車輛帶來 很大的安全隱患。 所以要求我們要設(shè)計出智能的公交報站系統(tǒng)來解決上述問題。 盡管現(xiàn)在已經(jīng)有些大城 市的某些公交車上已經(jīng)采用
4、 GPS定位系統(tǒng)自動報站,但由于其成本比較高, 普通中小城市難以負(fù)擔(dān), 難 以推廣普及。 近年來微控制器控制技術(shù)迅猛發(fā)展, 廣泛應(yīng)用于諸多領(lǐng)域。 由于微控制器具有可編程性及 優(yōu)良的存儲擴展性等許多優(yōu)點, 因此產(chǎn)生了用微控制器中的單片機來設(shè)計實現(xiàn)公交車輛的自動報站系統(tǒng) 的想法。為了實現(xiàn)智能城市公交車的自動報站系統(tǒng)的設(shè)計,本次論文設(shè)計研究了一套低廉、高性能的、 智能的基于 51 系列單片機的智能城市公交車自動報站系統(tǒng)。 1.2 AT89C52 單片機介紹 隨著電子信息技術(shù)的日益發(fā)展,微控制技術(shù)已成為計算機技術(shù)中的一個獨特的分支, 微控制器單片機的應(yīng)用領(lǐng)域也越來越廣泛,特別是在工業(yè)智能
5、化中扮演著重要的角色。實 際上,微控制器單片機幾乎在人們生活的各個領(lǐng)域都表現(xiàn)出強大的生命力,使微控制器單 片機的應(yīng)用范圍達(dá)到了前所未有的廣度和深度。單片機的出現(xiàn)尤其對電路工作者產(chǎn)生了觀 念上的沖擊。過去經(jīng)常采用模擬電路、數(shù)字電路實現(xiàn)的電路系統(tǒng),現(xiàn)在相當(dāng)大一部分可以 用單片機予以實現(xiàn),傳統(tǒng)的電路設(shè)計方法已演變成軟件和硬件相結(jié)合的設(shè)計方法,而且許 多電路設(shè)計問題將轉(zhuǎn)化為純粹的程序設(shè)計問題。誠然,單片機的應(yīng)用意義遠(yuǎn)不限于它的應(yīng) 用范疇或由此帶來的經(jīng)濟效益,更重要的是它已從根本上改變了傳統(tǒng)的控制方法和設(shè)計思 想。是控制技術(shù)的一次革命,是一座重要的里程碑。 單片機種類繁多,8位單片機有Intel MC
6、S-51系列、PIC系列等,16位單片機有Intel MCS-96系列等。在本系統(tǒng)中,8位單片機就能滿足系統(tǒng)的設(shè)計需要。目前的8位單片機中, 以Intel MCS-51系列單片機的品種最多,接口芯片以及應(yīng)用軟件也非常豐富。 ATME公司 推出的AT89C51單片機是一種以80C51為內(nèi)核的低功耗、高性能的 8位COM陰片機。它 內(nèi)部集成了 4KB閃爍可編程可擦除只讀存儲器(EPERCOM,這種存儲器可以反復(fù)擦除1000 次之多,使程序的調(diào)試非常方便。同時 AT89C51具有128B內(nèi)部RAM 32位可編程I/O線, 2 個 16 位定時器 / 計數(shù)器, 5 個中斷源, 具有低功耗閑置和掉電兩
7、種省電模式。 選用 AT89C51 單片機作為公交車自動報站系統(tǒng)的中央處理器,完全能夠滿足系統(tǒng)的需要。而且這種單片 機對開發(fā)設(shè)備的要求很低,開發(fā)時間也大大縮短。 2 設(shè)計要求 用AT89C52單片機來設(shè)計一個公交車自動報站系統(tǒng)。 要求用遙控模擬實現(xiàn)當(dāng)公交車靠近站點時可以 用文字來顯示站名,同時相應(yīng)顯示燈亮、有報警等功能。 3 方案分析與論證 3.1 無線收發(fā)模塊的分析與論證 方案一:無線接入點。由無線 AP 構(gòu)成,通信的效果好,數(shù)據(jù)傳送量大,但是其成本比較高,主 要用于寬帶家庭、大樓內(nèi)部、校園內(nèi)部、園區(qū)內(nèi)部以及倉庫、工廠等需要無線監(jiān)控的地方 方案二:GSM」、型系統(tǒng) 第二種方
8、案是運用 GSM」、型系統(tǒng),這套系統(tǒng)主要是通過 GSM莫塊,利用短信的形式將各種數(shù)據(jù)信息按規(guī) 定的協(xié)議編碼發(fā)送至 GS幽絡(luò),通過GSMO絡(luò)進行數(shù)據(jù)的傳送,這套系統(tǒng)對我們這次試驗來說有一個最 大的問題,就是它的成本, GSM模塊的價格很高,在查證之后才知道一個模塊就要 300?500元,不符 合這次低成本的要求,并且其通信協(xié)議部分比較復(fù)雜,將增大設(shè)計的工作量。 方案三: PT2262/PT2272-L4 集成芯片。該芯片 是一對帶地址、數(shù)據(jù)編碼功能的紅外遙控發(fā)射 /接收 芯片。 其中發(fā)射芯片 PT2262-IR 將載波振蕩器、 編碼器和發(fā)射單元集成于一身, 使發(fā)射電路變得非常簡 潔。該
9、方案采用低功耗、低價位、通用編解碼電路,發(fā)送用高 3的達(dá)林頓管,所以在靈敏度和抗干擾性 方面有保障。 方案四: 紅外遙控??梢杂矛F(xiàn)有的簡單的遙控裝置,我們只要了解其編解碼原理,就可以采用現(xiàn)成 的簡易裝置來模擬應(yīng)用。 以上四種都是可供參考的方案, 在考慮了諸多因素之后, 決定采用方案四。 雖然在軟件解碼方面比 較復(fù)雜,但其工作穩(wěn)定,可靠性高。 3.2 控制模塊的分析與論證 方 案 一 : 采 用 GPRS 作 為 本 次 系 統(tǒng) 的 控 制 器 。 GPRS 即 “ 通 用 分 組 無 線 業(yè) 務(wù)"(GeneralPacketRadioService 的英文簡稱)是在現(xiàn)有 GSM^J
10、絡(luò)上開通的一種新型的分組數(shù)據(jù)傳輸 技術(shù).相對于原來GSMA撥號接入的電路交換數(shù)據(jù)傳送方式 GPRS是分組交換技術(shù)具有“永遠(yuǎn)在線”、 “自如切換”、“高速傳輸”等優(yōu)點。 GPRST作為實現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大 ,但是使用繁雜, 并且該模塊成本非常高。 方案二:采用嵌入式ARM勺32位單片機LPC213& LPC2138芯片速度快、功能強大,芯片內(nèi)部資源 豐富, 易于數(shù)據(jù)的采集, 不但具有一般單片機的所有功能, 還內(nèi)置了 PWM, 且具有很強的串行通信功能, 引腳非常豐富,功耗低, 穩(wěn)定性好,易于功能擴展,其在線仿真技術(shù),軟硬件調(diào)試方便,但ARMS成本較 高,不適合本次設(shè)計的經(jīng)濟
11、性。 方案三:采用AT89C52單片機控制, 它簡單易用、成本低廉,使用廣泛,相關(guān)資料豐富,軟件編 程自由度大,可用編程實現(xiàn)各種控制算法和邏輯控制 ,采用AT89C52單片機為控制核心,系統(tǒng)功能強大, 資源配置靈活, 運行可靠穩(wěn)定, 是一套相對完善工業(yè)低壓控制系統(tǒng) , 采用該芯片完全可以實現(xiàn)我們的設(shè) 計要求。 綜上所說ARMK片雖然速度快、功能強但成本高,且用51單片機也能很好的控制,所以該系統(tǒng)的設(shè) 計選用單片機編程即可,我們所以選擇方案三。 4 系統(tǒng)硬件設(shè)計 4.1 系統(tǒng)硬件設(shè)計 AT89C52單片機為控制核心,實 本設(shè)計采用紅外遙控模塊來實現(xiàn)公交車相關(guān)無線數(shù)據(jù)的收發(fā),采用
12、 現(xiàn)智能公交車的自動報站、顯示、語音提醒等功能。 4.1.1 系統(tǒng)總體方框圖 +5V電源 圖4.1 系統(tǒng)總體方框圖 4.2 單元電路的設(shè)計、分析 4.2.1 遙控收發(fā)電路 遠(yuǎn)程遙控技術(shù)又稱為遙控技術(shù), 是指實現(xiàn)對被控目標(biāo)的遙遠(yuǎn)控制, 在工業(yè)控制、航空航天、 家電領(lǐng) 域應(yīng)用廣泛。紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強,信息傳輸可靠,功耗低,成 本低,易實現(xiàn)等顯著優(yōu)點,被諸多電子設(shè)備特別是家用電器廣泛采用,并越來越多的應(yīng)用到各個領(lǐng)域。 紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來發(fā)出經(jīng)過調(diào)制的紅外光波; 紅外接收電路由紅外接收 二極管、三極管或硅光電池組成,
13、它們將紅外發(fā)射器發(fā)射的紅外光轉(zhuǎn)換為相應(yīng)的電信號, 再送后置放大 器。 發(fā)射機一般由指令鍵(或操作桿)、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動電路、發(fā)射電路等幾部分組成。當(dāng) 按下指令鍵或推動操作桿時,指令編碼電路產(chǎn)生所需的指令編碼信號,指令編碼信號對載波進行調(diào)制, 再由驅(qū)動電路進行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定的指令編碼信號。 接收電路一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動電路、執(zhí)行電路 (機構(gòu))等幾部 分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號接收下來, 并進行放大后送解調(diào)電路, 解調(diào)電 路將已調(diào)制的指令編碼信號解調(diào)出來, 即還原為編碼信號。指令譯碼器將編碼指令信
14、號進行譯碼, 最后 由驅(qū)動電路來驅(qū)動執(zhí)行電路實現(xiàn)各種指令的操作控制 (機構(gòu))。如圖4.2所示。發(fā)射部分包括鍵盤矩陣、 編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。 | 誕也]——絹石馬誦3雨行]——T LEO 1—— -a — ■— .. . —一— — — _ _ T1 J — 一 - —— — .... a ■ - - — —_ —■ a- . —先/電放天?——h 訓(xùn)}-a辟,司 圖4.2 紅外遙控系統(tǒng)框圖 遙控發(fā)射器專用芯片很多, 根據(jù)編碼格式可以分成兩大類, 這里我們以運用比較廣泛, 解碼比較容 易的一類來加以說明,現(xiàn)以日本 NECW
15、uPD6121G組成發(fā)射電路為例說明編碼原理。當(dāng)發(fā)射器按鍵按下 后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0” ; 以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“ 1”,其波形如圖 4.3所示。 圖4.3 遙控碼的“ 0”和“ 1 上述“0”和“1”組成的32位二進制碼經(jīng)38kHz的載頻進行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電 源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射,如圖 4.4所示。 9
16、? 4 l C2 V? C4 ( 5< fi C7 Cllt t("j門Cf C小(7 D 口「1」卜[Of 1“門75》小兄另1]| >4 I)『口/【訂 圖4.4遙控信號編碼波形圖 UPD6121G產(chǎn)生的遙控編碼是連續(xù)的 32位二進制碼組,其中前 16位為用戶識別碼,能區(qū)別不同的 電器設(shè)備,防止不同機種遙控碼互相干擾。該芯片的用戶識別碼固定為十六進制 01H;后16位為8位 操作碼(功能碼)及其反碼。 UPD6121G最多額128種不同組合的編碼。 遙控器在按鍵按下后,周期性地發(fā)出同一種 32位二進制碼,周期約為 108m& -組碼本身的持續(xù) 時間隨它包含的二進制“ 0”和“1
17、”的個數(shù)不同而不同,大約在 45?63ms之間。 當(dāng)一個鍵按下超過 36ms,振蕩器使芯片激活,將發(fā)射一組 108ms的編碼脈沖,這108ms發(fā)射代碼由 一個起始碼(9ms),一個結(jié)果碼(4.5ms),低8位地址碼(9ms~18ms,高8位地址碼(9ms~18ms ,8 位數(shù)據(jù)碼(9ms~18ms和這8位數(shù)據(jù)的反碼(9ms~18ms組成。如果鍵按下超過 108ms仍未松開,接下 來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼( 9m9和結(jié)束碼(2.5ms)組成。 解碼的關(guān)鍵是如何識別“ 0”和“1”,從位的定義我們可以發(fā)現(xiàn)“ 0”、“1”均以 0.56ms的低電 平開始,不同的是高電平的寬度不同,“
18、 0”為 0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū) 別“0”和“1”。如果從 0.56ms低電平過后,開始延時, 0.56ms以后,若讀到的電平為低,說明該位 為“0”,反之則為“ 1”,為了可靠起見,延時必須比 0.56ms長些,但又不能超過 1.12ms,否則如果 該位為"0",讀到的已是下一位的高電平, 因此?。?.12ms+0.56ms )/2=0.84ms最為可靠,一般取0.84ms 左右均可。 接收電路如圖4.5所示。PC3388是紅外接收頭,1腳是信號端,2腳是地端,3腳是電源端。當(dāng)電 路正常工作時,發(fā)光二極管發(fā)亮。測試時可以觀察 D1的狀態(tài)來判斷是否有
19、接收到信號。 圖4.5 紅外接收電路 4.2.2 AT89C52 控制的 LCD12864電路 ⑴LCD12864介紹 LCD12864在市面上主要分為兩種,一種是采用 st7920控制器的,它一般帶有中文字庫字模,價格 略高一點。另一種是采用 KS0108控制器,它只是點陣模式,不帶字庫。 我的這塊就是 KS0108控制器不 帶漢字庫的。 LCD12864模塊的20個引腳定義如下: I.Vss 邏輯電源地 2 .VDD 邏輯電源正 5v 3 .V0 LCD驅(qū)動電壓 4 .RS 數(shù)據(jù)/指令選擇:高電平為數(shù)據(jù),低電平為指令 5 .R/W 讀/寫選擇:高電平為讀數(shù)據(jù)
20、,低電平為寫數(shù)據(jù) 6 .E 讀寫使能,高電平有效,下降沿鎖定數(shù)據(jù) 7 . DB0 數(shù)據(jù)輸入輸出引腳 8 .DB1數(shù)據(jù)輸入輸出引腳 9 .DB2數(shù)據(jù)輸入輸出引腳 10 .DB3數(shù)據(jù)輸入輸出引腳 11 .DB4數(shù)據(jù)輸入輸出引腳 12 .DB5數(shù)據(jù)輸入輸出引腳 13 .DB6數(shù)據(jù)輸入輸出引腳 14 .DB7數(shù)據(jù)輸入輸出引腳 15 .CS1片選擇號,低電平時選擇前 64列 16 .CS2片選擇號,低電平時選擇后 64列 17 .RET復(fù)位信號,低電平有效。 18 .VEE 輸出—15v電源給V0提供驅(qū)動電源 19 .A 背光電源LED正極 20 .K 背光電源LED負(fù)極
21、 圖4.6是LCD12864的內(nèi)部控制結(jié)構(gòu): O T3 C~ D B r D/I .官 XTV . IE C-WT OS1 圖4.6 LCD12864的內(nèi)部控制結(jié)構(gòu)圖 由上圖可以看出12864屏是分為左、右兩塊控制的。所有對屏幕的操作要受片選 CS1、CS2來控制。 表4-1是屏幕操作數(shù)據(jù)與屏幕點陣的排布關(guān)系圖。 表4-1屏幕操作數(shù)據(jù)與屏幕點陣的排布關(guān)系圖 CS2=1 CS1=1 Y= 0 1 ? r-r . r-2 h-3 Q 1 62 63 行號 DBO- DBO DBO DBO DBO DBQi DBO DBO
22、DBO DBO 0 x=o l l * J l J 1 l l ; DB7 DB7 DB7 DET DOT D&7 DB7 DB7 DB7 7 1 DBO 1 DBO 1 DBO 1 DBO 1 DBO 1 DBO 1 DBO 1 DBO 1 DBO 1 DBO 1 8 1 * + DB7 + DBT ? DB7 + DB7 + DB7 ? DB7 + DB7 + DB7 + DB7 + 55 DBO DeO DBO DBO DBQ
23、DBQ D&O 口 BQ DE。 DBG SB X=7 I DB7 I DB7 DB7 I DB7 DET I DB? I DB7 1 DB7 1 DB7 4 DB7 1 63 從上表可以看出數(shù)據(jù)按字節(jié)在屏幕上是豎向排列的。上方為低位,下方為高位。因此在橫向上 (也 就是Y)就一共是128列數(shù)據(jù)。分為 CS1和CS2兩個64列來寫入。在豎方向上(也就是X)一字節(jié)數(shù)據(jù)顯 示8個點,豎向64個點分為8個字節(jié),稱做8頁(X=0-7)。了解這些后我們就知道要滿屏顯示一張圖就 要從y=0…127、X=0…7一共寫128X 8=1024個字節(jié)的數(shù)
24、據(jù)。同樣在AT89S51中存一張圖就要 1024個字 節(jié)的空間。表4-2為其指令表。
①顯示開關(guān)控制(DISPLAY ON/OFF)
代碼 形式
表4-2 指令表
巾
門”也
R W
D I
D7
D5
D-1
D3
D2
D1
DO
iii小
ON OFF
O
O
O
O
1
1
1
1
1
I/O
r i:mj &5 沖 m ” 士
不史!^ DDRAM中敢IK
粕內(nèi)伏冷
她打
O
Q
1
1
O 63
l:i - i I 認(rèn) DORAM
41 9 ,才jFJFT她!■奉豉 25、
Q
3
O
1
1
1
X O 7
/上次CTORAM①1內(nèi)4L
池川 fX 1 f 1 I 1 >
iE佳留甘出 hr
O
Q
Q
1
丫 i也 ”I 0 G2.
kQ 留他 11b (Y
詼 狀 w
1
O
B U S Y
0
R S T
0
O
Q
o
L t h
Rt t U t* d工卜累
OH/OFF 1 - ■ Trf mm
苣
BL G RSA.E3Y 1 LM
OrESUTXCiN
F $皿小
救郵
O
1
X 1 R說
ift nc h;匕 g 妁加 D37 DBO ■ / A 口DWAM
26、1顯 1.
, 即
1
1
U ->―職
后口口網(wǎng)曲 1 「
7克球!fA DB7 DB4>
0
0
0
0
1
1
1
1
1
D
R 川 D/I DB7 DB6 DB5 DB4 DBS DB2 DB1 DBO
D=1:開顯示(DISPLAY ON) 意即顯示器可以進行各種顯示操作
D=0:關(guān)顯示(DISPLAY OFF)意即不能對顯示器進行各種顯示操作
R/W D/I DB7 DB6 DBS DB4 DB3 DB2 DB1 DBO
②設(shè)置顯示起始行(DISPLAY START LINE)
0
0
1
1
格
A4
A3
A2 27、
Al
AO
代仍 形式
A5?A0 6位地址自動送入 Z地址計數(shù)器,起始行的地址可以是 0?63的任意一行。
例如:選才i A5?A0是62,則起始行與DDRA而的對應(yīng)關(guān)系如下:
DDRAM?。?2 63 0 1 2 3 28 29
屏幕顯示行:1 2 3 4 5 6 31
32
③設(shè)置頁地址(SET PAGE “X ADDRESS )
代碼
形式
R/W D/I DB? DB6 DB5 DB4 DB3 DB2 DB1 DBO
0
0
1
0
1
1
1
A2
A0
所謂頁地址就是 DDRAMJ行地址,8行為一頁,模塊共64行即8 28、頁,A2~A0表示0~7頁。讀 寫數(shù)據(jù)對地址沒有影響,頁地址由本指令或 RST信號改變復(fù)位后頁地址為 0。頁地址與DDRAMJ對應(yīng)關(guān) 系見DDRAM&址表。
④設(shè)置
丫地址(SET Y ADDRESS)
代碼
形式
D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
A5
A4
A3
A2
Al
AO
此指令的作用是將 A5~A0送入Y地址計數(shù)器,作為 寫操作后,Y地址指針自動加1,指向下一個DDRAM■元。 ⑤讀狀態(tài)(STATUS READ)
DDRAMj 丫地址指針。在對DDRAM進行讀
代碼
形式
R/W
D/I DB7 DB6 DB 29、S DB4
DB3 DB2 DB1 DBO
BUSY
0 | ON/OFF RET
當(dāng)R/W=1 D/I=0時,在E信號為“H”的作用下,狀態(tài)分別輸出到數(shù)據(jù)總線 (DB7~DB0)
的相應(yīng)位。
BF: 前面已敘述過(見BF標(biāo)志位一節(jié))。
ON/OFF:表示DFF觸發(fā)器的狀態(tài)(見 DFF觸發(fā)器一節(jié))。
RST: RST=1表示內(nèi)部正在初始化,此時組件不接受任何指令和數(shù)據(jù)。
⑥寫顯示數(shù)據(jù)(WRITE DISPLAY DATE)
代碼 班 ,D4 『即 DB6 DB5 DB4 DB3 DB2 Dgl _『坤 形式 | 0 | 1 | 17 | D6,| D5 | D4 | D 30、3 | D2 | DI | DO
D7~D0為顯示數(shù)據(jù),此指令把 D7~D0寫入相應(yīng)的DDRA曄元,Y地址指針自動加1。
⑦讀顯示數(shù)據(jù)(READ DISPLAY DATE)
代碼
形式
1
1
D7
D6
D5
D4
D3
D2
D1
DO
R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBO
此指令把DDRAMJ內(nèi)容D7~D0讀至ij數(shù)據(jù)總線 DB7~DB0 Y地址指針自動加1。
下圖4.7為AT89C52控制的LCD12864顯示電路。
34
0
OA s 號a
工 曾 曾 S因 ap 若 一呂 息 EI密 營 31、慧
LCD12S64
J-Z 1
Pl 0
1 234
Ji 1- 1 1 p p p p
~=-
vcc
Pl.5 P0.4
Pl 6 AT89C51 P0.5
Pl.7 RST p3.0RXD P3.1 TXD P3.2nTTO P3 3ttrrT P3 4T0 P3.5T1 P3.6 WR P3.7RD 3CTAK2
KT心1 vss
P0.6
P0.7
EA
ALE
PlEIT
P2.1
P2.0
.7,6.S.-4.3.2
2.N2.之2.2. p p p p p P
.or.2.3
O.0.O.O. p p p P
圖4.7 89C 32、52 控制的LCD12864顯示電路
4.2.3 ISD4004 語音錄放電路
ISD4004芯片無須A/D轉(zhuǎn)換和壓縮就可以直接儲存,沒有 A/D轉(zhuǎn)換誤差,具有可多次重復(fù)錄放、存
儲時間長,使用時不需擴充存儲器、所需外圍電路簡單。利用 AT89C51控制ISD4004芯片的過程。外接 輸入和輸出端口。通過系統(tǒng)功能模塊各部分的連接及軟硬件設(shè)計可以實現(xiàn)數(shù)字化語音的存儲和回放。
ISD4004語音芯片采用 CMO蔽術(shù),內(nèi)含晶體振蕩器、防混疊濾波器、平滑濾波器、自動靜噪、音 頻功率放大器及高密度多電平閃爍存儲陣列等。 因此只需要很少的外圍器件就可構(gòu)成一個完整的聲音錄
放系統(tǒng)。芯片設(shè)計是基于所 33、以操作由微控制器控制。操作命令通過串行通信接口( SPI或Microwire )
送入。采樣頻率可謂 4.0HZ、5.3HZ、6.4HZ、8.0HZ ,頻率越低,錄放時間越長。而音質(zhì)有所下降。片 內(nèi)信息存于內(nèi)存儲器中,可在斷電情況下保存 100年,反復(fù)錄音10萬次。器件工作電壓為 3V,工作電
流為25?30mA單片機錄放語音時間 8?16min。圖4.8為ISD4004內(nèi)部框圖、圖4.9為ISD4004的引 腳排列。
Figure: ISD^1004 Series Block Diagram
$CLk 蔚 MOSI EiSO inT fwZ
AM CAP
AUOOUT
圖4 34、.8 ISD4004 內(nèi)部框圖
ss 1=
1 .
2S
MOSI 匚
2
27
MISO 1
3
26
V-ncfj I
A
25
NG匚
5
2啟
NC L
6
23
NC匚
7
22
NO |_
ISC>4OQ4
NC |
9
20
NC匚
10
1 Q
VsSA I
1 1
1日
1 Q
1 ?
AUD OUT 匚
13
AM CAP 匚
14
)5
VCCA
AMA IM I
AMA IN-
NC
圖4.9 ISD4004的引腳排列
引腳12、27 35、為電源線;4、11為地線;17為同相模擬輸入端,輸入放大器可用單端或差分驅(qū)動; 1
6為反相模擬輸入端。音頻輸出(引腳 13)提供音頻輸出,可驅(qū)動 5K的負(fù)載;引腳1為片選,此端為 低,即向ISD4004芯片發(fā)送指令,兩條指令之間為高電平。 MOSI為串行輸入端口, MISO為串行輸出端
口,串行時鐘SCLK由主控制器產(chǎn)生,用于同步 MOSI和MISO的數(shù)據(jù)傳輸,數(shù)據(jù)在 SCLK升沿鎖存到I
SD,在下降沿移出ISD。中斷(INT)為漏極開路輸出端口, ISD在任何操作(包括快進)中檢測到 EOM
或IVF時,本端變低并保持。中斷狀態(tài)在下一個 SPI周期開始時清除。中斷狀態(tài)也可用 RI 36、NT指令讀取。 每個RAB期表示ISD存儲器的操作進行了一行。該信號保持高電平的時間為 175ms,低電平時間為2
5m&在快進模式,RAC可保持高電平218.75微秒,低電平為 31.25微秒。ISD4004工作于SPI串行接 口。SPI協(xié)議是一個同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的 SPI以為寄存器在SCLD的下降沿動
作,因此,對ISD4004而言,在時鐘上升沿鎖存 MOSI引腳數(shù)據(jù),在下降沿將數(shù)據(jù)送至 MISO引腳。如圖
4.11,在語音芯片的外圍只需接一個 EMC俞入電路和一個功率放大器的輸出電路, 就構(gòu)成了一個語音錄
放系統(tǒng)。ISD4004的27腳接的是由+5V電源改裝 37、成的+3V電源。
為汽
iMIZI與工
TyOD-O
5CX.X.
Z>4T
HL,
■K4匚
Jr-TV
t-rc
Jr IC
1-TC3口隼。口中 NC
1TC
we
1TC
MC
FR:*>
FK-irh
4Ud.SJL
vtm. An.
JOM 匚 fJP
1 38、片機通信。
單片機處理后,啟動 LCD12864及ISD4004模塊顯示播報站名。P2.0?P2.4接LED1?LED薄5個指示燈, P2.5控制蜂鳴器。PC3388的信號端連到AT89C52的外部中斷1。
P14 P2
ATOfCd-L
KT
W L TW >j jjHtO
pa* m
V53IL MJ WB 科于市 iTTJLLJ MTJLLI
8 R 墨
tanJqJEJ工 EH Je于4 32,a
GJlZI
圖4.12 本設(shè)計總原理圖
5系統(tǒng)軟件設(shè)計
5.1系統(tǒng)流程圖
5.1.1 主程序流程圖
功能:通過按鍵來實現(xiàn)公交車的手動報站。鍵 1實現(xiàn)公交車 39、站名的正順序顯示,鍵 2實現(xiàn)公交
車站名的逆顯示,鍵 3實現(xiàn)清屏,鍵4可以用來插入廣告等。
開始
LCD初始化
定時器0的中斷設(shè)置
Y
鍵1按下?
判斷是第幾次按下
N
Y
鍵2按下?
判斷是第幾次按下
N
Y
鍵3按下?
LCD清屏
鍵4按下?
N
N Y
插入廣告等
While(1)
務(wù) 執(zhí)行相應(yīng)顯示,相應(yīng)的指
*示燈亮,蜂鳴器蜂鳴一聲
執(zhí)行相應(yīng)顯示,相應(yīng)的指 示燈亮,蜂鳴器蜂鳴一聲
圖5.1 主程序流程圖
5.1.2 定時器中斷0服務(wù)子程序流程圖
功能:按鍵處理。
圖5.2 定時器中斷0服務(wù)子程序流程圖
40、
5.1.3
遙控接收程序流程圖
功能:判斷接收到的數(shù)據(jù)是否正確。
5.1.4
定時中斷1子程序流程圖
功能:解碼來控制播報站點相應(yīng)信息。
圖5.4 定時中斷1子程序流程圖
5.1.5 外部中斷1子程序流程圖
功能:通過外部中斷1來實現(xiàn)紅外的控制。
41、
圖5.5 外部中斷1子程序流程圖
5.2程序設(shè)計
源程序見附錄三
6系統(tǒng)測試
紅外接收系統(tǒng)的測試可以通過觀察發(fā)光二極管 D1的狀態(tài)來辨別該系統(tǒng)是否正常工作,如果接收到
遙控信息,發(fā)光二極管點亮。還可以用電壓表來測試信號端的電壓來判斷接收系統(tǒng)是否正常工作, 如果
電壓表上顯示的電壓小幅度擺動,說明接收正常 。
按下遙控上的任意鍵,接收電路上的發(fā)光二極管 D1發(fā)光,說明接收電路正常工作。但是,譯碼不
夠準(zhǔn)確,所以不能很好的按預(yù)定的順序來顯示報站。預(yù)定的報站順序是:鍵 1按下,LCD12864顯示龍
巖學(xué)院,LED1點亮;鍵2按下,LCD12864顯示曹溪金鵬,LED2點亮; 42、鍵3按下,LCD12864顯示交警大 隊,LED3點亮;鍵4按下,LCD12864顯示人民醫(yī)院,LED4點亮;鍵5按下,LCD12864顯示羅橋西站, LED5點亮。報站的同時,蜂鳴器蜂鳴一聲報警。
SB1按下:如果是第1次按下,LCD12864顯示龍巖學(xué)院,LED1點亮;再按下,依次顯示曹溪金鵬、
交警大隊、人民醫(yī)院、羅橋西站。 SB2按下,如果是第1次按下,LCD12864顯示羅橋西站LED5點亮;
再按下,依次顯示人民醫(yī)院、交警大隊、曹溪金鵬、龍巖學(xué)院。報站時,相應(yīng)的指示燈點亮,蜂鳴器蜂 鳴一聲報警。SB3按下,LCD12864清屏;SB4按下,可以在 LCD12864插入廣告等。 43、
測試基本達(dá)到設(shè)計要求, ISD4004語音芯片的調(diào)試尚未成功。
附錄
附錄一原理圖
附錄二PCB圖
圖1 89C52控制的LCD12864顯示電路
圖2 ISD4004語音錄放電路
附錄三源程序
#include < reg52.h >
/**
***************************
預(yù)定義 ***************** 44、*********************/
#define uchar unsigned char
#define uint unsigned int
unsigned char key_temp,key_bak,ychi,keyvalue=0x0f;
unsigned char one_cnt=0,two_cnt=0;
uchar key=0x0f;
unsigned char up,dowm;
static unsigned char data IRCode[3],IRCON,IRCON2;
static unsigned char data DT;
/**
45、*************************
12864
管腳配置 ****************************/
#define port P1
sbit rs=P3A0;
sbit rw=P3A1;
sbit e=P3A2;
sbit cs1=P3A6;
sbit cs2=P3A7;
sbit P3_2 = P3A3;
sbit led1 = P2A0;
sbit led2 = P2A1;
sbit led3 = P2A2;
sbit led4 = P2A3;
sbit led5 = P2A4;
sbit beep = P2A5;
uc 46、har code data_shuju[22][32] = { /*-- 文字 : 龍 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0xF0,0x12,0x1C,0xD0,0x10,0x10,0x10,0x00, 0x00,0x40,0x20,0x10,0x0C,0x03,0x10,0x08,0x3F,0x42,0x41,0x40,0x40,0x40,0x70,0x00, /*-- 文字 : 巖 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x1 47、6 --*/
0x00,0x40,0x5E,0x50,0x50,0xD0,0x50,0x5F,0x50,0x50,0x50,0x50,0x5E,0x40,0x40,0x00, 0x10,0x08,0x04,0x02,0x7F,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00, /*-- 文字 : 學(xué) --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x1 48、0,0x00, 0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00, /*-- 文字 : 院 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00, 0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF 49、1,0x00, /*-- 文字 : 曹 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x02,0x02,0xFA,0xAA,0xAA,0xAA,0xFF,0xAA,0xAA,0xFF,0xAA,0xAA,0xAA,0xFA,0x02,0x00, 0x00,0x00,0x00,0x7E,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x7E,0x00,0x00,0x00, /*-- 文字 : 溪 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x10,0x21,0x86,0 50、x60,0x02,0x06,0x4A,0xE2,0x56,0x49,0x21,0x89,0x05,0x00,0x00,0x00, 0x04,0xFC,0x03,0x00,0x44,0x45,0x25,0x25,0x15,0x0F,0x15,0x25,0x47,0xC4,0x44,0x00,
/*-- 文字 : 金 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x40,0x40,0x20,0x20,0x50,0x48,0x44,0xC3,0x44,0x48,0x50,0x50,0x20,0x60,0x20,0x00, 0x40,0x40,0x42, 51、0x42,0x4A,0x72,0x42,0x7F,0x42,0x62,0x5A,0x42,0x42,0x40,0x40,0x00, /*-- 文字 : 鵬 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0xFE,0x12,0xFE,0x00,0xFE,0x12,0xFE,0x00,0xFC,0x0E,0x35,0x44,0x7C,0x00,0x00, 0x20,0x1F,0x21,0x7F,0x20,0x1F,0x41,0x7F,0x08,0x09,0x09,0x29,0x49,0x21,0x1F,0x00, /*-- 文字 : 人 --* 52、/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x01,0x06,0x0C,0x18,0x30,0x60,0x20,0x00, /*-- 文字 : 民 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xF2 53、,0x92,0x92,0x92,0x9E,0x80,0x80,0x00,0x00, 0x00,0x00,0xFF,0x40,0x20,0x10,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0xF0,0x00,0x00, /*-- 文字 : 醫(yī) --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0xFE,0x42,0xA2,0x9E,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0xD2,0x82,0x00,0x00, 0x00,0x7F,0x40,0x40,0x50,0x48,0x44,0x43 54、,0x40,0x41,0x42,0x5C,0x48,0x40,0x40,0x00, /*-- 文字 : 院 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00, 0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00, /*-- 文字 : 交 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為 55、:寬 x高=16x16 --*/
0x00,0x08,0x88,0x48,0x38,0x28,0x09,0x0E,0x0C,0x08,0x98,0x28,0x68,0x48,0x08,0x00, 0x00,0x80,0x80,0x40,0x41,0x22,0x14,0x18,0x0C,0x16,0x23,0x61,0xC0,0x40,0x00,0x00, /*-- 文字 : 警 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x20,0x1A,0xFA,0xAF,0xAA,0xEF,0x0A,0xFA,0x10,0x8F,0x54,0x24,0x5 56、C,0x84,0x04,0x00, 0x02,0x02,0x02,0xEA,0xAA,0xAA,0xAB,0xAA,0xAB,0xAA,0xAA,0xEA,0x02,0x02,0x03,0x00, /*-- 文字 : 大 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00, 0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x6 57、0,0xC0,0x40,0x00, /*-- 文字 : 隊 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0xFE,0x02,0x12,0x2A,0xC6,0x02,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, 0x7F,0x00,0x02,0x44,0x43,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x60,0x20,0x00, /*-- 文字 : 羅 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0 58、x00,0x7E,0x22,0x22,0x22,0xFE,0xA2,0xA2,0xBE,0xA2,0xA2,0xA2,0xBE,0x00,0x00, 0x80,0x88,0x88,0x84,0x42,0x43,0x25,0x28,0x10,0x10,0x08,0x04,0x03,0x00,0x00,0x00, /*-- 文字 : 橋 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x88,0x68,0xFF,0x28,0x48,0x18,0x92,0x52,0x32,0x1E,0x32,0x52,0x92,0x12,0x10,0x00, 0x01,0 59、x00,0xFF,0x00,0x01,0x41,0x30,0x0F,0x00,0x00,0x00,0xFF,0x00,0x01,0x01,0x00, /*-- 文字 : 西 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x02,0xF2,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xF2,0x02,0x00, 0x00,0x7F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00, /*-- 文 60、字 : 站 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x10,0x50,0x92,0x1C,0x10,0xF0,0x10,0x00,0x00,0x00,0xFF,0x10,0x10,0x10,0x10,0x00, 0x10,0x10,0x0B,0x0C,0x0B,0x08,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00, /*-- 文字 : 到 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0x22,0x72,0x2A,0x26,0xE2, 61、0x2A,0x72,0x22,0x00,0xF8,0x00,0x00,0xFF,0x00,0x00, 0x00,0x42,0xC2,0x42,0x22,0x3F,0x22,0x12,0x12,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00, /*-- 文字 : 了 --*/
/*-- 宋體12; 此字體下對應(yīng)的點陣為:寬 x高=16x16 --*/
0x00,0x02,0x02,0x02,0x02,0x02,0x02,0xF2,0x12,0x0A,0x0A,0x06,0x06,0x02,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x40, 62、0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };
/****************************************************************************************
****
* 函數(shù)名稱: Delay()
* 功 能:延遲時間 =a*1ms
* 入口參數(shù):
* 出口參數(shù):無
***************************************************************************************** *** 63、*/
void delay10ms(void)
{
unsigned char i,j;
for(i=2000;i>0;i--)
for(j=2000;j>0;j--);
}
/****************************************************************************************
****
* 函數(shù)名稱: Lcd_Display_On()
* 功 能:LCD顯示開
* 入口參數(shù):無
* 出口參數(shù):無
************************************************ 64、***************************************** ****/
void Lcd_Display_On() {
port=0x3f;
rs=0;
rw=0;
e=1;
e=0;
}
/****************************************************************************************
****
* 函數(shù)名稱: Lcd_Display_Off()
* 功 能:LCD顯示關(guān)
* 入口參數(shù):無
* 出口參數(shù):無
*************************** 65、**************************************************************
****/ void Lcd_Display_Off()
{
port=0x3e;
rs=0;
rw=0;
e=1;
e=0;
}
/**************************************************************************************** ****
* 函數(shù)名稱: Lcd_Set_X(uchar x)
* 功 能:LCD^置X坐標(biāo)
* 入口參數(shù): x
* 出口參數(shù):無
* 66、**************************************************************************************** ****/
void Lcd_Set_X(uchar x)
{
port=0xb8|x;
rs=0;
rw=0;
e=1;
e=0;
}
/**************************************************************************************** ****
* 函數(shù)名稱: Lcd_Set_Y(uchar y)
* 功 能:LCD^置Y坐標(biāo)
* 入口參數(shù): y
* 出口參數(shù):無
*****************************************************************************************
****/ void Lcd_Set_Y(uchar y) {
port=0x40|y;
rs=0;
rw=0;
e=1;
e=0;
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。