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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20、D的基本參數(shù)及引腳功能 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如下圖所示: 1602LCD尺寸圖LCD1602接口電路1602LCD主要技術(shù)參數(shù):顯示容量: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數(shù)據(jù)2VD

21、D電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓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ù)16BLK背光源負極表1013:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源.第3腳:VDD接5V正電源.第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度.第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器,因此,與AT89S52單片機的P2。0/A8相連接.第5腳:R/W為讀寫

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

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

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

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

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

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

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

29、編碼鍵盤模塊、LCD液晶顯示屏模塊等。第六章軟件設計6.1 匯編語言和C語言的特點及選擇本設計是硬件電路和軟件編程相結(jié)合的設計方案,選擇合適的編程語言是一個重要的環(huán)節(jié).在單片機的應用系統(tǒng)程序設計時,常用的是匯編語言和C語言。機硬件,程序可讀性和可移植性比較差.而C語言雖然執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表達化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語句,程序設計自由度大,有很好的可重用性,可移植性等特點。由于現(xiàn)在單片機的發(fā)展已經(jīng)達到了很高的水平,內(nèi)部的各種資源相當?shù)呢S富,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,第一個數(shù) b,第二個數(shù) c,得數(shù)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) / 延遲函數(shù)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); /等待,液晶顯示器處理數(shù)據(jù) lcden=1; /允許讀寫 while(busy=1);

32、/判斷是否為空閑,1為忙,0為空閑void write_com(uchar com) / 寫指令函數(shù)P0=com; /com指令付給P0口rs=0;rw=0;lcden=0;check();lcden=1;void write_date(uchar date) / 寫數(shù)據(jù)函數(shù) 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; /第一個參與運算的數(shù)b=0; /第二個參與運算的數(shù)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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論