版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 畢 業(yè) 設 計</p><p> 題目簡易計算器 </p><p> 系別</p><p> 專業(yè)</p><p> 班級</p><p> 姓名</p><p> 學號</p><p> 指導
2、教師</p><p> 日期</p><p><b> 設計任務書</b></p><p><b> 設計題目:</b></p><p><b> 簡易計算器的設計</b></p><p><b> 設計要求:</b><
3、;/p><p> 1 設計一個具有加、減、乘、除的功能的計算器,只能進行小于255的數的加減乘除運算,并且可以連續(xù)運算。當鍵入值大于255時,將自動清零,可以重新輸入;</p><p> 2 設計完成該功能的硬件電路;</p><p> 3 設計完成上述功能的相應軟件;</p><p> 4 在實驗箱上調試出應有的效果。</p>
4、;<p><b> 設計進度要求:</b></p><p> 第一周:選定設計題目,查找、搜集相關資料。</p><p> 第二周:了解各元器件、模塊的功能及使用方法。</p><p> 第三周:硬件電路的設計。</p><p> 第四周:相應軟件設計(程序設計)。</p><
5、p> 第五周:利用實驗箱調試并記錄相關的數據和錯誤。</p><p> 第六周:利用實驗箱調試并記錄相關的數據和錯誤。</p><p> 第七周:寫畢業(yè)論文。</p><p><b> 第八周:畢業(yè)答辯。</b></p><p> 指導教師(簽名): </p>
6、<p><b> 摘 要</b></p><p> 隨著時代的進步和發(fā)展,單片機技術已經普及到我們生活、工作、科研等各個領域,已經成為一種比較成熟的技術,本文將介紹一種用單片機設計的計算器。</p><p> 這個計算器除了會加減乘除的運算功能以外,還具有連續(xù)運算的功能。當鍵入值或運算結果大于255時,它會自動清零,可以重新輸入新值。</p&g
7、t;<p> 正文中首先簡單描述了硬件系統(tǒng)的工作原理,且附以硬件系統(tǒng)的設計框圖,論述了本次畢業(yè)設計所應用的各種硬件接口技術和各個接口模塊的功能及工作過程, 并具體描述了外接電路接口的軟、硬件調試。</p><p> 其次闡述了程序的流程和實現過程。本設計就是以單片機的基本語言匯編語言來進行軟件設計,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔明了。使硬件在軟件的控制下協(xié)調運作。<
8、/p><p> 本文撰寫的主導思想是軟、硬件相結合,以硬件為基礎,來進行各功能模塊的編寫。</p><p> 關鍵詞: 計算器,單片機,AT89C51,匯編語言,模塊化</p><p><b> 目 錄</b></p><p><b> 目 錄I</b></p><p&
9、gt;<b> 前 言1</b></p><p> 1 單片機的發(fā)展及應用2</p><p> 1.1 單片機的發(fā)展2</p><p> 1.2 單片機的應用2</p><p> 2 硬件系統(tǒng)設計4</p><p> 2.1 總體框圖設計4</p>&l
10、t;p> 2.2 單片機選型4</p><p> 2.2.1 AT89C51的特點4</p><p> 2.2.2 單片機附屬電路6</p><p> 2.3 四乘四鍵盤控制電路7</p><p> 2.3.1 對矩陣式鍵盤的認識7</p><p> 2.3.2 矩陣式鍵盤的按
11、鍵識別方法8</p><p> 2.4 LED 靜態(tài)顯示電路10</p><p> 2.4.1 數碼管簡介10</p><p> 2.4.2 顯示的種類11</p><p> 3 軟件設計(程序設計)15</p><p> 3.1設計思路15</p><p> 3
12、.2 總體流程圖15</p><p> 3.3 顯示子程序的框圖和按鍵子程序框圖16</p><p> 4 調試過程19</p><p> 4.1 在偉福中的調試19</p><p> 4.2 在Keil中的調試并連接實驗箱20</p><p><b> 5 結 論
13、24</b></p><p><b> 致 謝25</b></p><p><b> 參考文獻26</b></p><p> 附錄A:硬件原理總圖27</p><p><b> 前 言</b></p><p> 隨著半導體
14、集成工藝的不斷發(fā)展,單片機的集成度將更高、體積將更小、功能將更強。在單片機家族中,80C51系列是其中的佼佼者,加之Intel公司將其MCS –51系列中的80C51內核使用權以專利互換或出售形式轉讓給全世界許多著名IC制造廠商,如Philips、 NEC、Atmel、AMD、華邦等,這些公司都在保持與80C51單片機兼容的基礎上改善了80C51的許多特性。這樣,80C51就變成有眾多制造廠商支持的、發(fā)展出上百品種的大家族,現統(tǒng)稱為80
15、C51系列。80C51單片機已成為單片機發(fā)展的主流。專家認為,雖然世界上的MCU品種繁多,功能各異,開發(fā)裝置也互不兼容,但是客觀發(fā)展表明,80C51可能最終形成事實上的標準MCU芯片。</p><p> 本設計采用的是ATMEL公司的AT89C51芯片,此芯片根據了充分的靜止CMOS 控制器與三級節(jié)目記憶鎖,共有:</p><p> 32 條I/O 線,2 定時計數器,6 個中斷來源,
16、4 K 閃存, 128 個字節(jié)在芯片RAM。</p><p> 由于本設計所做的是一個會加減乘除的計算器,所以要用到單片機的最小應用系統(tǒng)模塊1,還需要用到矩陣式鍵盤和靜態(tài)顯示模塊。</p><p> 而我的硬件設計詳見第二章,主要介紹了需要哪幾部分硬件電路和硬件系統(tǒng)的概敘。在2.1節(jié)介紹了主要的框架;2.2節(jié)簡單的介紹了單片機最小應用系統(tǒng)的性能和附屬電路;2.3節(jié)詳細介紹了鍵盤控制電路
17、;2.4節(jié)介紹了靜態(tài)顯示電路。在第三章中我們詳細的解說了軟件系統(tǒng)的設計。3.1節(jié)介紹了我們做這個設計的程序設計思路;3.2節(jié)畫出了總的程序設計框圖;3.3節(jié)分別羅列出各個子程序的框圖。第四章是我對此設計的調試過程和結果顯示。第五章就是我對此設計的總體概括,體會和心得。</p><p> 我所設計的這個計算器可適用于比較簡單的加減乘除運算,比如小學生可以借助它進行較大數目的四則運算,并運用它來探索有關規(guī)律,有利于
18、幫助學生形成初步的探索和解決問題的能力。</p><p> 1 單片機的發(fā)展及應用</p><p> 1.1 單片機的發(fā)展</p><p> 單片微型計算機是微型計算機的一個重要分支,也是一種非?;钴S和頗具有生命力的機種。單片微型計算機簡稱單片機,特別適用于工業(yè)控制領域,因此又稱為微控器。</p><p> 1971年微處理器研制成功
19、不久,就出現了單片微型計算機即單片機,但最早的單片機是1位的,處理能力有限。</p><p> 單片機的發(fā)展分為4個階段:</p><p> 第一階段(1974—76年):單片機初級階段。因為受工藝限制,單片機采用單片的形式而且功能比較簡單。例如美國仙童公司生產的F8單片機,實際上只包括了8位CPU,64個字節(jié)的RAM和2個并行接口。</p><p> 第二階
20、段(1976—78年):低性能單片機階段。以InTEL公司生產的MCS——48系列單片機為代表,該系列單片機片內集成有8位CPU,8位定時器/計數器,并行I/O接口,RAM和ROM等,但是最大的缺點就是無串行接口,中斷處理比較簡單而且片內RAM和ROM容量較小,且尋址范圍不大與4KB。</p><p> 第三階段(1978—83)高性能單片階段這個階段推出的單片機普遍帶有串行接口。多級中斷系統(tǒng),16位定時器/計
21、數器,片內ROM,RAM容量加大,且尋址范圍可達64KB,有的片內還帶有A/D轉換器。</p><p> 第四階段(1983年至今)8位單片機鞏固發(fā)展以及16位單片機,32 位單片機推出階段。此階段的主要特征是:一方面發(fā)展16位單片機,32位單片機及專用型單片機;另一方面不斷完善高檔8位單片機,改善其結構,增加片內器件,以滿足不同的客戶要求。</p><p> 1.2 單片機的應用&l
22、t;/p><p> 單片機的應用很廣,分別在以下領域中得到了廣泛的應用。</p><p> 工業(yè)自動化:在自動化技術中,無論是過程控制技術、數據采集技術還是測控技術,都離不開單片機。在工業(yè)自動化的領域中,機電一體化技術將發(fā)揮愈來愈重要的作用,在這種機械、微電子和計算機技術為一體的綜合技術(例如機器人技術、數控技術)中,單片機將發(fā)揮非常重要的作用特別是近些年來,隨著計算機技術的發(fā)展,工業(yè)自動
23、化也發(fā)展到了一個新的高度,出現了無人工廠、機器人作業(yè)、網絡化工廠等,不僅將人從繁重、重復和危險的工業(yè)現場解放出來,還大大提高了生產效率,降低了生產成本。</p><p> 儀器儀表:目前對儀器儀表的自動化和智能化要求越來越高。在自動化測量儀器中,單片機應用十分普及。單片機的使用有助于提高儀器儀表的精度和準確度,簡化結構,減小體積,易于攜帶和使用,加速儀器儀表向數字化、智能化和多功能化方向發(fā)展。</p>
24、;<p> 消費類電子產品:該應用主要反映在家電領域。目前家電產品的一個重要發(fā)展趨勢是不斷提高其智能化程度。例如,電子游戲、照相機、洗衣機、電冰箱、空調、電視機、微波爐、手機、IC卡、汽車電子設備等。在這些設備中使用了單片機后,其功能和性能大大提高,并實現了智能化、最優(yōu)化控制。</p><p> 信方面:較高檔的單片機都具有通信接口,因而為單片機在通信設備中的應用創(chuàng)造了很好的條件。例如,在微波通
25、信、短波通信、載波通信、光纖通信、程控交換等通信設備和儀器中都能找到單片機的應用。</p><p> 武器裝備:在現代化的武器裝備中,如飛機、軍艦、坦克、導單、魚雷制導、智能武器設備、航天飛機導航系統(tǒng),都有單片機在其中發(fā)揮重要作用。</p><p> 終端及外部設備控制:計算機網絡終端設備,如銀行終端,以及計算機外部設備如打印機、硬盤驅動器、繪圖機、傳真機、復印機等,在這些設備中都使用
26、了單片機。</p><p> 近年來隨著科技的飛速發(fā)展,同時帶動自動控制系統(tǒng)日新月異更新,單片機的應用正在不斷地走向深入。</p><p><b> 2 硬件系統(tǒng)設計</b></p><p><b> 2.1總體框圖設計</b></p><p> 我所設計的題目是一個會運算加減乘除的計算器,
27、而我所用到的電路如圖2.1所示:</p><p> 圖2.1 總體設計框圖</p><p> 1.我的設計里用到的單片機芯片是AT89C51芯片,除此之外還包括:晶振電路和復位電路構成單片機最小應用系統(tǒng);</p><p><b> 2.四乘四的鍵盤;</b></p><p> 3.5個LED顯示電路,我們設計的電
28、路是采用靜態(tài)顯示。</p><p><b> 2.2 單片機選型</b></p><p> 2.2.1 AT89C51的特點</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能、CMO
29、S、8位單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。AT89C51的管腳圖如圖2.2所示。</p><p> 圖2.2 AT89C51管腳圖</p><p><b> 主要特性:</b></p><p> 1、與MCS-51 兼容 </p><p>
30、 2、4K字節(jié)可編程閃爍存儲器</p><p> 3、壽命:1000寫/擦循環(huán)</p><p> 4、數據保留時間:10年</p><p> 5、全靜態(tài)工作:0Hz-24Hz</p><p> 6、三級程序存儲器鎖定</p><p> 7、128*8位內部RAM</p><p>
31、8、32可編程I/O線</p><p> 9、兩個16位定時器/計數器</p><p><b> 10、5個中斷源</b></p><p> 11、可編程串行通道</p><p> 12、低功耗的閑置和掉電模式</p><p> 13、片內振蕩器和時鐘電路</p><
32、p> 2.2.2 單片機附屬電路</p><p> 單片機附屬電路主要有晶體振蕩電路和復位電路。</p><p><b> 一、晶體振蕩電路</b></p><p> 1.晶體振蕩器的作用 石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。 </p><p
33、> 2.本設計所用的晶體振蕩電路如圖2.3所示: </p><p> 圖2.3 晶體振蕩電路</p><p> 此晶振電路所選用的石英晶振頻率為12MHZ。</p><p> 時鐘周期就是單片機外接晶振的倒數,例如12M的晶振,它的時間周期就是1/12 us),是計算機中最基本的、最小的時間單位。</p><p> 在一個時
34、鐘周期內,CPU僅完成一個最基本的動作。對于某種單片機,若采用了1MHZ的時鐘頻率,則時鐘周期為1us;若采用4MHZ的時鐘頻率,則時鐘周期為0.25us。由于時鐘脈沖是單片機的基本工作脈沖,它控制著單片機的工作節(jié)奏(使單片機的每一步都統(tǒng)一到它的步調上來)。顯然,對同一種機型的單片機,時鐘頻率越高,單片機的工作速度就越快。但是,由于不同的單片機的硬件電路和器件不完全相同,所以其需要的時鐘頻率范圍也不相同。我們學習的51系列單片機的時鐘范
35、圍是1.2MHz-12MHz。</p><p><b> 二、復位電路</b></p><p> 單片機復位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復位后PC=0000H,使單片機從第—個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復位,所以我們必須弄清楚MCS-51型單片機復位的條件、復位電
36、路和復位后狀態(tài)。</p><p> 單片機復位的條件是:必須使RST/Vpd或RST引腳加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12MHz,每機器周期為1us,則只需2us以上時間的高電平,在RST引腳出現高電平后的第二個機器周期執(zhí)行復位。單片機常用的復位電路如圖2.4(a)和圖2.4(b)所示:</p><p> 圖2.4(a) 復位電路
37、 圖2.4(b) 與單片機相連的復位電路</p><p> 圖2.4(a) 就是我們的設計中使用的復位電路,其電阻阻值的選擇和電容容量的選擇都是經過計算的,而最后計算的結果時間常數可以滿足我們的需求。其計算過程如下:</p><p> て=0.7RC=0.7×1000×10×10-6=0.7ms</p><p>
38、 此值遠遠大于2us,所以此復位電路可用。</p><p> 圖2.4(b)為按鍵復位電路。該電路除具有上電復位功能外,若要復位,只需按圖中的RESET鍵,此時電源VCC經電阻R1、R2分壓,在RESET端產生復位高電平。</p><p> 2.3四乘四鍵盤控制電路</p><p> 2.3.1 對矩陣式鍵盤的認識</p><p>
39、 矩陣式鍵盤的結構與工作原理:</p><p> 在鍵盤中的按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖2.5所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,只需要單片機的一個端口(如P1口)就可以構成4*4=16個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多
40、出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤比較是合理的。</p><p> 由于本系統(tǒng)按鍵較多,在這里采用矩陣式4*4鍵盤,這樣可以合理應用硬件資源,用一個8位I/O口控制, 如圖2.5所示:</p><p> 圖2.5 按鍵電路</p><p> 矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,圖2.5中,列線通過電阻接正
41、電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。一旦有鍵按下,則輸入線就會被拉低,行線輸出是低電平。這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及編程方法如2.3.2所述。</p><p> 2.3.2 矩陣式鍵盤的按鍵識別方法 </p><p> 一、確定矩陣式鍵盤上何鍵被按
42、下,我們采用一種“行掃描法”。</p><p> 行掃描法 :行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法。以圖2.5所示鍵盤電路為例,介紹過程如下:</p><p> 1.判斷鍵盤中有無鍵按下 將全部行線X0-X3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平
43、,則鍵盤中無鍵按下。</p><p> 2.判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它行線為高電平。在確定某根行線為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。</p><p> 二、下面給出一個具體的例子: </p>&l
44、t;p> 圖仍如2.5所示。AT89C51單片機的P1口用作鍵盤I/O口,鍵盤的列線接到P1口的高4位,鍵盤的行線接到P1口的低4位。列線P14-P17分別接有4個上拉電阻到正電源+5V,并把行線P10-P13設置為輸出線,列線P14-P17設置為輸入線。4根行線和4根列線形成16個相交點。</p><p> 1.檢測當前是否有鍵被按下。檢測的方法是P10-P13輸出全“0”,讀取P14-P17的狀態(tài),
45、若P14-P17為全“1”,則無鍵閉合,否則有鍵閉合。</p><p> 2.去除鍵抖動。當檢測到有鍵按下后,延時一段時間再做下一步的檢測判斷。</p><p> 3.若有鍵被按下,應識別出是哪一個鍵閉合。方法是對鍵盤的行線進行掃描。P10-P13按下述4種組合依次輸出:</p><p> P13 1 1 1 0</p><p>
46、 P12 1 1 0 1</p><p> P11 1 0 1 1</p><p> P10 0 1 1 1</p><p> 在每組行輸出時讀取P14-P17,若全為“1”,則表示為“0”這一行沒有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計算法或查表法將閉合鍵的行值和列值轉換成所定義的鍵值。</p><p&
47、gt; 4.為了保證鍵每閉合一次CPU僅作一次處理,必須消除鍵釋放時的抖動。</p><p> 我設計的鍵盤所對應的鍵碼如圖2.6所示:</p><p> 圖2.6 鍵盤框圖</p><p> 2.4 LED 靜態(tài)顯示電路</p><p> 2.4.1 數碼管簡介</p><p><b> 1
48、. 數碼管結構</b></p><p> 數碼管由8個發(fā)光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數字0 9、字符A F及小數點“·”。數碼管的外形結構如圖2.7(a)所示。數碼管又分為共陰極和共陽極兩種結構,分別如圖2.7(b)和圖2.7(c)所示。</p><p> ?。╝) 外型結構;(b) 共陰極;(c)共陽極</p><p
49、> 圖2.7 數碼管結構圖</p><p> 2. 數碼管工作原理</p><p> 由于我們采用的是共陰極數碼管,所以介紹共陰極數碼管的工作原理如下:</p><p> 共陰極數碼管的8個發(fā)光二極管的陰極(二極管負端)連接在一起。通常,公共陰極接低電平(一般接地),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為高電平時,則該端所連接的字段導通
50、并點亮。根據發(fā)光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能吸收額定的段導通電流,還需根據外接電源及額定段導通電流來確定相應的限流電阻。</p><p> 共陽極數碼管的工作原理與共陰極的正好相反。</p><p> 3. 數碼管字形編碼</p><p> 要使數碼管顯示出相應的數字或字符,必須使段數據口輸出相應的字形編碼。</p>
51、<p> LED顯示字型碼表見表2.1:</p><p> 表2.1 LED顯示字型碼表</p><p> 2.4.2顯示的種類</p><p><b> 1. 靜態(tài)顯示概念</b></p><p> 靜態(tài)顯示是指數碼管顯示某一字符時,相應的發(fā)光二極管恒定導通或恒定截止。這種顯示方式的各位數碼管
52、相互獨立,公共端恒定接地(共陰極)或接正電源(共陽極)。每個數碼管的8個字段分別與一個8位I/O口地址相連,I/O口只要有段碼輸出,相應字符即顯示出來,并保持不變,直到I/O口輸出新的段碼。采用靜態(tài)顯示方式的優(yōu)點:較小的電流即可獲得較高的亮度,且占用CPU時間少,編程簡單,顯示便于監(jiān)測和控制,但其占用的接口線多,硬件電路復雜,成本高,只適合于顯示位數較少的場合。</p><p><b> 2. 動態(tài)顯
53、示概念</b></p><p> 動態(tài)顯示是一位一位地輪流點亮各位數碼管,這種逐位點亮顯示器的方式稱為位掃描。通常,各位數碼管的段選線相應并聯在一起,由一個8位的I/O口控制;各位的位選線(公共陰極或陽極)由另外的I/O口線控制。動態(tài)方式顯示時,各數碼管分時輪流選通,要使其穩(wěn)定顯示,必須采用掃描方式,即在某一時刻只選通一位數碼管,并送出相應的段碼,在另一時刻選通另一位數碼管,并送出相應的段碼。依此規(guī)
54、律循環(huán),即可使各位數碼管顯示將要顯示的字符。雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應,只要每位顯示間隔足夠短就可以給人以同時顯示的感覺。</p><p> 采用動態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示方式簡單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數較多時,CPU要依次掃描,占用CPU較多的時間。</p><p> 我們這個設計所使用的顯示屬于靜態(tài)顯示,
55、其顯示電路圖形如圖2.8所示:</p><p> 圖2.8 靜態(tài)顯示電路</p><p> 顯示器由5個共陰極數碼管組成。輸入只有兩個信號,它們是串行數據線DIN和移位信號CLK。5個串/并移位寄存器芯片74LS164首尾相連。每片的并行輸出作為LED數碼管的段碼。</p><p> 移位寄存器的位移原理也就是隨著CLK脈沖的輸入從DIN端輸入數據一步一步的
56、向Q7移動,當第二個字節(jié)移入后,原第一個已經從Q7端移出。兩位數據是不會交錯的。比如要向164寫入11011100(第一字節(jié))10011000(第二字節(jié)),當第一個8位輸入后164的內容為11011100 ,第二字節(jié)的第一位輸入后164為10111000,第二位輸入后164為01110000,依次類推,當輸入完8個位后,164輸出端為10011000 正是第二個字節(jié)的內容。</p><p> 74LS164的引
57、腳圖如圖2.9所示:</p><p> 74LS164為8串入并出移位寄存器,1、2為串行輸入端,Q0-Q7為并行輸出端,CLK為移位時鐘脈沖,上升沿移入一位;MR為清零端,低電平時并行輸出為零。</p><p><b> 其真值表如下</b></p><p> 圖
58、 圖2.9 74LS164的引腳</p><p> 表2.10 74LS164的真值表</p><p> 做完以上這些分立的電路部分,我們所設計的東西也就出來了,有鍵盤、顯示電路、和單片機周圍一些附屬電路,其硬件原理總圖見附錄A。</p><p> 3 軟件設計(程序設計)</p><p><b>
59、 3.1設計思路</b></p><p> 由于我們所做的是一個比較簡單的計算器,它只需要有加、減、乘、除的功能就可以了,另外還要求只能進行小于255的數的加減乘除運算,并且可以連續(xù)運算。當鍵入值大于255時,將自動清零,可以重新輸入。</p><p> 所以我們考慮到用單片機語言來做我們的設計比較簡單。對于程序我們的設計思路是:</p><p>
60、 1.要有顯示子程序,當鍵入一個數值或符號時顯示程序要把這個鍵入的值給顯示出來。經過運算在按下等號之后顯示出此次運算的結果。</p><p> 2.就是按鍵程序,當一個鍵盤按下的時候,按鍵程序要判斷是哪個按鍵按下,如果是數字鍵按下就要轉向顯示子程序來顯示出這個數字,然后等待下一個鍵值的輸入,再次判斷按下的是什么鍵,如果是功能鍵就要根據上次功能鍵和輸入的數據來計算結果,然后保存結果和功能鍵,結果送顯示緩沖區(qū)顯示
61、。等待下個數值的輸入,如此重復。</p><p><b> 3.2 總體流程圖</b></p><p> 程序的總體流程圖如圖3.1所示:</p><p> 圖3.1 計算器程序總體框圖</p><p> 程序開始首先對所有的參數進行初始化,給結果的存放賦值并對顯示緩沖區(qū)清空,然后開始判斷是否有鍵按下,如果有鍵
62、按下判斷是什么鍵被按下,如果是數字鍵被按下,則判別是哪個數字鍵被按下然后把數值送顯示程序顯示;如果是清零鍵被按下,則把當前狀態(tài)清零;如果是功能鍵被按下則根據上次功能鍵和輸入的數據計算結果,然后保存結果和功能鍵,結果送顯示緩沖,等待下次數值的輸入。</p><p> 3.3顯示子程序的框圖和按鍵子程序框圖</p><p> 顯示子程序的框圖如圖3.2(a)所示:</p>&
63、lt;p> 圖3.2(a) 顯示子程序框圖</p><p> 通過顯示子程序將鍵入的數值或符號經過CPU的運行反映到數碼管上顯示出來,方便檢測某些問題。</p><p> 按鍵子程序框圖如圖3.2(b)所示: </p><p> 圖3.2(b) 按鍵程序框圖</p><p> 首先判斷是否有鍵按下,若有鍵按下則判斷是哪個
64、鍵被按下,如果是數字鍵,就顯示該數值;如果是清零鍵就對它進行清零;如果是功能鍵則轉到功能鍵的程序中去處理。</p><p><b> 4 調試過程</b></p><p> 4.1在偉福中的調試</p><p> 經過深思苦想終把程序給編了出來,但是不知編的程序是否能通過調試,于是我們通過偉福仿真軟件和Keil軟件來驗證我們的程序。首先打
65、開偉福仿真軟件的界面,對仿真器的參數值進行設置。其設置如圖4.1所示:</p><p> 圖4.1 仿真器的選擇</p><p> 我們所選的是8751的仿真器,在目標生成文件中選擇生成BIN和HEX文件(即二進制和十六進制文件)其設置如圖4.2所示,設置完成后點“好”就可以了。</p><p> 圖4.2 生成文件的設置</p><p
66、> 然后在偉福里面輸入我們的程序進行調試,剛開始有好幾處錯誤我們的程序沒有通過編譯,例如,“0”寫成了“O”,操作碼錯誤,“NEXT”錯寫為“NEST”等。然后我就查找錯誤的所在,一一更改之后終于通過編譯,其運行結果如圖4.3所示:</p><p> 圖4.3 編譯通過后的界面</p><p> 4.2在Keil中的調試并連接實驗箱</p><p>
67、 在偉福內調試通過以后,再在Keil中下載到實驗箱上進行驗證,顯現出所要求的效果。而在Keil中也要進行一些參數的設置,首先打開Keil仿真軟件,首先要新建一個項目,點菜單Project→New Project,在彈出的對話框中選擇保存的路徑并輸入項目名稱“qqqq”后保存,然后在彈出新的項目窗口中選擇參數,其參數的設置如下,由于我們使用的是Atmel公司的芯片,所以要選Atmel后確定。如圖4.4所示:</p><
68、p><b> 圖4.4</b></p><p> 在彈出的對話框中選擇AT89C51這個芯片,確定。如圖4.5所示:</p><p><b> 圖4.5</b></p><p> 然后開始設置它的參數值,如圖4.6所示:</p><p><b> 圖4.6</b>
69、;</p><p> 在Xtal中輸入頻率為11.0592MHZ,然后再選Debug這個標簽,選中第二個Use復選框后點擊Setting在彈出的對話框中選擇Baudrate這一項,設置它的參數為38400,后OK。如圖4.7所示:</p><p><b> 圖4.7</b></p><p> 把以上的參數設置完成以后把程序添加進來編譯,編
70、譯通過后接上實驗箱進行驗顯。</p><p> 在Keil中的編譯結果如圖4.8所示:</p><p><b> 圖4.8</b></p><p> 我們接上實驗箱后的效果如下圖4.9所示:</p><p><b> 圖4.9</b></p><p><b>
71、; 5 結 論</b></p><p> 通過這段時間的設計,終于完成了我計算器的設計,雖然只是一個非常簡單的計算器,可是我也經過了一翻很大的努力才完全達到設計要求的,從心底里說,還是挺高興的,畢竟這次設計所要求的東西都做了出來,然而高興之余不得不深思呀!</p><p> 在本次設計的過程中,我發(fā)現很多的問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多,單片
72、機的設計重點就在于軟件程序的設計,需要有很巧妙的編程方法,在編程時,由于粗心大意馬虎,有些語句看似沒問題,可就是不出效果,經仔細揣摩修改后,程序才正常運行。學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高。</p><p> 從這次的畢業(yè)設計中,我真真正正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,理論指導實踐,在實踐中對理論知識加以理解。還要有獨立思考能力和團隊協(xié)作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論