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

下載本文檔

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

文檔簡介

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

2、過軟件來實(shí)現(xiàn)該鍵號所對應(yīng)鍵的功能。因此當(dāng)公交車到達(dá)某站時通過按鍵來控制本系統(tǒng)進(jìn)行工作,CPU同時通過程序讀取漢字信息送入LCD液晶顯示電路進(jìn)行漢字提示。通過本設(shè)計(jì)主要解決了如何方便、準(zhǔn)確的指示乘客到站的問題,使得乘客能愉快、安全的下車。關(guān)鍵詞:單片機(jī) 液晶顯示 鍵盤電路 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章 總體設(shè)計(jì)方案 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液晶顯示模塊與單片機(jī)的接口設(shè)計(jì)9第3章 系統(tǒng)的硬件部分設(shè)計(jì)3.1 89C52的時鐘電路113.2 98C52的復(fù)位電路123.3 鍵盤電路的設(shè)計(jì)13 3.3.1 矩陣式鍵盤掃描原理13 3.3.2 鍵盤的去抖設(shè)計(jì)14 3.3.3 鍵盤掃描控制方式15第4章 系統(tǒng)的軟件部分設(shè)計(jì) 4.1 系統(tǒng)主流程設(shè)計(jì) 16 4.2 鍵盤掃描流程設(shè)計(jì)194.3 LCD顯示模塊流程設(shè)計(jì)18結(jié)論 25參考文獻(xiàn) 26附錄27后記28武漢大學(xué)珞珈學(xué)院本

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

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

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

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

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

12、采用4 * 4矩陣鍵盤,這種鍵盤連接簡單使用較少的I/O口就可以接較多按鍵。3、液晶顯示模塊采用的是FYD12864模塊,它構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點(diǎn)陣的圖形液晶模塊。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負(fù)載

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

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

15、因?yàn)橛袃?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編程和程序校驗(yàn)期間,P2也接收高位地址和一些控制信號。 P3端口(P3.0P3.7,1017引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。

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

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

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

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

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

21、著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點(diǎn)陣的圖形液晶模塊。邏輯工作電壓(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復(fù)位 低電平有效18NC空腳19LED_A+背光源正極(LED+5V)20LED_K-背光源負(fù)極(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液晶顯示模塊與單片機(jī)的接口設(shè)計(jì) 圖2.5 12864與單片機(jī)接口電路圖 圖2.5為12

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

25、的數(shù)據(jù)來獲得相應(yīng)的信息傳送至12864顯示器中。15PSBH/L并/串行接口選擇:H-并行;L-串行。16NC空腳,所以該處不接。17/RETH/L復(fù)位 低電平有效,則是直接連接高電平,使得12864顯示模塊剛開始就處于復(fù)位狀態(tài) 19和20分別為背光源的正負(fù)極,則分別連接相對應(yīng)的電源正極和電源負(fù)極。 第3章 系統(tǒng)的硬件部分設(shè)計(jì)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,供單片機(jī)使用。 (a)內(nèi)部振蕩方式 (b)外部振蕩方式 圖3.1 89C52時鐘電路3.2 89C52的復(fù)位電路(1)復(fù)位信號及其產(chǎn)生  整個復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(RST)送至

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

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

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

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

31、,低四位輸出低電平,然后根據(jù)接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪一個按鍵按下了。 圖3.3 4 * 4矩陣鍵盤矩陣鍵盤的原理如圖3.3所示。首先可以通過高四位全部輸出低電平,低四位輸出高電平。當(dāng)接收到的數(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 盤的去抖設(shè)計(jì)(a) (b) 圖 3.4 鍵操作和鍵抖動示意圖按鍵開關(guān)在電路中的連接如圖3.4(a)所示。按鍵未按下時,A點(diǎn)電位為高電平5V;按鍵按下時A點(diǎn)電位低電平。A點(diǎn)電位就用于向CPU傳遞開關(guān)狀態(tài)。但由于按鍵的結(jié)構(gòu)為機(jī)械彈性開關(guān),在按鍵按下和斷開時觸點(diǎn)在閉合和斷開瞬間還會接觸不穩(wěn)定,引起A點(diǎn)電平不穩(wěn)定,如圖3.4(b)所示,鍵盤的抖動時間一般為510ms,抖動現(xiàn)象會引起CPU對一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯誤。因此,必須設(shè)法消除抖動的不良后果。消除按鍵去抖不良后果的方法有硬件和軟件兩種。在此系統(tǒng)中我們采用軟件去抖的方法來實(shí)現(xiàn)按鍵去抖問題。根據(jù)抖動的特性,在第一

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

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

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

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

38、完成相應(yīng)的功能該子程序可以適當(dāng)添加,比如:當(dāng)前顯示是什么,對于不同的功能按鍵按下時,產(chǎn)生什么樣的信號到單片機(jī),執(zhí)行后顯示的是什么。4.3 LCD顯示模塊流程設(shè)計(jì) 圖 4.3 LCD顯示模塊流程圖 在公交車上,顯示器在提醒人們下車中有很重要的作用,它幾乎不會受到外界的影響,不像語音有時噪聲較大等原因是會影響人的感官而使你無法確定你所要知道的站名,所以公交車上顯示器的存在是絕對必要的,而且顯示模塊控制容易,價格便宜,有很大的通用性。在LCD顯示過程中,它的程序并不是特別復(fù)雜,并且較容易理解,例如這次畢業(yè)設(shè)計(jì)中只要將程序適當(dāng)?shù)奶砑拥絾纹瑱C(jī)89C52中,就可以實(shí)現(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= “珞珈學(xué)院 ”, “電子信息科學(xué)系 ”, “電子信息工程3班 ”, “設(shè)計(jì):熊鵬 ”, “指導(dǎo)教師:李婧 ”在該程序中編寫了,該字符段在顯示器中顯示的過程。首先num=1,則字符段為珞珈學(xué)院。隨著num的不同,則選擇顯示的字符段也不同。結(jié) 論可以添加一些設(shè)計(jì)中出現(xiàn)過的問題:1、2、3、。怎么樣解決這些問題:1、2、3、。最后的成果展示,可以用1到2張圖片,簡單

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

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

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

43、y(1);wr_com(0x01);/清屏指令delay(15);wr_com(0x06);/進(jìn)入設(shè)定點(diǎn)指令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,則字符段為珞珈學(xué)院。隨著num的不同,則選擇顯示的字符段也不同。 鍵盤掃描程序:* 函數(shù)名 : KeyDown* 函數(shù)功能 : 檢測有按鍵按下并讀取鍵值* 輸入 : 無* 輸出 : 無*/void KeyDown(void)char a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)/讀取按鍵是否按下Delay10ms();/延時10ms進(jìn)行消抖if

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論