




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、蘭州工業(yè)學(xué)院 畢業(yè)設(shè)計(論文)題目 基于單片機的電話撥號系統(tǒng)的設(shè)計 院 系 電子信息工程學(xué)院 專 業(yè) 電子信息工程技術(shù) 班 級 嵌入式11 姓 名 靳云霞 學(xué) 號 201110103104 指導(dǎo)教師(職稱) 賈桂霞(副教授) 日 期 2014年3月 蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(論文)任務(wù)書電子信息工程系14屆電子信息工程技術(shù)(嵌入式方向)專業(yè)畢業(yè)設(shè)計(論文)任務(wù)書畢業(yè)設(shè)計(論文)題目基于單片機的電話撥號系統(tǒng)的設(shè)計課題內(nèi)容性質(zhì)工程設(shè)計課題來源性質(zhì)教師收集的結(jié)合生產(chǎn)實際的課題設(shè)計/論文校內(nèi)(外)指導(dǎo)教師職 稱工作單位及部門聯(lián)系方式賈桂霞副教授電子信息工程、題目說明(目的和意義)
2、:用單片機設(shè)計一個模擬電話撥號系統(tǒng),用1602lcd液晶顯示來實現(xiàn)顯示時間并能用矩陣式按鍵控制電話所撥號碼及顯示功能的設(shè)計.通過本設(shè)計使學(xué)生在獲取技術(shù)資料、專業(yè)知識綜合運用、科技論文撰寫、電子產(chǎn)品設(shè)計等方面的能力得到提高。二、設(shè)計(論文)要求(工作量、內(nèi)容): 【設(shè)計內(nèi)容】1、設(shè)計一個單片機監(jiān)控的電話撥號鍵盤,將電話鍵盤中撥出的某一電話號碼,顯示在lcd顯示屏上。電話鍵盤共有12個鍵,除了“0” “9”10個數(shù)字鍵外,還有“*”鍵用于實現(xiàn)退格功能,即清除輸入的號碼;“#”鍵用于清除顯示屏上所有的數(shù)字顯示。要求每按下一個鍵要發(fā)出聲響,以表示按下該鍵。2、畫出硬件電路圖,完成硬件電路的設(shè)計;然后編
3、寫控制程序并使用proteus進行仿真?!驹O(shè)計要求】 1、設(shè)計環(huán)境硬件:微機、所需元器件等;軟件:protel電路設(shè)計軟件、wave/keilc仿真軟件、proteus仿真軟件。2、設(shè)計步驟1)系統(tǒng)總體設(shè)計;2)電子元件選型及硬件電路設(shè)計;3)控制程序編寫; 4)proteus仿真調(diào)試?!驹O(shè)計報告要求】1、 論文撰寫應(yīng)該符合蘭州工業(yè)學(xué)院畢業(yè)論文撰寫規(guī)范要求;論文中應(yīng)該包括緒論、功能、方案確定、單元電路設(shè)計、完整的硬件電路設(shè)計及軟件流程等內(nèi)容。三、進度表日 期內(nèi) 容第15周第16周第17周第18-20周第21周下學(xué)期 第12周1、下達設(shè)計任務(wù)、查閱資料,確定系統(tǒng)總體設(shè)計方案;2、 撥號電話的原理
4、電路設(shè)計;3、印制電路板設(shè)計;4、軟件設(shè)計,proteus仿真調(diào)試;6、論文撰寫;7、畢業(yè)答辯。完成日期第21周(本學(xué)期)答辯日期第1-2周(下學(xué)期)四、 主要參考文獻、資料、設(shè)備和實習(xí)地點及翻譯工作量:(一)參考文獻1 趙又新著,微機原理與接口技術(shù). 中國電力出版社,20072 韓曉東、李勇江等著,protel 99 se電路設(shè)計實用教程. 中國鐵道出版社,20083 胡漢才,單片機原理及其接口技術(shù).清華大學(xué)出版社,20104 陳忠平編著,51單片機c語言程序設(shè)計經(jīng)典實例. 電子工業(yè)出版社,20125 張涵等編著,基于proteus的電路及單片機設(shè)計與仿真. 電子工業(yè)出版社,2012(二)實
5、習(xí)地點學(xué)校實驗室、學(xué)生自己考察的外部地點。(三)翻譯工作量對論文摘要進行英文翻譯。要求英文摘要250單詞以內(nèi),關(guān)鍵詞58個詞。指導(dǎo)教師簽字教研室主任簽字主管系領(lǐng)導(dǎo)簽字年 月 日年 月 日年 月 日注:本任務(wù)書要求一式兩份,一份系部留存,一份報教務(wù)處實踐教學(xué)科。摘 要隨著人們生活水平的不斷提高,電話在人們的日常生活中是比較常見的電子產(chǎn)品之一,它已進入我們的每一個家庭。本文設(shè)計是基于單片機的電話撥號系統(tǒng),硬件部分采用at89c51單片機作為電話鍵盤撥號按鍵顯示的核心部件,矩陣鍵盤作為輸入電路模塊,1602lcd作為顯示電路模塊。系統(tǒng)可以實現(xiàn)所撥號碼顯示、退格、清屏等功能。結(jié)果表明該設(shè)計具有電路簡單
6、、讀取方便、顯示直觀、代碼簡潔、容易操作、低功耗和低成本等優(yōu)點,可用于一般的生活和工作,也可通過改裝,提高性能,增加功能,從而給人們的生活帶來更多的方便。關(guān)鍵詞:單片機;鍵盤;1602lcd abstractas people living standard unceasing enhancement, the phone in peoples daily life is one of the more common electronic products, it has entered our every family. design of this article is paper bas
7、ed on single chip microcomputer telephone dialing system,the hardware part adopts at89c51single-chip microcomputer as input circuit, 1602 lcd display circuit. can realize the dial number display backspace, screen clearing, and other functions. the results show that the design has simple circuit, con
8、venient read, direct display, code is simple, easy to operate, low power consumption and low cost advantages, can be used for normal life and work, also can through modification, improve its performance, add features, so as to bring to people life more convenient. keywords: microcontroller; keyboard
9、 ; 1602lcd 目 錄摘 要abstract1 緒 論12 系統(tǒng)總體設(shè)計方案12.1 系統(tǒng)基本設(shè)計方案與論證22.1.1 控制部分的選擇方案與論證22.1.2 輸出顯示電路模塊的選擇方案與論證22.1.3 鍵盤輸入電路模塊的選擇方案與論證32.2 系統(tǒng)設(shè)計最終方案43 系統(tǒng)硬件設(shè)計53.1 主芯片模塊53.1.1 主要特性63.1.2 管腳說明63.2 晶振和復(fù)位電路模塊83.2.1 復(fù)位電路93.2.2 晶振電路93.3 顯示電路模塊93.3.1 1602lcd簡介103.3.2 1602lcd的ram地址映射及標準字庫表133.3.3 1602lcd的一般初始化(復(fù)位)過程153.4
10、輸入電路模塊153.4.1 矩陣鍵盤的按鍵識別方法153.4.2 矩陣鍵盤的基本結(jié)構(gòu)163.5 系統(tǒng)硬件原理圖174 系統(tǒng)軟件設(shè)計194.1 軟件設(shè)計整體思路194.2 主要功能模塊設(shè)計214.2.1 鍵盤掃描模塊設(shè)計214.2.2 lcd顯示模塊設(shè)計23總 結(jié)25致 謝28參考文獻29附件1:源程序29附件2:電話撥號系統(tǒng)電路原理圖361 緒 論隨著社會的發(fā)展,科學(xué)的進步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。各種數(shù)字顯示儀器中的顯示、廣告牌、數(shù)碼產(chǎn)品等,傳統(tǒng)的數(shù)碼管顯示已經(jīng)遠遠不能滿足各行各業(yè)的需求。單片機的應(yīng)用已經(jīng)越來越貼近生活,用單片機來實現(xiàn)一些電子
11、設(shè)計也變得容易起來?;趩纹瑱C的lcd顯示是一種用單片機來控制的一種顯示系統(tǒng),它不僅能顯示各種數(shù)字、字母,還能顯示各種字體的漢字以及一些簡單的圖象,使用起來極為方便,只要通過對單片機寫入一定的程序來控制lcd的顯示即可完成,根據(jù)程序的不同而產(chǎn)生不同的效果。隨著單片機產(chǎn)品以及l(fā)cd產(chǎn)品的不斷涌現(xiàn),這一領(lǐng)域已經(jīng)得到了飛速的發(fā)展。電話發(fā)展的短短幾十年,從無號碼顯示到有號碼顯示,再到可視電話,在每一個轉(zhuǎn)變過程中都有重大的突破??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強大的電話,基于這樣的理念,本次設(shè)計是用單片機來控制電話撥號鍵盤按鍵的顯示。本文設(shè)計的是基于單片機的電話撥號系統(tǒng),該系統(tǒng)可以實現(xiàn)電話號碼數(shù)
12、字顯示。系統(tǒng)主要由電話撥號矩陣鍵盤、單片機最小系統(tǒng)、lcd1602顯示屏幾個單元電路組成。在本設(shè)計中,最終選用的是矩陣式鍵盤,把所操作的數(shù)字送至單片機,通過單片機實現(xiàn)號碼的顯示與控制。2 系統(tǒng)總體設(shè)計方案2.1 系統(tǒng)基本設(shè)計方案與論證2.1.1 控制部分的選擇方案與論證方案一:用可編程邏輯器件設(shè)計用可編程邏輯器件設(shè)計可采用pld器件,設(shè)計起來結(jié)構(gòu)清晰,各個模塊從硬件上設(shè)計起來相對簡單,控制與顯示的模塊間連接也會比較方便。但是考慮到本次設(shè)計的特點,eda在能夠擴展上比較受局限,占用的資源也比較多。從成本上講,可編程邏輯器件價格比較高。方案二:用單片機設(shè)計單片機是指一個集成在一塊芯片上的完整計算機
13、系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:cpu、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強大的單片機系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機也被稱為微控制器(microcontroler),用單片機芯片作為控制部分,單片機有豐富的中斷源,它的準確度相當高,并且c語言的靈活運用,給編程帶來了方便。單片機i/o功能也比較強大,容易對其進行擴展,使設(shè)計更加完善,此外單片機的成本也比較低。綜上所述,單片機資源豐富,程序編寫也靈活簡單,可移植性強,性價比也
14、高,所以本次設(shè)計選用單片機作為主控芯片。2.1.2 輸出顯示電路模塊的選擇方案與論證方案一:用數(shù)碼管進行顯示數(shù)碼管由于顯示速度快,使用簡單,顯示效果簡潔明了而得到了廣泛應(yīng)用。但是由于我們計劃顯示電話號碼,顯示的數(shù)字內(nèi)容多。用數(shù)碼管無法顯示如此豐富的內(nèi)容,因此本次設(shè)計放棄了此方案。方案二:用lcd液晶進行顯示lcd由于其位數(shù)多,可顯示32位,顯示清晰,顯示內(nèi)容豐富,顯示信息量大,程序簡單,顯示快速而得到了廣泛的應(yīng)用。對于本次設(shè)計本文選用的lcd液晶能夠?qū)崿F(xiàn)電話撥號系統(tǒng),能夠很好的滿足顯示要求,因此本次設(shè)計選擇了此方案。2.1.3 鍵盤輸入電路模塊的選擇方案與論證鍵盤用于實現(xiàn)單片機應(yīng)用系統(tǒng)中的數(shù)據(jù)
15、和控制命令的輸入,鍵盤輸入也是單片機應(yīng)用系統(tǒng)中使用最廣泛的一種輸入方式。鍵盤輸入的主要對象是各種按鍵或開關(guān)。這些按健或者開關(guān)可以獨立使用,也可以組合成鍵陣使用。單片機中常用的按鍵式鍵盤可以分為兩類:獨立連接式和行列式。每類按譯碼方式的不同又分為編碼式和非編碼式兩種。單片機中一般使用的都是用軟件來識別和產(chǎn)生鍵代碼的非編碼鍵盤。行列式鍵盤的編碼方式有靜態(tài)和動態(tài)兩種。靜態(tài)接口主要由一個行編碼器和一個列編碼器構(gòu)成;動態(tài)接口可采用計數(shù)器,譯碼器和數(shù)據(jù)選擇器構(gòu)成。這兩種鍵盤由硬件完成鍵的編碼任務(wù)。一般在小型儀器儀表和控制系統(tǒng)中,使用較多的是行列式和獨立式的非編碼鍵盤;如果系統(tǒng)要求實現(xiàn)多鍵同時按下的處理,則
16、用非編碼獨立方式較為合適。方案一:采用獨立式按鍵電路獨立式按鍵電路每個按鍵單獨占有一根i/o接口線, 每個i/o口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。缺點為當按鍵較多時占用單片機的i/o口數(shù)目較多,優(yōu)點為電路設(shè)計簡單,且編程相對比較容易。 方案二:采用行列式鍵盤電路行列式鍵盤為4*3矩陣式行列掃描,雖然軟件較為復(fù)雜,但是當按鍵較多時可降低占用單片機的i/o口數(shù)目。對于此設(shè)計,由于鍵盤按鍵數(shù)目多,故采用方案二。2.2 系統(tǒng)設(shè)計最終方案本系統(tǒng)包括主芯片模塊、顯示電路模塊、鍵盤輸入模塊、晶振和復(fù)位電路模塊。綜上各方案所述,確定最終設(shè)計方案為:采用單片機作為主控制系統(tǒng),1602lcd液晶
17、顯示屏作為顯示部分,矩陣鍵盤作為輸入模塊。整個硬件電路由單片機及單片機的復(fù)位和晶振電路、音頻電路、1602lcd液晶顯示器和4*3矩陣式鍵盤組成。系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示。at89c51單片機晶振電路復(fù)位電路音頻電路1602lcd液晶顯示電路矩陣鍵盤 圖2.1 系統(tǒng)整體硬件組成框圖3 系統(tǒng)硬件設(shè)計3.1 主芯片模塊at89c51單片機是一種帶4k字節(jié)閃存可編程可擦除只讀存儲器(fperomflash programmable and erasable read only memory)的低電壓、高性能cmos 8位微處理器,俗稱單片機。at89c2051是一種帶2k字節(jié)閃存可編程可擦除只讀存
18、儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。其芯片引腳如圖3.1所示。圖3.1 at89c51芯片引腳圖3.1.1 主要特性(1)與mcs-51 兼容 (2)4k字節(jié)可編程閃爍存儲器 (3)壽命:1000寫/擦循環(huán)(4)數(shù)據(jù)保留時間:10年(5)全靜態(tài)工作:0hz-24hz
19、(6)三級程序存儲器鎖定(7)128*8位內(nèi)部ram(8)32可編程i/o線(9)兩個16位定時器/計數(shù)器(10)5個中斷源 (11)可編程串行通道(12)低功耗的閑置和掉電模式(13)片內(nèi)振蕩器和時鐘電路 3.1.2 管腳說明vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p0口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/
20、o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀
21、寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下所示。p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲
22、器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口同時為閃爍編程和編程校驗接收一些控制信號。rst:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用
23、。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3
24、.2 晶振和復(fù)位電路模塊晶振和復(fù)位電路模塊是系統(tǒng)中很重要的一部分,其中電路上部分為晶振電路,提供時鐘信號,下部分為復(fù)位電路,使單片機處于一個基準點。其電路如圖3.2所示。 圖3.2 晶振和復(fù)位電路圖 3.2.1 復(fù)位電路單片機需要復(fù)位以后才能正常工作,復(fù)位的目的就是使單片機處于一個基準點,在這個基準點,程序?qū)腸51的main()主函數(shù)的第一條語句開始執(zhí)行。復(fù)位工作是一個純硬件的工作,一般是在上電開始幾毫秒內(nèi)執(zhí)行完畢。復(fù)位的過程很簡單,在電源剛剛合上時,電流經(jīng)過電阻對電解電容器充電,這樣在電阻上就形成一個電壓,對于單片機來說,這個電壓就是復(fù)位電壓。經(jīng)過若干毫秒以后,電解電容器被充滿電,這時電
25、阻就沒有電流流過,電阻兩端也就沒有電壓,單片機的復(fù)位腳電壓恢復(fù)為0,復(fù)位工作結(jié)束,單片機開始工作。3.2.2 晶振電路在at89c51單片機內(nèi)部有一振蕩電路,只要在單片機的xtal1和xtal2引腳外接晶振,就改成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。如圖3.2所示,單片機工作的時間基準是由時鐘電路提供的。在單片機的xtal1和xtal2兩個引腳間,接一個晶振及兩只電容就構(gòu)成了時鐘電路。電路中的器件可以通過計算和實驗確定,也可以參考一些典型電路參數(shù)。電路中,電容器c1和c2對晶振器頻率有微調(diào)作用,通常取值范圍30+10pf;石英晶體選擇6mhz或12mhz都可以。其結(jié)果只是機器周期時間不
26、同,影響計算器的計數(shù)初值。3.3 顯示電路模塊本設(shè)計中重點部分是基于單片機的1602lcd液晶顯示部分。液晶顯示模塊是一種將液晶顯示器件、連接件、集成電路、pcb線路板、背光源、結(jié)構(gòu)件裝配在一起的組件,英文名叫“l(fā)cd module”, 簡稱“l(fā)cm”,中文一般為“液晶顯示模塊”。在單片機系統(tǒng)中使用液晶顯示模塊作為輸出有以下優(yōu)點:顯示資料高、數(shù)字式接口、功率消耗小、電路中的應(yīng)用。3.3.1 1602lcd簡介工業(yè)字符型液晶能夠同時顯示16*2即32個字符(16列2行)。1602lcd字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的兩條是背光電源線。 一般1602字符型液晶顯示器實
27、物如圖3.3所示。圖3.3 1602lcd的實物圖1602lcd分為帶背光和不帶背光兩種,基控制器大部分為hd44780,帶背光的比不帶背光的厚,應(yīng)用中并無差別。1602lcd芯片引腳如圖3.4所示。 圖3.4 1602lcd芯片引腳圖1602lcd采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3.1所示。表3.1 引腳接口說明表編號符號引腳說明編號符號引腳說明1vss電源地9d2數(shù)據(jù)2vdd電源正極10d3數(shù)據(jù)3vee液晶顯示偏壓11d4數(shù)據(jù)4rs數(shù)據(jù)/命令選擇12d5數(shù)據(jù)5r/w讀/寫選擇13d6數(shù)據(jù)6e使能信號14d7數(shù)據(jù)7d0數(shù)據(jù)15bla背光源正極8d1數(shù)據(jù)16
28、blk背光源負極第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:vee為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10k的電位器調(diào)整對比度。第4腳:rs為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:r/w為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當rs和r/w共同為低電平時可以寫入指令或者顯示地址,當rs為低電平r/w為高電平時可以讀忙信號,當rs為高電平r/w為低電平時可以寫入數(shù)據(jù)。第6腳:e端為使能端,當e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:d0d7為8位
29、雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。表3.2 控制命令表 序號指令rsr/wd7d6d5d4d3d2d1d01清顯示00000000012光標返回000000001*3置輸入模式00000001i/ds4顯示開/關(guān)控制0000001dcb5光標或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01bf計數(shù)器地址10寫數(shù)到cgram或ddram)10要寫的數(shù)據(jù)內(nèi)容11從cgram或ddram讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602lcd液晶模塊的讀寫操作、屏幕和光標的
30、操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01h, 光標復(fù)位到地址00h位置。指令2:光標復(fù)位,光標返回到地址00h。指令3:光標和顯示模式設(shè)置 i/d:光標移動方向,高電平右移,低電平左移 s: 屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制,d:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 c:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 b:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位s/c:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設(shè)置命令 dl:高電平時
31、為4位總線,低電平時為8位總線 n:低電平時為單行顯示,高電平時雙行顯示 f: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器ram地址設(shè)置。指令8:ddram地址設(shè)置。指令9:讀忙信號和光標地址 bf:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。3.3.2 1602lcd的ram地址映射及標準字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3.5是1602lc
32、d的內(nèi)部顯示地址。圖3.5 1602lcd內(nèi)部顯示地址例如第二行第一個字符的地址是40h,那么是否直接寫入40h就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位d7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000b(40h)+10000000b (80h) =11000000b (c0h) 。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602lcd液晶模塊內(nèi)部的字符發(fā)生存儲器(cgrom)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字
33、母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“a”的代碼是01000001b(41h),顯示時模塊把地址41h中的點陣字符圖形顯示出來,我們就能看到字母“a”。其中字符代碼與字符圖形對應(yīng)關(guān)系如圖3.6所示。圖3.6 字符代碼與字符圖形對應(yīng)關(guān)系3.3.3 1602lcd的一般初始化(復(fù)位)過程延時15ms 寫指令38h(不檢測忙信號)延時5ms寫指令38h(不檢測忙信號)延時5ms寫指令38h(不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38h:顯示模式設(shè)置寫指令08h:顯示關(guān)閉寫指令01h:顯示清屏寫指令06h:顯示光標移動設(shè)置寫
34、指令0ch:顯示開及光標設(shè)置3.4輸入電路模塊3.4.1 矩陣鍵盤的按鍵識別方法常用的鍵盤識別方法有:行掃描法,線翻轉(zhuǎn)法和利用8279鍵盤接口的中斷法。前兩種方法相當于查詢法,需要反復(fù)查詢按鍵的狀態(tài),但需要會占用大量的cpu時間。后一種方法在有鍵按下時向cpu申請中斷,平時并不需要占用cpu時間。在本系統(tǒng)中,完全可以不使用中斷法完成鍵盤接口, 這是由系統(tǒng)的特殊性決定的。首先,對于本系統(tǒng)而言,要實現(xiàn)便攜式的設(shè)計,硬件電路使用的器件越少越好。其次,被測信號由外中斷引腳輸入,未占用單片機4個并行i/o口中的任何一個,系統(tǒng)有足夠的資源利用自身i/o 口完成接口。最后,只有當傳感器輸出信號頻率為空載頻率
35、,系統(tǒng)處于空閑待測的狀態(tài)下,才允許鍵盤輸入,因此鍵盤識別占用的cpu時間不會對系統(tǒng)正常工作造成影響。因此直接利用單片機并行接口完成鍵盤的接口,采用行掃描法進行鍵盤識別。行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,具體過程如下: (1)判斷鍵盤上是否有鍵閉合在初始化階段,將全部行線設(shè)置為低電平,在沒有任何鍵按下時,所有的列線將讀到高電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。相反,如果輸入輸出端口全是高電平,則鍵盤中無鍵按下。 (2)去除鍵的機械抖動為保證鍵的正確識別,需要進行去抖動處理。其
36、方法是得知鍵盤上有鍵閉合后延遲一段時間,再判別鍵盤的狀態(tài),若仍有鍵閉合,則認為鍵盤上有一個鍵處于穩(wěn)定的閉合期,否則認為是鍵的抖動或者是干擾。(3)確定閉合鍵的物理位置在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線設(shè)置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。(4)得到閉合鍵的編號在得到閉合鍵的物理位置的基礎(chǔ)上,根據(jù)給定的按鍵編號規(guī)律,計算得出相應(yīng)閉合鍵的編號。(5)確保cpu對鍵的一次閉合僅做一次處理為實現(xiàn)這一功能,可以采用等待閉合鍵釋放以
37、后再處理的方法。3.4.2 矩陣鍵盤的基本結(jié)構(gòu)矩陣鍵盤中的鍵實際上就是一個機械開關(guān),位于行線和列線的交點處,圖3.7所示為本設(shè)計中使用的4行3列的12鍵矩陣鍵盤排列圖,當鍵被按下時,其交點的行線和列線相接通,使相應(yīng)行線或列線上的電平發(fā)生變化,根據(jù)電平變化情況確定被按下的鍵,其鍵盤原理如圖3.8所示。 圖3.7 鍵盤排列圖 圖3.8 鍵盤原理圖3.5 系統(tǒng)硬件原理圖綜合以上各單元電路的設(shè)計方案,電話撥號系統(tǒng)的硬件電路設(shè)計如圖3.9所示。系統(tǒng)初始化后,由單片機通過掃描鍵盤上所按下的鍵,然后顯示在1602lcd液晶顯示屏上,鍵盤接在單片機的p3端口,lcd顯示屏接在單片機的p0端口,p0端沒有上拉電
38、阻,所以外接rp1。在這一系統(tǒng)中單片機為核心部件,通過對單片機編寫程序,采用行掃描法對鍵盤進行識別。獲取按鍵后,由單片機控制lcd顯示。1602lcd液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,lcd內(nèi)帶字符發(fā)生器的控制器,可以讓控制器工作在文本方式,根據(jù)在lcd上開始顯示的行列號及每行的列數(shù)找出顯示ram對應(yīng)的地址,設(shè)置光標,在此送上該字符對應(yīng)的ascii碼即可顯示。 圖3.9 系統(tǒng)硬件原理圖4 系統(tǒng)軟件設(shè)計at89c51單片機可以使用匯編語言和c語言進行編程。匯編語言與機器指令一一對應(yīng),所以用匯編語言編寫的程序在單片機里運行起來效率較高,但可移植性差。c
39、語言程序可讀性高,也便于移植到其它系統(tǒng)中,故本次設(shè)計使用c語言編程。4.1 軟件設(shè)計整體思路依據(jù)系統(tǒng)的軟件結(jié)構(gòu),將系統(tǒng)的軟件劃分為鍵盤掃描、液晶顯示、聲音控制等功能模塊,如圖4.1所示。電話撥號系統(tǒng)聲音控制液晶顯示鍵盤掃描圖4.1 系統(tǒng)軟件功能結(jié)構(gòu)圖系統(tǒng)第一次上電后,先進行初始化,初始化lcd模塊,設(shè)置lcd中各個部分的顯示內(nèi)容,然后進行鍵盤掃描,獲取按鍵,以及根據(jù)各按鍵的不同執(zhí)行相應(yīng)的操作,最后等待釋放,釋放之后再進行鍵盤掃描,循環(huán)以上操作。系統(tǒng)總體控制流程如圖4.2所示。開始是否是清屏退格超過11位?結(jié)束顯示數(shù)字#鍵按下?*鍵按下?t0中斷控制按鍵聲音是否有鍵按下?鍵盤掃描初始化模塊lcd
40、初始化設(shè)置lcd第一行顯示否是否是否圖4.2 系統(tǒng)總體控制流程圖4.2 主要功能模塊設(shè)計4.2.1 鍵盤掃描模塊設(shè)計鍵盤上有很多鍵,每一個鍵對應(yīng)一個鍵碼,以便根據(jù)鍵碼轉(zhuǎn)到相應(yīng)的按鍵處理子程序,進一步實現(xiàn)數(shù)據(jù)輸入和命令處理的功能。鍵盤掃描模塊程序流程如圖4.3所示。鍵盤掃描確定按鍵的物理位置計算鍵碼等待釋放否是否有鍵按下是開始結(jié)束消除抖動圖4.3鍵盤掃描模塊程序流程圖按照圖3.1所設(shè)計的系統(tǒng)電路原理圖,at89c51單片機的p3口用作鍵盤i/o口,鍵盤的列線接到p3口的低4位,鍵盤的行線接到p3口的高4位。列線p3.0-p3.3分別接有4個上拉電阻到正電源+5v,并把列線p3.0-p3.3設(shè)置為
41、輸入線,行線p3.4-p3.7設(shè)置為輸出線。4根行線和4根列線形成16個相交點。 (1)檢測當前是否有鍵被按下。檢測的方法是p3.4-p3.7輸出全“0”,讀取p3.0-p3.3的狀態(tài),若p3.0-p3.3全為 “1”,則無鍵閉合,否則有鍵閉合。 (2)去除鍵抖動。當檢測到有鍵按下后,延時一段時間再做下一步的檢測判斷。 (3)若有鍵被按下,應(yīng)識別出是哪一個鍵閉合。方法是對鍵盤的行線進行掃描。p3.4-p3.7按下述4種組合依次輸出: p3.7 1 1 1 0 p3.6 1 1 0 1 p3.5 1 0 1 1 p3.4 0 1 1 1 (4)在每組行輸出時讀取p3.0-p3.3,若全為“1”,
42、則表示為“0”這一行沒有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值。鍵盤掃描程序核心代碼如下:uchar getkey () uchar i, j, k = 0; uchar keyscancode = 0xef, 0xdf, 0xbf, 0x7f; /鍵盤掃描碼 uchar keycodetable =0xee,0xed,0xeb,0xde,0xdd,0xdb, 0xbe,0xbd,0xbb,0x7e,0x7d,0x7b; /鍵盤特征碼 p3 = 0x0f;/掃描鍵盤獲取按鍵序號 if (p3! = 0x0f) for (
43、i = 0; i 4;i+) p3 = keyscancodei; for (j = 0;j 3;j+) k = i * 3 + j; if (p3 = keycodetablek) return k; else return 0xff;4.2.2 lcd顯示模塊設(shè)計1602lcd液晶顯示屏的顯示函數(shù)很簡單,只要嚴格按照其時序圖操作,并結(jié)合其相關(guān)指令集,寫好lcd的初始化程序,清屏程序,寫指令程序,寫數(shù)據(jù)程序,讀數(shù)據(jù)程序等一系列驅(qū)動程序,即可完成lcd的所有顯示需要。在本設(shè)計中,由于需要顯示的內(nèi)容比較多,且有些需要重復(fù)顯示,有些只要顯示一次,故只畫出液晶顯示的基本流程。lcd顯示模塊流程如圖4
44、.4所示。lcd初始化顯示發(fā)出數(shù)據(jù)延時寫lcd命令延時開始結(jié)束圖4.4 lcd顯示子程序流程圖lcd顯示子程序核心代碼如下:/lcd初始化void lcd_init() lcd_wcmd(0x38);delayms(1);/設(shè)定lcd為16*2顯示,5*7點陣,8位數(shù)據(jù)接口 lcd_wcmd(0x0c);delayms(1);/開顯示,不顯示光標 lcd_wcmd(0x06);delayms(1);/顯示光標,自動右移,整屏不要動 lcd_wcmd(0x01);delayms(1);/顯示清屏/寫lcd命令void lcd_wcmd (uchar cmd) while (lcd_busy ()
45、; /判斷l(xiāng)cd是否忙碌 rs=0;rw=0;e=0; _nop_();_nop_(); p0=cmd;delaynopx();e=1; delaynopx();e=0;/寫lcd數(shù)據(jù) void lcd_wdat (uchar str) while (lcd_busy (); /判斷l(xiāng)cd是否忙碌 rs =1;rw =0;e=0; p0=str; delaynopx (); e=1;delaynopx();e=0;/在lcd顯示字符串void display_string(uchar * str,uchar lineno) uchar k; lcd_pos(lineno); for (k =
46、0; k 16; k+) lcd_wdat (strk);總 結(jié)隨著it行業(yè)的不斷發(fā)展,普通的電話已漸漸不能滿足人們?nèi)粘5耐ㄐ判枨螅悄?、更人性化、微小型、多元化的電子產(chǎn)品成為了現(xiàn)代化電子產(chǎn)業(yè)的主要發(fā)展方向。本系統(tǒng)就是基于這樣一個背景下開始設(shè)計的。系統(tǒng)以at89c51芯片作為主控模塊,鍵盤作為輸入電路模塊,1602lcd作為顯示電路模塊,實現(xiàn)功能如下:(1)系統(tǒng)運行時將所按下的數(shù)字顯示在液晶屏上;(2)電話號碼鍵盤上的“*”鍵能夠?qū)崿F(xiàn)退格功能;(3)電話號碼鍵盤上的“#”鍵能夠?qū)崿F(xiàn)清除功能;(4)每按下一個鍵盤能夠發(fā)出聲音。此次設(shè)計不僅鍛煉了我們理論和實踐相結(jié)合的綜合能力,還使得我對專業(yè)有
47、了更深一步的了解,鞏固了我們所學(xué)的專業(yè)基礎(chǔ)知識,提高了我們解決實際工程問題的能力,同時也提高我們查閱文獻資料、設(shè)計手冊、設(shè)計規(guī)范的動手能力,通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗得到了豐富,并且意志力,抗壓能力也都得到了不同程度的提升。這正是我們進行畢業(yè)設(shè)計的目的所在。由于本人能力有限,系統(tǒng)仍然存在著一些問題:(1)本系統(tǒng)只顯示了所按下的鍵,系統(tǒng)可以再集成一些其它模塊,將所按下的鍵通過聲音發(fā)出來。(2)作為家用電話,本系統(tǒng)還不能顯示時間和日期,這有待于在以后的學(xué)習(xí)中進一步探討?!皥F結(jié)、合作、謙虛”這三個詞我的體會也比較深。做任何事包括做實驗都不是孤立
48、的,不是你“閉門造車”,而是一個需要和他人交往的過程。這就是要求我們要團結(jié),要有合作精神,要注意和他人的溝通,要謙虛,不懂就問,所謂“知之為知之,不知為不知”??傊谡麄€實驗操作和論文完成的過程中,我體會到的是實驗艱辛和收獲的充實,感受到的是一種堅持不懈、鍥而不舍的科研精神。對我以后的深造學(xué)習(xí)有重要的意義。致 謝畢業(yè)設(shè)計即將完成之際,我特別想借此機會感謝一下賈老師,因為此次設(shè)計是在老師的悉心關(guān)懷和精心指導(dǎo)下完成的,她嚴肅的科學(xué)態(tài)度,嚴謹?shù)闹螌W(xué)精神,精益求精的工作作風,深深地感染和激勵著我。賈老師在百忙之中抽出時間,從方案的論證、資料的查閱、電路的設(shè)計、論文的撰寫、修改,都進行了一絲不茍的指導(dǎo)和嚴格的要求,她的悉心指導(dǎo)是我設(shè)計能如期完成的重要因素,在此我衷心的感謝賈老師給我提供的大量指導(dǎo)與幫助。 同時我也非常感謝我的同學(xué)和朋友,在我寫論文的過程中給予我關(guān)愛、理解和支持,在設(shè)計過程中,我遇到的問題有很多,在他們的幫助下我才能完成整體程序的編制??梢哉f,本設(shè)計的順利完成,他們對我的幫助是不可忽視的。在此,我要向他們表示由衷的感謝。 最后,感謝學(xué)校三年來對我
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海寧廠房搬遷協(xié)議書范本
- 員工保密價格協(xié)議書范本
- 創(chuàng)新型企業(yè)財務(wù)總監(jiān)股權(quán)激勵聘用合同模板
- 車輛質(zhì)押與物流運輸一體化合同
- 海鮮餐廳品牌合作經(jīng)營授權(quán)合同
- 農(nóng)村集體菜地領(lǐng)種與社區(qū)服務(wù)共享合同
- 和同學(xué)的協(xié)議書范本
- 美食街餐飲加盟合作協(xié)議范本
- 礦山采礦權(quán)抵押股權(quán)融資合同范本
- 貨物運輸合同模板
- 2025年 云南省危險化學(xué)品經(jīng)營單位安全管理人員考試練習(xí)題附答案
- 2024-2025學(xué)年四年級(下)期末數(shù)學(xué)試卷及答案西師大版2
- 2025-2030年中國高導(dǎo)磁芯行業(yè)深度研究分析報告
- 遠程胎心監(jiān)護數(shù)據(jù)解讀
- 2025年 道路運輸企業(yè)主要負責人考試模擬試卷(100題)附答案
- 2025至2030中國執(zhí)法系統(tǒng)行業(yè)經(jīng)營效益及前景運行態(tài)勢分析報告
- 2025年全國法醫(yī)專項技術(shù)考試試題及答案
- 供應(yīng)鏈公司展會策劃方案
- 南通市崇川區(qū)招聘 社區(qū)工作者筆試真題2024
- 2025年寧夏銀川市中考歷史三模試卷(含答案)
- 【藝恩】出游趨勢洞察報告
評論
0/150
提交評論