基于51單片機的簡易計算器設計_第1頁
基于51單片機的簡易計算器設計_第2頁
基于51單片機的簡易計算器設計_第3頁
基于51單片機的簡易計算器設計_第4頁
基于51單片機的簡易計算器設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于單片機的簡易計算器設計摘要3關鍵字:80C51 LCD1602 44矩陣鍵盤計算器3第一章 緒論41。1 系統開發背景41.2 系統開發意義41。3 設計目的41.4 設計任務4第二章 單片機發展現狀52。1 目前單片機的發展狀況52。1。1單片機的應用場合52.2 計算器系統現狀62。3 簡易計算器系統介紹6第三章 系統硬件設計及說明73。1 系統組成及總體框圖83。2 AT89S52單片機介紹83.3 其它器件介紹及說明113。3。1 LCD1602液晶顯示113.3。2 4*4矩陣掃描按鍵14第四章 PROTEUS模擬仿真15第五章系統硬件設計及說明17第六章軟件設計186.1 匯編

2、語言和C語言的特點及選擇186。2 源程序代碼18125摘要近年來隨著科技的飛速發展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,但僅單片機方面的知識是不夠的,還應根據具體硬件結構、軟硬件結合,來加以完善。計算機在人們的日常生活中是比較常見的電子產品之一。可是它還在發展之中,以后必將出現功能更加強大的計算機,基于這樣的理念,本次設計主要以80C51單片機為控制芯片,用C語言進行編程實現,通過44矩陣鍵盤控制,輸出用液晶屏LCD1602顯示,該計算器可以實現一般的加減乘除四則混合運算。關鍵字:80C51 L

3、CD1602 4*4矩陣鍵盤 計算器第1章 緒論1。1 系統開發背景隨著社會的發展,科學的進步,人們的生活水平在逐步的提高,尤其是微電子技術的發展,猶如雨后春筍般的變化。電子產品的更新速度快就不足驚奇了。計算器在人們的日常中是比較的常見的電子產品之一。如何使計算器技術更加的成熟,充分利用已有的軟件和硬件條件,設計出更出色的計算器,使其更好的為各個行業服務,成了如今電子領域重要的研究課題.1。2 系統開發意義 今天,人們的日常生活中已經離不開計算器了,社會的各個角落都有它的身影,比如商店,辦公室,學校。因此設計一款簡單實用的計算器會有很大的實際意義。1.3 設計目的通過本次硬件與軟件相結合的實踐

4、,運用單片機基礎、MCS51系列單片微型計算機及其應用所學知識及查閱相關資料,完成簡單專用計算器的設計,達到理論知識與實踐更好的結合、提高綜合運用所學知識和設計能力的目的。通過本次設計訓練,可以使我們在基本思路和基本方法上對基于MCS-51單片機的嵌入式系統設計和按鍵操作有一個比較感性的認識,并具備一定程度的設計能力.1。4 設計任務 在本次設計實踐中,主要完成如下方面的設計任務:1)簡要綜述單片機技術發展的國內外現狀及液晶屏顯示和矩陣鍵盤基本原理;2)掌握MCS51系列某種產品(例如AT89S52)的最小電路及外圍擴展電路的設計方法;3)了解單片機數據轉換功能及工作過程;4)完成主要功能模塊

5、的硬件電路設計及必要的參數確定;第2章 單片機發展現狀2。1 目前單片機的發展狀況單片機的發展趨勢:低功耗CMOS化;微型單片化;主流與多品種共存;單片機從8位、16位到32位,數不勝數,應有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片機的應用提供廣闊的天地。 縱觀單片機的發展過程,可以預示單片機的發展趨勢,大致有:1) 信低功耗CMOS化 MCS51系列的8051推出時的功耗達630mW,而現在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝).象80C51就采用了HMOS(即

6、高密度金屬氧化物半導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝).CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于在要求低功耗象電池供電的應用場合.所以這種工藝將是今后一段時期單片機發展的主要途徑。 2) 微型單片化 現在常規的單片機普遍都是將中央處理器(CPU)、隨機存取數據存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉換器、PMW(脈寬調制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅動電路都集成在單一的芯

7、片上,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據用戶的要求量身定做,制造出具有自己特色的單片機芯片. 此外,現在的產品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小。現在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構成的系統正朝微型化方向發展. 3)主流與多品種共存 現在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結構和指令系統的有PHILIPS公司的產品,ATMEL公司的產品和中國臺灣的Winbond系列單片機。所以C8051為核心的單片機占據了半壁江山。而Micro

8、chip公司的PIC精簡指令集(RISC)也有著強勁的發展勢頭,中國臺灣的HOLTEK公司近年的單片機產量與日俱增,與其低價質優的優勢,占據一定的市場分額。此外還有MOTOROLA公司的產品,日本幾大公司的專用單片機.在一定的時期內,這種情形將得以延續,將不存在某個單片機一統天下的壟斷局面,走的是依存互補,相輔相成、共同發展的道路。2。1。1單片機的應用場合智能儀器儀表單片機用于各種儀器儀表,一方面提高了儀器儀表的使用功能和精度,使儀器儀表智能化,同時還簡化了儀器儀表的硬件結構,從而可以方便地完成儀器儀表產品的升級換代。如各種智能電氣測量儀表、智能傳感器等.1)智能儀器儀表機電一體化產品是集機

9、械技術、微電子技術、自動化技術和計算機技術于一體,具有智能化特征的各種機電產品.單片機在機電一體化產品的開發中可以發揮巨大的作用。典型產品如機器人、數控機床、自動包裝機、點鈔機、醫療設備、打印機、傳真機、復印機等。2)實時工業控制單片機還可以用于各種物理量的采集與控制。電流、電壓、溫度、液位、流量等物理參數的采集和控制均可以利用單片機方便地實現.在這類系統中,利用單片機作為系統控制器,可以根據被控對象的不同特征采用不同的智能算法,實現期望的控制指標,從而提高生產效率和產品質量。典型應用如電機轉速控制、溫度控制、自動生產線等 .3)家用電器家用電器是單片機的又一重要應用領域,前景十分廣闊.如空調

10、器、電冰箱、洗衣機、電飯煲、高檔洗浴設備、高檔玩具等.另外,在交通領域中,汽車、火車、飛機、航天器等均有單片機的廣泛應用.如汽車自動駕駛系統、航天測控系統、黑匣子還有分布式系統的前端模塊等等 。2。2 計算器系統現狀計算器一般由運算器、控制器、存儲器、鍵盤、顯示器、電源和一些可選外圍設備及電子配件通過人工或機器設備組成。低檔計算器的運算器、控制器由數字邏輯電路實現簡單的串行運算,其隨機存儲器只有一、二個單元,供累加存儲用.高檔計算器由微處理器和只讀存儲器實現各種復雜的運算程序,有較多的隨機存儲單元以存放輸入程序和數據。鍵盤是計算器的輸入部件,一般采用接觸式或傳感式。為減小計算器的尺寸,一鍵常常

11、有多種功能.顯示器是計算器的輸出部件,有發光二極管顯示器或液晶顯示器等。除顯示計算結果外,還常有溢出指示、錯誤指示等.計算器電源采用交流轉換器或電池,電池可用交流轉換器或太陽能轉換器再充電。為節省電能,計算器都采用CMOS工藝制作的大規模集成電路(見互補金屬-氧化物半導體集成電路),并在內部裝有定時不操作自動斷電電路。計算器可選用的外圍設備有微型打印機、盒式磁帶機和磁卡機等。2.3 簡易計算器系統介紹本計算器是以51系列8051單片機為核心構成的簡易計算器系統。該系統通過單片機控制,實現對44鍵盤掃描進行實時的按鍵檢測,并把檢測數據存儲下來。整個計算器系統的工作過程為:首先存儲單元初始化,顯示

12、初始值和鍵盤掃描,判斷按鍵位置,查表得出按鍵值,單片機則對數據進行儲存與相應處理轉換,之后送入LCD顯示。整個系統可分為三個主要功能模塊:功能模塊一,實時鍵盤掃描;功能模塊二,LCD顯示;功能模塊三,計算。第3章 系統硬件設計及說明 為了更好的實現系統得功能,硬件電路的設計應該遵循以下原則:1、優化硬件電路采用軟件設計與硬件設計相結合的方法;盡管采用軟件來實現硬件系統的功能時,也許響應時間會比單純使用硬件時長,而且還要占用微處理器(MCU)的時間;但是,用軟件實現硬件的功能可以簡化硬件結構,提高電路的可靠性。所以,在設計本系統得時候,在滿足可靠性和實時性的前提下,盡可能的通過軟件來實現硬件功能

13、。2、可靠性及抗干擾設計根據可靠性設計理論,系統所用芯片數量越少,系統的平均無故障時間越長.而且,所用芯片數量越少,地址和數據總線在電路板上受干擾的可能性也就越小。因此,系統的設計思想是在滿足功能的情況下力爭使用較少數量的芯片.3、靈活的功能擴展功能擴展是否靈活是衡量一個系統優劣的重要指標.一次設計往往不能完全考慮到系統的各個方面,系統需要不斷完善以及進行功能升級。進行功能擴展時,應該在原有設計的基礎上,通過修改軟件程序和少量硬件完成。對于本系統而言,就是要求在系統硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展。根據第提出的系統設計方案,結合以上三條原則,確定了系統硬件的設計.計

14、算器主要由以下一些功能模塊構成:非編碼鍵盤模塊、LCD液晶顯示屏模塊等。該系統的硬件設計采用了模塊化的設計方法。AT89S52 單片機與LCD液晶顯示屏顯示電路是整個電路的核心,它們實現系統的功能要求。簡易計算器主要包括:鍵盤電路,顯示電路。下圖為總體硬件結構前面敘述了該系統的設計說明,系統采用了比較簡單的設計方案,所以該系統的硬件設計的總外圍電路不會產生過多的干擾。在下面的闡述中,對系統的外圍電路分別予以介紹.鍵盤部分采用編碼鍵盤,顯示部分采用LCD液晶顯示屏完全能夠很好的實現顯示方面的要求.3。1 系統組成及總體框圖51系列單片機系統4*4鍵盤LCD顯示 晶振電路復位電路線路原理框圖3。2

15、 AT89S52單片機介紹圖3.2.1-1 單片機AT89S521、主要性能: (1) 8031 CPU與MCS-51 兼容 8K字節可編程FLASH存儲器(壽命:1000寫/擦循環) 全靜態工作:0Hz33MHz 三級加密程序存儲器 1288位內部RAM 32條可編程I/O線 三個16位定時器/計數器 八個中斷源 全雙工UART串行通道 低功耗的閑置和掉電模式 掉電后中斷可喚醒 看門狗定時器 雙數據指針 掉電標識符 片內振蕩器和時鐘電路 (2) 管腳說明: VCC:供電電壓。 GND:接地。2、AT89S52的功能特性描述AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K

16、在系統可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術制造,與工業80C51 產品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統可編程,亦適于 常規編程器.在單芯片上,擁有靈巧的8 位CPU 和在系統 可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提 供高靈活、超有效的解決方案。AT89S52具有以下標準功能: 8k字節Flash,256字節RAM, 32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串行口, 片內晶振及時鐘電路。此外, AT89S52 可降至0Hz 靜態邏 輯操作,支

17、持2種軟件可選擇節電模式.空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工 作.掉電保護方式下,RAM內容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止.8 位微控制器 8K 字節在系統可編程 Flash。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求.4、AT89S52的編程方法 編程前,須按編程模式表設置好地址、數據及控制信號;順序如下: 在地址線上加上要編程單元的地址信號. 在數據線上加上要寫入的數據字節。 激活相應的控制信號. 將EA/Vpp端加上+12V編程電壓. 每對Flash存儲陣列寫入一個字節

18、或每寫入一個程序機密位,加上一個ALE/PROG編程脈沖。每個字節寫入周期是自身定時的,大多數約為50us。改變編程單元的地址和寫入的數據,重復-步驟,直到全部文件編程結束。單片機的現狀及發展方向:單片機是為了工業控制需要滿足而誕生的,是自動控制系統的核心部件,因而也主要用于工業控制、智能化儀器儀表、家用電器中。它具有體積小,功能多、價格低、使用方便、系統設計靈活等優點,應用領域不斷擴大,除了工業控制,智能化儀表,通訊,家用電器外,在智能化高檔電子玩具產品中也大量采用單片機芯片作為核心控制部件.由于單片機主要面向工業控制,工作環境比較惡劣,入高溫,強電磁干擾,甚至含有腐蝕性氣體,在太空中工作的

19、單片機控制系統,還必須具有抗輻射能力,這決定了單片機CPU于通用微機CPU具有不同的技術特征和發展方向:(1) 可靠性高;(2) 控制功能往往很強,數值計算交叉;(3) 指令系統比通用微處理器慢的多;(4) X系列芯片取代;(5) 抗干擾性強,工作溫度范圍寬.3.3 其它器件介紹及說明3.3.1 LCD1602液晶顯示 字符型液晶顯示模塊是一種專用于顯示字母、數字、符號等點陣式LCD,目前常用161,16*2,202和402行等的模塊.下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實物如下圖所示: 1602字符型液晶顯示器實物圖1602LC

20、D的基本參數及引腳功能 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如下圖所示: 1602LCD尺寸圖LCD1602接口電路1602LCD主要技術參數:顯示容量:16×2個字符 芯片工作電壓:4.5-5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5。0V字符尺寸:2。95×4。35(W×H)mm引腳功能說明1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表1所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數據2VD

21、D電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號14D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極表1013:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源.第3腳:VDD接5V正電源.第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度.第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器,因此,與AT89S52單片機的P2。0/A8相連接.第5腳:R/W為讀寫

22、信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。因此,與AT89S52單片機的P2。1/A9相連接第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令,所以,與AT89S52單片機的P2.2/A10相連接第714腳:D0D7為8位雙向數據線,在本設計中,與AT89S52單片機的P0口和上拉電阻相連.第15腳:背光源正極。第16腳:背光源負極。 1602LCD的一般初始化(復位)過程延時 15mS寫指令 38H(不檢測忙信號)延時 5mS寫

23、指令38H(不檢測忙信號)延時 5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數據操作均需要檢測忙信號寫指令38H:顯示模式設置寫指令08H:顯示關閉寫指令01H:顯示清屏寫指令06H:顯示光標移動設置寫指令0CH:顯示開及光標設置3。3.2 4*4矩陣掃描按鍵鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個以上)和專用驅動芯片的組合,當按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統軟件干預。通用計算機使用的標準鍵盤就是編碼鍵盤.在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時還可以兼顧數碼管的顯示

24、驅動,其相關的接口電路和接口軟件均可在芯片資料中得到。當系統功能比較復雜,按鍵數量很多時,采用編碼鍵盤可以簡化軟件設計.非編碼鍵盤成本低廉。 從成本角度出發,本設計選用的是非編碼鍵盤。鍵盤是單片機系統中最常用的人機對話輸入設備,用戶通過鍵盤向單片機輸入數據或指令.鍵盤控制程序需完成的任務有:監測是否有鍵按下,有鍵按下時,在無硬件去抖的動電路時,應用軟件延時方法消除按鍵抖動影響;當有多個鍵同時按下時,只處理一個按鍵,不管一次按鍵持續多長時間,僅執行一次按鍵功能程序.矩陣按鍵掃描程序是一種節省IO口的方法,按鍵數目越多節省IO口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那

25、一只鍵按下。但是,在程序的寫法上,采用了最簡單的方法,使得程序效率最高。本程序中,如果檢測到某鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數需要,又能節省大量的CPU時間。本鍵盤掃描程序的優點在于:不用專門的按鍵延時程序,提高了CPU效率,也不用中斷來掃描鍵盤,節省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU時最短,不論有鍵按下或者無鍵按下都可以在很短的時間完成一次掃描。鍵盤是單片機系統中最常用的人機對話輸入設備,用戶通過鍵盤向單片機輸入數據或指令。鍵盤控制程序需完成的任務有:監測是否有鍵按下,有鍵按下時,在無硬件去抖的動電路時,應用軟件延時方法消除按鍵抖動影響;當有多個鍵同時按

26、下時,只處理一個按鍵,不管一次按鍵持續多長時間,僅執行一次按鍵功能程序.矩陣按鍵掃描程序是一種節省IO口的方法,按鍵數目越多節省IO口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下.但是,在程序的寫法上,采用了最簡單的方法,使得程序效率最高。本程序中,如果檢測到某鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數需要,又能節省大量的CPU時間。本鍵盤掃描程序的優點在于:不用專門的按鍵延時程序,提高了CPU效率,也不用中斷來掃描鍵盤,節省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU時最短,不論有鍵按下或者無鍵按下都可以在很短的時間完成一次掃描。 圖 3

27、.3。2 按鍵接線圖鍵值與功能對應表鍵值0123456789+×/=ON/C功能0123456789+×÷=清零第四章 PROTEUS模擬仿真第五章 系統硬件設計及說明 為了更好的實現系統得功能,硬件電路的設計應該遵循以下原則:1、優化硬件電路采用軟件設計與硬件設計相結合的方法;盡管采用軟件來實現硬件系統的功能時,也許響應時間會比單純使用硬件時長,而且還要占用微處理器(MCU)的時間;但是,用軟件實現硬件的功能可以簡化硬件結構,提高電路的可靠性。所以,在設計本系統得時候,在滿足可靠性和實時性的前提下,盡可能的通過軟件來實現硬件功能.2、可靠性及抗干擾設計根據可靠性

28、設計理論,系統所用芯片數量越少,系統的平均無故障時間越長.而且,所用芯片數量越少,地址和數據總線在電路板上受干擾的可能性也就越小。因此,系統的設計思想是在滿足功能的情況下力爭使用較少數量的芯片。3、靈活的功能擴展功能擴展是否靈活是衡量一個系統優劣的重要指標。一次設計往往不能完全考慮到系統的各個方面,系統需要不斷完善以及進行功能升級。進行功能擴展時,應該在原有設計的基礎上,通過修改軟件程序和少量硬件完成。對于本系統而言,就是要求在系統硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展.根據第提出的系統設計方案,結合以上三條原則,確定了系統硬件的設計。計算器主要由以下一些功能模塊構成:非

29、編碼鍵盤模塊、LCD液晶顯示屏模塊等。第六章軟件設計6.1 匯編語言和C語言的特點及選擇本設計是硬件電路和軟件編程相結合的設計方案,選擇合適的編程語言是一個重要的環節.在單片機的應用系統程序設計時,常用的是匯編語言和C語言。機硬件,程序可讀性和可移植性比較差.而C語言雖然執行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表達化類型多樣化,數據結構類型豐富,具有結構化的控制語句,程序設計自由度大,有很好的可重用性,可移植性等特點。由于現在單片機的發展已經達到了很高的水平,內部的各種資源相當的豐富,CPU的處理速度非常的快。用C語言來控制單片機無疑是一個理想的選擇.所以在本設計中采用C

30、語言編寫軟件程序.6.2 源程序代碼include<reg51。h /頭文件define uint unsigned int / define uchar unsigned charsbit lcden=P20; /定義引腳sbit rs=P23;sbit rw=P24;sbit busy=P07;char i,j,temp,num,num_1;long a,b,c; /a,第一個數 b,第二個數 c,得數float a_c,b_c;uchar flag,fuhao;/flag表示是否有符號鍵按下,fuhao表征按下的是哪個符號uchar code table=7,8,9,0,4,5,6

31、,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0x2f0x30,4,5,6,0x2a-0x30,1,2,3,0x2d0x30,0x010x30,0,0x3d0x30,0x2b0x30;void delay(uchar z) / 延遲函數uchar y;for(z;z>0;z) for(y=0;y110;y+);void check() / 判斷忙或空閑do P0=0xFF; rs=0; /指令 rw=1; /讀 lcden=0; /禁止讀寫 delay(1); /等待,液晶顯示器處理數據 lcden=1; /允許讀寫 while(busy=1);

32、/判斷是否為空閑,1為忙,0為空閑void write_com(uchar com) / 寫指令函數P0=com; /com指令付給P0口rs=0;rw=0;lcden=0;check();lcden=1;void write_date(uchar date) / 寫數據函數 P0=date;rs=1;rw=0;lcden=0;check();lcden=1;void init() /初始化 num=1;lcden=1; /使能信號為高電平write_com(0x38); /8位,2行write_com(0x0c); /顯示開,光標關,不閃爍*/write_com(0x06); /增量方式不移

33、位 顯竟獗暌貧 柚?write_com(0x80); /檢測忙信號write_com(0x01); /顯示開,光標關,不閃爍num_1=0;i=0;j=0;a=0; /第一個參與運算的數b=0; /第二個參與運算的數c=0;flag=0; /flag表示是否有符號鍵按下, fuhao=0; / fuhao表征按下的是哪個符號void keyscan() / 鍵盤掃描程序P3=0xfe; if(P3!=0xfe) delay(20); / 延遲20ms if(P3!=0xfe) temp=P3&0xf0; switch(temp) case 0xe0:num=0; break; case

34、 0xd0:num=1; break; case 0xb0:num=2; break; case 0x70:num=3; break; while(P3!=0xfe); if(num=0num=1|num=2)/如果按下的是7',8或9 if(j!=0) write_com(0x01); j=0; if(flag=0)/沒有按過符號鍵 a=a10+tablenum; else/如果按過符號鍵 b=b10+tablenum; else/如果按下的是'/ flag=1; fuhao=4;/4表示除號已按 i=table1num; write_date(0x30+i);P3=0xfd

35、;if(P3!=0xfd) delay(5); if(P3!=0xfd) temp=P30xf0; switch(temp) case 0xe0:num=4; break; case 0xd0:num=5; break; case 0xb0:num=6; break; case 0x70:num=7; break; while(P3!=0xfd); if(num=4|num=5num=6&num!=7)/如果按下的是'4,'5或6 if(j!=0) write_com(0x01); j=0; if(flag=0)/沒有按過符號鍵 a=a10+tablenum; else

36、/如果按過符號鍵 b=b*10+tablenum; else/如果按下的是'/ flag=1; fuhao=3;/3表示乘號已按 i=table1num; write_date(0x30+i);P3=0xfb;if(P3!=0xfb) delay(5); if(P3!=0xfb) temp=P30xf0; switch(temp) case 0xe0:num=8; break; case 0xd0:num=9; break; case 0xb0:num=10; break; case 0x70:num=11; break; while(P3!=0xfb); if(num=8|num=9

37、|num=10)/如果按下的是'1,'2或3 if(j!=0) write_com(0x01); j=0; if(flag=0)/沒有按過符號鍵 a=a*10+tablenum; else/如果按過符號鍵 b=b*10+tablenum; else if(num=11)/如果按下的是' flag=1; fuhao=2;/2表示減號已按 i=table1num; write_date(0x30+i);P3=0xf7;if(P3!=0xf7) delay(5); if(P3!=0xf7) temp=P30xf0; switch(temp) case 0xe0:num=12; break; case 0xd0:num

溫馨提示

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

評論

0/150

提交評論