![單片機計算器設(shè)計論文_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/07ae575e-de53-4e43-bb1c-6065f49de6af/07ae575e-de53-4e43-bb1c-6065f49de6af1.gif)
![單片機計算器設(shè)計論文_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/07ae575e-de53-4e43-bb1c-6065f49de6af/07ae575e-de53-4e43-bb1c-6065f49de6af2.gif)
![單片機計算器設(shè)計論文_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/07ae575e-de53-4e43-bb1c-6065f49de6af/07ae575e-de53-4e43-bb1c-6065f49de6af3.gif)
![單片機計算器設(shè)計論文_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/07ae575e-de53-4e43-bb1c-6065f49de6af/07ae575e-de53-4e43-bb1c-6065f49de6af4.gif)
![單片機計算器設(shè)計論文_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/24/07ae575e-de53-4e43-bb1c-6065f49de6af/07ae575e-de53-4e43-bb1c-6065f49de6af5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 、單片機原理及應(yīng)用課程設(shè)計(論文) 題 目 基于單片機的計算器設(shè)計 學(xué)院名稱 電氣學(xué)院 指導(dǎo)教師 職 稱 教授 班 級 電力1201班 學(xué) 號 學(xué)生姓名 2015年 9 月 20 日1單片機課程設(shè)計任務(wù)書1課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):一、基于AT89C51單片機設(shè)計一個計算器。二、主要技術(shù)指標(biāo)與要求:1、計算機的功能:(1). 功能模塊一:實時鍵盤掃描(2). 功能模塊二:數(shù)據(jù)1602液晶顯示。2、基本要求: (1)、簡要闡述單片機技術(shù)發(fā)展的國內(nèi)外現(xiàn)狀及LED動態(tài)顯示和矩陣鍵盤基本 原理; (2)、掌握MCS-51系列某種產(chǎn)品(例如8051)的最小電路及外圍擴
2、展電路的設(shè) 計方法; (3)、了解單片機數(shù)據(jù)轉(zhuǎn)換功能及工作過程; (4)、完成主要功能模塊的硬件電路設(shè)計及必要的參數(shù)確定; (5)、用protel軟件完成原理電路圖的繪制;II 2對課程設(shè)計成果的要求包括圖表、原理圖、仿真圖等:設(shè)計電路,編寫程序,安裝調(diào)試或仿真,分析實驗結(jié)果,并寫出設(shè)計說明書,語言流暢簡潔,文字不得少于3500字。要求圖紙布局合理,符合工程要求,使用proteus軟件繪出原理圖,器件的選擇要有計算依據(jù)。3主要參考文獻:1 王千. 實用電子電路大全M. 電子工業(yè)出版社, 2004, 28-362 彭為. 單片機典型系統(tǒng)設(shè)計實例精講M. 電子工業(yè)出版社,2 006, 69-883
3、 張榮. 基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn)M. 電子工業(yè)出版社, 2005, 35-384 朱勇. 單片機原理與應(yīng)用技術(shù)M. 清華大學(xué)出版社, 2006, 14-165 潘永雄. 新編單片機原理與應(yīng)用M. 西安電子科技大學(xué)出版社, 2003, 78-8614課程設(shè)計工作進度計劃:序號起 迄 日 期工 作 內(nèi) 容12015.9.5布置任務(wù),教師講解設(shè)計方法及要求22015.9.5-2015.9.9學(xué)生查找閱讀資料,初定方案,小組會議討論并確定方案32015.9.10-2015.9.12硬件電路設(shè)計及程序編寫42015.9.13.2015.9.18仿真、實驗并寫說明書,小組討論52015.9.19答
4、辯主指導(dǎo)教師日期: 2015 年 9 月 20 日1摘要:近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,但僅單片機方面的知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)、軟硬件結(jié)合,來加以完善。計算機在人們的日常生活中是比較常見的電子產(chǎn)品之一??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強大的計算機,基于這樣的理念,本次設(shè)計是用AT89S51單片機、LCD顯示器、控制按鍵為元件來設(shè)計的計算器。利用此設(shè)計熟悉單片機微控制器及C語言編程,對其片資源及各個I/O端口的功能和基本用途的了解。掌握常用的LCD
5、顯示器的使用方法和一般鍵盤的使用方法。關(guān)鍵詞: 單片機; 液晶顯示屏; 計算器; 矩陣鍵盤11 緒論11.1 課題背景11.2 設(shè)計目的22 總體方案設(shè)計22.1 計算器設(shè)計總體思想2 2.2 簡易計算器設(shè)計基本原理32.3 MCS-51系列單片機簡介3 2.4 單片機發(fā)展現(xiàn)狀52.5 計算器系統(tǒng)現(xiàn)狀72.6 簡易計算器系統(tǒng)簡介73 硬件設(shè)計8 3.1 電源模塊83.2 主控制器模塊84 硬件實現(xiàn)及單元電路設(shè)計94.1 主控制模塊94.2 單片機的時鐘電路與復(fù)位電路設(shè)計104.3 單片機管腳說明114.4 鍵盤電路設(shè)計134.5 液晶顯示電路設(shè)計145 系統(tǒng)軟件設(shè)計方案155.1 主程序流圖1
6、6V5.2 運算程序設(shè)計166 PROTEUS軟件仿真與調(diào)試187 系統(tǒng)的安裝與調(diào)試197.1 安裝步驟19結(jié)論21參考文獻22附錄一 整機電路原理圖23附錄二 部分源程序24附錄三 元件清單.42 附錄四 實物圖.43VI1 緒論1.1 課題背景當(dāng)今社會,隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進了家家戶戶,無論是生活或?qū)W習(xí),還是娛樂和消遣幾乎樣樣都離不開電子產(chǎn)品,大型復(fù)雜的計算能力是人腦所不能勝任的,而且比較容易出錯。計算器作為一種快速通用的計算工具方便了用戶的使用。計算器可謂是我們最親密的電子伙伴之一。本設(shè)計著重在于分析計算器軟件和開發(fā)過程中的環(huán)節(jié)和步驟,并從實踐經(jīng)驗出發(fā)對計算器設(shè)計做
7、了詳細的分析和研究。現(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ā)打下良好的基礎(chǔ)。對字符液晶顯示模塊的工作原理,如初始化、清屏、顯示、調(diào)用及外特性有較清楚的認識,并會使用LCD(液晶顯示模塊)實現(xiàn)計算結(jié)果的顯示;掌握液晶顯示模塊的驅(qū)動和編
8、程,設(shè)計LCD和單片機的接口電路,以及利用單片機對液晶顯示模塊的驅(qū)動和操作;在充分分析內(nèi)部邏輯的概念,進行軟件和調(diào)試,學(xué)會使用,并能夠以其為平臺設(shè)計出具有四則運算能力簡易計算器的硬件電路和軟件程序。1.2 設(shè)計目的通過本次工程實踐,運用智能化測量控制儀表原理與設(shè)計、MCS-51系列單片微型計算機及其應(yīng)用所學(xué)知識及查閱相關(guān)資料,完成簡易計算器的設(shè)計,達到理論知識與實踐更好結(jié)合、提高綜合運用所學(xué)知識和設(shè)計能力的目的。通過本次設(shè)計訓(xùn)練,可以使我們在基本思路和基本方法上對基于MCS-51單片機的嵌入式系統(tǒng)設(shè)計有一個比較感性的認識,并具備一定程度的設(shè)計能力。2 總體方案設(shè)計2.1 計算器設(shè)計總體思想根據(jù)
9、功能和指示要求,本系統(tǒng)選用以MCS-51單片機為主控機。通過擴展必要的外圍接口電路,實現(xiàn)對計算器的設(shè)計。具體設(shè)計如下:由于要設(shè)計的是簡單的計算器,可以進行四則運算,為了得到教好的顯示效果,采用LCD顯示數(shù)據(jù)和結(jié)果。另外鍵盤包括數(shù)字鍵(0-9)、符號鍵(+、-、*、/)、清除鍵和等號鍵,故只需要16個按鍵即可,設(shè)計中采用集成的計算機鍵盤。執(zhí)行程序:開機顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過LCD顯示出來,當(dāng)鍵入+、-、*、/運算符,計算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲,并等待再次鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號就會在LCD上輸出運算結(jié)果。2.2 簡易計算器設(shè)計基本原理根據(jù)功能和指示要求,本系統(tǒng)選用以
10、MCS-51單片機為主控機。通過擴展必要的外圍接口電路,實現(xiàn)對計算器的設(shè)計。2.3 MCS-51系列單片機簡介stc89c52是MCS-51系列單片機的典型產(chǎn)品,以這一代表性的機型進行系統(tǒng)的講解。stc89c52單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,其內(nèi)部結(jié)構(gòu)如圖2.1所示,現(xiàn)在分別加以說明: 圖2.1 stc89c52內(nèi)部結(jié)構(gòu)圖中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)
11、協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(RAM):stc89c52內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。程序存儲器(ROM):stc89c52共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時/計數(shù)器:stc89c52有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷,用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:stc89c52共有4組8位I/O口(
12、P0、 P1、P2和P3),用于對外部數(shù)據(jù)的傳輸。全雙工串行口:stc89c52內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):stc89c52具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。時鐘電路:stc89c52內(nèi)置最高頻率達12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但stc89c52單片機需外置振蕩電容。下圖是MCS-51系列單片機的內(nèi)部結(jié)構(gòu)示意圖2.2。圖2.2 MCS-51內(nèi)部結(jié)構(gòu)圖2.4 單片機發(fā)展現(xiàn)狀單片機的發(fā)展趨勢
13、:低功耗CMOS化;微型單片化;主流與多品種共存;單片機從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片機的應(yīng)用提供廣闊的天地。 縱觀單片機的發(fā)展過程,可以預(yù)示單片機的發(fā)展趨勢,大致有:(1) 低功耗CMOS化 MCS-51系列的stc89c52推出時的功耗達630mW,而現(xiàn)在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導(dǎo)體工藝)。象80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然
14、功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于在要求低功耗象電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。 (2)微型單片化現(xiàn)在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據(jù)用戶的要求量身
15、定做,制造出具有自己特色的單片機芯片。 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小。現(xiàn)在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。(3) 主流與多品種共存 現(xiàn)在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的Winbond系列單片機。所以Cstc89c52為核心的單片機占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強勁的發(fā)展勢頭,中國臺灣的HOL
16、TEK公司近年的單片機產(chǎn)量與日俱增,與其低價質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場分額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機。在一定的時 期內(nèi),這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走的是依存互補,相輔相成、共同發(fā)展的道路。2.5 計算器系統(tǒng)現(xiàn)狀計算器一般由運算器、控制器、存儲器、鍵盤、顯示器、電源和一些可選外圍設(shè)備及電子配件通過人工或機器設(shè)備組成。低檔計算器的運算器、控制器由數(shù)字邏輯電路實現(xiàn)簡單的串行運算,其隨機存儲器只有一、二個單元,供累加存儲用。高檔計算器由微處理器和只讀存儲器實現(xiàn)各種復(fù)雜的運算程序,有較多的隨機存儲單元以存放輸入程序和數(shù)據(jù)。鍵盤是計算器的
17、輸入部件,一般采用接觸式或傳感式。為減小計算器的尺寸,一鍵常常有多種功能。顯示器是計算器的輸出部件,有發(fā)光二極管顯示器或液晶顯示器等。除顯示計算結(jié)果外,還常有溢出指示、錯誤指示等。計算器電源采用交流轉(zhuǎn)換器或電池,電池可用交流轉(zhuǎn)換器或太陽能轉(zhuǎn)換器再充電。為節(jié)省電能,計算器都采用CMOS工藝制作的大規(guī)模集成電路(見互補金屬-氧化物-半導(dǎo)體集成電路),并在內(nèi)部裝有定時不操作自動斷電電路。計算器可選用的外圍設(shè)備有微型打印機、盒式磁帶機和磁卡機等。2.6 簡易計算器系統(tǒng)簡介本計算器是以MCS-51系列stc89c52單片機為核心構(gòu)成的簡易計算器系統(tǒng)。該系統(tǒng)通過單片機控制,實現(xiàn)對4*4鍵盤掃描進行實時的按
18、鍵檢測。整個系統(tǒng)可分為2個主要功能模塊:功能模塊一,實時鍵盤掃描;功能模塊二,數(shù)據(jù)1602液晶顯示。3 硬件設(shè)計 硬件系統(tǒng)是指構(gòu)成微機系統(tǒng)的實體和裝置,通常由運算器、控制器、存儲器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機實質(zhì)上是一個硬件的芯片,在實際應(yīng)用中,通常很難直接和被控對象進行電氣連接,必須外加各種擴展接口電路、外部設(shè)備、被控對象等硬件和軟件,才能構(gòu)成一個單片機應(yīng)用系統(tǒng)。本設(shè)計選用以AT89S51單片機為主控單元。顯示部分:采用LCD靜態(tài)顯示。按鍵部分,采用4*4鍵盤。3.1 電源模塊 由于本系統(tǒng)采用電池供電,我們考慮了如下幾種方案為系統(tǒng)供電。方案1:采用5V蓄電池
19、為系統(tǒng)供電。蓄電池具有較強的電流驅(qū)動能力以及穩(wěn)定的電壓輸出性能。但是蓄電池的體積過于龐大,在使用極為不方便。因此我們放棄了此方案。方案2:采用3節(jié)1.5 V干電池共4.5V做電源,經(jīng)過7805的電壓變換后為單片機,傳感器供電。經(jīng)過實驗驗證系統(tǒng)工作時,單片機、傳感器的工作電壓穩(wěn)定能夠滿足系統(tǒng)的要求,而且電池更換方便。綜上所述采用方案23.2 主控制器模塊方案1: 采用可編程邏輯器件CPLD作為控制器。CPLD可以實現(xiàn)各種復(fù)雜的邏輯功能、規(guī)模大、密度高、體積小、穩(wěn)定性高、IO資源豐富、易于進行功能擴展。采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)??刂葡到y(tǒng)的控制核心。但本系統(tǒng)不需要復(fù)
20、雜的邏輯功能,對數(shù)據(jù)的處理速度的要求也不是非常高。且從使用及經(jīng)濟的角度考慮我們放棄了此方案。方案2: 采用STC89C52單片機作為整個系統(tǒng)的核心,用其控制密碼鎖控制,以實現(xiàn)其既定的性能指標(biāo)。充分分析我們的系統(tǒng),其關(guān)鍵在于密碼鎖的控制,而在這一點上,單片機就顯現(xiàn)出來它的優(yōu)勢控制簡單、方便、快捷。這樣一來,單片機就可以充分發(fā)揮其資源豐富、有較為強大的控制功能及可位尋址操作功能、價格低廉等優(yōu)點。STC89C52單片機具有功能強大的位操作指令,I/O口均可按位尋址,程序空間多達8K,對于本設(shè)計也綽綽有余,更可貴的是STC89C52單片機價格非常低廉。因此,這種方案是一種較為理想的方案。從方便使用的角
21、度考慮,我們選擇了方案2。4 硬件實現(xiàn)及單元電路設(shè)計4.1 主控制模塊主控制最小系統(tǒng)電路如圖4.1所示。 圖4.1 單片主控電路4.2 單片機的時鐘電路與復(fù)位電路設(shè)計本系統(tǒng)采用STC系統(tǒng)列單片機,相比其他系列單片機具有很多優(yōu)點。一般STC單片機資源比其他單片機要多,而且執(zhí)行速度快;STC系列單片機使用串口對單片機進行燒寫,下載程序較為方便;STC51單片機內(nèi)部集成了看門狗電路;且具有很強抗干擾能力。本系統(tǒng)采用內(nèi)部方式的時鐘電路和加電自復(fù)位的復(fù)位電路,如下圖4.2圖4.3所示:圖4.2 時鐘電路圖4.3 復(fù)位電路由于單片機P0口內(nèi)部不含上拉電阻,為高阻態(tài),不能正常地輸出高/低電平,因而該組I/O
22、口在使用時必須外接上拉電阻。4.3 單片機管腳說明VCC(40):供電電壓,其工作電壓為5V。GND(20):接地。P0端口(P0.0-P0.7):P0口為一個8位漏極開路雙向I/O口,每個引腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1端口(P1.0-P1.7):P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高電平,可用作輸
23、入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2端口(P2.0-P2.7):P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口,用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程
24、和校驗時接收高八位地址信號和控制信號。P3端口(P3.0-P3.7):P3口管腳是一個帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時,由于外部下拉為低電平,P3口將輸出電流(ILL)。P3口同時為閃爍編程和編程校驗接收一些控制信號。復(fù)位RST(9):復(fù)位輸入。在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腳時,將使單片機復(fù)位,只要這個引腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P3.0-P3.7口均置1,引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變
25、為低電平時,芯片為ROM的00H處開始運行程序。復(fù)位操作不會對內(nèi)部RAM有所影響。ALE/(30):當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如果想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,則置位無效。(29):外部
26、程序存儲器的選通信號。在由外部程序存儲器取指令期間,每個機器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的信號將不出現(xiàn)。EA/VPP(31):當(dāng)保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為RESET;當(dāng)端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V的編程電源(VPP)。XTAL1(19):來自反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2(18):來自反向振蕩器的輸出。4.4 鍵盤電路設(shè)計在單片機應(yīng)用系統(tǒng)中,一般都會設(shè)置鍵盤,主要為了控制運行狀態(tài),輸入一些命令或數(shù)據(jù),
27、以完成特定的人機交互。鍵盤是與單片機進行人機交互的最基本的途徑,其以按鍵的形式來設(shè)置控制功能或輸入數(shù)據(jù),按鍵的輸入狀態(tài)本質(zhì)上是一個開關(guān)量。對于簡單的開關(guān)量的輸入可以采用獨立式按鍵,這種方法接口簡單,但占用單片機I/O端口資源較多。對于輸入?yún)?shù)較多、功能復(fù)雜的系統(tǒng),需要采用矩陣式鍵盤進行輸入控制。本系統(tǒng)采用4*4矩陣式鍵盤,鍵盤連接方式如圖4.4所示:圖4.4 鍵盤電路4.5 液晶顯示電路設(shè)計液晶顯示器(LCD)是一種功耗很低的顯示器,它的使用非常廣泛,比如電子表、計算器、數(shù)碼相機、計算機的顯示器和液晶電視等。電子密碼鎖中需要顯示的信息比較多,為了能直觀的看到結(jié)果,并且為了設(shè)計顯的美觀,使用總線
28、和排阻進行簡化連接方式,本設(shè)計采用液晶顯示屏LCD進行顯示,具體連接方式如圖4.5所示。圖4.5 液晶顯示電路5 系統(tǒng)軟件設(shè)計方案5.1 主程序流圖 如圖5.1為主程序流程圖圖5.1 主程序流程圖5.2 運算程序設(shè)計STC89C52單片機是一塊芯片中集成了CPU、RAM、ROM、定時器、計數(shù)器、和多功能I/O等一臺計算器所需要的基本功能部分。如果按功能劃分,它由如下功能部分組成,即微處理器(CPU)、數(shù)據(jù)處理器(RAM)、程序處理器(ROM/CPROM)、并行I/O口、串行口、定時器、計數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,
29、尤其是特殊一些功能,通過使用單片機編寫的程序可以凸顯高智能、高效率以及高可靠性!因此我們采用單片機作為計算器的主要功能部件,可以很快實現(xiàn)運算功能。計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式,在這種情況下,編程會很簡單,但是會占用到很多的I/O資源,因此在很多情況下都不采用這種方式(如圖11)。但因為實體資源有限不得已而為之,但不會影響其功能。圖5.2 運算程序6 PROTEUS軟件仿真與調(diào)試 圖6.1 計算器的proteus仿真我們運用proteus進行了電路仿真,仿真結(jié)果如圖6.1,這說明程序以及電路沒有錯誤,接下來就可以進行實物的焊接了。7 系統(tǒng)的安裝與調(diào)試7.1
30、安裝步驟檢查元件的好壞按電路圖買好元件后首先檢查買回元件的好壞,按各元件的檢測方法分別進行檢測,一定要仔細認真。而且要認真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現(xiàn)錯誤焊件后不便改正。放置、焊接各元件按原理圖的位置放置各元件,在放置過程中要先放置、焊接較低的元件,后焊較高的和要求較高的元件。特別是容易損壞的元件要后焊,在焊集成芯片時連續(xù)焊接時間不要超過10s,注意芯片的安裝方向。結(jié)論通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。同
31、時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,例如對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,對C語言掌握得不夠好等?;仡櫰鸫舜螁纹瑱C課程設(shè)計,我仍感慨頗多,的確,從選題到定稿,從理論到實踐,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西。使我們在單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。這是一次考驗。怎樣才能找到課堂所學(xué)與實際應(yīng)用的最佳結(jié)合點?怎樣讓自己的業(yè)余更接近專業(yè)?怎樣讓自己的計劃更具有序性,而不會忙無一用?這都是我們所要考慮和努力的。這次課程設(shè)計我學(xué)到很多很多的東西,學(xué)會了怎么樣去制定計
32、劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上沒有學(xué)到過的知識,掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程。在這里真誠地對所有關(guān)心我、幫助我、鼓勵我的老師、同學(xué)、朋友道聲:“謝謝!”參考文獻1 王千. 實用電子電路大全M. 電子工業(yè)出版社, 2004, 28-362 彭為. 單片機典型系統(tǒng)設(shè)計實例精講M. 電子工業(yè)出版社,2 006, 69-883 張榮. 基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn)M. 電子工業(yè)出版社, 2005, 35-384 朱勇. 單片機原理與應(yīng)用技術(shù)M. 清華大學(xué)出版社, 2006, 14-16
33、5 潘永雄. 新編單片機原理與應(yīng)用M. 西安電子科技大學(xué)出版社, 2003, 78-86附錄1 整機電路原理圖附錄2 部分源程序#include<reg52.h>#include<stdio.h>#include<string.h>#include<lcd1602.h>#include<stdlib.h>#define uint unsigned int#define uchar unsigned charsbit batt = P35;float num1; / 保存第一個數(shù)float num2; / 保存第二個數(shù)uchar jjc
34、c; / 加減乘除標(biāo)志變量uchar idata Lcd_Str17; / 顯示區(qū)緩存uchar idata Num_str17; uchar Lcd_num2_add = 0;/ 第二個數(shù)據(jù)開始位的增量uchar Lcd_dis1_i = 0; / 記錄顯示第一行字符uchar Lcd_num1_i = 0; / 記錄num1 是幾位數(shù)uchar Lcd_num2_i = 0; / 記錄num2 是幾位數(shù)uchar Dian_i = 0; / 小數(shù)點位數(shù)/* *函數(shù)名稱:delayms;函數(shù)功能:延時z毫秒;形 參:z (延時時間參數(shù)) */void delayms(uchar z) uin
35、t x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);uchar Key_io; / 暫存IO值uchar Key_jl; / 松手檢測自鎖變量uchar Key_value; / 返回鍵值uchar Key_D_bit;uchar saom(void) Key_value=18; P2=0xf0; / 拉低低四位 Key_io=P2; if(Key_io!=0xf0) / 查看高四位是否有低電平 Key_io|=0x0f; / 保持高四位出現(xiàn)低電平的管腳,拉高第四位 P2=Key_io; / 重新復(fù)制IO口 Key_io=P2; / 讀取IO信息,確定
36、鍵值 if(Key_jl=0) / 自鎖變量,松手檢測 Key_jl=1; switch(Key_io) case 0x7e: Key_value=1; break ; case 0x7d: Key_value=2; break ; case 0x7b: Key_value=3; break ; case 0x77: Key_value=12; break ; case 0xbe: Key_value=4; break ; case 0xbd: Key_value=5; break ; case 0xbb: Key_value=6; break ; case 0xb7: Key_value=1
37、3; break ; case 0xde: Key_value=7; break ; case 0xdd: Key_value=8; break ; case 0xdb: Key_value=9; break ; case 0xd7: Key_value=14; break ; case 0xee: Key_value=10; break ; case 0xed: Key_value=0; break ; case 0xeb: Key_value=11; break ; case 0xe7: Key_value=15; break ; else Key_jl=0; Key_io = P3; /
38、 獨立按鍵掃描 Key_io&=0xc0; if(Key_io!=0xc0) if(Key_D_bit=0) Key_D_bit = 1;switch(Key_io) case 0x80: Key_value = 16; break; case 0x40: Key_value = 17; break; else Key_D_bit = 0; return Key_value;uchar XS_JG(uchar add,float n) uchar len,p=0; memset(Lcd_Str,0,16) ; sprintf(Lcd_Str,"%e",n) ; wh
39、ile(Lcd_Strp!='e') p+; if(Lcd_Strp+2=0x30&&Lcd_Strp+3<0x37) sprintf(Lcd_Str,"%f",n); len = strlen(Lcd_Str) ; while(len) if(Lcd_Strlen-1='.') Lcd_Strlen-1 = 0; break; if(Lcd_Strlen-1='0') / 去除數(shù)據(jù)中多余的0與小數(shù)點 Lcd_Strlen-1 = 0; else break; len-; else while(p) if
40、(Lcd_Strp-1='.') Lcd_Strp-1 =' ' break; if(Lcd_Strp-1='0') / 去除數(shù)據(jù)中多余的0與小數(shù)點 Lcd_Strp-1 = ' ' else break; p-; Dis_str(add," "); Dis_str(add,Lcd_Str); return len;void fuhao(uchar s) if(jjcc<5) if(Num_str0!='A') if(Num_str0<=0x39&&Num_str0&
41、gt;=0x30&&jjcc != 2) num1=atof(Num_str); / 從數(shù)組中取第二個數(shù)字/ XS_JG(0x8a,num1); if(jjcc=0) Num_strLcd_dis1_i = s ; Lcd_dis1_i+;Lcd_num2_add = Lcd_dis1_i ; else if(Num_strLcd_num2_add=0) Num_strLcd_dis1_i-1 = s ; Dis_str(0x80,Num_str); if(jjcc=5) Lcd_dis1_i = 4 ; Lcd_num2_i = 0 ; Lcd_num2_add = 4; m
42、emset(Num_str,0,16); Num_str0 = 'A' Num_str1 = 'n' Num_str2 = 's' Num_str3 = s; Dis_str(0x80," "); Dis_str(0x80,Num_str); void main(void) uchar num_key1; init_1602(); write_1602dat('0'); memset(Num_str,0, 16); while(1) num_key1=saom(); /讀按鍵值 delayms(10); if(
43、num_key1<18)/是否有按鍵按下,小于16時有按鍵按下 batt = 0; delayms(30);batt = 1; switch(num_key1) case 11: if(Num_strLcd_num2_add<=0x39&&Num_strLcd_num2_add>=0x30) num2=atof(Num_str+Lcd_num2_add); / 從數(shù)組中取第二個數(shù)字 Else break; Lcd_num2_i=0 ;/ XS_JG(0x8a,num2); switch(jjcc) case 1: num1+=num2; / 加 break;
44、case 2: num1-=num2; / 減 break; case 3: num1*=num2; / 乘 break; case 4: num1/=num2; / 除 break; XS_JG(0xc0,num1); Dis_str(0x80+Lcd_dis1_i,"="); jjcc=5; / 等號標(biāo)志 break;case 12: if(Num_str0=0|Lcd_num2_i>0) break; fuhao('+'); jjcc=1;Dian_i=0 ; break; / 按下加號鍵case 13: if(Num_str0=0|Lcd_num2_i>0) break; fuhao('-'); jjcc=2;Dian_i=0 ; break; / 按下減號鍵case 14: if(Num_str0=0|Lcd_num2_i>0) break; fuhao('*'); jjcc=3;Dian_i=0 ; break; / 按下乘號鍵case 15: if(Num_str0=0|Lcd_num2_i>0) break; fuhao('/'); jjcc=4;Dian_i=0 ; break; /
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 歷史街區(qū)石材裝修配送協(xié)議
- 親子酒店裝修項目合同
- 校園裝修合同樣本-@-1
- 鎮(zhèn)江彩鋼瓦防腐施工方案
- 木材加工配送合同模板
- 化工原料特種運輸協(xié)議
- 2025年度網(wǎng)絡(luò)安全技術(shù)顧問聘用協(xié)議
- 國際旅游業(yè)務(wù)居間協(xié)議
- 魚塘合作管理方案
- 象山消防通風(fēng)排煙施工方案
- 徐金桂行政法與行政訴訟法新講義
- 瀝青拌合設(shè)備結(jié)構(gòu)認知
- GB/T 13234-2018用能單位節(jié)能量計算方法
- (課件)肝性腦病
- 北師大版五年級上冊數(shù)學(xué)教學(xué)課件第5課時 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請書
- 高考物理二輪專題課件:“配速法”解決擺線問題
- 檢驗科生物安全風(fēng)險評估報告
- 京頤得移動門診產(chǎn)品輸液
- 如何做一名合格的帶教老師PPT精選文檔
評論
0/150
提交評論