基于單片機(jī)簡(jiǎn)單計(jì)算器設(shè)計(jì)_第1頁(yè)
基于單片機(jī)簡(jiǎn)單計(jì)算器設(shè)計(jì)_第2頁(yè)
基于單片機(jī)簡(jiǎn)單計(jì)算器設(shè)計(jì)_第3頁(yè)
基于單片機(jī)簡(jiǎn)單計(jì)算器設(shè)計(jì)_第4頁(yè)
基于單片機(jī)簡(jiǎn)單計(jì)算器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、xxxxxxxxxxxxxxx畢業(yè)設(shè)計(jì) 題目 基于單片機(jī)簡(jiǎn)單計(jì)算器設(shè)計(jì) 選題性質(zhì):þ設(shè)計(jì)報(bào)告其他 院 系 電子工程學(xué)院專 業(yè) 計(jì)算機(jī)控制技術(shù) 班 級(jí) xxxxxxxxxxxxxxx 學(xué) 號(hào) xxxxxxxxxx 學(xué)生姓名 xxxxxxxxxxxxxxx 指導(dǎo)教師 xxxxxxxxxxxxxxx教務(wù)處制2014年 月 日24摘 要近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本任務(wù)是個(gè)簡(jiǎn)易的兩位數(shù)的四則運(yùn)算

2、,程序都是根據(jù)教材內(nèi)和網(wǎng)絡(luò)中的程序參考編寫而成,在功能上還并不完善,限制也較多。本任務(wù)重在設(shè)計(jì)構(gòu)思與團(tuán)隊(duì)合作,使得我們用專業(yè)知識(shí)、專業(yè)技能分析和解決問(wèn)題全面系統(tǒng)的鍛煉。關(guān)鍵字:?jiǎn)纹瑱C(jī)、計(jì)算器、范圍、加減乘除目 錄摘 要I目 錄II緒 論1第1章 計(jì)算器的設(shè)計(jì)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的工作過(guò)程52.3 Proteus軟件所提供的調(diào)試手段5第3章 芯片簡(jiǎn)介73.1 MSC-51芯片簡(jiǎn)介73.2 MCS-51的引腳說(shuō)明

3、:9第4章 系統(tǒng)硬件設(shè)計(jì)124.1 數(shù)碼管顯示124.2 矩陣按鍵124.3 計(jì)算器硬件電路設(shè)計(jì)134.4 系統(tǒng)框圖134.4.1 系統(tǒng)總框圖134.4.2 計(jì)算器硬件線路圖144.5 系統(tǒng)工作原理15第5章 計(jì)算器程序設(shè)計(jì)165.1 存儲(chǔ)單元分配165.2 主程序設(shè)計(jì)165.3 數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序CONV165.4 數(shù)碼管動(dòng)態(tài)顯示子程序16總 結(jié)18參考文獻(xiàn)19附 錄20緒 論說(shuō)起計(jì)算器,值得我們驕傲的是,最早的計(jì)算工具誕生在中國(guó)。中國(guó)古代最早采用的一種計(jì)算工具叫籌策,又被叫做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當(dāng)材料的。約二百七十枚一束,放在布袋里可隨身攜帶。直到今天仍在使

4、用的珠算盤,是中國(guó)古代計(jì)算工具領(lǐng)域中的另一項(xiàng)發(fā)明,明代時(shí)的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎相同。17世紀(jì)初,西方國(guó)家的計(jì)算工具有了較大的發(fā)展,英國(guó)數(shù)學(xué)家納皮爾發(fā)明的"納皮爾算籌",英國(guó)牧師奧卻德發(fā)明了圓柱型對(duì)數(shù)計(jì)算尺,這種計(jì)算尺不僅能做加減乘除、乘方、開(kāi)方運(yùn)算,甚至可以計(jì)算三角函數(shù),指數(shù)函數(shù)和對(duì)數(shù)函數(shù),這些計(jì)算工具不僅帶動(dòng)了計(jì)算器的發(fā)展,也為現(xiàn)代計(jì)算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會(huì)應(yīng)用廣泛的計(jì)算工具。第1章 計(jì)算器的設(shè)計(jì)1.1 任務(wù)內(nèi)容本系統(tǒng)就是充分利用了8051芯片的I/O引腳。系統(tǒng)以采用MCS-51系列單片機(jī)Intel8051為中心器件來(lái)設(shè)計(jì)計(jì)算器控制器,實(shí)現(xiàn)了能根據(jù)實(shí)

5、際輸入值顯示并存儲(chǔ)的功能,計(jì)算程序則是參照教材。至于位數(shù)和功能,如果有需要可以通過(guò)設(shè)計(jì)擴(kuò)充原系統(tǒng)來(lái)實(shí)現(xiàn) 。具體設(shè)計(jì)如下:(1)由于要設(shè)計(jì)的是簡(jiǎn)單的計(jì)算器,可以進(jìn)行四則運(yùn)算,為了得到教好的顯示效果,采用LCD顯示數(shù)據(jù)和結(jié)果。(2)另外鍵盤包括數(shù)字鍵(0-9)、符號(hào)鍵(+、-、*、/)、等號(hào)鍵,故只需要16個(gè)按鍵即可,設(shè)計(jì)中采用手焊接的4*4矩陣鍵盤。(3)執(zhí)行程序:開(kāi)機(jī)顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過(guò)LCD顯示出來(lái),當(dāng)鍵入+、-、*、/運(yùn)算符,計(jì)算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等待再次鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號(hào)就會(huì)在LCD上輸出運(yùn)算結(jié)果。本計(jì)算器是以MCS-51系列8051單片機(jī)為

6、核心構(gòu)成的簡(jiǎn)易計(jì)算器系統(tǒng)。該系統(tǒng)通過(guò)單片機(jī)控制,實(shí)現(xiàn)對(duì)4*4鍵盤掃描進(jìn)行實(shí)時(shí)的按鍵檢測(cè),并把檢測(cè)數(shù)據(jù)存儲(chǔ)下來(lái)。整個(gè)計(jì)算器系統(tǒng)的工作過(guò)程為:首先存儲(chǔ)單元初始化,顯示初始值和鍵盤掃描,判斷按鍵位置,查表得出按鍵值,單片機(jī)則對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存與相應(yīng)處理轉(zhuǎn)換,之后送入LED顯示器動(dòng)態(tài)顯示。整個(gè)系統(tǒng)可分為三個(gè)主要功能模塊:功能模塊一,實(shí)時(shí)鍵盤掃描;功能模塊二,數(shù)據(jù)轉(zhuǎn)換成顯示器顯示;功能模塊三,顯示器動(dòng)態(tài)顯示。1.2 任務(wù)分析在本次課程設(shè)計(jì)中,主要完成如下方面的設(shè)計(jì)任務(wù):(1)簡(jiǎn)要闡述單片機(jī)技術(shù)發(fā)展的國(guó)內(nèi)外現(xiàn)狀及LED動(dòng)態(tài)顯示和矩陣鍵盤基本原理;(2)掌握51系列某種產(chǎn)品的最小電路及外圍擴(kuò)展電路的設(shè)計(jì)方法;(

7、3)了解單片機(jī)數(shù)據(jù)轉(zhuǎn)換功能及工作過(guò)程;(4)完成主要功能模塊的硬件電路設(shè)計(jì)及必要的參數(shù)確定;(5)用proteus軟件完成原理電路圖的繪制;通過(guò)本次課題設(shè)計(jì),應(yīng)用單片機(jī)應(yīng)用基礎(chǔ)、計(jì)算機(jī)應(yīng)用基礎(chǔ)等所學(xué)相關(guān)知識(shí)及查閱資料,完成簡(jiǎn)易計(jì)算器的設(shè)計(jì),以達(dá)到理論與實(shí)踐更好的結(jié)合、進(jìn)一步提高綜合運(yùn)用所學(xué)知識(shí)和設(shè)計(jì)的能力的目的。第2章 Protues軟件與Keil uVision的結(jié)合2.1 Proteus與Keil介紹2.2.1 ProteusProteus是一種電子設(shè)計(jì)自動(dòng)化軟件,提供SchematicDrawing,Spice仿真與PCB設(shè)計(jì)功能,這一點(diǎn)Proteus與Multisim比較類似,只不過(guò)P

8、roteus可以仿真單片機(jī)和周邊設(shè)備,還可以仿真51系列、AVR,PIC等常用的MCU。與Keil和Mplab不同的是它還提供了周邊設(shè)備的仿真,只要給出電路圖就可以仿真,例如74系列、40系列、LED、示波器、邏輯分析儀等各種常用的元器件及測(cè)試設(shè)備;Proteus還提供了大量的元件庫(kù),有RAM,ROM,鍵盤、馬達(dá)、LED,LCD,AD/DA,部分SPI器件、部分IIC器件等;編譯方面支持Keil和Mplab,里面附帶有大量的參考實(shí)例:5(1) Proteus可提供的仿真元件資源Proteus軟件提供了可仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,達(dá)30多個(gè)元件庫(kù)。(2) Proteus可提供的仿

9、真儀表資源虛擬儀器儀表的數(shù)量、類型和質(zhì)量,是衡量仿真軟件實(shí)驗(yàn)室是否合格的一個(gè)關(guān)鍵因素。在Proteus軟件中,理論上同一種儀器可以在一個(gè)電路中隨意調(diào)用。除了現(xiàn)實(shí)存在的儀器外,Proteus還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來(lái),其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對(duì)測(cè)量結(jié)果的影響。(3) Proteus可提供的調(diào)試手段Proteus提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試,這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。2.1.2 KeilKeil軟件是德國(guó)開(kāi)發(fā)的一個(gè)51單片機(jī)開(kāi)發(fā)

10、軟件平臺(tái),最初只是一個(gè)支持C語(yǔ)言和匯編語(yǔ)言的編譯器軟件。后來(lái)隨著開(kāi)發(fā)人員的不斷努力地改進(jìn)以及版本的不斷升級(jí),現(xiàn)在已經(jīng)成為一個(gè)重要的單片機(jī)開(kāi)發(fā)平臺(tái)。不過(guò)Keil的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師開(kāi)發(fā)的優(yōu)秀程序都是在Keil的平臺(tái)上編寫出來(lái)的??梢哉f(shuō)它在EDA領(lǐng)域是一個(gè)比較重要的軟件。(1)Keil的uVision2可以進(jìn)行純粹的軟件仿真(仿真軟件程序,不接硬件電路);也可以利用硬件仿真器,搭接上單片機(jī)硬件系統(tǒng),在仿真器中載入項(xiàng)目程序后進(jìn)行實(shí)時(shí)仿真;還可以使用uVision2的內(nèi)嵌模塊Keil Monitor 51,在不需要額外的硬件仿真器的條件下,搭接單片機(jī)硬件系統(tǒng)對(duì)項(xiàng)目程序進(jìn)

11、行實(shí)時(shí)仿真。(2)uVision2調(diào)試器具備所有常規(guī)源及調(diào)試,符號(hào)調(diào)試特性以及歷史跟蹤、代碼覆蓋、復(fù)雜斷點(diǎn)等功能。DDE界面和shift語(yǔ)言支持自動(dòng)程序測(cè)試。對(duì)于初次使用 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( 如果想用兩臺(tái)電腦仿真,雙擊 setting,輸入 IP 地址 或者 DNS name);(5)載入 Proteus 文件;(6)Proteus 里選擇 DEBUG->use remote debug monitor;進(jìn)入 KEIL 的 project 菜單 option for target '工程名'。在 DEBUG 選項(xiàng)中右欄上 部的下拉菜選中Proteus VSMMonitor-51Driver。在進(jìn)入 seting,如果同一臺(tái)機(jī)IP名為127.0.0.1

13、,如不是同一臺(tái)機(jī)則填另一臺(tái)的IP地址。端口號(hào)一定為 8000 注意:可以在一臺(tái)機(jī)器上運(yùn)行 keil,另一臺(tái)中運(yùn)行Proteus 進(jìn)行遠(yuǎn)程仿真;(7)打開(kāi)KEIL uVision,按F5開(kāi)始仿真。2.2 proteus的工作過(guò)程運(yùn)行 Proteus 的 ISIS 程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置 view菜單下的捕捉對(duì)齊和system下的顏色、圖形界面大小等項(xiàng)目。通過(guò)工具欄中的 p(從庫(kù)中選擇元件命令)命令,在 pick devices 窗口中選擇電路所需的元件,放置元件并調(diào)整其相對(duì)位置,元件參數(shù)設(shè)置,元器件間連線,編寫程序;在 source 菜單的 Define code ge

14、neration tools 菜單命令下,選擇程序編譯的工具、路徑、擴(kuò)展名等項(xiàng)目;在 source菜單的 Add/remove source files 命令下,加入單片機(jī)硬件電路的對(duì)應(yīng)程序;通過(guò) debug 菜單的相應(yīng)命令仿真程序和電路的運(yùn)行情況。2.3 Proteus軟件所提供的調(diào)試手段Proteus 提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。對(duì)于單片機(jī)硬件電路和軟件的調(diào)試,Proteus 提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對(duì)軟件的分步調(diào)試以及具體的執(zhí)行情況。對(duì)于總體執(zhí)行效果的調(diào)試方法,只需要執(zhí)行 debug 菜單下的 execute 菜單項(xiàng)或

15、 F12 快捷鍵啟動(dòng)執(zhí)行,用 debug 菜單下的pause animation 菜單項(xiàng)或 pause 鍵暫停系統(tǒng)的運(yùn)行;或用Debug 菜單下的 stop animation 菜單項(xiàng)或 shift-break 組合鍵停止系統(tǒng)的運(yùn)行。其運(yùn)行方式也可以選擇工具欄中的相應(yīng)工具進(jìn)行。對(duì)于軟件的分步調(diào)試,應(yīng)先執(zhí)行 debug 菜單下的start/restart debugging 菜單項(xiàng)命令,此時(shí)可以選擇 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)仿真中所涉及到的軟件列表和單片機(jī)的系統(tǒng)資源等,可供調(diào)試時(shí)分析和查看。第3章 芯片簡(jiǎn)介3.1 MSC-51芯片簡(jiǎn)介(1)MCS-51單片機(jī)內(nèi)部結(jié)構(gòu):8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。8051單片機(jī)內(nèi)部結(jié)構(gòu)如圖3.1所示。(2)中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,

17、能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。(3)數(shù)據(jù)存儲(chǔ)器(RAM)8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問(wèn),而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。圖3.1 8051內(nèi)部結(jié)構(gòu)(4)程序存儲(chǔ)器(ROM):8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。(5)定時(shí)/計(jì)數(shù)器(ROM):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)

18、數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。(6)并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。(7)全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。(8)中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。(9)時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)

19、存儲(chǔ)器分開(kāi)的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。圖3.2是MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖。圖3.2 MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)3.2 MCS-51的引腳說(shuō)明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口

20、,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明,MCS-51系列單片機(jī)引腳如圖3.2所示。 圖3.3 MCS-51系列單片機(jī)引腳的功能Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手

21、動(dòng)復(fù)位,如如3.4和圖3.5所示。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。圖3.4 復(fù)位方式圖3.5 時(shí)鐘源Pin30:ALE/PROG當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ALE會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,PROG將用于輸入編程脈沖。Pin29:PESN當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC

22、的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò)4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的8031,EA端必須接地。在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。第4章 系統(tǒng)硬件設(shè)計(jì)4.1 數(shù)碼管顯示在本任務(wù)中用4位數(shù)碼管顯示當(dāng)前數(shù)值的千,百,十,個(gè),由于數(shù)碼管個(gè)數(shù)多,如采用靜態(tài)顯示方式,則占

23、用單片機(jī)的I/O口線太多,如果用定時(shí)器/計(jì)數(shù)器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,則電路復(fù)雜。所以,在數(shù)碼管個(gè)數(shù)較多時(shí),常采用動(dòng)態(tài)顯示方式。如圖4.1所示為單片機(jī)應(yīng)用系統(tǒng)中的一種數(shù)碼管動(dòng)態(tài)顯示電路圖,4位數(shù)碼管的相同段并聯(lián)在一起,由一個(gè)8位I/O(P1口)輸出字形碼控制顯示某一字形,每個(gè)數(shù)碼管的公共端由另外一個(gè)I/O口(P0口)輸出的字位碼控制,即數(shù)碼管顯示的字形是由單片機(jī)I/O口輸出的字形碼確定,而哪個(gè)數(shù)碼管點(diǎn)亮是由單片機(jī)I/O口輸出的字位碼確定的。4個(gè)數(shù)碼管分時(shí)輪流循環(huán)點(diǎn)亮,在同一時(shí)刻只有1個(gè)數(shù)碼管點(diǎn)亮,但由于數(shù)碼管具有余輝特性及人眼具有視覺(jué)暫留特性,所以

24、適當(dāng)?shù)剡x取循環(huán)掃描頻率,看上去所有數(shù)碼管是同時(shí)點(diǎn)亮的,察覺(jué)不出閃爍現(xiàn)象。動(dòng)態(tài)顯示方式所接數(shù)碼管不能太多,否則會(huì)因每個(gè)數(shù)碼管所分配的實(shí)際導(dǎo)通時(shí)間太少,使得數(shù)碼管的亮度不足。在本任務(wù)中,為了簡(jiǎn)便,字形碼和字位碼都沒(méi)由加驅(qū)動(dòng)電路,在實(shí)際應(yīng)用中應(yīng)加驅(qū)動(dòng)電路。數(shù)碼管有共陰極和共陽(yáng)極兩種,對(duì)于共陽(yáng)數(shù)碼管,字形驅(qū)動(dòng)輸出0有效,字位驅(qū)動(dòng)輸出1有效;而對(duì)于共陰數(shù)碼管則相反,即:字形驅(qū)動(dòng)輸出1有效,字位驅(qū)動(dòng)輸出0有效。4.2 矩陣按鍵鍵盤是單片機(jī)系統(tǒng)中最常用的人機(jī)對(duì)話輸入設(shè)備,用戶通過(guò)鍵盤向單片機(jī)輸入數(shù)據(jù)或指令。鍵盤控制程序需完成的任務(wù)有:監(jiān)測(cè)是否有鍵按下,有鍵按下時(shí),在無(wú)硬件去抖的動(dòng)電路時(shí),應(yīng)用軟件延時(shí)方法消除

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

26、短的時(shí)間完成一次掃描。本鍵盤掃描子程序名叫key,每次要掃描時(shí)用lcall key調(diào)用即可。4.3 計(jì)算器硬件電路設(shè)計(jì)8051單片機(jī)的P2口作鍵盤口,其中P2.4-P2.7為鍵盤掃描輸出線,P2.0-P2.3為鍵盤掃描輸入線。鍵盤由4*4共16個(gè)按鍵組成,10個(gè)數(shù)字鍵(由0-9組成)5個(gè)運(yùn)算符號(hào)(加減乘除等于)組成,1個(gè)清除鍵(作用相當(dāng)于整體復(fù)位)。4個(gè)數(shù)碼管用于顯示當(dāng)前數(shù)值的千,百,十,個(gè),采用動(dòng)態(tài)顯示方式,P1口接4個(gè)數(shù)碼管的七段,P0口分別接4個(gè)數(shù)碼管的公共端,P1口輸出數(shù)碼管的字形碼,P0口輸出數(shù)碼管的字位碼。4.4 系統(tǒng)框圖選用設(shè)備8051單片機(jī)一片選用設(shè)備:8051彈片機(jī)一片,4*

27、4鍵盤一個(gè),4位共陽(yáng)極的七段數(shù)碼管一個(gè),連線若干。4.4.1 系統(tǒng)總框圖系統(tǒng)總框圖主要分為鍵盤掃描、數(shù)據(jù)運(yùn)算、數(shù)據(jù)存儲(chǔ)以及計(jì)算結(jié)果的顯示幾部分,系統(tǒng)總框圖如圖4.1所示。圖4.1 系統(tǒng)總框圖4.4.2 計(jì)算器硬件線路圖計(jì)算器硬件主要由三部分構(gòu)成,它們分別是:數(shù)碼管、8051單片機(jī)、矩陣建盤。將編制好的程序燒寫到單片機(jī)中就可以實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)運(yùn)算了。計(jì)算器硬件線路圖如圖4.2所示。圖4.2 計(jì)算器硬件線路圖4.5 系統(tǒng)工作原理(1)首先賦予顯示緩沖初始值00 00,并把數(shù)據(jù)存儲(chǔ)單元清零。(2)主程序調(diào)用鍵盤掃描子程序,判斷鍵值,是數(shù)字第一次直接賦予23H單元,如是第二次輸入數(shù)字,則把第一次值乘十后

28、與第二次值相加,結(jié)果存儲(chǔ)到23H單元,并R4計(jì)數(shù)2次,表示已輸入兩位,掃描鍵值時(shí)就不在賦值和顯示。等待運(yùn)算符號(hào)的按下,按下等于號(hào)就直接與零計(jì)算并顯示,如加減乘除就R5加一 并把R4清零,表示可以輸入下一操作數(shù),與第一次相同,并等待等于鍵按下。清零鍵則不管在任何情況下都清零,相當(dāng)與軟復(fù)位。(3)在掃描完鍵盤后,調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,并選擇,由于本任務(wù)是兩位四則運(yùn)算,只有乘法中結(jié)果會(huì)超出FFH的范圍,在此就是選擇處理方式,超出范圍則跳過(guò)數(shù)據(jù)顯示轉(zhuǎn)換子程序,未超出則調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,兩種選擇都是要把值轉(zhuǎn)換為七段碼。(4)調(diào)用數(shù)碼管動(dòng)態(tài)顯示子程序,顯示數(shù)值,重新循環(huán)。第5章 計(jì)算器程序設(shè)計(jì)5.

29、1 存儲(chǔ)單元分配30H單元:數(shù)值個(gè)位顯示單元;31H單元:數(shù)值十位顯示單元;32H單元:數(shù)值百位顯示單元;33H單元:數(shù)值千位顯示單元;23H單元:第一操作數(shù)存儲(chǔ)單元;24H單元:第二操作數(shù)存儲(chǔ)單元;25H單元:鍵值暫存單元;27H單元:清除鍵狀態(tài);34H-37H單元:結(jié)果數(shù)據(jù)轉(zhuǎn)換暫存單元;38H-39H單元:結(jié)果高低8位暫存單元;R5單元:操作數(shù)計(jì)數(shù)單元;R4單元:操作數(shù)數(shù)值位數(shù)計(jì)數(shù)單元;R3單元:運(yùn)算符號(hào)存儲(chǔ)單元。5.2 主程序設(shè)計(jì)主程序進(jìn)行程序中用到的一些存儲(chǔ)單元的初始化,數(shù)值顯示和4*4鍵盤掃描。首先,進(jìn)行存儲(chǔ)單元初始化,給數(shù)碼管顯示單元30H-33H賦予“0000”字形數(shù)據(jù),將數(shù)值計(jì)

30、數(shù)單元,存儲(chǔ)單元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,賦予初值零。之后,調(diào)用鍵盤掃描子程序,和數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換程序,數(shù)碼管動(dòng)態(tài)顯示子程序。主程序不斷進(jìn)行鍵盤掃描,數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序和動(dòng)態(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碼。要通過(guò)數(shù)碼管顯示出當(dāng)前數(shù)值,還必須將BCD碼進(jìn)一步轉(zhuǎn)換為七段碼,轉(zhuǎn)換的最終結(jié)果數(shù)據(jù)存放于顯示緩沖區(qū)30H-33H單元中,其中30H單元存放數(shù)值的個(gè)位七段碼,31H單元存放數(shù)值的十位七段碼,32H單元存放數(shù)值的百

31、位七段碼,33H單元存放數(shù)值的千位七段碼。5.4 數(shù)碼管動(dòng)態(tài)顯示子程序本任務(wù)由P1口輸出字形碼,P0口輸出字位碼。先將存放于30H單元的數(shù)值個(gè)位七段碼由P1口輸出,同時(shí)P0口輸出使數(shù)值個(gè)位顯示數(shù)碼管點(diǎn)亮的字位碼。由于采用的是共陽(yáng)數(shù)碼管,所以只有該位數(shù)碼管對(duì)應(yīng)的P0.0為1,其他位P0.1-P0.3位0,點(diǎn)亮延時(shí)10MS。然后P1口輸出數(shù)值十位七段碼,P0.1位1,數(shù)值十位數(shù)碼管點(diǎn)亮,延時(shí)10MS。接著P1口輸出數(shù)值百位七段碼,P0.2為1,數(shù)值百位數(shù)碼管點(diǎn)亮,延時(shí)10MS。最后P1口輸出數(shù)值千位七段碼,P0.3為1,數(shù)值千位數(shù)碼管點(diǎn)亮,延時(shí)10MS???結(jié)本系統(tǒng)就是充分利用了8051芯片的I/

32、O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)Intel8051為中心器件來(lái)設(shè)計(jì)計(jì)算器控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際輸入值顯示并存儲(chǔ),計(jì)算程序則是參照教材。至于位數(shù)和功能,如果有需要可以設(shè)計(jì)擴(kuò)充原系統(tǒng)來(lái)實(shí)現(xiàn) 。通過(guò)這次畢業(yè)設(shè)計(jì),使我們得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問(wèn)題全面系統(tǒng)的鍛煉。使我們?cè)趩纹瑱C(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程,以及在常用編程設(shè)計(jì)思路技巧(特別是匯編語(yǔ)言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。參考文獻(xiàn)1張義輝,李家慶主編·單片機(jī)系統(tǒng)綜合訓(xùn)練指導(dǎo)書·重慶科技學(xué)院2張毅剛主編·單片機(jī)原理及應(yīng)用·北京

33、3;高等教育出版社·20053胡文金主編·單片機(jī)系統(tǒng)實(shí)訓(xùn)教程·重慶·重慶大學(xué)出版社·20054胡文金,鐘秉翔主編·單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)教程·重慶大學(xué)出版社·20055劉守義,鐘蘇主編·數(shù)字電子技術(shù)·西安電子科技大學(xué)出版社·20016戴佳,戴衛(wèi)恒主編·51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講·電子工業(yè)出版社·20067楊加國(guó),蕫秀成主編·單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)·清華大學(xué)出版社·20088龔沛曾,陸慰民,楊志強(qiáng)主編·

34、Visual Basic程序設(shè)計(jì)簡(jiǎn)明教程·高等教育出版社·2006附 錄部分源程序;顯示緩沖區(qū)首地址定義DISPBUF EQU 30H;主程序的入口地址 ORG 0000H;4個(gè)數(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ù)碼管動(dòng)態(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論