本科生畢業(yè)論文(設(shè)計(jì))基于 STC89C52 單片機(jī)簡易計(jì)算器的設(shè)計(jì)_第1頁
本科生畢業(yè)論文(設(shè)計(jì))基于 STC89C52 單片機(jī)簡易計(jì)算器的設(shè)計(jì)_第2頁
本科生畢業(yè)論文(設(shè)計(jì))基于 STC89C52 單片機(jī)簡易計(jì)算器的設(shè)計(jì)_第3頁
本科生畢業(yè)論文(設(shè)計(jì))基于 STC89C52 單片機(jī)簡易計(jì)算器的設(shè)計(jì)_第4頁
本科生畢業(yè)論文(設(shè)計(jì))基于 STC89C52 單片機(jī)簡易計(jì)算器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科生畢業(yè)論文(設(shè)計(jì) )基于 STC89C52 單片機(jī)簡易計(jì)算器的設(shè)計(jì)學(xué)院電氣信息工程學(xué)院專業(yè)電氣工程及其自動(dòng)化班級09 級電氣四班學(xué)號0612090533學(xué) 生 姓 名聯(lián) 系 方 式指 導(dǎo)教師羅書克職稱:講師2013 年 5 月摘要近幾年單片機(jī)技術(shù)的發(fā)展很快,其中,電子產(chǎn)品的更新速度迅猛。 計(jì)算器是日常生活中比較常見的電子產(chǎn)品之一。 如何才能使計(jì)算器技術(shù)更加的成熟,充分利用已有的硬件和軟件條件,設(shè)計(jì)出更出色的計(jì)算器。 矚慫潤厲釤瘞睞櫪廡賴賃軔。本設(shè)計(jì)是以 STC89C52 單片機(jī)為核心的計(jì)算器模擬系統(tǒng)設(shè)計(jì),輸入采用 4*4 矩陣鍵盤, 可以進(jìn)行加、 減、乘、除帶符號數(shù)字運(yùn)算 (六位整數(shù)、 兩

2、位小數(shù)),并在液晶顯示屏 LCD1602 上靜態(tài)顯示操作過程及結(jié)果。本設(shè)計(jì)的操作過程是利用SCTT89C51 的來控制 LXD1602顯示器, SCT89C51 有共四個(gè)端口, 作為數(shù)據(jù)的輸入端和輸出端,其中兩個(gè)端口作為輸出端,兩個(gè)端口作為輸出端,兩個(gè)特殊的端口XTAL2 和XTAL1 ,則作為外部振蕩器的輸入端和輸出端。四個(gè)端口的作用是:一個(gè)輸入端接4*4矩陣鍵盤,另一個(gè)數(shù)據(jù)輸入端接顯示屏LCD1602 的三個(gè)特殊端口,而另外兩個(gè)端口作為輸出端口,一個(gè)端口接顯示屏 LCD1602 的數(shù)據(jù)端口,另一個(gè)端口作為振蕩電路的輸入端和輸出端,連接好電路,接通電源,則可在液晶顯示屏 LCD1602顯示加

3、、減、乘、除的運(yùn)算過程及結(jié)果,這是計(jì)算機(jī)的設(shè)計(jì)總過程。聞創(chuàng)溝燴鐺險(xiǎn)愛氌譴凈禍測。關(guān)鍵詞 :單片機(jī) ;C 語言 ;計(jì)算器Simple calculator design based on single chipABSTRACTSingle-chip computer technology developing rapidly in recent years, among them,electronic product update speed is fast. The calculator is one of the electronic products are common in every

4、day life. How can you make the calculator technology more mature, make full use of existing hardware and software conditions, design a better calculator. 殘騖樓諍錈瀨濟(jì)溆塹籟婭騍。This design is based on STC89C52 single-chip microcomputer as the core of calculator simulation system design, input use 4 * 4 matrix

5、 keyboard, could add, subtract, multiply and divide signed number-crunching six (integer, two decimal places), and static on the LCD display LCD1602 display operation process and results. This design process is controlled by using SCTT89C51 LXD1602 display, SCT89C51 has a total of four ports, as the

6、 data input terminal and output terminal, two of the port as the output side, the two ports as the output side, and two special port XTAL1 and XTAL2, as external oscillator input end and output end. Four port is: a 4* 4 matrix keyboard input, another data input termination display LCD1602 three spec

7、ific ports, and the other two ports as output port, a port display LCD1602 data port, another port as oscillation circuit input end and output end, good connection electric circuit, switch on the power, can be in the LCD display LCD1602 displayof add, subtract, multiply and divide operation process

8、and result, this is the computers design process.釅錒極額閉鎮(zhèn)檜豬訣錐顧葒。Key words:Single chip microcomputer; The C language;Calculating machine 彈貿(mào)攝爾霽斃攬磚鹵廡詒爾。目錄序言 1 謀蕎摶篋飆鐸懟類蔣薔點(diǎn)鉍。1. 方案論證 1 廈礴懇蹣駢時(shí)盡繼價(jià)騷巹癩。1.1 芯片 1 煢楨廣鰳鯡選塊網(wǎng)羈淚鍍齊。1 / 221.1.1 方案一 1 鵝婭盡損鵪慘歷蘢鴛賴縈詰。1.1.2 方案優(yōu)點(diǎn)1 籟叢媽羥為贍僨蟶練淨(jìng)櫧撻。1.2 輸入模塊1 預(yù)頌圣鉉儐歲齦訝驊糴買闥。1.2.1 方案一

9、 1 滲釤嗆儼勻諤鱉調(diào)硯錦鋇絨。1.2.2 方案的優(yōu)點(diǎn)2 鐃誅臥瀉噦圣騁貺頂廡縫勵(lì)。1.3 顯示模塊2 擁締鳳襪備訊顎輪爛薔報(bào)贏。1.3.1 方案一 2 贓熱俁閫歲匱閶鄴鎵騷鯛漢。1.3.2 方案的應(yīng)用2 壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚躋馱。2. 計(jì)算器硬件設(shè)計(jì) 2 蠟變黲癟報(bào)倀鉉錨鈰贅籜葦。2.1系統(tǒng)組成及硬件框圖 2 買鯛鴯譖曇膚遙閆擷凄屆嬌。2.2元器件簡介 2 綾鏑鯛駕櫬鶘蹤韋轔糴飆鈧。2.2.1 STC89C52 特點(diǎn) 2 驅(qū)躓髏彥浹綏譎飴憂錦諑瓊。2.2.2 LCD1602 液晶顯示屏6 貓蠆驢繪燈鮒誅髏貺廡獻(xiàn)鵬。3. 計(jì)算器設(shè)計(jì)原理分析 8 鍬籟饗逕瑣筆襖鷗婭薔嗚訝。3.1設(shè)計(jì)方案一 8

10、構(gòu)氽頑黌碩飩薺齦話騖門戲。3.2計(jì)算器硬件方案及硬件資源分配8 輒嶧陽檉籪癤網(wǎng)儂號澩蠐鑭。3.2.1 硬件資源分配8 堯側(cè)閆繭絳闕絢勵(lì)蜆贅瀝紕。3.2.2 系統(tǒng)的硬件設(shè)計(jì)8 識饒鎂錕縊灩筧嚌儼淒儂減。3.2.3 鍵盤電路的設(shè)計(jì)9 凍鈹鋨勞臘鍇癇婦脛糴鈹賄。3.2.4 顯示電路的結(jié)構(gòu)9 恥諤銪滅縈歡煬鞏鶩錦聰櫻。4. 計(jì)算器軟件設(shè)計(jì) 9 鯊腎鑰詘褳鉀溈懼統(tǒng)庫搖飭。4.1計(jì)算器的軟件規(guī)劃10 碩癘鄴頏謅攆檸攜驤蘞鷥膠。4.2主模塊的程序設(shè)計(jì)10 閿擻輳嬪諫遷擇楨秘騖輛塤。4.3顯示模塊的程序設(shè)計(jì)10 氬嚕躑竄貿(mào)懇彈瀘頷澩紛釓。4.4鍵盤模塊的程序設(shè)計(jì)12 釷鵒資贏車贖孫滅獅贅慶獷。結(jié)論 14 慫闡

11、譜鯪逕導(dǎo)嘯畫長涼馴鴇。參考文獻(xiàn)14 諺辭調(diào)擔(dān)鈧諂動(dòng)禪瀉類謹(jǐn)覡。附錄一電路原理圖14 嘰覲詿縲鐋囁偽純鉿錈癱懇。附錄二軟件程序錯(cuò)誤!未定義書簽。熒紿譏鉦鏌觶鷹緇機(jī)庫圓鍰。致謝 19 鶼漬螻偉閱劍鯫腎邏蘞闋簣。2 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用基于單片機(jī)的簡易計(jì)算器的設(shè)計(jì)序言隨著社會(huì)的發(fā)展, 科學(xué)的進(jìn)步, 人們的生活水平在逐步地提高, 尤其是微電子技術(shù)的發(fā)展猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就不足驚奇了。計(jì)算器在人們的日常中是比較常見的電子產(chǎn)品之一,如何使計(jì)算器技術(shù)更加的成熟,充分利用已有的軟件和硬件條件,設(shè)計(jì)出更出色的計(jì)算器,使其更好地為各個(gè)行業(yè)服務(wù),成了如今電子領(lǐng)域重要的研究課

12、題。紂憂蔣氳頑薟驅(qū)藥憫騖覲僨?,F(xiàn)如今,人們的日常生活中已經(jīng)離不開計(jì)算器了,社會(huì)的各個(gè)角落都有它的身影,比如商店、辦公室、學(xué)校等,因此設(shè)計(jì)一款簡單實(shí)用的計(jì)算器會(huì)有很大的實(shí)際意義。穎芻莖蛺餑億頓裊賠瀧漲負(fù)。本設(shè)計(jì)旨在進(jìn)一步掌握單片機(jī)理論知識,理解嵌入式單片機(jī)系統(tǒng)的硬軟件設(shè)計(jì),加強(qiáng)對實(shí)際應(yīng)用系統(tǒng)設(shè)計(jì)的能力。 通過本設(shè)計(jì)的學(xué)習(xí),使我掌握單片機(jī)程序設(shè)計(jì)和微機(jī)接口應(yīng)用的基本方法,并能綜合運(yùn)用本科階段所學(xué)軟、 硬件知識分析實(shí)際問題,提高解決畢業(yè)設(shè)計(jì)實(shí)際問題的能力,為單片機(jī)應(yīng)用和開發(fā)打下良好的基礎(chǔ)。濫驂膽閉驟羥闈詔寢賻減棲。1對字符液晶顯示模塊的工作原理,如初始化、清屏、顯示、調(diào)用及外特性有較清楚的認(rèn)識,并會(huì)

13、使用 LCD (液晶顯示模塊)實(shí)現(xiàn)計(jì)算結(jié)果的顯示;掌握液晶顯示模塊的驅(qū)動(dòng)和編程,設(shè)計(jì)LCD 和單片機(jī)的接口電路,以及利用單片機(jī)對液晶顯示模塊的驅(qū)動(dòng)和操作;銚銻縵嚌鰻鴻鋟謎諏涼鏗穎。2在充分分析內(nèi)部邏輯的概念,進(jìn)行軟件和調(diào)試,學(xué)會(huì)使用,并能夠以其為平臺(tái)設(shè)計(jì)出具有四則運(yùn)算能力簡易計(jì)算器的硬件電路和軟件程序。擠貼綬電麥結(jié)鈺贖嘵類羋罷。1.方案論證1.1芯片1.1.1 方案一本設(shè)計(jì)中的芯片采用STC89C52 ,配備相應(yīng)的外設(shè)。單片機(jī)是單片微型機(jī)的簡稱,故又稱為微控制器MCU ( Micro Control Unit )。通常由單塊集成電路芯片組成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器 CPU,

14、存儲(chǔ)器和 I/O 接口電路等。 因此, 單片機(jī)只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)廣泛應(yīng)用于智能產(chǎn)品,智能儀表, 測控技術(shù), 智能接口等, 具有操作簡單、實(shí)用方便、價(jià)格便宜等優(yōu)點(diǎn),而其中STC89C52是一種帶8K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器( FPEROM-Flash Programable and Erasable Read Only Memory)的低電壓,高性能 COMOS8 的微處理器。該器件與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容;且是單片機(jī)中最典型的代表,應(yīng)用于各種控制領(lǐng)域。 賠荊紳諮侖驟遼輩襪錈極嚕。1.1.2 方案優(yōu)點(diǎn)采用芯片STC

15、89C52 ,能使方案實(shí)用性和方便性更強(qiáng),成本更低,STC89C52 單片機(jī)作為中央處理單元進(jìn)行計(jì)算器這樣設(shè)計(jì),它能夠?qū)崿F(xiàn)對六位整數(shù)、兩位小數(shù)的加、減、乘、除的四則運(yùn)算。塤礙籟饈決穩(wěn)賽釙冊庫麩適。1.2 輸入模塊1.2.1 方案一采用矩陣式鍵盤作為輸入模塊,矩陣式按鍵輸入模塊,其特點(diǎn)是:電路和軟件稍復(fù)雜,但相比之下,當(dāng)鍵數(shù)越多時(shí),越節(jié)約I/O 口,比較節(jié)省資源。其原理圖如圖1-1 所示。 裊樣祕廬廂顫諺鍘羋藺遞燦。1 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用圖 1-1 矩陣鍵盤輸入1.2.2 方案的優(yōu)點(diǎn)本設(shè)計(jì)中的輸入模塊使用的是矩陣鍵盤輸入。鍵盤輸入預(yù)置用于計(jì)算,按鍵較多。 采用矩陣式按鍵,可以

16、方便地輸入一個(gè)數(shù)值,使操作界面更具有更方便、簡潔和人性化,且節(jié)約了寶貴的I/O 口資源,故采用方案二作為系統(tǒng)輸入模塊。倉嫗盤紲囑瓏詁鍬齊驁絛鯛。1.3 顯示模塊1.3.1 方案一采用 LCD1602 液晶顯示,其特點(diǎn)是:可以調(diào)節(jié)其背光亮度,這種顯示方式接口,編程雖然有些麻煩,但管理較方便,占用的I/O 口資源線也不多。綻萬璉轆娛閬蟶鬮綰瀧恒蟬。1.3.2 方案的應(yīng)用本設(shè)計(jì)中的顯示模塊使用的是LCD1602 液晶顯示。在計(jì)算器運(yùn)算中,需顯示的數(shù)字、符號較多,按很據(jù)個(gè)方面的特點(diǎn),而后可以發(fā)現(xiàn)LCD 液晶顯示, 雖然在價(jià)格上的確是稍貴于LED 數(shù)碼管; 但數(shù)碼管在硬件設(shè)計(jì)電路中,會(huì)因線太多、線路復(fù)雜

17、而過于繁瑣,則舍棄LED 數(shù)碼管,故選擇LCD1062 。 驍顧燁鶚巰瀆蕪領(lǐng)鱺賻驃弒。2. 計(jì)算器硬件設(shè)計(jì)2.1 系統(tǒng)組成及硬件框圖顯示模塊單片鍵盤輸入模塊振蕩電路機(jī)復(fù)位電路圖 2-1 系統(tǒng)組成及硬件框圖2.2 元器件簡介2.2.1STC89C52 特點(diǎn)2 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用圖 2-2 單片機(jī) STC89C52主要性能:與 MCS-51 單片機(jī)產(chǎn)品兼容;8K 字節(jié)在系統(tǒng)可編程Flash 存儲(chǔ)1000 次擦寫周期;全靜態(tài)操作:0Hz-33Hz ;三級加密程序存儲(chǔ)器;32 個(gè)可編程 I/O 口線、三個(gè) 16 位定時(shí)器 /計(jì)數(shù)器、 8個(gè)中斷源;全雙工 UART 串行通信;低功耗空

18、閑和掉電模式,掉電后中斷可喚醒;雙數(shù)據(jù)指針;掉電標(biāo)識符。2、 STC89C52 的功能特性概述STC89C52 是一種低功耗、高性能CMOS 8 位微控制器,具有8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。片上 Flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位 CPU和在線系統(tǒng)可編程Flash,使得STC89C52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。瑣釙濺曖惲錕縞馭篩涼貿(mào)錒。STC89C52 具有以下標(biāo)準(zhǔn)功能:8K 字節(jié) Flash,256 字節(jié) RAM ,32 位

19、 I/O 口線,看門口定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器 /計(jì)數(shù)器,一個(gè) 6 向量 2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外, STC89C52 可降至 0Hz 靜態(tài)邏輯操作,支持2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許 RAM 、定時(shí)器 /計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8位微控制器, 8K字節(jié)在系統(tǒng)可編程 Flash。同時(shí),該芯片還具有PDIP 、TQFP 和 PLCC 等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。鎦詩涇艷損樓紲鯗餳類礙穡。3、 STC89C

20、52 的引腳功能單片機(jī) STC89C52 為 40 引腳芯片,見圖2-3 所示。3 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用1P1.0Vcc40239P1.1P0.0338P1.2P0.14P1.3P0.237536P1.4P0.3635P1.5P0.4734P1.6P0.5833P1.7P0.6932RSTP0.71031RXD/P3.0EA/Vvv1130XTD/P3.1ALE1229INT0/3.2PSEN1328INT1/3.3P2.71427T0/3.4P2.61526T1/3.5P2.51625P3.6P2.41724P3.7P2.31823XTAL2P2.21922XTAL1P2.

21、12021GNDP2.0圖 2-3 STC89C52 引腳圖( 1)口線: P0、 P1、P2、 P3 共四個(gè)八位口。P0 口: P0 口是一個(gè) 8 位漏極開路的雙向I/O 口。作為輸出口,每位能驅(qū)動(dòng)8 個(gè) TTL 邏輯電平。對 P0端口寫 “1時(shí)”,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0 口也被作為低 8 位地址 /數(shù)據(jù)復(fù)用。在這種模式下, P0 不具有內(nèi)部上拉電阻。在Flash 編程時(shí), P0 口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。櫛緶歐鋤棗鈕種鵑瑤錟奧傴。P1 口: P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向 I/O 口, P1

22、 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。對 P1 端口寫 “1時(shí)”,內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用;作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流 ( IIL )。在 Flash 編程和校驗(yàn)時(shí), P1 口接收低 8 位地址字節(jié)。此外, P1.0 和 P1.1 分別作定時(shí)器 /計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2 )和定時(shí)器 /計(jì)數(shù)器 2 的觸發(fā)輸入( P1.1/T2EX )。 轡燁棟剛殮攬瑤麗鬮應(yīng)頁諳。P2 口: P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向 I/O 口, P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對 P2 端口寫 “1時(shí)”,內(nèi)部上

23、拉電阻把端口拉高,此時(shí)可以作為輸入口使用;作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL )。 峴揚(yáng)斕滾澗輻灄興渙藺詐機(jī)。在訪問外部程序存儲(chǔ)器或用16 位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVXDPTR )時(shí), P2 口送出高八位地址。 在這種應(yīng)用中, P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8 位地址(例如 MOVXRI )訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口輸出 P2 鎖存器的內(nèi)容。在Flash 編程和校驗(yàn)時(shí), P2 口也接收高八位地址字節(jié)和一些控制信號。詩叁撻訥燼憂毀厲鋨驁靈韜。表 2-1 STC89C52 的 P3 口第二功能端口引腳第二功能P3.0RXD (串行輸

24、入口)P3.1TXD (串行輸出口)P3.2INT0 (外部中斷0)P3.3INT1 (外部中斷1)P3.4T0(定時(shí) / 計(jì)數(shù)器 0)4 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用P3.5T1(定時(shí) / 計(jì)數(shù)器 1)P3.6WR (外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3 口: P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向 I/O 口, P3 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對 P3 端口寫 “1時(shí)”,內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用;作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL )。 P3 口亦作為 STC89C52 特殊功

25、能(第二功能)使用,如表2-1 所示。在Flash 編程和校驗(yàn)時(shí),P3 口也接收一些控制信號。則鯤愜韋瘓賈暉園棟瀧華縉。( 2)其他引腳說明:看 RST:復(fù)位輸入。晶振工作時(shí),RST 腳持續(xù) 2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。門狗計(jì)時(shí)完成后,RST 腳輸出 96 個(gè)晶振周期的高電平。特殊寄存器AUXR (地址 8EH)上的 DISRT0 位可以使此功能無效。 DISRT0 默認(rèn)狀態(tài)下,復(fù)位高電平有效。脹鏝彈奧秘孫戶孿釔賻鏘詠。ALE/PROG :當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE (地址鎖存允許)輸出脈沖用于所存地址的低八位字節(jié)。 一般情況下, ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出

26、固定的脈沖信號, 因此它對外輸出時(shí)鐘或用于定時(shí)目的。 要注意的是: 每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE 脈沖。 鰓躋峽禱紉誦幫廢掃減萵輳。對 Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG )。如有必要,可通過對特殊功能寄存器( SFR)區(qū)中的 8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只要一條MOVX 和 MOVC指令才能將 ALE 激活。此外,該引腳會(huì)被拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無效。 稟虛嬪賑維嚌妝擴(kuò)踴糶欏灣。PSEN:程序存儲(chǔ)允許( PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號,當(dāng)STC89C52 由外部程序存儲(chǔ)器取指令(或數(shù)

27、據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖;在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次 PSEN 信號。 陽簍埡鮭罷規(guī)嗚舊巋錟麗鮑。EA/VPP :外部訪問允許,欲使CPU 僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH ), EA 端必須保持低電平(接地) 。需注意是:如果加密LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA 端狀態(tài)。 溈氣嘮戇萇鑿鑿櫧諤應(yīng)釵藹。如 EA 端為高電平(接Vcc 端),CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。XTAL1 :反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2 :來自反向振蕩器的輸出。圖 2-4 晶振外接結(jié)構(gòu)引腳圖5 / 22個(gè)人資料整理,僅供個(gè)

28、人學(xué)習(xí)使用XTAL1 是片內(nèi)振蕩器的反相放大器輸入端,XTAL2 則是輸出端,使用外部振蕩器時(shí),外部振蕩信號應(yīng)直接加到 XTAL1 ,而 XTAL2 懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對振蕩脈沖二分頻,如晶振為1MHz ,時(shí)鐘頻率就為 6MHz 。晶振的頻率可以在 1MHz24MHz 內(nèi)選擇,在本設(shè)計(jì)電路中選用了12MHz 。電容取20PF 左右。機(jī)器周期 =12* 時(shí)間周期,如12MHz 的機(jī)器周期為 1 微秒。 鋇嵐縣緱虜榮產(chǎn)濤團(tuán)藺締崳。( 1)控制或復(fù)位引腳RESET 此腳為高電平時(shí)(約2 個(gè)機(jī)器周期)可將單片機(jī)復(fù)位。RST/VPD :當(dāng)出現(xiàn)兩個(gè)機(jī)器周期高電平時(shí), 單片機(jī)復(fù)位。 復(fù)位后, P0

29、P3 輸出高電平; SP 寄存器為 07H;其它寄存器全部清零;不影響 RAM 狀態(tài),如圖 2-5 所示。 懨俠劑鈍觸樂鷴燼觶騮揚(yáng)銥。圖 2-5 復(fù)位電路4、單片機(jī)的現(xiàn)狀及發(fā)展方向單片機(jī)是為了工業(yè)控制需要滿足而誕生的,是自動(dòng)控制系統(tǒng)的核心部件,因而也主要用于工業(yè)控制、智能化儀器儀表、家用電器中。它具有體積小、功能多、價(jià)格低、使用方便、系統(tǒng)設(shè)計(jì)靈活等優(yōu)點(diǎn)。應(yīng)用領(lǐng)域不斷擴(kuò)大,除了工業(yè)控制、智能化儀表、通訊、家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機(jī)芯片作為核心控制部件。由于單片機(jī)主要面向工業(yè)控制,工作環(huán)境比較惡劣,入高溫,強(qiáng)電磁干擾,甚至含有腐蝕性氣體;在太空中工作的單片機(jī)控制系統(tǒng),還

30、必須具有抗輻射能力,這決定了單片機(jī) CPU 于通用微機(jī) CPU 具有不同的技術(shù)特征和發(fā)展方向:可靠性高;控制功能往往很強(qiáng); 指令系統(tǒng)比通用微處理器慢得多; X 系列芯片取代;抗干擾性強(qiáng),工作溫度范圍寬。謾飽兗爭詣繚鮐癩別瀘鯽礎(chǔ)。2.2.2LCD1602 液晶顯示屏液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示, 這樣即可以顯示出圖形。液晶顯示器有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式計(jì)算機(jī)、數(shù)字?jǐn)z像機(jī)、PDA 移動(dòng)通信工具等眾多領(lǐng)域。咼鉉們歟謙鴣餃競蕩賺趲為。LCD1602 的應(yīng)用簡介LCD1602

31、 液晶顯示器采用HD44780 及其兼容芯片作為點(diǎn)陣式LCD 的控制器驅(qū)動(dòng)器,還采用HD44100進(jìn)行 LCD 的時(shí)分割驅(qū)動(dòng)。HD44780 的內(nèi)部結(jié)構(gòu)主要包括顯示數(shù)據(jù)RAM ( DDRAM )、字符發(fā)生器 ROM( CGROM )、字符發(fā)生器RAM ( CGRAM )、指令寄存器IR、數(shù)據(jù)寄存器DR 、地址計(jì)數(shù)器AC( AddressCounter )和忙標(biāo)志BF (Busy Flag )等邏輯電路。瑩諧齷蘄賞組靄縐嚴(yán)減籩諏。1602 液晶模塊內(nèi)部的控制器共有11 條控制指令,豐富的指令可以完成液晶的時(shí)序控制、工作方式設(shè)置和數(shù)據(jù)顯示等。麩肅鵬鏇轎騍鐐縛縟糶爾攤。6 / 22個(gè)人資料整理,僅供

32、個(gè)人學(xué)習(xí)使用采用的 LCD1602 液晶模塊是標(biāo)準(zhǔn)16 針插座,接口電路如圖2-6 所示,及各引腳說明如表2-6 所示。0.1uFC616021IP2+5DVSS2VDD3VLP20 4RSP21 5R/WP22 6EP10 7D0P12 8D1P13 9D2P1410D3P1511D4+5DP1612D5P1713D614D7R2=20015BLA16BLK圖 2-6 LCD1602 的引腳接口電路圖表 2-2 LCD1602 的引腳說明第 1 腳Vss 為地電源第 2 腳VDD 接 5V 正電源第 3 腳Vo 為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高,對比度過高

33、時(shí)會(huì)產(chǎn)生“鬼影 ”,使用時(shí)可以通過一個(gè)10K 的電位器調(diào)整對比度。第 4 腳Rs 為寄存器選擇,高電平選擇數(shù)據(jù)寄存器、低電平選擇指令寄存器。第 5 腳Rw 為讀寫信號線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)選擇指令寄存器。第 6 腳E 端為使能端,當(dāng)E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第 7-14 腳D0-D7 為 8 位雙向數(shù)據(jù)線。第 15-16 腳背光陽極和背光陰極。其他方面簡介DDRAM用來暫存顯示字符的代碼,共 80 個(gè)字節(jié), DDRAM 的各個(gè)單元對應(yīng)著顯示屏上的各個(gè)字符位,如圖2-2-6 所示。因此, DDRAM的地址也就意味著顯示字符的地址,顯示字符時(shí)首先要向LCD 送顯示字

34、符地址。 納疇鰻吶鄖禎銣膩鰲錟顫階。LCD00010203040516 字 *2行090A0B0C0DOEOF1027060708404142434445464748494A4B4C4D4E4F5067圖 2-2-6DDRAM單元地址與顯示屏字符位的對應(yīng)關(guān)系4、 LCD1602 的主要技術(shù)參數(shù):( 1)顯示容量為16*2 個(gè)字符;7 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用( 2)芯片工作電壓為 4.5V-5.5V ;( 3)工作電流為 2.0mA ( 5.0V );( 4)模塊最佳工作電壓為 5.0V ;( 5)字符尺寸為 2.95*4.35 ( W*H ) mm。5、 LCD 的特點(diǎn):( 1

35、)低壓微功耗;( 2)平板型結(jié)構(gòu);( 3)被動(dòng)顯示型(無眩光,不刺激人眼,不會(huì)引起眼睛疲勞);( 4)顯示信息量大(因?yàn)橄袼乜梢宰龅煤苄。?;?5)易于彩色化(在色譜上可以非常準(zhǔn)確的復(fù)現(xiàn));( 6)無電磁輻射(對人體安全,利于信息保密);( 7)長壽命(這種器件幾乎沒有什么劣化問題,因此壽命極長,但是液晶背光壽命有限,不過背光部分可以更換) 。風(fēng)攆鮪貓鐵頻鈣薊糾廟誑繃。3.計(jì)算器設(shè)計(jì)原理分析3.1設(shè)計(jì)方案一本設(shè)計(jì)需要使用 LCD 液晶顯示屏和編碼鍵盤。故選擇靜態(tài)顯示和用4*4 的按鍵鍵盤,使用LCD1602液晶顯示屏來顯示運(yùn)算過程和運(yùn)算結(jié)果。滅噯駭諗鋅獵輛覯餿藹猙廚。主程序進(jìn)行初始化, 其他的

36、程序選擇模塊式的方式。首先對每個(gè)模塊進(jìn)行調(diào)試,當(dāng)模塊調(diào)試成功后,逐一地加入主程序中,最后完成整個(gè)軟件部分的設(shè)計(jì)。鐒鸝餉飾鐔閌貲諢癱騮吶轉(zhuǎn)。3.2計(jì)算器硬件方案及硬件資源分配3.2.1 硬件資源分配主要用到的硬件:單片機(jī)STC89C52 、液晶顯示屏LCD1602 、 4*4按鍵鍵盤硬件分配:P3 口:作為輸入口,與鍵盤連接,實(shí)現(xiàn)數(shù)據(jù)的輸入;P0、 P2 口:作為輸出口(P2 口為高位, P0 口為低位),控制 LCD 液晶顯示屏顯示數(shù)據(jù)的結(jié)果;液晶顯示屏 LCD1602 顯示輸出。3.2.2 系統(tǒng)的硬件設(shè)計(jì)為了更好地實(shí)現(xiàn)系統(tǒng)的功能,硬件電路的設(shè)計(jì)應(yīng)該遵循以下原則:1、優(yōu)化硬件電路采用軟件設(shè)計(jì)與

37、硬件設(shè)計(jì)相結(jié)合的方法。盡管采用軟件來實(shí)現(xiàn)硬件系統(tǒng)的功能時(shí),也許響應(yīng)的時(shí)間會(huì)比單純使用硬件時(shí)長,而且還要占用微處理器(MCU )的時(shí)間;但是,用軟件實(shí)現(xiàn)硬件的功能可以簡化硬件結(jié)構(gòu),提高電路的可靠性。所以,在設(shè)計(jì)本系統(tǒng)的時(shí)候,在滿足可靠性和實(shí)時(shí)性的前提下,盡可能地通過軟件來實(shí)現(xiàn)硬件功能。攙閿頻嶸陣澇諗譴隴瀘鐙澮。2、可靠性及抗干擾設(shè)計(jì)根據(jù)可靠性設(shè)計(jì)理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無故障時(shí)間越長。而且,所用芯片數(shù)量越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計(jì)思想是在滿足功能的情況下爭取較少數(shù)量的芯片。趕輾雛紈顆鋝討躍滿賺蜆騍。功能擴(kuò)展是否靈活是衡量一個(gè)系統(tǒng)優(yōu)劣的重要指

38、標(biāo)。一次設(shè)計(jì)往往不能完全考慮到系統(tǒng)的各個(gè)方面,系統(tǒng)需要不斷完善以及進(jìn)行功能升級。進(jìn)行功能擴(kuò)展時(shí),應(yīng)該在原有設(shè)計(jì)的基礎(chǔ)上,通過修改軟件程序和少量硬件完成。 對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴(kuò)展。夾覡閭輇駁檔驀遷錟減汆藥。根據(jù)提出的系統(tǒng)設(shè)計(jì)方案,結(jié)合以上三條原則,確定了系統(tǒng)硬件的設(shè)計(jì)。計(jì)算器主要由以下一些功能模塊組成:非編碼鍵盤模塊、運(yùn)算模塊(單片機(jī)內(nèi)部) 、 LCD 液晶顯示模塊等。該系統(tǒng)的硬件設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法。 STC89C52 單片機(jī)與 LCD 液晶顯示屏顯示電路是整個(gè)電路的核心,它們能實(shí)現(xiàn)系統(tǒng)的功能要求。視絀鏝鴯鱭鐘腦鈞欖糲僉

39、爾。簡易計(jì)算器主要包括:鍵盤電路、運(yùn)算電路、輸出顯示電路。前面說明了該系統(tǒng)的設(shè)計(jì),系統(tǒng)采用了比較簡單的設(shè)計(jì)方案,所以該系統(tǒng)的硬件設(shè)計(jì)的總外圍電路不會(huì)8 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用產(chǎn)生過多的干擾。下面對系統(tǒng)的外圍電路分別作了說明。鍵盤部分采用4*4 按鍵鍵盤,顯示部分采用LCD 液晶顯示屏完全能夠很好地實(shí)現(xiàn)顯示方面的要求。偽澀錕攢鴛擋緬鐒鈞錠鈴鉍。3.2.3 鍵盤電路的設(shè)計(jì)鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20 個(gè)以上)和專用驅(qū)動(dòng)芯片的組合;當(dāng)按下某個(gè)按鍵時(shí),它能夠處理按鍵抖動(dòng)、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。緦徑銚膾齲轎級鏜撟廟耬癬。123

40、+P30456-P31789*P32.0=/P33圖 3-1 鍵盤電路通用計(jì)算機(jī)使用的鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279 或串行接口HD7279可以組成編碼鍵盤,同時(shí)還可以兼顧數(shù)碼管的顯示驅(qū)動(dòng),其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時(shí),采用編碼鍵盤可以簡化軟件設(shè)計(jì)。非編碼鍵盤成本低廉。從成本角度出發(fā),本設(shè)計(jì)選用的是非編碼鍵盤。如圖3-1 所示。 騅憑鈳銘僥張礫陣軫藹攬齊。均3.2.4 顯示電路的結(jié)構(gòu)當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時(shí),采用 LCD 液晶顯示屏進(jìn)行顯示是一種經(jīng)濟(jì)實(shí)用的方法。示的數(shù)據(jù)端口,P2.0-P2.2 口作為其控制端口,控

41、制LCD 液晶顯示屏顯示輸出數(shù)據(jù)。P0 口作為液晶顯癘騏鏨農(nóng)剎貯獄顥幗騮鴣詼。最終顯示電路如圖3-2 所示。圖 3-2 LCD 液晶顯示屏顯示4. 計(jì)算器軟件設(shè)計(jì)9 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用4.1 計(jì)算器的軟件規(guī)劃簡易計(jì)算器的程序主要包括以下功能模塊:讀鍵程序、判鍵程序段、運(yùn)算操作子程序等部分;基于 LCD 液晶顯示屏的顯示模塊;主模塊,為系統(tǒng)的初始化4.2 主模塊的程序設(shè)計(jì)主程序主要用來對LCD 液晶顯示屏進(jìn)行初始化的。在考慮主程序編寫之前,先應(yīng)對計(jì)算器的運(yùn)作流程有一個(gè)大致的了解,之后依次為依據(jù)畫出大致的流程圖如圖 4-1 所示,以便于編寫其主模塊的程序,這樣看來,會(huì)比較清晰、

42、更加方便。 鏃鋝過潤啟婭澗駱讕瀘載撻。開始初始化參數(shù)初始化LED顯示圖 4-1 主程序框圖本來在考慮主模塊流程時(shí),曾考慮到在初始化 LCD 顯示后應(yīng)該進(jìn)入中斷服務(wù)的,當(dāng)然也這么畫上去了;可經(jīng)過老師的提點(diǎn),之后又反復(fù)推敲了好幾遍,再將流程好好地走了幾遍,發(fā)現(xiàn)的確存在著問題。榿貳軻謄壟該檻鯔塏賽緯闥。數(shù)值運(yùn)算LED顯示行四則運(yùn)算,其過程與結(jié)果并在液晶顯示屏上顯示出來。通過這個(gè)詳細(xì)的主模塊程序框圖,即能夠很快地編寫出其程序:void main()uchar i,j;init();write_cmd(0x80);/ 將液晶指針定位在第一行第一個(gè)單元key=15;i=flag1=0;while(1) w

43、rite_cmd(0x80+0x40);/ 將液晶指針定位在第二行第一個(gè)單元jscl();在主程序中的確不用中斷服務(wù),它其實(shí)也屬于一個(gè)子程序,是與鍵盤程序有關(guān),之后會(huì)加以說明。既然是計(jì)算器,只要反復(fù)地進(jìn)flag1=0;在以上的程序中“write_cmd(0x80); ,”被賦值為 “0x80,”則是根據(jù)圖2-2-6 DDRAM單元地址與顯示屏字符位的對應(yīng)關(guān)系中便能找到,第一行第一個(gè)單元的值為80H,則第二行第一個(gè)單元的值就為80H+40H ,即得出 “write_cmd(0x80+0x40); ?!边~蔦賺陘賓唄擷鷦訟湊幟結(jié)。4.3 顯示模塊的程序設(shè)計(jì)10 / 22個(gè)人資料整理,僅供個(gè)人學(xué)習(xí)使用

44、開始延時(shí)程序LED 是否忙?鍵盤掃描加減乘除運(yùn)算程序LED 液晶顯示結(jié)束圖 4-2 顯示程序框圖顯示模塊程序首先要對顯示模塊進(jìn)行初始化;然后控制光標(biāo)的位置;定義液晶顯示的控制端口,用 SBIT指令完成;然后設(shè)置清屏、關(guān)閉顯示、歸位、開顯示、顯示位置的首地址等等。嶁硤貪塒廩袞憫倉華糲饃勵(lì)。顯示模塊的流程圖如圖4-2 所示。根據(jù)以上的顯示程序的流程框圖,便能編寫出其顯示子程序:void jscl()/計(jì)算并顯示函數(shù) uchar i,j,n;for(j=0;jk1+1;j+) for(i=0;ik1-j;i+)/ 存放第一操作數(shù)for(j=k1+1;j0;i-)/ 在液晶上顯示結(jié)果 write_data(tablebi-1);通過其顯示子程序,發(fā)現(xiàn)要顯示其最終結(jié)果,就必須先存放第一操作數(shù)、第二操作數(shù),之后來判定使用四則運(yùn)算中的哪一種運(yùn)算,其后進(jìn)行運(yùn)算處理,最后便能在LCD 液晶顯示屏上顯示其最終結(jié)果。該櫟諼碼戇沖巋鳧薩錠謨贛。4.4 鍵盤模塊的程序設(shè)計(jì)鍵盤掃描子程序,首先讀出P3 口的低四位,然后讀出P3 口的高四位。然后鍵值并顯示緩存。而后,將鍵盤上的值轉(zhuǎn)換為ASCII 碼,最后就可以用軟件來設(shè)置硬件按鍵各個(gè)鍵所代表的內(nèi)容。劇妝諢貰攖蘋塒呂侖廟痙湯。讀鍵程序使用的是反轉(zhuǎn)法讀鍵, 不管鍵盤矩陣的規(guī)模大小, 均進(jìn)行兩

溫馨提示

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

最新文檔

評論

0/150

提交評論