公交車自動報站系統(tǒng)畢業(yè)論文_第1頁
公交車自動報站系統(tǒng)畢業(yè)論文_第2頁
公交車自動報站系統(tǒng)畢業(yè)論文_第3頁
公交車自動報站系統(tǒng)畢業(yè)論文_第4頁
公交車自動報站系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、保密類別       編 號20100803075  保密類別靠左對齊編號靠右對齊武漢大學珞珈學院畢 業(yè) 論 文公交車自動報站系統(tǒng)系 別 電子信息科學系專 業(yè) 電子信息工程年 級 2010級電信三班 學 號 20100803075姓 名 熊鵬 指導教師 李婧 武漢大學珞珈學院2014年4月14日 摘要本設計主要是利用89C52單片機作為CPU來進行總體控制,同時使用FYD12864液晶顯示電路進行漢字顯示,能夠?qū)崿F(xiàn)公交車的站名顯示。在CPU控制模式下,鍵盤電路采用中斷掃描模式,當有鍵按下時,系統(tǒng)產(chǎn)生中斷,CPU響應中斷后,通

2、過軟件來實現(xiàn)該鍵號所對應鍵的功能。因此當公交車到達某站時通過按鍵來控制本系統(tǒng)進行工作,CPU同時通過程序讀取漢字信息送入LCD液晶顯示電路進行漢字提示。通過本設計主要解決了如何方便、準確的指示乘客到站的問題,使得乘客能愉快、安全的下車。關鍵詞:單片機 液晶顯示 鍵盤電路 The design of bus station reported were based on the DSPABSTRACTThis design is mainly to use 89C52 microcontroller as CPU to carry out , meanwhile it uses FYD12864

3、character LCD display circuit to achieve the bus station and station display. In the CPU control mode, the keyboard interrupt scan mode circuit, the system generates an interrupt when a key pressed , APU response to failure, the key number is inquired by the software to achieve the key number corres

4、ponding to the function keys. So when the bus reaches a certain point, through the keyboard to control the system to work, CPU while the information through the program reads characters into the LCD liquid crystal display circuit character prompt.This design primarily addresses the problem that how

5、to direct the passengers to the stations conveniently and accurately,ensure the secure of the passengers when they get on board or get off the bas.Keywords:Microcontroller LCD K格式eyboard 2目 錄第1章 緒論 1.1 論文選題的目的及意義11.2 國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢11.3 本課題的研究內(nèi)容 2第2章 總體設計方案 2.1 系統(tǒng)的總體框圖12.2 系統(tǒng)使用89C52的介紹22.3 LCD液晶顯示器6 2.

6、3.1 12864液晶顯示模塊的介紹7 2.3.2 12864液晶顯示模塊的管腳圖及管腳定義 7 2.3.3 12864液晶顯示模塊接口時序的介紹8 2.3.4 12864液晶顯示模塊與單片機的接口設計9第3章 系統(tǒng)的硬件部分設計3.1 89C52的時鐘電路113.2 98C52的復位電路123.3 鍵盤電路的設計13 3.3.1 矩陣式鍵盤掃描原理13 3.3.2 鍵盤的去抖設計14 3.3.3 鍵盤掃描控制方式15第4章 系統(tǒng)的軟件部分設計 4.1 系統(tǒng)主流程設計 16 4.2 鍵盤掃描流程設計194.3 LCD顯示模塊流程設計18結(jié)論 25參考文獻 26附錄27后記28武漢大學珞珈學院本

7、科畢業(yè)論文 第1章 緒論1.1 論文選題的目的及意義隨著城市化進程的加快,公共交通作為城市的基礎設施之一,仍然是絕大多數(shù)出行者的首選交通方式。為使得人們特別是為外來旅游、出差、就醫(yī)、求職等急需了解本地的公交路線的人提供高效、方便、快捷的公交系統(tǒng),讓他們得到自己所需要的各種相關信息,以便減少各種可能產(chǎn)生不必要的交通流量,提高公交的運作效率,公交自動報站系統(tǒng)便應運而生。公交應用系統(tǒng)帶給公交企業(yè)的將不僅是形象的提升,也是效益的增長,所以一個城市的公交車的發(fā)展也體現(xiàn)一個城市的發(fā)展。現(xiàn)在是一個高科技發(fā)達的時期,人們提倡的是智能設備,用科技來改變?nèi)藗兩钏脚c方式,所以現(xiàn)在人們的生活中都感受到了科技給我們

8、帶來的方便?,F(xiàn)在的城市公交車都裝上了語音報站系統(tǒng),從而提高人們的工作效率。本文正是一個研究如何利用單片機來設計一種適合在公交車上用的自動報站系統(tǒng)。對此的研究我們不僅能夠?qū)卉囆袠I(yè)的發(fā)展起到一個重要作用,還能夠解決如何方便、準確的指示乘客到站的問題,使得乘客能愉快、安全的下車。1.2 國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢公交車自動報站系統(tǒng)的設計主要是為了彌補傳統(tǒng)人工語音報站的落后方式,使進站、出站信息自動播報站名,為市民提供更人性化,更完善的服務。 目前自動報站系統(tǒng)技術主要有以下幾種:一般語音報站器,到站前由乘務人員按動進站按鈕開始報站,出站時由乘務人員按下出站按鈕,開始預報下站的站名,通過序號

9、來記錄各個站點;第二種是門控語音報站器,將開門、關門時轉(zhuǎn)換信號和語音報站器連接,開門和關門時自動報站;第三種是無線信標語音報站器,它是在每個公交車站點設置發(fā)射信標點,公交車臨近到站點左右會收到信標信號,開始自動報站,出站后信號消失,開始預報下一站,此報站器報站準確,但需要為每個站點組建無線發(fā)射信標,建設復雜、費用高,大部分站點無電源供應,公交車數(shù)量多時存在頻率干擾問題,且較嚴重,用戶修改站點非常不方便,系統(tǒng)維護成本高;第四種就是GPS自動語音報站器,此報器是在公交車上安裝GPS自動語音報站器,自動識別站點并報告站點信息。其優(yōu)點是報站精準,無須人工操作,無須建設任何車外設施。但從便捷和價格來考慮

10、一般語音公交報站比較普遍。1.3 本課題的研究內(nèi)容在全面了解公交車自動報站系統(tǒng)的原理后,利用單片機設計并實現(xiàn)進站、出站的公交站名顯示,準確的指示乘客到站的問題,使得乘客能愉快、安全的下車。為廣大市民提供更人性化更完善的服務。本設計實現(xiàn)的功能是:利用了89C52單片機作為CPU來進行總體控制,同時使用FYD12864液晶顯示電路進行漢字顯示,能夠?qū)崿F(xiàn)公交車的站名顯示。在CPU控制模式下,鍵盤電路采用中斷掃描模式,當有鍵按下時,系統(tǒng)產(chǎn)生中斷,CPU響應中斷后,通過軟件來實現(xiàn)該鍵號所對應鍵的功能。因此當公交車到達某站時通過按鍵來控制本系統(tǒng)進行工作,CPU同時通過程序讀取漢字信息送入LCD液晶顯示電路

11、進行漢字提示進行公交車報站。本設計主要有三部分組成:1、控制部分由89C52組成,包括必要的按鍵電路、復位電路和時鐘電路等外圍電路。2、顯示部分由12864的LCD液晶顯示器完成。3、系統(tǒng)的軟件設計用C語言進行編寫。 1 第2章 總體設計方案2.1 系統(tǒng)的總體框圖 本系統(tǒng)由CPU控制、按鍵控制、輸出顯示等組成,其系統(tǒng)總體框圖如圖2.1 。 鍵控 CPU控制 LCD顯示模塊 圖2.1 系統(tǒng)的總體框圖系統(tǒng)各模塊簡介:1、CPU控制使用單片機STC89C52,它具有指令多、功能強、速度快、可靠性高等優(yōu)點,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。 2、鍵控

12、采用4 * 4矩陣鍵盤,這種鍵盤連接簡單使用較少的I/O口就可以接較多按鍵。3、液晶顯示模塊采用的是FYD12864模塊,它構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。2.2 系統(tǒng)使用89C52的介紹 STC89C52的管腳圖及管腳定義如圖2.2所示。   圖2.2 STC89C52管腳圖管腳的功能介紹如下: VCC(40引腳):電源電壓。VSS(20引腳):接地。P0端口(P0.0P0.7,3932引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負載

13、,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復用總線。此時,P0口內(nèi)部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。P1端口(P1.0P1.7,18引腳):P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時,因為有內(nèi)部上拉電阻,那些被外部拉低的引腳會輸出一個電流。此外,P1.0和P1.1還可以作

14、為定時器/計數(shù)器2的外部技術輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體參見表2.1。 在對Flash ROM編程和程序校驗時,P1接收低8位地址。 表2.1 引腳功能特性 引腳號功能特性P1.0T2(定時器/計數(shù)器2外部計數(shù)輸入),時鐘輸出P1.1T2(定時器/計數(shù)器2捕獲/重裝觸發(fā)和方向控制) P2端口(P2.0P2.7,2128引腳):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電平,這時可用作輸入口。P2作為輸入口使用時,

15、因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。 在訪問外部程序存儲器和16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX DPTR”指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX R1”指令)時,P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的P2寄存器的內(nèi)容),在整個訪問期間不會改變。在對Flash ROM編程和程序校驗期間,P2也接收高位地址和一些控制信號。 P3端口(P3.0P3.7,1017引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。

16、對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流。 在對Flash ROM編程或程序校驗時,P3還接收一些控制信號。P3口除作為一般I/O口外,還有其他一些復用功能,如表2.2所示。 表2.2 引腳復用功能引腳號復用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2外部中斷0P3.3外部中斷1P3.4T0(定時器0的外部輸入)P3.5T1(定時器1的外部輸入)P3.6外部數(shù)據(jù)存儲寫選通P3.7外部數(shù)據(jù)存儲度選通 RST(9引腳):復位輸入。當輸入連續(xù)兩個機器周期以上

17、高電平時為有效,用來完成單片機單片機的復位初始化操作。看門狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE(30引腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。 如果需要,通過將地址位8EH的SFR的第0位置“1”,ALE操作將無效。這一位

18、置“1”,ALE僅在執(zhí)行MOVX或MOV指令時有效。否則,ALE將被微弱拉高。這個ALE使能標志位(地址位8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。  29引腳:外部程序存儲器選通信號是外部程序存儲器選通信號。當AT89C51RC從外部程序存儲器執(zhí)行外部代碼時,在每個機器周期被激活兩次,而訪問外部數(shù)據(jù)存儲器時將不被激活。 31引腳:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,29引腳必須接GND。注意加密方式1時,29引腳將內(nèi)部鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,應該接VCC。在Flash編程期間,也接收12

19、伏VPP電壓。 XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。STC89C52單片機是宏晶科技推出的新一代高速/低功耗/超強抗干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。另外,它還具有指令多、功能強、速度快、可靠性高等優(yōu)點。因此本系統(tǒng)采用STC89C52單片機來控制總體控制。2.3 LCD液晶顯示器液晶顯示器的介紹:液晶顯示器簡稱LCD,它具有功耗低、體積小、美觀、方便、使用壽命長的特點。液晶顯示器中最主要的物質(zhì)就是液晶,它是一種規(guī)則性排列的有機化合物,是一

20、種介于固體和液體之間的物質(zhì),在電廠的作用下,晶體排列發(fā)生改變,從而影響液體液晶的光折射特性,造成某些部分的視覺變化,從而達到顯示的目的。231 12864液晶顯示模塊的介紹FYD12864-0402B是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯

21、著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。邏輯工作電壓(VDD):4.55.5V電源地(GND):0V工作溫度(Ta):060(常溫) / -2075(寬溫)驅(qū)動方式:1/32DUTY,1/5BIAS背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/51/10232 12864液晶顯示模塊的管腳圖及管腳定義 圖2.3 LCD 12864管腳圖 LCD 12864管腳定義如表2.3 : 表2.3 12864液晶顯示模塊管腳定義引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VD

22、D+模塊的電源正端3V0-LCD驅(qū)動電壓輸入端4RS(CS)H/L并行的指令/數(shù)據(jù)選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數(shù)據(jù)口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數(shù)據(jù)08DB1H/L數(shù)據(jù)19DB2H/L數(shù)據(jù)210DB3H/L數(shù)據(jù)311DB4H/L數(shù)據(jù)412DB5H/L數(shù)據(jù)513DB6H/L數(shù)據(jù)614DB7H/L數(shù)據(jù)715PSBH/L并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復位 低電平有效18NC空腳19LED_A+背光源正極(LED+5V)20LED_K-背光源負極(LED-OV)233 12864液晶顯

23、示模塊接口時序的介紹12864顯示模塊有寫時序和讀時序兩種時序如圖2.4所示:(a)MPU寫資料到模塊(b)MPU從模塊讀出資料圖2.4 接口時序?qū)?讀資料圖 基本操作時序:讀狀態(tài):輸入:RS=L,R/W=H,CS=H,E=H;輸出:D0D7=狀態(tài)字寫指令:輸入:RS=L,R/W=L,D0D7=指令碼,CS=H,E=高脈沖; 輸出:無讀數(shù)據(jù):輸入:RS=H,R/W=H,CS=H,E=H ;輸出:D0D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,R/W=L,D0D7=數(shù)據(jù),CS=H,E=高脈沖; 輸出:無234 12864液晶顯示模塊與單片機的接口設計 圖2.5 12864與單片機接口電路圖 圖2.5為12

24、864顯示模塊與單片機顯示模塊連接電路圖:1VSS為模塊的電源地,所以1口接地。2VDD為模塊的電源正端,則2口接電源。3V0為LCD驅(qū)動電壓輸入端,則需要連接電路來控制電路中的電壓。4RS(CS)H/L并行的指令/數(shù)據(jù)選擇信號;串行的片選信號,則要連接單片機來行使其片選功能。5R/W(SID)H/L并行的讀寫選擇信號;串行的數(shù)據(jù)口。因為在本電路中始終都是寫指令或數(shù)據(jù),所以該端可以始終連接低電平。6E(CLK)H/L并行的使能信號;串行的同步時鐘。該項需要連接入單片機,再在工作過程中的高/低電平?jīng)Q定該端口所起到的作用。714接口為數(shù)據(jù)連接端口,與寄存器74LS373連接,通過寄存器傳輸單片機中

25、的數(shù)據(jù)來獲得相應的信息傳送至12864顯示器中。15PSBH/L并/串行接口選擇:H-并行;L-串行。16NC空腳,所以該處不接。17/RETH/L復位 低電平有效,則是直接連接高電平,使得12864顯示模塊剛開始就處于復位狀態(tài) 19和20分別為背光源的正負極,則分別連接相對應的電源正極和電源負極。 第3章 系統(tǒng)的硬件部分設計3.1 89C52的時鐘電路 STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時鐘電路如圖(a),在RXD和TXD引腳上外接定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定

26、時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212MHz之間選擇,電容值在530pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。 外部方式的時鐘電路如圖(b),RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機使用。 (a)內(nèi)部振蕩方式 (b)外部振蕩方式 圖3.1 89C52時鐘電路3.2 89C52的復位電路(1)復位信號及其產(chǎn)生  整個復位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復位信號(RST)送至

27、施密特觸發(fā)器,再由片內(nèi)復位電路在每個機器周期的S5P2時刻對施密特觸發(fā)器的輸出進行采樣,然后才得到內(nèi)部復位操作所需要的信號。RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續(xù)24個振蕩周期(即二個機器周期)以上。若使用頗率為6MHz的晶振,則復位信號持續(xù)時間應超過4us才能完成復位操作。復位操作有上電自動復位和按鍵手動復位兩種方式:如圖(a),上電自動復位是通過外部復位的電容充電來實現(xiàn)的,這樣只要電源VCC的上升時間不超過1ms,就可以實現(xiàn)自動上電復位,即接通電源那就成了系統(tǒng)的復位初始化;按鍵手動復位有電平方式和脈沖方式兩種。如圖(b),按鍵電平復位是通過使復位端經(jīng)電阻與VC

28、C電源接通而實現(xiàn)的。如圖(c),按鍵脈沖復位則是利用RC微分電路產(chǎn)生的正脈沖來實現(xiàn)的。 (a)上電復位 (b)按鍵電平復位 (c)按鍵脈沖復位 圖3.2 89C52復位電路(2)復位操作  復位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復位鍵重新啟動。 除PC之外,復位操作還對其他一些寄存器有影響,它們的復位狀態(tài)如表3.1所示。  表3.1 一些寄存器的復位狀態(tài)  寄存器復位狀態(tài)寄存器復位狀態(tài)PC000

29、HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H3.3 鍵盤電路的設計鍵盤在單片機系統(tǒng)中是一個很重要的部分。輸入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài)都要用到鍵盤,鍵盤是人工干預計算機的手段。微機所用的鍵盤可分為編碼和非編碼鍵盤兩種。編碼鍵盤采用硬件線路來實現(xiàn)鍵盤編碼,每按下一個鍵,鍵盤能自動生成按鍵代碼,鍵數(shù)較多,而且還具有去抖功能。這種鍵盤使用方便,但硬件較復雜,PC機所用的鍵盤就屬于這種。非編碼鍵盤僅提供按

30、鍵開關狀態(tài),其他工作由軟件完成,這種鍵盤鍵數(shù)較少,硬件簡單,一般在單片機應用系統(tǒng)中廣泛使用。本次設計用的是矩陣式鍵盤,這種鍵盤連接簡單使用較少的I/O口就可以接較多按鍵。331 矩陣式鍵盤掃描原理矩陣鍵盤掃描的方法有兩種:1、逐行掃描:我們可以通過高四位輪流輸出低電平來對矩陣鍵盤進行逐行掃描,當?shù)退奈唤邮盏降臄?shù)據(jù)不全為1的時候,說明有按鍵按下,然后通過接收到的數(shù)據(jù)是哪一位為0來判斷是哪一個按鍵被按下。2、行列掃描:我們可以通過高四位全部輸出低電平,低四位輸出高電平。當接收到的數(shù)據(jù),低四位不全為高電平時,說明有按鍵按下,然后通過接收的數(shù)據(jù)值,判斷是哪一列有按鍵按下,然后再反過來,高四位輸出高電平

31、,低四位輸出低電平,然后根據(jù)接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪一個按鍵按下了。 圖3.3 4 * 4矩陣鍵盤矩陣鍵盤的原理如圖3.3所示。首先可以通過高四位全部輸出低電平,低四位輸出高電平。當接收到的數(shù)據(jù),低四位不全為高電平時,說明有按鍵按下,然后通過接收的數(shù)據(jù)值,來判斷是哪一列有鍵按下,其程序如下:GPIO_KEY=0X0F; switch(GPIO_KEY)case(0X07):KeyValue=0;break;測試第一列case(0X0b):KeyValue=1;break;測試第二列case(0X0d): KeyValue=2;break;測試第三列case(

32、0X0e):KeyValue=3;break;測試第四列然后再通過高四位輸出高電平,低四位輸出低電平,然后根據(jù)接收到的高四位的值判斷是哪一行有按鍵按下,其程序如下: GPIO_KEY=0XF0;switch(GPIO_KEY)case(0X70):KeyValue=KeyValue;break;測試第一行case(0Xb0):KeyValue=KeyValue+4;break;測試第二行case(0Xd0): KeyValue=KeyValue+8;break;測試第三行case(0Xe0):KeyValue=KeyValue+12;break;測試第四行通過行與列的測試,這樣就能夠確定是哪一

33、個按鍵按下了。332 盤的去抖設計(a) (b) 圖 3.4 鍵操作和鍵抖動示意圖按鍵開關在電路中的連接如圖3.4(a)所示。按鍵未按下時,A點電位為高電平5V;按鍵按下時A點電位低電平。A點電位就用于向CPU傳遞開關狀態(tài)。但由于按鍵的結(jié)構(gòu)為機械彈性開關,在按鍵按下和斷開時觸點在閉合和斷開瞬間還會接觸不穩(wěn)定,引起A點電平不穩(wěn)定,如圖3.4(b)所示,鍵盤的抖動時間一般為510ms,抖動現(xiàn)象會引起CPU對一次鍵操作進行多次處理,從而可能產(chǎn)生錯誤。因此,必須設法消除抖動的不良后果。消除按鍵去抖不良后果的方法有硬件和軟件兩種。在此系統(tǒng)中我們采用軟件去抖的方法來實現(xiàn)按鍵去抖問題。根據(jù)抖動的特性,在第一

34、次檢測到按鍵按下后,執(zhí)行一段延時10ms子程序后再確定該鍵是否確實按下,從而消除抖動的影響。333 鍵盤掃描控制方式在單片機應用系統(tǒng)中,對鍵盤的處理工作只是CPU工作內(nèi)容的一部分,CPU還要進行數(shù)據(jù)處理,顯示和其他輸入操作,因此鍵盤處理工作既不能占用CPU太多時間,又需要CPU對鍵盤操作及時作出響應,CPU對鍵盤處理控制的工作方式有以下幾種。1、程序控制掃描方式程序控制掃描方式是在CPU工作空余,調(diào)用鍵盤掃描子程序,響應鍵輸入信號要求。程序控制掃描方式的鍵處理程序固定在主程序的某個程序段。當主程序運行到該程序段時,依次掃描鍵盤,判斷有鍵輸入否。若有,則計算按鍵編號,執(zhí)行相應鍵功能子程序。這種工

35、作方式對CPU影響小,但應考慮鍵盤處理程序的運行間隔周期不能太長,否則會影響對鍵輸入響應的及時性。2、定時掃描控制方式定時掃描控制方式是利用定時器/計數(shù)器每隔一段時間產(chǎn)生定時中斷,CPU響應中斷后對鍵盤進行掃描,并在有鍵閉合時轉(zhuǎn)入該鍵的功能子程序。程序控制掃描方式與定時控制掃描方式的區(qū)別是,在掃描間隔時間內(nèi),前者用CPU工作程序填充,后者用定時器/計數(shù)器定時控制,還要占用一個定時/計數(shù)器。3、中斷控制方式中斷控制方式是利用外部中斷源,響應按鍵輸入信號。當無按鍵按下時,CPU執(zhí)行正常工作程序。當有鍵按下時,CPU立即產(chǎn)生中斷。在中斷服務子程序中掃描鍵盤,判斷是哪一個鍵被按下,然后執(zhí)行該按鍵的功能

36、子程序,既能及時處理鍵輸入,又能提高CPU運行效率。本系統(tǒng)就采用此種鍵盤控制方式,來響應系統(tǒng)的按鍵輸入信號。 第4章 系統(tǒng)的軟件部分設計 同硬件設計一樣,軟件設計也是分塊進行的。本設計主要的現(xiàn)實背景就是以武昌火車站路線為依托,運行區(qū)間沿途設置12個站點。程序的主要設計包括系統(tǒng)主程序、鍵盤掃描程序、液晶顯示程序等。各部分子程序由主程序調(diào)用,組成一個整體。4.1 系統(tǒng)主流程設計序 如圖前面黑點多余4.1所示為系統(tǒng)主流程圖。首先需要進行系統(tǒng)初始化設置,初始化后進行循環(huán)。在本設計中是采用中斷掃描模式,當有鍵按下時,系統(tǒng)產(chǎn)生中斷,CPU響應中斷后,通過軟件來實現(xiàn)該鍵號所對應鍵的功能。 圖 4.1 系統(tǒng)主

37、流程圖流程圖后,建議適當添加一些文字說明,比如:系統(tǒng)IO口初始化作用,對顯示屏顯示有什么影響,系統(tǒng)時鐘頻率初始化,其作用是什么4.2 鍵盤掃描流程設計 按鍵掃描程序的執(zhí)行過程前面的黑點多余:首先掃描某一按鍵是否按下,然后延時進行消抖,消抖過后又進行按鍵掃描判斷該按鍵是否仍然按下,如果仍然按下就將取得的按鍵值賦給nkey,按鍵掃描流程圖如圖4.2所示。 圖 4.2 按鍵掃描流程圖程序工作思想為:電路上電后,程序首先完成程序的初始化,隨后查詢按鍵狀態(tài),進入系統(tǒng)工作狀態(tài)。如果有按鍵按下,則轉(zhuǎn)去執(zhí)行該按鍵指向的工作程序。自此完成了4*4鍵盤的一次掃描,在程序中則利用鍵盤的不斷掃描在配合其他相應的程序來

38、完成相應的功能該子程序可以適當添加,比如:當前顯示是什么,對于不同的功能按鍵按下時,產(chǎn)生什么樣的信號到單片機,執(zhí)行后顯示的是什么。4.3 LCD顯示模塊流程設計 圖 4.3 LCD顯示模塊流程圖 在公交車上,顯示器在提醒人們下車中有很重要的作用,它幾乎不會受到外界的影響,不像語音有時噪聲較大等原因是會影響人的感官而使你無法確定你所要知道的站名,所以公交車上顯示器的存在是絕對必要的,而且顯示模塊控制容易,價格便宜,有很大的通用性。在LCD顯示過程中,它的程序并不是特別復雜,并且較容易理解,例如這次畢業(yè)設計中只要將程序適當?shù)奶砑拥絾纹瑱C89C52中,就可以實現(xiàn)顯示出所要顯示內(nèi)容的目的。#inclu

39、de <STC89XC52>#define uint unsigned int #define uchar unsigned charsbit p2_3=P23;sbit p2_4=P24;uchar code table= “珞珈學院 ”, “電子信息科學系 ”, “電子信息工程3班 ”, “設計:熊鵬 ”, “指導教師:李婧 ”在該程序中編寫了,該字符段在顯示器中顯示的過程。首先num=1,則字符段為珞珈學院。隨著num的不同,則選擇顯示的字符段也不同。結(jié) 論可以添加一些設計中出現(xiàn)過的問題:1、2、3、。怎么樣解決這些問題:1、2、3、。最后的成果展示,可以用1到2張圖片,簡單

40、說明你的初始顯示,以及操作后的顯示。圖片不要太大,太多。該設計主要有兩部分組成:單片機控制部分和顯示部分??刂撇糠钟?9C52組成,包括必要的按鍵電路、復位電路和時鐘電路等外圍電路。顯示部分由12864的LCD液晶顯示器完成。系統(tǒng)的軟件設計用C語言進行編寫,完成了一些重要程序的編寫工作。具有設計快、效率高、成本低的特點。參考文獻參考文獻要在文中一一標明。并按照從小到大的順序排列。 1 楊素行 模擬電子技術基礎簡明教程 第三版 高等教育出版社 2006.52 閻石 數(shù)字電子技術基礎 第五版 高等教育出版社2006.53 陳忠平,曹巧暖 單片機原理及接口 第二版 北京:清華大學出版社,2011.5

41、4 董尚斌 電子線路() 清華大學出版社 2008.105 于敬芬:基于AT89S52和TLC0834的數(shù)據(jù)采集系統(tǒng)J,中國水運(學術版),20066 張毅剛,彭喜元,姜守達新編MCS-51單片機應用設計M第2版哈爾濱:哈爾濱工業(yè)大學出版社,20067 樓苗然51系列單片機M北京:北京航空航天大學出版社,20038 康華光主編電子技術基礎M第四版北京:高等教育出版社,19999 李華MCS-51系列單片機實用接口技術M北京:北京航空航天大學出版社,200310韋麗華微機控制的公共汽車自動報站系統(tǒng)J遼寧工學院學報,2002附 錄 程序清單:#include <STC89XC52>#d

42、efine uint unsigned int #define uchar unsigned charsbit p2_3=P23;sbit p2_4=P24;uchar code table= “珞珈學院 ”, “電子信息科學系 ”, “電子信息工程3班 ”, “設計:熊鵬 ”, “指導教師:李婧 ”void init()ss=0;CS=1;p2_0=1;p2_1=1;p2_2=1;wr_com(0x30);/功能設定指令delay(1);wr_com(0x30);/功能設定指令delay(1);wr_com(0X0c);/去游標delay(1);wr_com(0x08);/顯示開指令dela

43、y(1);wr_com(0x01);/清屏指令delay(15);wr_com(0x06);/進入設定點指令void wr_com(uchar com)/寫指令p2_3=0;P0=com;delay(5);p2_4=1;delay(5);p2_4=0;void wr_data(uchar date)/寫數(shù)據(jù)p2_3=1;P0=date;delay(5);p2_4=1;delay(5);p2_4=0;void display(num) /寫站名 uchar num1;for(num1=0;num1<8;num1+)wr_date(tablenumnum1);delay(20);在該程序中編寫了,該字符段在顯示器中顯示的過程。首先num=1,則字符段為珞珈學院。隨著num的不同,則選擇顯示的字符段也不同。 鍵盤掃描程序:* 函數(shù)名 : KeyDown* 函數(shù)功能 : 檢測有按鍵按下并讀取鍵值* 輸入 : 無* 輸出 : 無*/void KeyDown(void)char a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)/讀取按鍵是否按下Delay10ms();/延時10ms進行消抖if

溫馨提示

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

評論

0/150

提交評論