




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、xxxxxxxxxxxxxxx畢業(yè)設(shè)計 題目 基于單片機簡單計算器設(shè)計 選題性質(zhì):þ設(shè)計報告其他 院 系 電子工程學(xué)院專 業(yè) 計算機控制技術(shù) 班 級 xxxxxxxxxxxxxxx 學(xué) 號 xxxxxxxxxx 學(xué)生姓名 xxxxxxxxxxxxxxx 指導(dǎo)教師 xxxxxxxxxxxxxxx教務(wù)處制2014年 月 日24摘 要近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本任務(wù)是個簡易的兩位數(shù)的四則運算
2、,程序都是根據(jù)教材內(nèi)和網(wǎng)絡(luò)中的程序參考編寫而成,在功能上還并不完善,限制也較多。本任務(wù)重在設(shè)計構(gòu)思與團(tuán)隊合作,使得我們用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。關(guān)鍵字:單片機、計算器、范圍、加減乘除目 錄摘 要I目 錄II緒 論1第1章 計算器的設(shè)計21.1 任務(wù)內(nèi)容21.2 任務(wù)分析2第2章 Protues軟件與Keil uVision的結(jié)合42.1 Proteus與Keil介紹42.2.1 Proteus42.1.2 Keil42.2 proteus的工作過程52.3 Proteus軟件所提供的調(diào)試手段5第3章 芯片簡介73.1 MSC-51芯片簡介73.2 MCS-51的引腳說明
3、:9第4章 系統(tǒng)硬件設(shè)計124.1 數(shù)碼管顯示124.2 矩陣按鍵124.3 計算器硬件電路設(shè)計134.4 系統(tǒng)框圖134.4.1 系統(tǒng)總框圖134.4.2 計算器硬件線路圖144.5 系統(tǒng)工作原理15第5章 計算器程序設(shè)計165.1 存儲單元分配165.2 主程序設(shè)計165.3 數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序CONV165.4 數(shù)碼管動態(tài)顯示子程序16總 結(jié)18參考文獻(xiàn)19附 錄20緒 論說起計算器,值得我們驕傲的是,最早的計算工具誕生在中國。中國古代最早采用的一種計算工具叫籌策,又被叫做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當(dāng)材料的。約二百七十枚一束,放在布袋里可隨身攜帶。直到今天仍在使
4、用的珠算盤,是中國古代計算工具領(lǐng)域中的另一項發(fā)明,明代時的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎相同。17世紀(jì)初,西方國家的計算工具有了較大的發(fā)展,英國數(shù)學(xué)家納皮爾發(fā)明的"納皮爾算籌",英國牧師奧卻德發(fā)明了圓柱型對數(shù)計算尺,這種計算尺不僅能做加減乘除、乘方、開方運算,甚至可以計算三角函數(shù),指數(shù)函數(shù)和對數(shù)函數(shù),這些計算工具不僅帶動了計算器的發(fā)展,也為現(xiàn)代計算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會應(yīng)用廣泛的計算工具。第1章 計算器的設(shè)計1.1 任務(wù)內(nèi)容本系統(tǒng)就是充分利用了8051芯片的I/O引腳。系統(tǒng)以采用MCS-51系列單片機Intel8051為中心器件來設(shè)計計算器控制器,實現(xiàn)了能根據(jù)實
5、際輸入值顯示并存儲的功能,計算程序則是參照教材。至于位數(shù)和功能,如果有需要可以通過設(shè)計擴充原系統(tǒng)來實現(xiàn) 。具體設(shè)計如下:(1)由于要設(shè)計的是簡單的計算器,可以進(jìn)行四則運算,為了得到教好的顯示效果,采用LCD顯示數(shù)據(jù)和結(jié)果。(2)另外鍵盤包括數(shù)字鍵(0-9)、符號鍵(+、-、*、/)、等號鍵,故只需要16個按鍵即可,設(shè)計中采用手焊接的4*4矩陣鍵盤。(3)執(zhí)行程序:開機顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過LCD顯示出來,當(dāng)鍵入+、-、*、/運算符,計算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲,并等待再次鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號就會在LCD上輸出運算結(jié)果。本計算器是以MCS-51系列8051單片機為
6、核心構(gòu)成的簡易計算器系統(tǒng)。該系統(tǒng)通過單片機控制,實現(xiàn)對4*4鍵盤掃描進(jìn)行實時的按鍵檢測,并把檢測數(shù)據(jù)存儲下來。整個計算器系統(tǒng)的工作過程為:首先存儲單元初始化,顯示初始值和鍵盤掃描,判斷按鍵位置,查表得出按鍵值,單片機則對數(shù)據(jù)進(jìn)行儲存與相應(yīng)處理轉(zhuǎn)換,之后送入LED顯示器動態(tài)顯示。整個系統(tǒng)可分為三個主要功能模塊:功能模塊一,實時鍵盤掃描;功能模塊二,數(shù)據(jù)轉(zhuǎn)換成顯示器顯示;功能模塊三,顯示器動態(tài)顯示。1.2 任務(wù)分析在本次課程設(shè)計中,主要完成如下方面的設(shè)計任務(wù):(1)簡要闡述單片機技術(shù)發(fā)展的國內(nèi)外現(xiàn)狀及LED動態(tài)顯示和矩陣鍵盤基本原理;(2)掌握51系列某種產(chǎn)品的最小電路及外圍擴展電路的設(shè)計方法;(
7、3)了解單片機數(shù)據(jù)轉(zhuǎn)換功能及工作過程;(4)完成主要功能模塊的硬件電路設(shè)計及必要的參數(shù)確定;(5)用proteus軟件完成原理電路圖的繪制;通過本次課題設(shè)計,應(yīng)用單片機應(yīng)用基礎(chǔ)、計算機應(yīng)用基礎(chǔ)等所學(xué)相關(guān)知識及查閱資料,完成簡易計算器的設(shè)計,以達(dá)到理論與實踐更好的結(jié)合、進(jìn)一步提高綜合運用所學(xué)知識和設(shè)計的能力的目的。第2章 Protues軟件與Keil uVision的結(jié)合2.1 Proteus與Keil介紹2.2.1 ProteusProteus是一種電子設(shè)計自動化軟件,提供SchematicDrawing,Spice仿真與PCB設(shè)計功能,這一點Proteus與Multisim比較類似,只不過P
8、roteus可以仿真單片機和周邊設(shè)備,還可以仿真51系列、AVR,PIC等常用的MCU。與Keil和Mplab不同的是它還提供了周邊設(shè)備的仿真,只要給出電路圖就可以仿真,例如74系列、40系列、LED、示波器、邏輯分析儀等各種常用的元器件及測試設(shè)備;Proteus還提供了大量的元件庫,有RAM,ROM,鍵盤、馬達(dá)、LED,LCD,AD/DA,部分SPI器件、部分IIC器件等;編譯方面支持Keil和Mplab,里面附帶有大量的參考實例:5(1) Proteus可提供的仿真元件資源Proteus軟件提供了可仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,達(dá)30多個元件庫。(2) Proteus可提供的仿
9、真儀表資源虛擬儀器儀表的數(shù)量、類型和質(zhì)量,是衡量仿真軟件實驗室是否合格的一個關(guān)鍵因素。在Proteus軟件中,理論上同一種儀器可以在一個電路中隨意調(diào)用。除了現(xiàn)實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結(jié)果的影響。(3) Proteus可提供的調(diào)試手段Proteus提供了比較豐富的測試信號用于電路的測試,這些測試信號包括模擬信號和數(shù)字信號。2.1.2 KeilKeil軟件是德國開發(fā)的一個51單片機開發(fā)
10、軟件平臺,最初只是一個支持C語言和匯編語言的編譯器軟件。后來隨著開發(fā)人員的不斷努力地改進(jìn)以及版本的不斷升級,現(xiàn)在已經(jīng)成為一個重要的單片機開發(fā)平臺。不過Keil的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師開發(fā)的優(yōu)秀程序都是在Keil的平臺上編寫出來的??梢哉f它在EDA領(lǐng)域是一個比較重要的軟件。(1)Keil的uVision2可以進(jìn)行純粹的軟件仿真(仿真軟件程序,不接硬件電路);也可以利用硬件仿真器,搭接上單片機硬件系統(tǒng),在仿真器中載入項目程序后進(jìn)行實時仿真;還可以使用uVision2的內(nèi)嵌模塊Keil Monitor 51,在不需要額外的硬件仿真器的條件下,搭接單片機硬件系統(tǒng)對項目程序進(jìn)
11、行實時仿真。(2)uVision2調(diào)試器具備所有常規(guī)源及調(diào)試,符號調(diào)試特性以及歷史跟蹤、代碼覆蓋、復(fù)雜斷點等功能。DDE界面和shift語言支持自動程序測試。對于初次使用 Protues 軟件的人可能還不知道如何設(shè)置,現(xiàn)在把設(shè)置步驟如下:(1)把Proteus安裝目錄下VDM51.dll文件復(fù)制到 Keil 安裝目錄的 C51BIN目錄中;(2)編輯C51tools.ini文件加入:TDRV1=BINVDM51.DLL("PROTEUS VSM MONITOR-51 DRIVER");(3)Keil uVision 里 設(shè) 置:project->options for
12、project->debug tab;(4)選中 use Proteus VSM monitor 51( 如果想用兩臺電腦仿真,雙擊 setting,輸入 IP 地址 或者 DNS name);(5)載入 Proteus 文件;(6)Proteus 里選擇 DEBUG->use remote debug monitor;進(jìn)入 KEIL 的 project 菜單 option for target '工程名'。在 DEBUG 選項中右欄上 部的下拉菜選中Proteus VSMMonitor-51Driver。在進(jìn)入 seting,如果同一臺機IP名為127.0.0.1
13、,如不是同一臺機則填另一臺的IP地址。端口號一定為 8000 注意:可以在一臺機器上運行 keil,另一臺中運行Proteus 進(jìn)行遠(yuǎn)程仿真;(7)打開KEIL uVision,按F5開始仿真。2.2 proteus的工作過程運行 Proteus 的 ISIS 程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置 view菜單下的捕捉對齊和system下的顏色、圖形界面大小等項目。通過工具欄中的 p(從庫中選擇元件命令)命令,在 pick devices 窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設(shè)置,元器件間連線,編寫程序;在 source 菜單的 Define code ge
14、neration tools 菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在 source菜單的 Add/remove source files 命令下,加入單片機硬件電路的對應(yīng)程序;通過 debug 菜單的相應(yīng)命令仿真程序和電路的運行情況。2.3 Proteus軟件所提供的調(diào)試手段Proteus 提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。對于單片機硬件電路和軟件的調(diào)試,Proteus 提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對軟件的分步調(diào)試以及具體的執(zhí)行情況。對于總體執(zhí)行效果的調(diào)試方法,只需要執(zhí)行 debug 菜單下的 execute 菜單項或
15、 F12 快捷鍵啟動執(zhí)行,用 debug 菜單下的pause animation 菜單項或 pause 鍵暫停系統(tǒng)的運行;或用Debug 菜單下的 stop animation 菜單項或 shift-break 組合鍵停止系統(tǒng)的運行。其運行方式也可以選擇工具欄中的相應(yīng)工具進(jìn)行。對于軟件的分步調(diào)試,應(yīng)先執(zhí)行 debug 菜單下的start/restart debugging 菜單項命令,此時可以選擇 stepover、step into 和 step out 命令執(zhí)行程序(可以用快捷鍵F10、F11 和 ctrl+F11),執(zhí)行的效果是單句執(zhí)行、進(jìn)入子程序執(zhí)行和跳出子程序執(zhí)行。在執(zhí)行了 star
16、t / restart debuging命令后,在 debug 菜單的下面要出現(xiàn)仿真中所涉及到的軟件列表和單片機的系統(tǒng)資源等,可供調(diào)試時分析和查看。第3章 芯片簡介3.1 MSC-51芯片簡介(1)MCS-51單片機內(nèi)部結(jié)構(gòu):8051是MCS-51系列單片機的典型產(chǎn)品,我們以這一代表性的機型進(jìn)行系統(tǒng)的講解。8051單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。8051單片機內(nèi)部結(jié)構(gòu)如圖3.1所示。(2)中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,
17、能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。(3)數(shù)據(jù)存儲器(RAM)8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。圖3.1 8051內(nèi)部結(jié)構(gòu)(4)程序存儲器(ROM):8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。(5)定時/計數(shù)器(ROM):8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計
18、數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。(6)并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。(7)全雙工串行口:8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。(8)中斷系統(tǒng):8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。(9)時鐘電路:8051內(nèi)置最高頻率達(dá)12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。單片機的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)
19、存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機則采用普林斯頓結(jié)構(gòu)。圖3.2是MCS-51系列單片機的內(nèi)部結(jié)構(gòu)示意圖。圖3.2 MCS-51系列單片機的內(nèi)部結(jié)構(gòu)3.2 MCS-51的引腳說明:MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口
20、,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明,MCS-51系列單片機引腳如圖3.2所示。 圖3.3 MCS-51系列單片機引腳的功能Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動復(fù)位,也可以是手
21、動復(fù)位,如如3.4和圖3.5所示。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不丟失。圖3.4 復(fù)位方式圖3.5 時鐘源Pin30:ALE/PROG當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當(dāng)作一個時鐘向外輸出。更有一個特點,當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。如果單片機是EPROM,在編程其間,PROG將用于輸入編程脈沖。Pin29:PESN當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC
22、的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。在編程時,EA/Vpp腳還需加上21V的編程電壓。第4章 系統(tǒng)硬件設(shè)計4.1 數(shù)碼管顯示在本任務(wù)中用4位數(shù)碼管顯示當(dāng)前數(shù)值的千,百,十,個,由于數(shù)碼管個數(shù)多,如采用靜態(tài)顯示方式,則占
23、用單片機的I/O口線太多,如果用定時器/計數(shù)器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,則電路復(fù)雜。所以,在數(shù)碼管個數(shù)較多時,常采用動態(tài)顯示方式。如圖4.1所示為單片機應(yīng)用系統(tǒng)中的一種數(shù)碼管動態(tài)顯示電路圖,4位數(shù)碼管的相同段并聯(lián)在一起,由一個8位I/O(P1口)輸出字形碼控制顯示某一字形,每個數(shù)碼管的公共端由另外一個I/O口(P0口)輸出的字位碼控制,即數(shù)碼管顯示的字形是由單片機I/O口輸出的字形碼確定,而哪個數(shù)碼管點亮是由單片機I/O口輸出的字位碼確定的。4個數(shù)碼管分時輪流循環(huán)點亮,在同一時刻只有1個數(shù)碼管點亮,但由于數(shù)碼管具有余輝特性及人眼具有視覺暫留特性,所以
24、適當(dāng)?shù)剡x取循環(huán)掃描頻率,看上去所有數(shù)碼管是同時點亮的,察覺不出閃爍現(xiàn)象。動態(tài)顯示方式所接數(shù)碼管不能太多,否則會因每個數(shù)碼管所分配的實際導(dǎo)通時間太少,使得數(shù)碼管的亮度不足。在本任務(wù)中,為了簡便,字形碼和字位碼都沒由加驅(qū)動電路,在實際應(yīng)用中應(yīng)加驅(qū)動電路。數(shù)碼管有共陰極和共陽極兩種,對于共陽數(shù)碼管,字形驅(qū)動輸出0有效,字位驅(qū)動輸出1有效;而對于共陰數(shù)碼管則相反,即:字形驅(qū)動輸出1有效,字位驅(qū)動輸出0有效。4.2 矩陣按鍵鍵盤是單片機系統(tǒng)中最常用的人機對話輸入設(shè)備,用戶通過鍵盤向單片機輸入數(shù)據(jù)或指令。鍵盤控制程序需完成的任務(wù)有:監(jiān)測是否有鍵按下,有鍵按下時,在無硬件去抖的動電路時,應(yīng)用軟件延時方法消除
25、按鍵抖動影響;當(dāng)有多個鍵同時按下時,只處理一個按鍵,不管一次按鍵持續(xù)多長時間,僅執(zhí)行一次按鍵功能程序。矩陣按鍵掃描程序是一種節(jié)省IO口的方法,按鍵數(shù)目越多節(jié)省IO口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下。但是,在程序的寫法上,采用了最簡單的方法,使得程序效率最高。本程序中,如果檢測到某鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數(shù)需要,又能節(jié)省大量的CPU時間。本鍵盤掃描程序的優(yōu)點在于:不用專門的按鍵延時程序,提高了CPU效率,也不用中斷來掃描鍵盤,節(jié)省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU時最短,不論有鍵按下或者無鍵按下都可以在很
26、短的時間完成一次掃描。本鍵盤掃描子程序名叫key,每次要掃描時用lcall key調(diào)用即可。4.3 計算器硬件電路設(shè)計8051單片機的P2口作鍵盤口,其中P2.4-P2.7為鍵盤掃描輸出線,P2.0-P2.3為鍵盤掃描輸入線。鍵盤由4*4共16個按鍵組成,10個數(shù)字鍵(由0-9組成)5個運算符號(加減乘除等于)組成,1個清除鍵(作用相當(dāng)于整體復(fù)位)。4個數(shù)碼管用于顯示當(dāng)前數(shù)值的千,百,十,個,采用動態(tài)顯示方式,P1口接4個數(shù)碼管的七段,P0口分別接4個數(shù)碼管的公共端,P1口輸出數(shù)碼管的字形碼,P0口輸出數(shù)碼管的字位碼。4.4 系統(tǒng)框圖選用設(shè)備8051單片機一片選用設(shè)備:8051彈片機一片,4*
27、4鍵盤一個,4位共陽極的七段數(shù)碼管一個,連線若干。4.4.1 系統(tǒng)總框圖系統(tǒng)總框圖主要分為鍵盤掃描、數(shù)據(jù)運算、數(shù)據(jù)存儲以及計算結(jié)果的顯示幾部分,系統(tǒng)總框圖如圖4.1所示。圖4.1 系統(tǒng)總框圖4.4.2 計算器硬件線路圖計算器硬件主要由三部分構(gòu)成,它們分別是:數(shù)碼管、8051單片機、矩陣建盤。將編制好的程序燒寫到單片機中就可以實現(xiàn)簡單的數(shù)學(xué)運算了。計算器硬件線路圖如圖4.2所示。圖4.2 計算器硬件線路圖4.5 系統(tǒng)工作原理(1)首先賦予顯示緩沖初始值00 00,并把數(shù)據(jù)存儲單元清零。(2)主程序調(diào)用鍵盤掃描子程序,判斷鍵值,是數(shù)字第一次直接賦予23H單元,如是第二次輸入數(shù)字,則把第一次值乘十后
28、與第二次值相加,結(jié)果存儲到23H單元,并R4計數(shù)2次,表示已輸入兩位,掃描鍵值時就不在賦值和顯示。等待運算符號的按下,按下等于號就直接與零計算并顯示,如加減乘除就R5加一 并把R4清零,表示可以輸入下一操作數(shù),與第一次相同,并等待等于鍵按下。清零鍵則不管在任何情況下都清零,相當(dāng)與軟復(fù)位。(3)在掃描完鍵盤后,調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,并選擇,由于本任務(wù)是兩位四則運算,只有乘法中結(jié)果會超出FFH的范圍,在此就是選擇處理方式,超出范圍則跳過數(shù)據(jù)顯示轉(zhuǎn)換子程序,未超出則調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,兩種選擇都是要把值轉(zhuǎn)換為七段碼。(4)調(diào)用數(shù)碼管動態(tài)顯示子程序,顯示數(shù)值,重新循環(huán)。第5章 計算器程序設(shè)計5.
29、1 存儲單元分配30H單元:數(shù)值個位顯示單元;31H單元:數(shù)值十位顯示單元;32H單元:數(shù)值百位顯示單元;33H單元:數(shù)值千位顯示單元;23H單元:第一操作數(shù)存儲單元;24H單元:第二操作數(shù)存儲單元;25H單元:鍵值暫存單元;27H單元:清除鍵狀態(tài);34H-37H單元:結(jié)果數(shù)據(jù)轉(zhuǎn)換暫存單元;38H-39H單元:結(jié)果高低8位暫存單元;R5單元:操作數(shù)計數(shù)單元;R4單元:操作數(shù)數(shù)值位數(shù)計數(shù)單元;R3單元:運算符號存儲單元。5.2 主程序設(shè)計主程序進(jìn)行程序中用到的一些存儲單元的初始化,數(shù)值顯示和4*4鍵盤掃描。首先,進(jìn)行存儲單元初始化,給數(shù)碼管顯示單元30H-33H賦予“0000”字形數(shù)據(jù),將數(shù)值計
30、數(shù)單元,存儲單元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,賦予初值零。之后,調(diào)用鍵盤掃描子程序,和數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換程序,數(shù)碼管動態(tài)顯示子程序。主程序不斷進(jìn)行鍵盤掃描,數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序和動態(tài)顯示子程序。5.3 數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序CONV由于數(shù)值單元存放的是二進(jìn)制數(shù),而用戶熟悉的是十進(jìn)制數(shù),所以應(yīng)將數(shù)值單元中的二進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù),即BCD碼。要通過數(shù)碼管顯示出當(dāng)前數(shù)值,還必須將BCD碼進(jìn)一步轉(zhuǎn)換為七段碼,轉(zhuǎn)換的最終結(jié)果數(shù)據(jù)存放于顯示緩沖區(qū)30H-33H單元中,其中30H單元存放數(shù)值的個位七段碼,31H單元存放數(shù)值的十位七段碼,32H單元存放數(shù)值的百
31、位七段碼,33H單元存放數(shù)值的千位七段碼。5.4 數(shù)碼管動態(tài)顯示子程序本任務(wù)由P1口輸出字形碼,P0口輸出字位碼。先將存放于30H單元的數(shù)值個位七段碼由P1口輸出,同時P0口輸出使數(shù)值個位顯示數(shù)碼管點亮的字位碼。由于采用的是共陽數(shù)碼管,所以只有該位數(shù)碼管對應(yīng)的P0.0為1,其他位P0.1-P0.3位0,點亮延時10MS。然后P1口輸出數(shù)值十位七段碼,P0.1位1,數(shù)值十位數(shù)碼管點亮,延時10MS。接著P1口輸出數(shù)值百位七段碼,P0.2為1,數(shù)值百位數(shù)碼管點亮,延時10MS。最后P1口輸出數(shù)值千位七段碼,P0.3為1,數(shù)值千位數(shù)碼管點亮,延時10MS???結(jié)本系統(tǒng)就是充分利用了8051芯片的I/
32、O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機Intel8051為中心器件來設(shè)計計算器控制器,實現(xiàn)了能根據(jù)實際輸入值顯示并存儲,計算程序則是參照教材。至于位數(shù)和功能,如果有需要可以設(shè)計擴充原系統(tǒng)來實現(xiàn) 。通過這次畢業(yè)設(shè)計,使我們得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我們在單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。參考文獻(xiàn)1張義輝,李家慶主編·單片機系統(tǒng)綜合訓(xùn)練指導(dǎo)書·重慶科技學(xué)院2張毅剛主編·單片機原理及應(yīng)用·北京
33、3;高等教育出版社·20053胡文金主編·單片機系統(tǒng)實訓(xùn)教程·重慶·重慶大學(xué)出版社·20054胡文金,鐘秉翔主編·單片機應(yīng)用技術(shù)實訓(xùn)教程·重慶大學(xué)出版社·20055劉守義,鐘蘇主編·數(shù)字電子技術(shù)·西安電子科技大學(xué)出版社·20016戴佳,戴衛(wèi)恒主編·51單片機C語言應(yīng)用程序設(shè)計實例精講·電子工業(yè)出版社·20067楊加國,蕫秀成主編·單片機原理與應(yīng)用及C51程序設(shè)計·清華大學(xué)出版社·20088龔沛曾,陸慰民,楊志強主編·
34、Visual Basic程序設(shè)計簡明教程·高等教育出版社·2006附 錄部分源程序;顯示緩沖區(qū)首地址定義DISPBUF EQU 30H;主程序的入口地址 ORG 0000H;4個數(shù)碼管顯示“0000”字形數(shù)據(jù) START:MOV DISPBUF,#0C0HMOV DISPBUF+1,#0C0HMOV DISPBUF+2,#0C0HMOV DISPBUF+3,#0C0HMOV 37H,#00H ;數(shù)值初始化MOV 27H,#00HMOV 26H,#00HMOV 25H,#00HMOV 24H,#00HMOV 23H,#00HMOV R3,#00HMOV R5,#00HMOV
35、R4,#00H;調(diào)用鍵盤掃描子程序LOOP: LCALL KEY MOV R6,27HCJNE R6,#00H,START ;清除鍵判斷MOV R6,26H;顯示數(shù)據(jù)轉(zhuǎn)換子程序選擇CJNE R6,#00H,FA ;調(diào)用數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序LCALL CONV;調(diào)用數(shù)碼管動態(tài)顯示子程序FA:LCALL DISPSCANSJMP LOOPKEY:MOV P2,#0FH ;鍵盤掃描子程序 MOV A,P2ANL A,#0FHCJNE A,#0FH,K10RETK10:JB P2.0,K20K11:MOV P2,#0EFHJB P2.0,K12CJNE R5,#00H,L1MOV R4,#00HINC R5MOV R3,#1HL1:LJMP CENDK12: MOV P2,#0DFHJB P
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生談戀愛利大于弊VS大學(xué)生談戀愛弊大于利辯論賽正方辯詞一辯發(fā)言稿模版
- 幼兒園第一學(xué)期大班家長會發(fā)言稿模版
- 煉鐵廠安全科七月份安全工作總結(jié)模版
- 《觀察兒童》讀書心得體會模版
- 學(xué)習(xí)憲法心得體會模版
- 2023年全國“安全生產(chǎn)月”知識競賽試題含參考答案
- 山東省廣饒縣2025屆初三下學(xué)期期中考試(生物試題文)試題含解析
- 南京特殊教育師范學(xué)院《煤田地質(zhì)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 農(nóng)村教育與農(nóng)業(yè)技術(shù)推廣合作協(xié)議
- 吉林省吉林市吉林地區(qū)普通高中友好學(xué)校聯(lián)合體第三十一屆2025年高三下第一次診斷考試生物試題含解析
- 2024年韶關(guān)市始興縣事業(yè)單位招聘工作人員筆試真題
- 2025-2030中國風(fēng)電齒輪箱行業(yè)投資策略與可持續(xù)發(fā)展建議研究報告
- 盡職調(diào)查專項法律服務(wù)合同
- 戶內(nèi)穿線合同協(xié)議
- 第18課《井岡翠竹》課件-統(tǒng)編版語文七年級下冊
- 2025年小學(xué)勞動技能大賽實施方案
- 2025年春《形勢與政策》大作業(yè):怎樣正確理解全過程人民民主的歷史邏輯、實踐邏輯與理論邏輯?與國家開放大學(xué)形勢與政策章節(jié)測試題【附答案】
- 中藥炮制技藝與藥效關(guān)系
- 甘肅民族師范學(xué)院招聘工作人員考試真題2024
- 藥學(xué)創(chuàng)新創(chuàng)業(yè)項目
- 大數(shù)據(jù)在汽車行業(yè)的創(chuàng)新應(yīng)用研究
評論
0/150
提交評論