版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、鄭州科技學(xué)院 單片機原理及應(yīng)用課程設(shè)計題 目 基于單片機簡易設(shè)計與實現(xiàn) 學(xué)生姓名 專業(yè)班級 學(xué) 號 院 (系) 指導(dǎo)老師 完成時間 年 月 日 目 錄0.引言11.設(shè)計方案21.1 方案論證21.2 方案比較與選擇22. 系統(tǒng)設(shè)計32.1系統(tǒng)組成及總體框圖32.2硬件原理42.2.1.單片機最小系統(tǒng)42.2.2鍵盤電路102.2.3顯示電路122.3.軟件流程142.3.1主程序控制流程142.3.2鍵盤掃描子程序152.3.3LCD1602顯示控制流程172.4仿真與實物制作203.結(jié)論22參考文獻22附錄一:總體電路原理圖23附錄二: 元器件23附錄三:源程序24基于單片機簡易設(shè)計與實現(xiàn)0
2、.引言隨著社會的發(fā)展,科學(xué)的進步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就不足驚奇了。計算器在人們的日常中是比較的常見的電子產(chǎn)品之一。如何使計算器技術(shù)更加的成熟,充分利用已有的軟件和硬件條件,設(shè)計出更出色的計算器,使其更好的為各個行業(yè)服務(wù),成了如今電子領(lǐng)域重要的研究課題1。 今天,人們的日常生活中已經(jīng)離不開計算器了,社會的各個角落都有它的身影,比如商店,辦公室,學(xué)校。因此設(shè)計一款簡單實用的計算器會有很大的實際意義。 本設(shè)計對字符液晶顯示模塊的工作原理,如初始化、清屏、顯示、調(diào)用及外特性有較清楚的認識,并會使用LCD(液晶顯示模塊)實現(xiàn)計算
3、結(jié)果的顯示;掌握液晶顯示模塊的驅(qū)動和編程,設(shè)計LCD和單片機的接口電路,以及利用單片機對液晶模塊的驅(qū)動和操作;在充分分析內(nèi)部邏輯的概念,進行軟件和調(diào)試,學(xué)會使用,并能夠以其為平臺設(shè)計出具有四則運算能力簡易計算器的硬件電路和軟件程序。同時在進一步掌握單片機理論知識,理解嵌入式單片機系統(tǒng)的硬軟件設(shè)計,加強對實際應(yīng)用系統(tǒng)設(shè)計的能力。通過本設(shè)計的學(xué)習(xí),使我掌握單片機程序設(shè)計和微機接口應(yīng)用的基本方法,并能綜合運用本科階段所學(xué)軟、硬件知識分析實際問題,提高解決畢業(yè)設(shè)計實際問題的能力,為單片機應(yīng)用和開發(fā)打下良好的基礎(chǔ)。251. 設(shè)計方案本設(shè)計可以采用兩種方案,一種是以FPGA為核心處理芯片,配備相應(yīng)的外設(shè);
4、另外一種是以STC89C51處理器,配備相應(yīng)的外設(shè)。1.1 方案論證 (1)方案一:采用FPGA控制FPGA是一種高密度的可編程邏輯器件,自從Xilinx公司1985年推出第一片F(xiàn)PGA以來,FPGA的集成密度和性能提高很快,其集成密度最高達500萬門/片以上,系統(tǒng)性能可達200MHz。由于FPGA器件集成度高,方便易用,開發(fā)和上市周期短,在數(shù)字設(shè)計和電子生產(chǎn)中得到迅速普及和應(yīng)用,并一度在高密度的可編程邏輯器件領(lǐng)域中獨占鰲頭。但是而基于SRAM編程的FPGA,其編程信息需存放在外部存儲器上 ,需外部存儲器芯片 ,且使用方法復(fù)雜 ,保密性差,而其對于一個簡單的計算器而言,實用FPGA有點大材小用
5、,成本太高。(2)方案二:采用STC89C51單片機是單片微型機的簡稱,故又稱為微控制器MCU(Micro Control Unit)。通常由單塊集成電路芯片組成,內(nèi)部包含有計算機的基本功能部件:中央處理器CPU,存儲器和I/O接口電路等。因此,單片機只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。單片機廣泛用于智能產(chǎn)品,智能儀表,測控技術(shù),智能接口等,具有操作簡單,實用方便,價格便宜等優(yōu)點,而其中STC89C51以MCS-51為內(nèi)核,是單片機中最典型的代表,應(yīng)用于各種控制領(lǐng)域5。1.2 方案比較與選擇 通過以上兩種方案論證和比較,從設(shè)計的實用性,方便性和成本出發(fā),選擇了以STC
6、89C51單片機作為中央處理單元進行計算器的設(shè)計,這樣設(shè)計能夠?qū)崿F(xiàn)對四位加減乘除和除法四位小點數(shù)的運算。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)硬件功能8。(2)可靠實用性根據(jù)可靠性及實用性設(shè)計理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無故障時間越長。而且,所用芯片數(shù)量
7、越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計思想是在滿足功能的情況下力爭使用較少數(shù)量的芯片。(3)靈活的功能擴展功能擴展是否靈活是衡量一個系統(tǒng)優(yōu)劣的重要指標(biāo)。一次設(shè)計往往不能完全考慮到系統(tǒng)的各個方面,系統(tǒng)需要不斷完善以及進行功能升級。進行功能擴展時,應(yīng)該在原有設(shè)計的基礎(chǔ)上,通過修改軟件程序和少量硬件完成。對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展7。2.1系統(tǒng)組成及總體框圖計算器主要由STC89C51單片機組成的最小系統(tǒng)、1602LCD液晶顯示屏及編碼鍵盤構(gòu)成。P1、P3口:做為輸出口,控制LCD液晶顯示屏顯示數(shù)據(jù)的結(jié)果
8、;P2口:做為輸入口,與鍵盤連接,實現(xiàn)數(shù)據(jù)的輸入LCD液晶顯示屏顯示輸出,總體框圖如下。LCD液晶顯示屏模塊 STC89C51最小系統(tǒng)控制模塊4X4鍵盤模塊電源模塊圖2-1 系統(tǒng)組成及總體框圖2.2硬件原理硬件設(shè)計是整個計算器的設(shè)計基礎(chǔ),只有在硬件設(shè)計完成后,才能給整個電路下載程序,從而完成該作品的完整設(shè)計。2.2.1.單片機最小系統(tǒng)最小系統(tǒng)的設(shè)計即單片機最小系統(tǒng),對51系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、晶振電路、復(fù)位電路。下面給出一個51單片機的最小系統(tǒng)電路圖。圖2-2 單片機最小系統(tǒng)(1)復(fù)位電路:由一個按鍵開關(guān)和一個10uf的電容并聯(lián)而成,一端接+5v電源,另一端接單片機的引
9、腳9(即RST)復(fù)位鍵,,如圖2-2所示。一、復(fù)位電路的用途:單片機復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機,按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機也一樣,當(dāng)單片機系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。二、復(fù)位電路的工作原理在書本上有介紹,51單片機要復(fù)位只需要在第9引腳接個高電平持續(xù)2US就可以實現(xiàn),在單片機系統(tǒng)中,系統(tǒng)上電啟動的時候復(fù)位一次,當(dāng)按鍵按下的時候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會復(fù)位。所以可以通過按鍵的斷開和閉合在運行的系統(tǒng)中控制其復(fù)位。(2)晶振電路:一般的晶振振蕩電路都是在一個反相放大器的兩端接入晶振
10、,兩個電容分別接到晶振的兩端 每個電容的另一端再接到地,這兩個電容串聯(lián)的容量值就應(yīng)該等于負載電容 請注意一般IC的引腳都有等效輸入電容 ,一般的晶振的負載電容為15pF或12.5pF 如果再考慮元件引腳的等效輸入電容 則兩個22pF的電容構(gòu)成晶振的振蕩電路就是比較好的選擇,晶振是給單片機提供工作信號脈沖的 這個脈沖就是單片機的工作速度,比如,12M晶振單片機工作速度就是每秒12M 當(dāng)然,單片機的工作頻率是有范圍的,不能太大 一般24M就不上去了,不然不穩(wěn)定。晶振與單片機的腳XTAL0和腳XTAL1構(gòu)成的振蕩電路中會產(chǎn)生偕波(也就是不希望存在的其他頻率的波) 這個波對電路的影響不大 但會降低電路
11、的時鐘振蕩器的穩(wěn)定性 為了電路的穩(wěn)定性起見 ATMEL公司只是建議在晶振的兩引腳處接入兩個10pf-50pf的瓷片電容接地來削減偕波對電路的穩(wěn)定性的影響 所以晶振所配的電容在10pf-50pf之間都可以的 。此晶振電路由兩個30uf的電容并聯(lián)后,兩端分別接一個12MHz的晶振,而晶振兩端又分別接引腳18(XTAL2)、19(XTAL1)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。XTAL1,XTAL2接石英晶體振蕩器。如圖2-2所示外接晶體引腳圖。(3)STC89C51RC圖2-3 單片機STC89C51A. 主要性能: 8051 CPU與MC
12、S-51 兼容 8K字節(jié)可編程FLASH存儲器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0Hz-33MHz 三級加密程序存儲器 128*8位內(nèi)部RAM 32條可編程I/O線 三個16位定時器/計數(shù)器 八個中斷源 全雙工UART串行通道 低功耗的閑置和掉電模式 掉電后中斷可喚醒 看門狗定時器 雙數(shù)據(jù)指針 掉電標(biāo)識符 片內(nèi)振蕩器和時鐘電路 STC89C51 單片機為40 引腳芯片見圖2-4B.管腳說明: VCC:供電電壓。 vss:接地??诰€:P0、P1、P2、P3 共四個八位口。P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平,對P0端口寫“1”時,引腳
13、用作高阻抗輸入。當(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)。 此外,P1.0和P1.1分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T
14、2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。 圖2-4 STC89C51引腳圖引腳第二功能: P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,
15、將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口是STC89C51特殊功能(第二功能)使用,如表2
16、-5所示。 表2-5 P3口管腳 備選功能:端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)在flash編程和校驗時,P3口也接收一些控制信號。此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。 其他引腳說明:RST:復(fù)位輸入。晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復(fù)位??撮T狗計時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器
17、AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復(fù)位高電平有效。 ALE/PROG當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的11。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。 PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)STC89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖
18、,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。 EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。 31腳EA/Vpp接電源:STC89C51/52或其他51系列兼容單片機特別注意:對于31腳(EA/Vpp),當(dāng)接高電平時,單片機在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行,當(dāng)接低電平時,復(fù)位后直接從外部ROM的0000H開始執(zhí)行。2.2.2鍵盤電路鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。
19、編碼鍵盤是較多按鍵(20個以上)和專用驅(qū)動芯片的組合,當(dāng)按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。通用計算機使用的標(biāo)準(zhǔn)鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時還可以兼顧數(shù)碼管的顯示驅(qū)動,其相關(guān)的接口電路和接口軟件均可在芯片資料中得到12。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時,采用編碼鍵盤可以簡化軟件設(shè)計。非編碼鍵盤成本低廉。從成本角度出發(fā),本設(shè)計選用的是非編碼鍵盤。如圖2-6圖2-6編碼鍵盤電路此鍵盤采用4*4矩陣排列,將每一行的一端接在一起構(gòu)成四行,將另一端連在一起構(gòu)成四列,正好與單片
20、機的P3口的8個IO口相連,即由低位到高位依次鏈接P3.0-P3.7,作為單片機電路的輸入端。確定矩陣式鍵盤上任何一個鍵被按下通常采用行掃描法。行掃描法又稱為逐行查詢法它是一種最常用的多按鍵識別方法。因此,本設(shè)計采用以行掃描法實現(xiàn)按鍵識別操作。其工作原理為:首先,不斷循環(huán)地給低四位獨立的低電平,然后判斷鍵盤中有無鍵按下。將低位中其中一列線(P3.0P3.3中其中一列)置低電平然后檢測行線的狀態(tài)(高4位,即P3.4P3.7,由于線與關(guān)系,只要與低電平列線接通,即跳變成低電平),只要有一行的電平為低就延時一段時間以消除抖動,然后再次判斷,假如依然為低電平,則表示鍵盤中真的有鍵被按下而且閉合的鍵位于
21、低電平的4個按鍵之中任其一,若所有行線均為高電平則表示鍵盤中無鍵按下。再其次,判斷閉合鍵所在的具體位置。在確認有鍵按下后 ,即可進入確定具體閉合鍵的過程。其方法是: 依次將列線置為低電平,即在置某一根列線為低電平時,其它列線為高電平。同時再逐行檢測各行線的電平狀態(tài) ;若某行為低,則該行線與置為低電平的列線交叉處的按鍵就是閉合的按鍵。2.2.3顯示電路(1)1602LCD液晶顯示器簡介1602液晶模塊內(nèi)部的控制器共有11條控制指令,豐富的指令可以完成液晶的時序控制、工作方式式設(shè)置和數(shù)據(jù)顯示等6。采用的LCD1602液晶模塊是標(biāo)準(zhǔn)16針插座,接口電路如圖所示:關(guān)于LCD1602的詳細資料見圖2-7
22、和表2-8。圖2-7 LCD接口電路 表2-8 LCD1602引腳說明第1腳VSS接地第2腳Vcc接5V正電源第3腳V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。實際電路中采用2K電阻到地,比較理想。第4腳RS為寄存器選擇,高電平選擇數(shù)據(jù)寄存器、低電平選擇指令寄存器。第5腳RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和RW共同為低電平時 (00)可以寫入指令或者顯示地址;當(dāng)RS為低電平RW為高電平時(01)可以讀入盲信號;當(dāng)RS為高電平RW為低電平時(10)可以寫入數(shù)據(jù)。第6
23、腳E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳D0D7為8位雙向數(shù)據(jù)線。第1516腳陽極和陰極。(2)與單片機的連接:單片機的P1.0-P1.7依次與LCD1602的7-14引腳相連,將從鍵盤讀到的數(shù)據(jù)通過LCD1602顯示出來。(3)工作原理:本次實訓(xùn)采用1602兩行16個字的DM-1602液晶顯示模塊 DM-162采用標(biāo)準(zhǔn)的14腳接口,其中VSS為地電源,VDD接5V正電源,V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。RS為寄存器選擇,高電平時選擇數(shù)據(jù)
24、寄存器、低電平時選擇指令寄存器。RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。D0D7為8位雙向數(shù)據(jù)線2.3.軟件流程通過軟件調(diào)用,讓單片機將鍵盤與LCD1602液晶顯示器結(jié)合起來2.3.1主程序控制流程當(dāng)主程序載入單片機時,開始進行判斷各電路初始化程序,在單片機開始檢查有沒有鍵按下,如遇鍵盤按下,則執(zhí)行延時程序,繼續(xù)判斷有無按鍵按下,然后進行按鍵識別,最后調(diào)用計算機延時子程序,實現(xiàn)系統(tǒng)
25、初始化和其他的子程序模塊的調(diào)用操作。圖2-9按鍵流程圖2.3.2鍵盤掃描子程序由于本設(shè)計采用行掃描方式識別按鍵,通過硬件電路連接及工作原理知每個按鍵的鍵碼:應(yīng)為用P3口的高四位輸出低電平,即P3.4P3.7為輸出口。低四位輸出高電平,即P3.0P3.3為輸入口。讀P3口的低四位狀態(tài)為“0111”,其值為“07H”。再從P1口的高四位輸出高電平,即P1.4P1.7為輸入口。低四位輸出低電平,即P10P13為輸出口,讀P1口的高四位狀態(tài)為“0111”,其值為“07H”。將兩次讀出的P0口狀態(tài)值進行邏輯或運算就得到其按鍵的特征編碼為“77H”,其余的依次類推。鍵盤按鍵說明如下:- | 1 | 2 |
26、 3 | + | - - - - - - - - - - - - - | 4 | 5 | 6 | - | - - - - - - - - - - - - - | 7 | 8 | 9 | * | - - - - - - - - - - - - -| C | 0 | = | / | -*/操作簡介/ 按第一個數(shù),再按'+-*/',再按'='顯示出結(jié)果,然后按C清屏/ 加最大9999+9999=19998/ 減最大9999-0 =9999/ 乘最大9999*9999=99980001/ 除 1/9=0.1111 保留小數(shù)點后4位想要計算器能夠準(zhǔn)確計算結(jié)果,需要按鍵對應(yīng)
27、相應(yīng)的程序(c語言),所以我先給每個按鍵定義如下地址含義:case 0x77 :a=0x0d;break;/ 按鍵/ case 0x7b :a=0x0e; break;/ 按鍵=case 0x7d :a=0; break;/ 按鍵0case 0x7e :a=0x0f; break;/ 按鍵CEcase 0xb7 :a=0x0c;break;/ 按鍵 *case 0xbb :a=0x9;break; / 按鍵 9case 0xbd :a=0x8;break; / 按鍵 8 case 0xbe :a=0x7;break; / 按鍵7case 0xd7 :a=0x0b;break;/ 按鍵 -cas
28、e 0xdb :a=0x6;break; / 按鍵6case 0xdd :a=0x5;break; / 按鍵5case 0xde :a=0x4;break; / 按鍵4case 0xe7 :a=0x0a; break;/ 按鍵 +case 0xeb :a=3;break;/ 按鍵3case 0xed :a=2;break;/ 按鍵2case 0xee :a=1;break;/ 按鍵1default :a=0xff;return a;/* 返回按鍵值 */2.3.3LCD1602顯示控制流程指令1清顯示 指令碼01H, 光標(biāo)復(fù)位到地址00H位置;指令2光標(biāo)復(fù)位 指令碼02H, 光標(biāo)返回到地址00
29、H位置 ;指令3光標(biāo)和顯示模式設(shè)置 I/D位 光標(biāo)移動方向,高電平右移,低電平左移;S 位 屏幕上所有文字是否左移或者右移,高電平有效,低電平無效;指令4顯示開關(guān)控制 D 位 控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示;C 位 控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo); B 位 控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 ;指令5光標(biāo)或顯示移位S/C位 高電平時移動顯示的文字,低電平時移動光標(biāo)指令6功能命令設(shè)置DL位-高電平時為4位數(shù)據(jù)總線,低電平時為8位總線;N位低電平時為單行顯示,高電平時為雙行顯示;F位低電平時顯示5x7的點陣字符,高電平時為5x10的點陣字符;
30、指令7字符發(fā)生器RAM地址設(shè)置指令8DDRAM地址設(shè)置指令9讀忙信號和光標(biāo)地址BF位 為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù)指令10寫數(shù)據(jù)指令11讀數(shù)據(jù)(1)指令操作 表2-10指令編碼(2)子程序流程:同樣而言,LCD1602顯示器在與單片機連接時,也需要單片機輸出程序,而此程序則為1602液晶顯示需要初始化顯示:void init_lcd(void) /初始化液晶,及畫面初始化wela=0; /寫液晶lcden=0; /使能1602write_com(0x38); /8 位總線,雙行顯示,5X7 的點陣字符LCD_Delay_us(100); /延時100uswrite_c
31、om(0x0c); /開顯示,無光標(biāo),光標(biāo)不閃爍write_com(0x06); /光標(biāo)右移動write_com(0x01); /清屏write_com(0x80); /DDRAM 地址歸01602寫指令函數(shù):void write_com(uchar com) /1602液晶寫指令rs=0; /寫指令lcden=0; /使能1602 P0=com; /寫入指令comLCD_Delay_ms(1); /延時1mslcden=1; /使能1602LCD_Delay_ms(2); /延時2ms lcden=0; /使能16021602寫數(shù)據(jù)函數(shù):void write_date(uchar date)
32、 /1602液晶寫數(shù)據(jù)rs=1; /寫數(shù)據(jù)lcden=0; /使能1602 P0=date; /寫入數(shù)據(jù)dateLCD_Delay_ms(1); /延時1mslcden=1; /使能1602LCD_Delay_ms(2); /延時2mslcden=0; /使能1602在1602液晶顯示器初始化程序之后,且能夠讀寫數(shù)據(jù)時,便可對鍵盤進行操作,指令如下:short keycheckdown()/* 反轉(zhuǎn)法鍵盤掃描 */short temp1,temp2,temp,a=0xff;P1=0xf0;/* 輸入行值(或列值) */LCD_Delay_ms(20);/* 延時 */temp1=P1;/* 讀
33、列值(或行值) */P1=0xff;LCD_Delay_ms(20);/* 延時 */P1=0x0f;/* 輸入列值(或行值) */LCD_Delay_ms(20);/* 延時 */temp2=P1;/* 讀行值(或列值) */P1=0xff;temp=(temp1&0xf0)|(temp2&0xf);/* 將兩次讀入數(shù)據(jù)組合 */switch(temp)/* 通過讀入數(shù)據(jù)組合判斷按鍵位置 */void display_a() /顯示數(shù)據(jù)adispaly3=data_a%10000/1000; /千dispaly2=data_a%1000/100; /百dispaly1=dat
34、a_a%100/10; /十dispaly0=data_a%10; /個 write_com(0x80+0); /顯示數(shù)據(jù)aif(data_a>999)write_date('0'+dispaly3); /顯示千位if(data_a>99)write_date('0'+dispaly2); /顯示百位if(data_a>9)write_date('0'+dispaly1); /顯示十位 write_date('0'+dispaly0); /顯示個位2.4仿真與實物制作(1)仿真為了保證實物制作成功,在實物制作之前先進行了仿真設(shè)計,其仿真過程
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新公司財務(wù)制度及流程
- 養(yǎng)老院機構(gòu)財務(wù)制度
- 古玩商會財務(wù)制度
- 公司冬季空調(diào)使用制度
- 養(yǎng)老院老人康復(fù)理療師福利待遇制度
- 養(yǎng)老院老人健康飲食營養(yǎng)師職業(yè)發(fā)展規(guī)劃制度
- 增加照明施工方案(3篇)
- 櫥柜專項施工方案(3篇)
- 樓板天窗施工方案(3篇)
- 賣花宣傳活動方案策劃(3篇)
- 云南省昆明市官渡區(qū)2024-2025學(xué)年九年級上學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測英語試題(含答案)
- 企業(yè)員工培訓(xùn)分層方案
- 體檢中心新員工培訓(xùn)教材
- 衛(wèi)生院綜合樓施工組織設(shè)計
- 高層樓宇門窗安裝安全施工方案
- 淮安市2022-2023學(xué)年七年級上學(xué)期期末歷史試題【帶答案】
- 腦動脈供血不足的護理查房
- 《中醫(yī)藥健康知識講座》課件
- 中國地級市及各省份-可編輯標(biāo)色地圖
- 急性消化道出血的急診處理
- 馬口鐵印鐵制罐工藝流程詳解課件
評論
0/150
提交評論