基于STC89C52RC單片機的簡易計算器設(shè)計《-電子設(shè)計大賽》_第1頁
基于STC89C52RC單片機的簡易計算器設(shè)計《-電子設(shè)計大賽》_第2頁
基于STC89C52RC單片機的簡易計算器設(shè)計《-電子設(shè)計大賽》_第3頁
基于STC89C52RC單片機的簡易計算器設(shè)計《-電子設(shè)計大賽》_第4頁
基于STC89C52RC單片機的簡易計算器設(shè)計《-電子設(shè)計大賽》_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)院專業(yè)班級學(xué)號學(xué)生姓名聯(lián)系方式指導(dǎo)教師職稱2023年5月基于單片機的簡易計算器的設(shè)計摘要近幾年單片機技術(shù)的開展很快,其中,電子產(chǎn)品的更新速度迅猛。計算器是日常生活中比擬常見的電子產(chǎn)品之一。如何才能使計算器技術(shù)更加的成熟,充分利用已有的硬件和軟件條件,設(shè)計出更出色的計算器。本設(shè)計是以STC89C52單片機為核心的計算器模擬系統(tǒng)設(shè)計,輸入采用4*4矩陣鍵盤,可以進行加、減、乘、除帶符號數(shù)字運算〔六位整數(shù)、兩位小數(shù)〕,并在液晶顯示屏LCD1602上靜態(tài)顯示操作過程及結(jié)果。本設(shè)計的操作過程是利用SCTT89C51的來控制LXD1602顯示器,SCT89C51有共四個端口,作為數(shù)據(jù)的輸入端和輸出端,其中兩個端口作為輸出端,兩個端口作為輸出端,兩個特殊的端口XTAL2和XTAL1,那么作為外部振蕩器的輸入端和輸出端。四個端口的作用是:一個輸入端接4*4矩陣鍵盤,另一個數(shù)據(jù)輸入端接顯示屏LCD1602的三個特殊端口,而另外兩個端口作為輸出端口,一個端口接顯示屏LCD1602的數(shù)據(jù)端口,另一個端口作為振蕩電路的輸入端和輸出端,連接好電路,接通電源,那么可在液晶顯示屏LCD1602顯示加、減、乘、除的運算過程及結(jié)果,這是計算機的設(shè)計總過程。關(guān)鍵詞:單片機;C語言;計算器SimplecalculatordesignbasedonsinglechipABSTRACTSingle-chipcomputertechnologydevelopingrapidlyinrecentyears,amongthem,electronicproductupdatespeedisfast.Thecalculatorisoneoftheelectronicproductsarecommonineverydaylife.Howcanyoumakethecalculatortechnologymoremature,makefulluseofexistinghardwareandsoftwareconditions,designabettercalculator.ThisdesignisbasedonSTC89C52single-chipmicrocomputerasthecoreofcalculatorsimulationsystemdesign,inputuse4*4matrixkeyboard,couldadd,subtract,multiplyanddividesignednumber-crunchingsix(integer,twodecimalplaces),andstaticontheLCDdisplayLCD1602displayoperationprocessandresults.ThisdesignprocessiscontrolledbyusingSCTT89C51LXD1602display,SCT89C51hasatotaloffourports,asthedatainputterminalandoutputterminal,twooftheportastheoutputside,thetwoportsastheoutputside,andtwospecialportXTAL1andXTAL2,asexternaloscillatorinputendandoutputend.Fourportis:a4*4matrixkeyboardinput,anotherdatainputterminationdisplayLCD1602threespecificports,andtheothertwoportsasoutputport,aportdisplayLCD1602dataport,anotherportasoscillationcircuitinputendandoutputend,goodconnectionelectriccircuit,switchonthepower,canbeintheLCDdisplayLCD1602displayofadd,subtract,multiplyanddivideoperationprocessandresult,thisisthecomputer'sdesignprocess.Keywords:Singlechipmicrocomputer;TheClanguage;Calculatingmachine基于單片機的簡易計算器的設(shè)計序言隨著社會的開展,科學(xué)的進步,人們的生活水平在逐步地提高,尤其是微電子技術(shù)的開展猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就缺乏驚奇了。計算器在人們的日常中是比擬常見的電子產(chǎn)品之一,如何使計算器技術(shù)更加的成熟,充分利用已有的軟件和硬件條件,設(shè)計出更出色的計算器,使其更好地為各個行業(yè)效勞,成了如今電子領(lǐng)域重要的研究課題?,F(xiàn)如今,人們的日常生活中已經(jīng)離不開計算器了,社會的各個角落都有它的身影,比方商店、辦公室、學(xué)校等,因此設(shè)計一款簡單實用的計算器會有很大的實際意義。本設(shè)計旨在進一步掌握單片機理論知識,理解嵌入式單片機系統(tǒng)的硬軟件設(shè)計,加強對實際應(yīng)用系統(tǒng)設(shè)計的能力。通過本設(shè)計的學(xué)習(xí),使我掌握單片機程序設(shè)計和微機接口應(yīng)用的根本方法,并能綜合運用本科階段所學(xué)軟、硬件知識分析實際問題,提高解決畢業(yè)設(shè)計實際問題的能力,為單片機應(yīng)用和開發(fā)打下良好的根底。1.對字符液晶顯示模塊的工作原理,如初始化、清屏、顯示、調(diào)用及外特性有較清楚的認(rèn)識,并會使用LCD〔液晶顯示模塊〕實現(xiàn)計算結(jié)果的顯示;掌握液晶顯示模塊的驅(qū)動和編程,設(shè)計LCD和單片機的接口電路,以及利用單片機對液晶顯示模塊的驅(qū)動和操作;2.在充分分析內(nèi)部邏輯的概念,進行軟件和調(diào)試,學(xué)會使用,并能夠以其為平臺設(shè)計出具有四那么運算能力簡易計算器的硬件電路和軟件程序。1.方案論證1.1芯片1.1.1方案一本設(shè)計中的芯片采用STC89C52,配備相應(yīng)的外設(shè)。單片機是單片微型機的簡稱,故又稱為微控制器MCU〔MicroControlUnit〕。通常由單塊集成電路芯片組成,內(nèi)部包含有計算機的根本功能部件:中央處理器CPU,存儲器和I/O接口電路等。因此,單片機只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。單片機廣泛應(yīng)用于智能產(chǎn)品,智能儀表,測控技術(shù),智能接口等,具有操作簡單、實用方便、價格廉價等優(yōu)點,而其中STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器〔FPEROM-FlashProgramableandErasableReadOnlyMemory〕的低電壓,高性能COMOS8的微處理器。該器件與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容;且是單片機中最典型的代表,應(yīng)用于各種控制領(lǐng)域。1.1.2方案優(yōu)點采用芯片STC89C52,能使方案實用性和方便性更強,本錢更低,STC89C52單片機作為中央處理單元進行計算器這樣設(shè)計,它能夠?qū)崿F(xiàn)對六位整數(shù)、兩位小數(shù)的加、減、乘、除的四那么運算。1.2輸入模塊1.2.1方案一采用矩陣式鍵盤作為輸入模塊,矩陣式按鍵輸入模塊,其特點是:電路和軟件稍復(fù)雜,但相比之下,當(dāng)鍵數(shù)越多時,越節(jié)約I/O口,比擬節(jié)省資源。其原理圖如圖1-1所示。圖1-1矩陣鍵盤輸入1.2.2方案的優(yōu)點本設(shè)計中的輸入模塊使用的是矩陣鍵盤輸入。鍵盤輸入預(yù)置用于計算,按鍵較多。采用矩陣式按鍵,可以方便地輸入一個數(shù)值,使操作界面更具有更方便、簡潔和人性化,且節(jié)約了珍貴的I/O口資源,故采用方案二作為系統(tǒng)輸入模塊。1.3顯示模塊1.3.1方案一采用LCD1602液晶顯示,其特點是:可以調(diào)節(jié)其背光亮度,這種顯示方式接口,編程雖然有些麻煩,但管理較方便,占用的I/O口資源線也不多。1.3.2方案的應(yīng)用本設(shè)計中的顯示模塊使用的是LCD1602液晶顯示。在計算器運算中,需顯示的數(shù)字、符號較多,按很據(jù)個方面的特點,而后可以發(fā)現(xiàn)LCD液晶顯示,雖然在價格上確實是稍貴于LED數(shù)碼管;但數(shù)碼管在硬件設(shè)計電路中,會因線太多、線路復(fù)雜而過于繁瑣,那么舍棄LED數(shù)碼管,應(yīng)選擇LCD1062。2.計算器硬件設(shè)計2.1系統(tǒng)組成及硬件框圖圖2-1系統(tǒng)組成及硬件框圖2.2元器件簡介2.2.1STC89C52特點圖2-2單片機STC89C52主要性能:與MCS-51單片機產(chǎn)品兼容;8K字節(jié)在系統(tǒng)可編程Flash存儲1000次擦寫周期;全靜態(tài)操作:0Hz-33Hz;三級加密程序存儲器;32個可編程I/O口線、三個16位定時器/計數(shù)器、8個中斷源;全雙工UART串行通信;低功耗空閑和掉電模式,掉電后中斷可喚醒;雙數(shù)據(jù)指針;掉電標(biāo)識符。2、STC89C52的功能特性概述STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52具有以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門口定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。8位微控制器,8K字節(jié)在系統(tǒng)可編程Flash。同時,該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。3、STC89C52的引腳功能單片機STC89C52為40引腳芯片,見圖2-3所示。圖2-3STC89C52引腳圖〔1〕口線:P0、P1、P2、P3共四個八位口。P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1〞時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻。在Flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1〞時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用;作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在Flash編程和校驗時,P1口接收低8位地址字節(jié)。此外,P1.0和P1.1分別作定時器/計數(shù)器2的外部計數(shù)輸入〔P1.0/T2〕和定時器/計數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕。P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1〞時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用;作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器〔例如執(zhí)行MOVX@DPTR〕時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址〔例如MOVX@RI〕訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在Flash編程和校驗時,P2口也接收高八位地址字節(jié)和一些控制信號。表2-1STC89C52的P3口第二功能端口引腳第二功能P3.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2INT0〔外部中斷0〕P3.3INT1〔外部中斷1〕P3.4T0〔定時/計數(shù)器0〕P3.5T1〔定時/計數(shù)器1〕P3.6WR〔外部數(shù)據(jù)存儲器寫選通〕P3.7RD〔外部數(shù)據(jù)存儲器讀選通〕P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1〞時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用;作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。P3口亦作為STC89C52特殊功能〔第二功能〕使用,如表2-1所示。在Flash編程和校驗時,P3口也接收一些控制信號。〔2〕其他引腳說明:看RST:復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復(fù)位。門狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊存放器AUXR〔地址8EH〕上的DISRT0位可以使此功能無效。DISRT0默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE〔地址鎖存允許〕輸出脈沖用于所存地址的低八位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖〔PROG〕。如有必要,可通過對特殊功能存放器〔SFR〕區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只要一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。PSEN:程序存儲允許〔PSEN〕輸出是外部程序存儲器的讀選通信號,當(dāng)STC89C52由外部程序存儲器取指令〔或數(shù)據(jù)〕時,每個機器周期兩次PSEN有效,即輸出兩個脈沖;在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP:外部訪問允許,欲使CPU僅訪問外部程序存儲器〔地址為0000H~FFFFH〕,EA端必須保持低電平〔接地〕。需注意是:如果加密LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平〔接Vcc端〕,CPU那么執(zhí)行內(nèi)部程序存儲器的指令。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。圖2-4晶振外接結(jié)構(gòu)引腳圖XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2那么是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為1MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz~24MHz內(nèi)選擇,在本設(shè)計電路中選用了12MHz。電容取20PF左右。機器周期=12*時間周期,如12MHz的機器周期為1微秒?!?〕控制或復(fù)位引腳RESET此腳為高電平時〔約2個機器周期〕可將單片機復(fù)位。RST/VPD:當(dāng)出現(xiàn)兩個機器周期高電平時,單片機復(fù)位。復(fù)位后,P0~P3輸出高電平;SP存放器為07H;其它存放器全部清零;不影響RAM狀態(tài),如圖2-5所示。圖2-5復(fù)位電路4、單片機的現(xiàn)狀及開展方向單片機是為了工業(yè)控制需要滿足而誕生的,是自動控制系統(tǒng)的核心部件,因而也主要用于工業(yè)控制、智能化儀器儀表、家用電器中。它具有體積小、功能多、價格低、使用方便、系統(tǒng)設(shè)計靈活等優(yōu)點。應(yīng)用領(lǐng)域不斷擴大,除了工業(yè)控制、智能化儀表、通訊、家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機芯片作為核心控制部件。由于單片機主要面向工業(yè)控制,工作環(huán)境比擬惡劣,入高溫,強電磁干擾,甚至含有腐蝕性氣體;在太空中工作的單片機控制系統(tǒng),還必須具有抗輻射能力,這決定了單片機CPU于通用微機CPU具有不同的技術(shù)特征和開展方向:可靠性高;控制功能往往很強;指令系統(tǒng)比通用微處理器慢得多;X系列芯片取代;抗干擾性強,工作溫度范圍寬。2.2.2LCD1602液晶顯示屏液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式計算機、數(shù)字?jǐn)z像機、PDA移動通信工具等眾多領(lǐng)域。LCD1602的應(yīng)用簡介LCD1602液晶顯示器采用HD44780及其兼容芯片作為點陣式LCD的控制器驅(qū)動器,還采用HD44100進行LCD的時分割驅(qū)動。HD44780的內(nèi)部結(jié)構(gòu)主要包括顯示數(shù)據(jù)RAM〔DDRAM〕、字符發(fā)生器ROM〔CGROM〕、字符發(fā)生器RAM〔CGRAM〕、指令存放器IR、數(shù)據(jù)存放器DR、地址計數(shù)器AC〔AddressCounter〕和忙標(biāo)志BF〔BusyFlag〕等邏輯電路。1602液晶模塊內(nèi)部的控制器共有11條控制指令,豐富的指令可以完成液晶的時序控制、工作方式設(shè)置和數(shù)據(jù)顯示等。采用的LCD1602液晶模塊是標(biāo)準(zhǔn)16針插座,接口電路如圖2-6所示,及各引腳說明如表2-6所示。圖2-6LCD1602的引腳接口電路圖表2-2LCD1602的引腳說明第1腳Vss為地電源第2腳VDD接5V正電源第3腳Vo為液晶顯示器比照度調(diào)整端,接正電源時比照度最弱,接地電源時比照度最高,比照度過高時會產(chǎn)生“鬼影〞,使用時可以通過一個10K的電位器調(diào)整比照度。第4腳Rs為存放器選擇,高電平選擇數(shù)據(jù)存放器、低電平選擇指令存放器。第5腳Rw為讀寫信號線,高電平時進行讀操作,低電平時選擇指令存放器。第6腳E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7-14腳D0-D7為8位雙向數(shù)據(jù)線。第15-16腳背光陽極和背光陰極。其他方面簡介DDRAM用來暫存顯示字符的代碼,共80個字節(jié),DDRAM的各個單元對應(yīng)著顯示屏上的各個字符位,如圖2-2-6所示。因此,DDRAM的地址也就意味著顯示字符的地址,顯示字符時首先要向LCD送顯示字符地址。LCDLCD16字*2行000102030405060708090A0B0C0DOEOF10……27404142434445464748494A4B4C4D4E4F50……67圖2-2-6DDRAM單元地址與顯示屏字符位的對應(yīng)關(guān)系4、LCD1602的主要技術(shù)參數(shù):〔1〕顯示容量為16*2個字符;〔2〕芯片工作電壓為4.5V-5.5V;〔3〕工作電流為2.0mA〔5.0V〕;〔4〕模塊最正確工作電壓為5.0V;〔5〕字符尺寸為2.95*4.35〔W*H〕mm。5、LCD的特點:〔1〕低壓微功耗;〔2〕平板型結(jié)構(gòu);〔3〕被動顯示型〔無眩光,不刺激人眼,不會引起眼睛疲勞〕;〔4〕顯示信息量大〔因為像素可以做得很小〕;〔5〕易于彩色化〔在色譜上可以非常準(zhǔn)確的復(fù)現(xiàn)〕;〔6〕無電磁輻射〔對人體平安,利于信息保密〕;〔7〕長壽命〔這種器件幾乎沒有什么劣化問題,因此壽命極長,但是液晶背光壽命有限,不過背光局部可以更換〕。3.計算器設(shè)計原理分析3.1設(shè)計方案一本設(shè)計需要使用LCD液晶顯示屏和編碼鍵盤。應(yīng)選擇靜態(tài)顯示和用4*4的按鍵鍵盤,使用LCD1602液晶顯示屏來顯示運算過程和運算結(jié)果。主程序進行初始化,其他的程序選擇模塊式的方式。首先對每個模塊進行調(diào)試,當(dāng)模塊調(diào)試成功后,逐一地參加主程序中,最后完成整個軟件局部的設(shè)計。3.2計算器硬件方案及硬件資源分配3.2.1硬件資源分配主要用到的硬件:單片機STC89C52、液晶顯示屏LCD1602、4*4按鍵鍵盤硬件分配:P3口:作為輸入口,與鍵盤連接,實現(xiàn)數(shù)據(jù)的輸入;P0、P2口:作為輸出口〔P2口為高位,P0口為低位〕,控制LCD液晶顯示屏顯示數(shù)據(jù)的結(jié)果;液晶顯示屏LCD1602顯示輸出。3.2.2系統(tǒng)的硬件設(shè)計為了更好地實現(xiàn)系統(tǒng)的功能,硬件電路的設(shè)計應(yīng)該遵循以下原那么:1、優(yōu)化硬件電路采用軟件設(shè)計與硬件設(shè)計相結(jié)合的方法。盡管采用軟件來實現(xiàn)硬件系統(tǒng)的功能時,也許響應(yīng)的時間會比單純使用硬件時長,而且還要占用微處理器〔MCU〕的時間;但是,用軟件實現(xiàn)硬件的功能可以簡化硬件結(jié)構(gòu),提高電路的可靠性。所以,在設(shè)計本系統(tǒng)的時候,在滿足可靠性和實時性的前提下,盡可能地通過軟件來實現(xiàn)硬件功能。2、可靠性及抗干擾設(shè)計根據(jù)可靠性設(shè)計理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無故障時間越長。而且,所用芯片數(shù)量越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計思想是在滿足功能的情況下爭取較少數(shù)量的芯片。功能擴展是否靈活是衡量一個系統(tǒng)優(yōu)劣的重要指標(biāo)。一次設(shè)計往往不能完全考慮到系統(tǒng)的各個方面,系統(tǒng)需要不斷完善以及進行功能升級。進行功能擴展時,應(yīng)該在原有設(shè)計的根底上,通過修改軟件程序和少量硬件完成。對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展。根據(jù)提出的系統(tǒng)設(shè)計方案,結(jié)合以上三條原那么,確定了系統(tǒng)硬件的設(shè)計。計算器主要由以下一些功能模塊組成:非編碼鍵盤模塊、運算模塊〔單片機內(nèi)部〕、LCD液晶顯示模塊等。該系統(tǒng)的硬件設(shè)計采用了模塊化的設(shè)計方法。STC89C52單片機與LCD液晶顯示屏顯示電路是整個電路的核心,它們能實現(xiàn)系統(tǒng)的功能要求。簡易計算器主要包括:鍵盤電路、運算電路、輸出顯示電路。前面說明了該系統(tǒng)的設(shè)計,系統(tǒng)采用了比擬簡單的設(shè)計方案,所以該系統(tǒng)的硬件設(shè)計的總外圍電路不會產(chǎn)生過多的干擾。下面對系統(tǒng)的外圍電路分別作了說明。鍵盤局部采用4*4按鍵鍵盤,顯示局部采用LCD液晶顯示屏完全能夠很好地實現(xiàn)顯示方面的要求。3.2.3鍵盤電路的設(shè)計鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵〔20個以上〕和專用驅(qū)動芯片的組合;當(dāng)按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。圖3-1鍵盤電路通用計算機使用的鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口HD7279均可以組成編碼鍵盤,同時還可以兼顧數(shù)碼管的顯示驅(qū)動,其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當(dāng)系統(tǒng)功能比擬復(fù)雜,按鍵數(shù)量很多時,采用編碼鍵盤可以簡化軟件設(shè)計。非編碼鍵盤本錢低廉。從本錢角度出發(fā),本設(shè)計選用的是非編碼鍵盤。如圖3-1所示。3.2.4顯示電路的結(jié)構(gòu)當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時,采用LCD液晶顯示屏進行顯示是一種經(jīng)濟實用的方法。P0口作為液晶顯示的數(shù)據(jù)端口,P2.0-P2.2口作為其控制端口,控制LCD液晶顯示屏顯示輸出數(shù)據(jù)。最終顯示電路如圖3-2所示。圖3-2LCD液晶顯示屏顯示4.計算器軟件設(shè)計4.1計算器的軟件規(guī)劃簡易計算器的程序主要包括以下功能模塊:讀鍵程序、判鍵程序段、運算操作子程序等局部;基于LCD液晶顯示屏的顯示模塊;主模塊,為系統(tǒng)的初始化4.2主模塊的程序設(shè)計主程序主要用來對LCD液晶顯示屏進行初始化的。在考慮主程序編寫之前,先應(yīng)對計算器的運作流程有一個大致的了解,之后依次為依據(jù)畫出大致的流程圖如圖4-1所示,以便于編寫其主模塊的程序,這樣看來,會比擬清晰、更加方便。圖4-1主程序框圖本來在考慮主模塊流程時,曾考慮到在初始化LCD顯示后應(yīng)該進入中斷效勞的,當(dāng)然也這么畫上去了;可經(jīng)過老師的提點,之后又反復(fù)推敲了好幾遍,再將流程好好地走了幾遍,發(fā)現(xiàn)確實存在著問題。在主程序中確實不用中斷效勞,它其實也屬于一個子程序,是與鍵盤程序有關(guān),之后會加以說明。既然是計算器,只要反復(fù)地進行四那么運算,其過程與結(jié)果并在液晶顯示屏上顯示出來。通過這個詳細(xì)的主模塊程序框圖,即能夠很快地編寫出其程序:voidmain(){uchari,j;init();write_cmd(0x80); //將液晶指針定位在第一行第一個單元key=15;i=flag1=0;while(1){………… write_cmd(0x80+0x40); //將液晶指針定位在第二行第一個單元 jscl(); }flag1=0;}}在以上的程序中“write_cmd(0x80);〞,被賦值為“0x80〞,那么是根據(jù)圖2-2-6DDRAM單元地址與顯示屏字符位的對應(yīng)關(guān)系中便能找到,第一行第一個單元的值為80H,那么第二行第一個單元的值就為80H+40H,即得出“write_cmd(0x80+0x40);〞。4.3顯示模塊的程序設(shè)計圖4-2顯示程序框圖顯示模塊程序首先要對顯示模塊進行初始化;然后控制光標(biāo)的位置;定義液晶顯示的控制端口,用SBIT指令完成;然后設(shè)置清屏、關(guān)閉顯示、歸位、開顯示、顯示位置的首地址等等。顯示模塊的流程圖如圖4-2所示。根據(jù)以上的顯示程序的流程框圖,便能編寫出其顯示子程序:voidjscl() //計算并顯示函數(shù){uchari,j,n;…………{for(j=0;j<k1+1;j++) //存放第一操作數(shù){for(i=0;i<k1-j;i++)…………}for(j=k1+1;j<k2+1;j++) //存放第二操作數(shù){…………if(js==10) //判斷是什么運算,并執(zhí)行運算{s=s1+s2;…………if(js==13){s=(s1*0.1)/(s2*0.1);…………temp1=(longint)(s); //以下局部處理結(jié)果temp2=s-temp1;…………for(i=n;i>0;i--) //在液晶上顯示結(jié)果{write_data(table[b[i-1]]);…………}通過其顯示子程序,發(fā)現(xiàn)要顯示其最終結(jié)果,就必須先存放第一操作數(shù)、第二操作數(shù),之后來判定使用四那么運算中的哪一種運算,其后進行運算處理,最后便能在LCD液晶顯示屏上顯示其最終結(jié)果。4.4鍵盤模塊的程序設(shè)計鍵盤掃描子程序,首先讀出P3口的低四位,然后讀出P3口的高四位。然后鍵值并顯示緩存。而后,將鍵盤上的值轉(zhuǎn)換為ASCII碼,最后就可以用軟件來設(shè)置硬件按鍵各個鍵所代表的內(nèi)容。讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息〔列信息〕;第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息〔行信息〕。系統(tǒng)中連接的是4*4行列式按鍵鍵盤,其中“0-9〞為數(shù)字鍵;“+、-、*、/、=〞為符號鍵;“ON/C〞為功能鍵〔清屏鍵〕,在程序中會參加一個記憶功能鍵,而與其搭配的硬件按鍵為符號鍵中的“=〞,以為求方便。圖4-3中斷效勞程序框圖數(shù)字鍵按下那么將相應(yīng)的數(shù)字送入數(shù)字緩沖區(qū);符號鍵按下那么將送入符號緩沖區(qū);功能鍵按下那么執(zhí)行相應(yīng)的程序;最終進行運算后,綜合結(jié)果將送入結(jié)果緩沖區(qū),并在LCD液晶顯示屏上顯示出來。鍵盤模塊程序也可相當(dāng)于一個中斷效勞子程序,如圖4-3所示。通過以上的中斷效勞程序框圖,來編寫其子程序:voidkeyscan() //鍵盤掃描程序{uchartemp,uu=0xf7;uinti;for(i=0;i<4;i++){uu=_crol_(uu,1); //_crol_為左移函數(shù)………… { case0xee:key=0;break; case0xde:key=1;break; ……………… case0x77:key=15;break;}在以上的程序中,其中的“key=0……key=15〞是按鍵“0-9、+、-、*、/、=、ON/C〞16個鍵。而“case0xee:key=0;break;〞中,被賦值為“0xee〞,那么是因為行信息是P3口的低四位,假設(shè)是按鍵按下為“0〞,那么P3.0為“0〞,P3.1-P3.3為“1〞;同時,列信息是P3口的高四位,假設(shè)是按鍵按下為“0〞,那么P3.4為“0〞,P3.5-P3.7為“1〞;由此可得,其被賦值為“0xee〞。以此類推,之后一直到“case0x77:key=15;break;〞為止,都是采用相同的方法去賦值的結(jié)論在硬件的制作過程中,我走了很多彎路。主要是在系統(tǒng)還沒有到設(shè)計完全的時候就開始很心急地做仿真圖和實物。后來發(fā)現(xiàn)與設(shè)計的要求還有偏差,而后反復(fù)地改了好幾次,浪費了大量的時間和精力。板子是按照自己的思想和意愿來設(shè)計的。一開始,本想用匯編語言來編程的,可是當(dāng)編了一局部之后才發(fā)現(xiàn),用匯編語言來編程的話,相當(dāng)繁復(fù)冗長;之后就想試著用C語言來編程。在圖書館查閱了一些相關(guān)資料后,就開始寫程序。在編寫程序的過程中,發(fā)現(xiàn)居然出現(xiàn)了不少問題。所以,在編寫程序的過程中,也就完善了軟件的設(shè)計。編程時,已充分使用了結(jié)構(gòu)化的思想。這樣一來,因為語句較少,程序調(diào)試也比擬方便,功能模塊可以逐一地調(diào)試,充分表達(dá)了結(jié)構(gòu)化編程的優(yōu)勢。當(dāng)每個模塊都完成時,將其功能加到一起就完成了整體的設(shè)計,通過這次畢業(yè)論文的設(shè)計,使自己在單片機方面得了很高的提升空間,為自己為將來打下了不小的根底.參考文獻[1]李廣弟,朱月秀,冷祖祁.單片機根底[M].北京:北京航空航天大學(xué)出版社,2007:1.[2]徐惠民,田輝,孫全,等.微機原理與接口技術(shù)[M].北京:高等教育出版社,2007:5[3]林志琦.單片機原理接口及應(yīng)用[M].北京:北京水利水電出版社,2007.[4]張友德、趙金英、涂時亮.單片微型計算機原理、應(yīng)用與實驗(第四版)[M].上海:復(fù)旦大學(xué)出版社,2003.[5]彭傳良.電子計算器鍵盤與單片機的接口技術(shù)及其應(yīng)用[J].氣象水文海洋儀器,1999〔02〕:40-44[6]譚浩強,C程序設(shè)計〔第三版〕[M]:北京:清華大學(xué)出版社,1999[7]萬冬、王玥玥.

電子設(shè)計實戰(zhàn)訓(xùn)練之六:簡單計算器[J].電子制作,2023〔11〕:28-31[8]高偉.AT89單片機原理及應(yīng)用[M].北京:國防工業(yè)出版社2023.[9]張慶鋒.計算器LCD顯示屏與單片機的簡單接口[J].電子技術(shù)應(yīng)用,1996〔2〕:23-25[10]江世明.基于Proteus的單片機應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2023.[11]周潤景.基于Proteus的電路與單片機系統(tǒng)設(shè)計與仿真[M].北京:北京航空航天大學(xué)出版社,2006.附錄一電路原理圖附錄二軟件程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitlcden=P2^2;//這是LCD使能端sbitlcdrw=P2^1;//這是LCD讀寫選擇端sbitlcdrs=P2^0;//這是LCD數(shù)據(jù)命令選擇端ucharcodetable[]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/','=','.'};ucharkey,flag1,js,k1,k2;uchara[20],b[20];floatjieguo=0;voiddelay(ucharz)//延時函數(shù){ucharx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_cmd(ucharcmd)//LCD寫命令函數(shù){lcdrs=0;//寫指令控制端為低P0=cmd;delay(5);lcden=1;//給個高脈沖結(jié)束delay(4);lcden=0;}voidwrite_data(uchardate)//寫數(shù)據(jù)函數(shù){lcdrs=1;//寫數(shù)據(jù)控制端高電平P0=date;delay(5);lcden=1;//給個高脈沖結(jié)束delay(5);lcden=0;}voidinit()//液晶初始化函數(shù)。{lcdrw=0;lcden=0;write_cmd(0x38);//設(shè)置16*2顯示,8位數(shù)據(jù)接口write_cmd(0x0c);//設(shè)置開顯示,不顯示光標(biāo)〔關(guān)顯示是0x08〕write_cmd(0x06);//寫一個字符后地址指針加1write_cmd(0x01);//清屏}voidkeyscan() //鍵盤掃描程序{uchartemp,uu=0xf7;uinti;for(i=0;i<4;i++){uu=_crol_(uu,1); //_crol_為左移函數(shù)P3=uu;temp=P3;temp=temp&0x0f;if(temp!=0x0f){delay(10);temp=P3; temp=temp&0x0f; if(temp!=0x0f) {temp=P3; switch(temp) { case0xee:key=0;break; case0xde:key=1;break; case0xbe:key=2;break; case0x7e:key=3;break; case0xed:key=4;break; case0xdd:key=5;break; case0xbd:key=6;break; case0x7d:key=7;break; case0xeb:key=8;break; case0xdb:key=9;break; case0xbb:key=10;break; case0x7b:key=11;break; case0xe7:key=12;break; case0xd7:key=13;break; case0xb7:key=14;break; case0x77:key=15;break; } while(temp!=0x0f) {temp=P3; temp=temp&0x0f; } flag1=1; }}}}voidjscl() //計算并顯示函數(shù){uchari,j,n;floats,temp2;longints1,s2,a1,b1,c1,temp1;a1=b1=1;s1=s2=0;s=0;if(k2!=0){for(j=0;j<k1+1;j++) //存放第一操作數(shù){for(i=0;i<k1-j;i++)a1=a1*10; s1=s1+a[j]*a1; a1=1;}for(j=k1+1;j<k2+1;j++) //存放第二操作數(shù){for(i=0;i<k2-j;i++)b1=b1*10; s2=s2+a[j]*b1; b1=1;}if(js==10) //判斷是什么運算,并執(zhí)行運算{s=s1+s2;}if(js==11){s=s1-s2;}if(js==12){s=s1*s2;}if(js==13){s=(s1*0.1)/(s2*0.1);}jieguo=s;}elses=jieguo;c1=(longint)(s*1000)%10;if(c1>5||c1==5)s=s+0.01;temp1=(longint)(s); //以下局部處理結(jié)果temp2=s-temp1;n=0;while(temp1){b[n]=temp1%10;temp1=temp1/10; n++;}b[n]=temp2*10;b[n+1]=(uchar)(temp2*100)%10;for(i=n;i>0;i--) //在液晶上顯示結(jié)果{write_data(table[b[i-1]]); }write_data(table[15]);write_data(table[b[n]]);write_data(table[b[n+1]]);}voidmain(){uchari,j;init();write_cmd(0x80); //將液晶指針定位在第一行第一個單元key=15;i=flag1=0;while(1){keyscan();if(flag1==1){if(key==15) {write_cmd(0x01); i=0; for(j=0;j<20;j++) a[j]=b[j]=0; k1=k2=0; } elseif(key<10) {write_data(table[key]); a[i]=key; i++; } elseif(key<14) {write_data(table[key]); k1=i-1; js=key; } else {write_data(table[key]); if(i==0) k2=0; else k2=i-1; write_cmd(0x80+0x40); //將液晶指針定位在第二行第一個單元 jscl(); }flag1=0;}}}目錄一、HYPERLINK可行性研究…………..............…..3二、設(shè)計方案簡述....................................................42.1、功能介紹.........................................................................................................4根本功能....................................................4擴展功能....................................................42.2、總體設(shè)計方案.............................................................................................................5總體設(shè)計思路…………………..……5方案論證與比擬…………….....……6系統(tǒng)組成…………………..….........…7三、詳細(xì)設(shè)計........................................................121.各個模塊設(shè)計.................................................12輸入模塊:鍵盤掃描.........................................13運算模塊:單片機控制........................................14顯示模塊:LCD1602顯示......................................152.硬件電路設(shè)計………………..………..16硬件連接………………………...........163.元件的介紹……………17STC89C52單片機組成.........................................17復(fù)位和復(fù)位電路..............................................18LCD1602顯示器..............................................194.PCB設(shè)計以及結(jié)果顯示.........................................22總結(jié)………………………24附錄主要程序代碼…………….........25一、設(shè)可行性分析:經(jīng)濟可行性由于只是實驗性質(zhì)的編程,所以在設(shè)計和開發(fā)都不需要過多的經(jīng)費,但是系統(tǒng)投入運行以后,硬件維護和損耗所造成的消耗是必須的,但是數(shù)目也不會很大。所以經(jīng)過初步分析,經(jīng)濟上根本上是可行的1.2.2技術(shù)可行性在技術(shù)方面,因為都學(xué)習(xí)了C語言,硬件課程設(shè)計等課程,對于開發(fā)語言c語言也有一定的掌控能力,應(yīng)該能夠完成相應(yīng)的任務(wù)。1.2.3運行可行性該成果簡單易操作,非常容易使用。1.2.4法律可行性由于我們需要完成的功能相對簡單,沒有太多涉及到很專業(yè)方面的內(nèi)容,更沒有方案將系統(tǒng)利用到商業(yè)用途,所以不存在侵權(quán)或者版權(quán)糾紛方面的問題。1.2.5結(jié)論該系統(tǒng)的軟硬件都比擬容易理解和實現(xiàn),所以,具有實現(xiàn)一計算器的可行性。二、設(shè)計方案簡述2.1功能概述系統(tǒng)根本功能:〔1〕由于設(shè)計的計算器要進行四那么運算,為了得到較好的顯示效果,經(jīng)綜合分析后,最后采用LCD顯示數(shù)據(jù)和結(jié)果?!?〕采用鍵盤輸入方式,鍵盤包括數(shù)字鍵〔0~9〕、符號鍵〔+、-、×、÷〕、去除鍵(on\c)和等號鍵〔=〕,故只需要16個按鍵即可,設(shè)計中采用集成的計算鍵盤?!?〕在執(zhí)行過程中,開機顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過LCD顯示出來,當(dāng)鍵入+、-、*、/運算符,計算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲,并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號就會在LCD上輸出運算結(jié)果?!?〕錯誤提示:當(dāng)計算器執(zhí)行過程中有錯誤時,會在LCD上顯示相應(yīng)的提示,如:當(dāng)輸入的數(shù)值或計算得到的結(jié)果大于計算器的表示范圍時,計算器會在LCD上提示overflow;當(dāng)除數(shù)為0時,計算器會在LCD上提示error。擴展功能:加上括號的混合運算2.2總體設(shè)計思路本設(shè)計主要采用以下根本模塊來實現(xiàn):控制器模塊,輸入模塊,輸出模塊和電源模塊。通過對控制器進行編程。使其對輸入模塊的信號進行處理計算,然后通過輸出模塊反應(yīng)給使用者以計算結(jié)果。STC89C52單片機STC89C52單片機4*4鍵盤LCD顯示晶振電路復(fù)位電路線路原理框圖方案論證與比擬控制局部的設(shè)計方案論證與選擇根據(jù)設(shè)計要求,控制器主要用于紅外信號的接收和識別、控制步進電機的動作,控制顯示步進電機的轉(zhuǎn)速等。對于控制器的選擇有以下三種方案。方案一:采用計算器專用芯片實現(xiàn)。用計算器專用芯片進行設(shè)計并編程實現(xiàn)。這種設(shè)計方案計算效率高、速度快、而且本錢也相對較低,是廠家做計算器的最正確方案。但是本人對計算器專用芯片掌握的不夠,還缺乏以實現(xiàn)設(shè)計計算器,所以這個方案不可去。方案二:采用FPGA〔現(xiàn)場可編程門陣列〕作為系統(tǒng)的控制器。FPGA將所有器件集成到一塊芯片上,體積小,節(jié)省空間,提高了穩(wěn)定性;直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現(xiàn)快捷,開發(fā)效率高,工作可靠性好??梢詫崿F(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,采用并行的輸入輸出方式,系統(tǒng)處理速度高,適合作為大規(guī)模實時系統(tǒng)的控制核心。由FPGA內(nèi)部編程實現(xiàn)計算器功能,本設(shè)計對數(shù)據(jù)處理速度的要求不是很高,F(xiàn)PGA的高速處理的優(yōu)勢得不到充分的表達(dá),由于其集成度高,使其本錢偏高,同時由于芯片的引腳較多,實物電路板布線復(fù)雜,加重了電路設(shè)計和實際焊接的工作。并且FPGA的價格相對較高,性價比太低。方案三、用單片機實現(xiàn)。由于單片機集成了運算器電路、控制電路、存儲器、中斷系統(tǒng)、定時器/計數(shù)器以及輸入/輸出口電路等,所以用單片機設(shè)計控制電路省去了很多分立元器件。由于單片機是可編程芯片,并且它可以運用C語言編寫,對于一些復(fù)雜的計算功能,可以調(diào)用C語言庫函數(shù)。使編寫程序變得非常簡單。所以該課題用單片機實現(xiàn),不僅功能易于實現(xiàn),而且精確度高,穩(wěn)定性好,抗干擾能力強。并且由于其本錢低、體積小、技術(shù)成熟和功耗小等優(yōu)點,且技術(shù)比擬成熟。性價比也相當(dāng)高。更重要的是本人經(jīng)過幾年的學(xué)習(xí),對單片機已有深刻的理解,并且可以靈活運用。綜上所述,并通過各個方面綜合比擬為到達(dá)最正確效果。我們采用方案三利用單片機控制器。顯示電路的設(shè)計方案論證與選擇方案一:數(shù)碼管顯示方案。數(shù)碼管顯示使用兩個四位一體動態(tài)數(shù)碼管顯示方案,此設(shè)計電路如下圖。采用動態(tài)數(shù)碼管顯示,具有程序簡單,對外界環(huán)境要求低,易于維護,同時其精度比擬高,精確可靠,操作簡單。顯示直觀的特點。但只能顯示數(shù)字和一些代碼,不能顯示漢字及一些常用的符號,且硬件設(shè)計比擬復(fù)雜。方案二;LCD1602顯示器所謂1602是指顯示的內(nèi)容為16*2,即可以顯示兩行,每行16個字符。目前字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于大局部的字符型液晶。字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,引腳定義如下表所示:HD44780內(nèi)置了DDRAM、CGROM和CGRAM。

DDRAM就是顯示數(shù)據(jù)RAM,用來存放待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應(yīng)關(guān)系如下表:HD44780的指令集1.清屏指令功能:<1>去除液晶顯示器,即將DDRAM的內(nèi)容全部填入"空白"的ASCII碼20H;

<2>光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;

<3>將地址計數(shù)器(AC)的值設(shè)為0。

2.光標(biāo)歸位指令功能:<1>把光標(biāo)撤回到顯示器的左上方;

<2>把地址計數(shù)器(AC)的值設(shè)置為0;

<3>保持DDRAM的內(nèi)容不變

3.進入模式設(shè)置指令功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個字符是否移動。參數(shù)設(shè)定的情況如下所示:

位名

設(shè)置

I/D

0=寫入新數(shù)據(jù)后光標(biāo)左移

1=寫入新數(shù)據(jù)后光標(biāo)右移

S

0=寫入新數(shù)據(jù)后顯示屏不移動

1=寫入新數(shù)據(jù)后顯示屏整體右移1個字

4.顯示開關(guān)控制指令功能:控制顯示器開/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情況如下:

位名

設(shè)置

D

0=顯示功能關(guān)

1=顯示功能開

C

0=無光標(biāo)

1=有光標(biāo)

B

0=光標(biāo)閃爍

1=光標(biāo)不閃爍

5.設(shè)定顯示屏或光標(biāo)移動方向指令功能:使光標(biāo)移位或使整個顯示屏幕移位。參數(shù)設(shè)定的情況如下:

S/C

R/L

設(shè)定情況

0

0

光標(biāo)左移1格,且AC值減1

0

1

光標(biāo)右移1格,且AC值加1

1

0

顯示器上字符全部左移一格,但光標(biāo)不動

1

1

顯示器上字符全部右移一格,但光標(biāo)不動

6.功能設(shè)定指令

功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下:

位名

設(shè)置

DL

0=數(shù)據(jù)總線為4位

1=數(shù)據(jù)總線為8位

N

0=顯示1行

1=顯示2行

F

0=5×7點陣/每字符

1=5×10點陣/每字符

7.設(shè)定CGRAM地址指令功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。

8.設(shè)定DDRAM地址指令

功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。

(注意這里我們送地址的時候應(yīng)該是0x80+Address,這也是前面說到寫地址命令的時候要加上0x80的原因)

9.讀取忙信號或AC地址指令功能:<1>讀取忙碌信號BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時無法接收單片機送來的數(shù)據(jù)或指令;

當(dāng)BF=0時,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令;

<2>讀取地址計數(shù)器(AC)的內(nèi)容。

10.數(shù)據(jù)寫入DDRAM或CGRAM指令一覽

功能:<1>將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符;

<2>將使用者自己設(shè)計的圖形存入CGRAM。

11.從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽

功能:讀取DDRAM或CGRAM中的內(nèi)容。

根本操作時序:

讀狀態(tài)

輸入:RS=L,RW=H,E=H

輸出:DB0~DB7=狀態(tài)字

寫指令

輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼

輸出:無

讀數(shù)據(jù)

輸入:RS=H,RW=H,E=H

輸出:DB0~DB7=數(shù)據(jù)

寫數(shù)據(jù)

輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)

輸出:無2.2.2.3、鍵盤設(shè)計方案與選擇方案一:獨立鍵盤。獨立鍵盤為一端接地,另一端接I/O口,并且要接上拉電阻。這種鍵盤的硬件都很容易實現(xiàn),但每一個按鍵就要用一個I/O口,適合本次設(shè)計。方案二:通過PS2協(xié)義,用鍵盤同單片機相接,從而實現(xiàn)單片機與鍵盤通信。其電路如下圖?,F(xiàn)在PC機廣泛采用的PS/2接口為miniDIN6引腳的連接器。1—數(shù)據(jù)線〔DATA〕;—未用;3—電源地〔GND〕;4—電源〔+5V〕;5—時鐘〔CLK〕;6—未用。由此圖可知,使用鍵盤硬件結(jié)構(gòu)比擬簡單,但鍵盤的體積太大,所以此系統(tǒng)不采用此方案。方案三:自制編碼鍵盤。編碼鍵盤的電路如下圖,這種鍵盤有編程簡單,占用資源少,但其硬件比擬復(fù)雜,要用很多的二極管,不是很理想。方案四:4*4矩陣式鍵盤。其電路圖如下圖,這種鍵盤的硬件簡單,使用的I/O口也不多,而且這種鍵盤的編程方法已很成熟。本次設(shè)計也可以采用這種矩陣式鍵盤。其電路圖如圖主體設(shè)計局部:〔1〕、系統(tǒng)模塊圖:〔2〕、算術(shù)運算程序流程圖:〔3〕、系統(tǒng)總流程圖:〔4〕、硬件設(shè)計:〔一〕、總體硬件設(shè)計:本設(shè)計選用AT89C51單片機為主控單元;顯示局部:采用LCD靜態(tài)顯示;按鍵局部:采用4*4鍵盤;用MM74C922為4*4鍵盤掃描IC,讀取輸入的鍵值??傮w設(shè)計效果如下列圖:〔二〕、單片機接口電路說明:1、手動上電復(fù)位電路:當(dāng)VCC上電時,C充電,在10K電阻上出現(xiàn)電壓,使得單片機復(fù)位;幾個毫秒后,C充滿,10K電阻上電流降為0,電壓也為0,使得單片機進入工作狀態(tài)。工作期間,按下S,C放電。S松手,C又充電,在10K電阻上出現(xiàn)電壓,使得單片機復(fù)位。幾個毫秒后,單片機進入工作狀態(tài)。2、內(nèi)部時鐘模式電路:當(dāng)單片機工作于內(nèi)部時鐘模式的時候,只需在XTAL1和XTAL2引腳連接一個晶體振蕩器或者陶瓷振蕩器,并接兩個電容后接地即可,在使用時對于電容的選擇有一定的要求:當(dāng)外接晶體振蕩器的時候,電容值一般選擇C1=C2=30+10pF或30-10pF

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論