2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設(shè) 計</p><p> 題目簡易計算器 </p><p> 系別</p><p> 專業(yè)</p><p> 班級</p><p> 姓名</p><p> 學(xué)號</p><p> 指導(dǎo)

2、教師</p><p> 日期</p><p><b>  設(shè)計任務(wù)書</b></p><p><b>  設(shè)計題目:</b></p><p><b>  簡易計算器的設(shè)計</b></p><p><b>  設(shè)計要求:</b><

3、;/p><p>  1 設(shè)計一個具有加、減、乘、除的功能的計算器,只能進行小于255的數(shù)的加減乘除運算,并且可以連續(xù)運算。當(dāng)鍵入值大于255時,將自動清零,可以重新輸入;</p><p>  2 設(shè)計完成該功能的硬件電路;</p><p>  3 設(shè)計完成上述功能的相應(yīng)軟件;</p><p>  4 在實驗箱上調(diào)試出應(yīng)有的效果。</p>

4、;<p><b>  設(shè)計進度要求:</b></p><p>  第一周:選定設(shè)計題目,查找、搜集相關(guān)資料。</p><p>  第二周:了解各元器件、模塊的功能及使用方法。</p><p>  第三周:硬件電路的設(shè)計。</p><p>  第四周:相應(yīng)軟件設(shè)計(程序設(shè)計)。</p><

5、p>  第五周:利用實驗箱調(diào)試并記錄相關(guān)的數(shù)據(jù)和錯誤。</p><p>  第六周:利用實驗箱調(diào)試并記錄相關(guān)的數(shù)據(jù)和錯誤。</p><p>  第七周:寫畢業(yè)論文。</p><p><b>  第八周:畢業(yè)答辯。</b></p><p>  指導(dǎo)教師(簽名): </p>

6、<p><b>  摘  要</b></p><p>  隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研等各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種用單片機設(shè)計的計算器。</p><p>  這個計算器除了會加減乘除的運算功能以外,還具有連續(xù)運算的功能。當(dāng)鍵入值或運算結(jié)果大于255時,它會自動清零,可以重新輸入新值。</p&g

7、t;<p>  正文中首先簡單描述了硬件系統(tǒng)的工作原理,且附以硬件系統(tǒng)的設(shè)計框圖,論述了本次畢業(yè)設(shè)計所應(yīng)用的各種硬件接口技術(shù)和各個接口模塊的功能及工作過程, 并具體描述了外接電路接口的軟、硬件調(diào)試。</p><p>  其次闡述了程序的流程和實現(xiàn)過程。本設(shè)計就是以單片機的基本語言匯編語言來進行軟件設(shè)計,軟件的設(shè)計采用模塊化結(jié)構(gòu),使程序設(shè)計的邏輯關(guān)系更加簡潔明了。使硬件在軟件的控制下協(xié)調(diào)運作。<

8、/p><p>  本文撰寫的主導(dǎo)思想是軟、硬件相結(jié)合,以硬件為基礎(chǔ),來進行各功能模塊的編寫。</p><p>  關(guān)鍵詞: 計算器,單片機,AT89C51,匯編語言,模塊化</p><p><b>  目  錄</b></p><p><b>  目  錄I</b></p><p&

9、gt;<b>  前  言1</b></p><p>  1 單片機的發(fā)展及應(yīng)用2</p><p>  1.1 單片機的發(fā)展2</p><p>  1.2 單片機的應(yīng)用2</p><p>  2 硬件系統(tǒng)設(shè)計4</p><p>  2.1 總體框圖設(shè)計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 對矩陣式鍵盤的認(rèn)識7</p><p>  2.3.2 矩陣式鍵盤的按

11、鍵識別方法8</p><p>  2.4 LED 靜態(tài)顯示電路10</p><p>  2.4.1 數(shù)碼管簡介10</p><p>  2.4.2 顯示的種類11</p><p>  3 軟件設(shè)計(程序設(shè)計)15</p><p>  3.1設(shè)計思路15</p><p>  3

12、.2 總體流程圖15</p><p>  3.3 顯示子程序的框圖和按鍵子程序框圖16</p><p>  4 調(diào)試過程19</p><p>  4.1 在偉福中的調(diào)試19</p><p>  4.2 在Keil中的調(diào)試并連接實驗箱20</p><p><b>  5 結(jié)  論

13、24</b></p><p><b>  致  謝25</b></p><p><b>  參考文獻26</b></p><p>  附錄A:硬件原理總圖27</p><p><b>  前  言</b></p><p>  隨著半導(dǎo)體

14、集成工藝的不斷發(fā)展,單片機的集成度將更高、體積將更小、功能將更強。在單片機家族中,80C51系列是其中的佼佼者,加之Intel公司將其MCS –51系列中的80C51內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)讓給全世界許多著名IC制造廠商,如Philips、 NEC、Atmel、AMD、華邦等,這些公司都在保持與80C51單片機兼容的基礎(chǔ)上改善了80C51的許多特性。這樣,80C51就變成有眾多制造廠商支持的、發(fā)展出上百品種的大家族,現(xiàn)統(tǒng)稱為80

15、C51系列。80C51單片機已成為單片機發(fā)展的主流。專家認(rèn)為,雖然世界上的MCU品種繁多,功能各異,開發(fā)裝置也互不兼容,但是客觀發(fā)展表明,80C51可能最終形成事實上的標(biāo)準(zhǔn)MCU芯片。</p><p>  本設(shè)計采用的是ATMEL公司的AT89C51芯片,此芯片根據(jù)了充分的靜止CMOS 控制器與三級節(jié)目記憶鎖,共有:</p><p>  32 條I/O 線,2 定時計數(shù)器,6 個中斷來源,

16、4 K 閃存, 128 個字節(jié)在芯片RAM。</p><p>  由于本設(shè)計所做的是一個會加減乘除的計算器,所以要用到單片機的最小應(yīng)用系統(tǒng)模塊1,還需要用到矩陣式鍵盤和靜態(tài)顯示模塊。</p><p>  而我的硬件設(shè)計詳見第二章,主要介紹了需要哪幾部分硬件電路和硬件系統(tǒng)的概敘。在2.1節(jié)介紹了主要的框架;2.2節(jié)簡單的介紹了單片機最小應(yīng)用系統(tǒng)的性能和附屬電路;2.3節(jié)詳細(xì)介紹了鍵盤控制電路

17、;2.4節(jié)介紹了靜態(tài)顯示電路。在第三章中我們詳細(xì)的解說了軟件系統(tǒng)的設(shè)計。3.1節(jié)介紹了我們做這個設(shè)計的程序設(shè)計思路;3.2節(jié)畫出了總的程序設(shè)計框圖;3.3節(jié)分別羅列出各個子程序的框圖。第四章是我對此設(shè)計的調(diào)試過程和結(jié)果顯示。第五章就是我對此設(shè)計的總體概括,體會和心得。</p><p>  我所設(shè)計的這個計算器可適用于比較簡單的加減乘除運算,比如小學(xué)生可以借助它進行較大數(shù)目的四則運算,并運用它來探索有關(guān)規(guī)律,有利于

18、幫助學(xué)生形成初步的探索和解決問題的能力。</p><p>  1 單片機的發(fā)展及應(yīng)用</p><p>  1.1 單片機的發(fā)展</p><p>  單片微型計算機是微型計算機的一個重要分支,也是一種非?;钴S和頗具有生命力的機種。單片微型計算機簡稱單片機,特別適用于工業(yè)控制領(lǐng)域,因此又稱為微控器。</p><p>  1971年微處理器研制成功

19、不久,就出現(xiàn)了單片微型計算機即單片機,但最早的單片機是1位的,處理能力有限。</p><p>  單片機的發(fā)展分為4個階段:</p><p>  第一階段(1974—76年):單片機初級階段。因為受工藝限制,單片機采用單片的形式而且功能比較簡單。例如美國仙童公司生產(chǎn)的F8單片機,實際上只包括了8位CPU,64個字節(jié)的RAM和2個并行接口。</p><p>  第二階

20、段(1976—78年):低性能單片機階段。以InTEL公司生產(chǎn)的MCS——48系列單片機為代表,該系列單片機片內(nèi)集成有8位CPU,8位定時器/計數(shù)器,并行I/O接口,RAM和ROM等,但是最大的缺點就是無串行接口,中斷處理比較簡單而且片內(nèi)RAM和ROM容量較小,且尋址范圍不大與4KB。</p><p>  第三階段(1978—83)高性能單片階段這個階段推出的單片機普遍帶有串行接口。多級中斷系統(tǒng),16位定時器/計

21、數(shù)器,片內(nèi)ROM,RAM容量加大,且尋址范圍可達64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換器。</p><p>  第四階段(1983年至今)8位單片機鞏固發(fā)展以及16位單片機,32 位單片機推出階段。此階段的主要特征是:一方面發(fā)展16位單片機,32位單片機及專用型單片機;另一方面不斷完善高檔8位單片機,改善其結(jié)構(gòu),增加片內(nèi)器件,以滿足不同的客戶要求。</p><p>  1.2 單片機的應(yīng)用&l

22、t;/p><p>  單片機的應(yīng)用很廣,分別在以下領(lǐng)域中得到了廣泛的應(yīng)用。</p><p>  工業(yè)自動化:在自動化技術(shù)中,無論是過程控制技術(shù)、數(shù)據(jù)采集技術(shù)還是測控技術(shù),都離不開單片機。在工業(yè)自動化的領(lǐng)域中,機電一體化技術(shù)將發(fā)揮愈來愈重要的作用,在這種機械、微電子和計算機技術(shù)為一體的綜合技術(shù)(例如機器人技術(shù)、數(shù)控技術(shù))中,單片機將發(fā)揮非常重要的作用特別是近些年來,隨著計算機技術(shù)的發(fā)展,工業(yè)自動

23、化也發(fā)展到了一個新的高度,出現(xiàn)了無人工廠、機器人作業(yè)、網(wǎng)絡(luò)化工廠等,不僅將人從繁重、重復(fù)和危險的工業(yè)現(xiàn)場解放出來,還大大提高了生產(chǎn)效率,降低了生產(chǎn)成本。</p><p>  儀器儀表:目前對儀器儀表的自動化和智能化要求越來越高。在自動化測量儀器中,單片機應(yīng)用十分普及。單片機的使用有助于提高儀器儀表的精度和準(zhǔn)確度,簡化結(jié)構(gòu),減小體積,易于攜帶和使用,加速儀器儀表向數(shù)字化、智能化和多功能化方向發(fā)展。</p>

24、;<p>  消費類電子產(chǎn)品:該應(yīng)用主要反映在家電領(lǐng)域。目前家電產(chǎn)品的一個重要發(fā)展趨勢是不斷提高其智能化程度。例如,電子游戲、照相機、洗衣機、電冰箱、空調(diào)、電視機、微波爐、手機、IC卡、汽車電子設(shè)備等。在這些設(shè)備中使用了單片機后,其功能和性能大大提高,并實現(xiàn)了智能化、最優(yōu)化控制。</p><p>  信方面:較高檔的單片機都具有通信接口,因而為單片機在通信設(shè)備中的應(yīng)用創(chuàng)造了很好的條件。例如,在微波通

25、信、短波通信、載波通信、光纖通信、程控交換等通信設(shè)備和儀器中都能找到單片機的應(yīng)用。</p><p>  武器裝備:在現(xiàn)代化的武器裝備中,如飛機、軍艦、坦克、導(dǎo)單、魚雷制導(dǎo)、智能武器設(shè)備、航天飛機導(dǎo)航系統(tǒng),都有單片機在其中發(fā)揮重要作用。</p><p>  終端及外部設(shè)備控制:計算機網(wǎng)絡(luò)終端設(shè)備,如銀行終端,以及計算機外部設(shè)備如打印機、硬盤驅(qū)動器、繪圖機、傳真機、復(fù)印機等,在這些設(shè)備中都使用

26、了單片機。</p><p>  近年來隨著科技的飛速發(fā)展,同時帶動自動控制系統(tǒng)日新月異更新,單片機的應(yīng)用正在不斷地走向深入。</p><p><b>  2 硬件系統(tǒng)設(shè)計</b></p><p><b>  2.1總體框圖設(shè)計</b></p><p>  我所設(shè)計的題目是一個會運算加減乘除的計算器,

27、而我所用到的電路如圖2.1所示:</p><p>  圖2.1 總體設(shè)計框圖</p><p>  1.我的設(shè)計里用到的單片機芯片是AT89C51芯片,除此之外還包括:晶振電路和復(fù)位電路構(gòu)成單片機最小應(yīng)用系統(tǒng);</p><p><b>  2.四乘四的鍵盤;</b></p><p>  3.5個LED顯示電路,我們設(shè)計的電

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高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的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、數(shù)據(jù)保留時間:10年</p><p>  5、全靜態(tài)工作:0Hz-24Hz</p><p>  6、三級程序存儲器鎖定</p><p>  7、128*8位內(nèi)部RAM</p><p>  

31、8、32可編程I/O線</p><p>  9、兩個16位定時器/計數(shù)器</p><p><b>  10、5個中斷源</b></p><p>  11、可編程串行通道</p><p>  12、低功耗的閑置和掉電模式</p><p>  13、片內(nèi)振蕩器和時鐘電路</p><

32、p>  2.2.2 單片機附屬電路</p><p>  單片機附屬電路主要有晶體振蕩電路和復(fù)位電路。</p><p><b>  一、晶體振蕩電路</b></p><p>  1.晶體振蕩器的作用 石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。 </p><p

33、>  2.本設(shè)計所用的晶體振蕩電路如圖2.3所示: </p><p>  圖2.3 晶體振蕩電路</p><p>  此晶振電路所選用的石英晶振頻率為12MHZ。</p><p>  時鐘周期就是單片機外接晶振的倒數(shù),例如12M的晶振,它的時間周期就是1/12 us),是計算機中最基本的、最小的時間單位。</p><p>  在一個時

34、鐘周期內(nèi),CPU僅完成一個最基本的動作。對于某種單片機,若采用了1MHZ的時鐘頻率,則時鐘周期為1us;若采用4MHZ的時鐘頻率,則時鐘周期為0.25us。由于時鐘脈沖是單片機的基本工作脈沖,它控制著單片機的工作節(jié)奏(使單片機的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機型的單片機,時鐘頻率越高,單片機的工作速度就越快。但是,由于不同的單片機的硬件電路和器件不完全相同,所以其需要的時鐘頻率范圍也不相同。我們學(xué)習(xí)的51系列單片機的時鐘范

35、圍是1.2MHz-12MHz。</p><p><b>  二、復(fù)位電路</b></p><p>  單片機復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC=0000H,使單片機從第—個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位,所以我們必須弄清楚MCS-51型單片機復(fù)位的條件、復(fù)位電

36、路和復(fù)位后狀態(tài)。</p><p>  單片機復(fù)位的條件是:必須使RST/Vpd或RST引腳加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12MHz,每機器周期為1us,則只需2us以上時間的高電平,在RST引腳出現(xiàn)高電平后的第二個機器周期執(zhí)行復(fù)位。單片機常用的復(fù)位電路如圖2.4(a)和圖2.4(b)所示:</p><p>  圖2.4(a) 復(fù)位電路

37、 圖2.4(b) 與單片機相連的復(fù)位電路</p><p>  圖2.4(a) 就是我們的設(shè)計中使用的復(fù)位電路,其電阻阻值的選擇和電容容量的選擇都是經(jīng)過計算的,而最后計算的結(jié)果時間常數(shù)可以滿足我們的需求。其計算過程如下:</p><p>  て=0.7RC=0.7×1000×10×10-6=0.7ms</p><p>

38、  此值遠(yuǎn)遠(yuǎn)大于2us,所以此復(fù)位電路可用。</p><p>  圖2.4(b)為按鍵復(fù)位電路。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的RESET鍵,此時電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生復(fù)位高電平。</p><p>  2.3四乘四鍵盤控制電路</p><p>  2.3.1 對矩陣式鍵盤的認(rèn)識</p><p> 

39、 矩陣式鍵盤的結(jié)構(gòu)與工作原理:</p><p>  在鍵盤中的按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖2.5所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,只需要單片機的一個端口(如P1口)就可以構(gòu)成4*4=16個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多

40、出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤比較是合理的。</p><p>  由于本系統(tǒng)按鍵較多,在這里采用矩陣式4*4鍵盤,這樣可以合理應(yīng)用硬件資源,用一個8位I/O口控制, 如圖2.5所示:</p><p>  圖2.5 按鍵電路</p><p>  矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,圖2.5中,列線通過電阻接正

41、電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。一旦有鍵按下,則輸入線就會被拉低,行線輸出是低電平。這樣,通過讀入輸入線的狀態(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.判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它行線為高電平。在確定某根行線為低電平后,再逐行檢測各列線的電平狀態(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設(shè)置為輸出線,列線P14-P17設(shè)置為輸入線。4根行線和4根列線形成16個相交點。</p><p>  1.檢測當(dāng)前是否有鍵被按下。檢測的方法是P10-P13輸出全“0”,讀取P14-P17的狀態(tài),

45、若P14-P17為全“1”,則無鍵閉合,否則有鍵閉合。</p><p>  2.去除鍵抖動。當(dāng)檢測到有鍵按下后,延時一段時間再做下一步的檢測判斷。</p><p>  3.若有鍵被按下,應(yīng)識別出是哪一個鍵閉合。方法是對鍵盤的行線進行掃描。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”這一行沒有鍵閉合,否則有鍵閉合。由此得到閉合鍵的行值和列值,然后可采用計算法或查表法將閉合鍵的行值和列值轉(zhuǎn)換成所定義的鍵值。</p><p&

47、gt;  4.為了保證鍵每閉合一次CPU僅作一次處理,必須消除鍵釋放時的抖動。</p><p>  我設(shè)計的鍵盤所對應(yīng)的鍵碼如圖2.6所示:</p><p>  圖2.6 鍵盤框圖</p><p>  2.4 LED 靜態(tài)顯示電路</p><p>  2.4.1 數(shù)碼管簡介</p><p><b>  1

48、. 數(shù)碼管結(jié)構(gòu)</b></p><p>  數(shù)碼管由8個發(fā)光二極管(以下簡稱字段)構(gòu)成,通過不同的組合可用來顯示數(shù)字0 9、字符A F及小數(shù)點“·”。數(shù)碼管的外形結(jié)構(gòu)如圖2.7(a)所示。數(shù)碼管又分為共陰極和共陽極兩種結(jié)構(gòu),分別如圖2.7(b)和圖2.7(c)所示。</p><p>  (a) 外型結(jié)構(gòu);(b) 共陰極;(c)共陽極</p><p

49、>  圖2.7 數(shù)碼管結(jié)構(gòu)圖</p><p>  2. 數(shù)碼管工作原理</p><p>  由于我們采用的是共陰極數(shù)碼管,所以介紹共陰極數(shù)碼管的工作原理如下:</p><p>  共陰極數(shù)碼管的8個發(fā)光二極管的陰極(二極管負(fù)端)連接在一起。通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為高電平時,則該端所連接的字段導(dǎo)通

50、并點亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。</p><p>  共陽極數(shù)碼管的工作原理與共陰極的正好相反。</p><p>  3. 數(shù)碼管字形編碼</p><p>  要使數(shù)碼管顯示出相應(yīng)的數(shù)字或字符,必須使段數(shù)據(jù)口輸出相應(yīng)的字形編碼。</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)顯示是指數(shù)碼管顯示某一字符時,相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止。這種顯示方式的各位數(shù)碼管

52、相互獨立,公共端恒定接地(共陰極)或接正電源(共陽極)。每個數(shù)碼管的8個字段分別與一個8位I/O口地址相連,I/O口只要有段碼輸出,相應(yīng)字符即顯示出來,并保持不變,直到I/O口輸出新的段碼。采用靜態(tài)顯示方式的優(yōu)點:較小的電流即可獲得較高的亮度,且占用CPU時間少,編程簡單,顯示便于監(jiān)測和控制,但其占用的接口線多,硬件電路復(fù)雜,成本高,只適合于顯示位數(shù)較少的場合。</p><p><b>  2. 動態(tài)顯

53、示概念</b></p><p>  動態(tài)顯示是一位一位地輪流點亮各位數(shù)碼管,這種逐位點亮顯示器的方式稱為位掃描。通常,各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個8位的I/O口控制;各位的位選線(公共陰極或陽極)由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管分時輪流選通,要使其穩(wěn)定顯示,必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼。依此規(guī)

54、律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符。雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人以同時顯示的感覺。</p><p>  采用動態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示方式簡單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時,CPU要依次掃描,占用CPU較多的時間。</p><p>  我們這個設(shè)計所使用的顯示屬于靜態(tài)顯示,

55、其顯示電路圖形如圖2.8所示:</p><p>  圖2.8 靜態(tài)顯示電路</p><p>  顯示器由5個共陰極數(shù)碼管組成。輸入只有兩個信號,它們是串行數(shù)據(jù)線DIN和移位信號CLK。5個串/并移位寄存器芯片74LS164首尾相連。每片的并行輸出作為LED數(shù)碼管的段碼。</p><p>  移位寄存器的位移原理也就是隨著CLK脈沖的輸入從DIN端輸入數(shù)據(jù)一步一步的

56、向Q7移動,當(dāng)?shù)诙€字節(jié)移入后,原第一個已經(jīng)從Q7端移出。兩位數(shù)據(jù)是不會交錯的。比如要向164寫入11011100(第一字節(jié))10011000(第二字節(jié)),當(dāng)?shù)谝粋€8位輸入后164的內(nèi)容為11011100 ,第二字節(jié)的第一位輸入后164為10111000,第二位輸入后164為01110000,依次類推,當(dāng)輸入完8個位后,164輸出端為10011000 正是第二個字節(jié)的內(nèi)容。</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>  做完以上這些分立的電路部分,我們所設(shè)計的東西也就出來了,有鍵盤、顯示電路、和單片機周圍一些附屬電路,其硬件原理總圖見附錄A。</p><p>  3 軟件設(shè)計(程序設(shè)計)</p><p><b>

59、  3.1設(shè)計思路</b></p><p>  由于我們所做的是一個比較簡單的計算器,它只需要有加、減、乘、除的功能就可以了,另外還要求只能進行小于255的數(shù)的加減乘除運算,并且可以連續(xù)運算。當(dāng)鍵入值大于255時,將自動清零,可以重新輸入。</p><p>  所以我們考慮到用單片機語言來做我們的設(shè)計比較簡單。對于程序我們的設(shè)計思路是:</p><p>

60、  1.要有顯示子程序,當(dāng)鍵入一個數(shù)值或符號時顯示程序要把這個鍵入的值給顯示出來。經(jīng)過運算在按下等號之后顯示出此次運算的結(jié)果。</p><p>  2.就是按鍵程序,當(dāng)一個鍵盤按下的時候,按鍵程序要判斷是哪個按鍵按下,如果是數(shù)字鍵按下就要轉(zhuǎn)向顯示子程序來顯示出這個數(shù)字,然后等待下一個鍵值的輸入,再次判斷按下的是什么鍵,如果是功能鍵就要根據(jù)上次功能鍵和輸入的數(shù)據(jù)來計算結(jié)果,然后保存結(jié)果和功能鍵,結(jié)果送顯示緩沖區(qū)顯示

61、。等待下個數(shù)值的輸入,如此重復(fù)。</p><p><b>  3.2 總體流程圖</b></p><p>  程序的總體流程圖如圖3.1所示:</p><p>  圖3.1 計算器程序總體框圖</p><p>  程序開始首先對所有的參數(shù)進行初始化,給結(jié)果的存放賦值并對顯示緩沖區(qū)清空,然后開始判斷是否有鍵按下,如果有鍵

62、按下判斷是什么鍵被按下,如果是數(shù)字鍵被按下,則判別是哪個數(shù)字鍵被按下然后把數(shù)值送顯示程序顯示;如果是清零鍵被按下,則把當(dāng)前狀態(tài)清零;如果是功能鍵被按下則根據(jù)上次功能鍵和輸入的數(shù)據(jù)計算結(jié)果,然后保存結(jié)果和功能鍵,結(jié)果送顯示緩沖,等待下次數(shù)值的輸入。</p><p>  3.3顯示子程序的框圖和按鍵子程序框圖</p><p>  顯示子程序的框圖如圖3.2(a)所示:</p>&

63、lt;p>  圖3.2(a) 顯示子程序框圖</p><p>  通過顯示子程序?qū)㈡I入的數(shù)值或符號經(jīng)過CPU的運行反映到數(shù)碼管上顯示出來,方便檢測某些問題。</p><p>  按鍵子程序框圖如圖3.2(b)所示: </p><p>  圖3.2(b) 按鍵程序框圖</p><p>  首先判斷是否有鍵按下,若有鍵按下則判斷是哪個

64、鍵被按下,如果是數(shù)字鍵,就顯示該數(shù)值;如果是清零鍵就對它進行清零;如果是功能鍵則轉(zhuǎn)到功能鍵的程序中去處理。</p><p><b>  4 調(diào)試過程</b></p><p>  4.1在偉福中的調(diào)試</p><p>  經(jīng)過深思苦想終把程序給編了出來,但是不知編的程序是否能通過調(diào)試,于是我們通過偉福仿真軟件和Keil軟件來驗證我們的程序。首先打

65、開偉福仿真軟件的界面,對仿真器的參數(shù)值進行設(shè)置。其設(shè)置如圖4.1所示:</p><p>  圖4.1 仿真器的選擇</p><p>  我們所選的是8751的仿真器,在目標(biāo)生成文件中選擇生成BIN和HEX文件(即二進制和十六進制文件)其設(shè)置如圖4.2所示,設(shè)置完成后點“好”就可以了。</p><p>  圖4.2 生成文件的設(shè)置</p><p

66、>  然后在偉福里面輸入我們的程序進行調(diào)試,剛開始有好幾處錯誤我們的程序沒有通過編譯,例如,“0”寫成了“O”,操作碼錯誤,“NEXT”錯寫為“NEST”等。然后我就查找錯誤的所在,一一更改之后終于通過編譯,其運行結(jié)果如圖4.3所示:</p><p>  圖4.3 編譯通過后的界面</p><p>  4.2在Keil中的調(diào)試并連接實驗箱</p><p> 

67、 在偉福內(nèi)調(diào)試通過以后,再在Keil中下載到實驗箱上進行驗證,顯現(xiàn)出所要求的效果。而在Keil中也要進行一些參數(shù)的設(shè)置,首先打開Keil仿真軟件,首先要新建一個項目,點菜單Project→New Project,在彈出的對話框中選擇保存的路徑并輸入項目名稱“qqqq”后保存,然后在彈出新的項目窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用的是Atmel公司的芯片,所以要選Atmel后確定。如圖4.4所示:</p><

68、p><b>  圖4.4</b></p><p>  在彈出的對話框中選擇AT89C51這個芯片,確定。如圖4.5所示:</p><p><b>  圖4.5</b></p><p>  然后開始設(shè)置它的參數(shù)值,如圖4.6所示:</p><p><b>  圖4.6</b>

69、;</p><p>  在Xtal中輸入頻率為11.0592MHZ,然后再選Debug這個標(biāo)簽,選中第二個Use復(fù)選框后點擊Setting在彈出的對話框中選擇Baudrate這一項,設(shè)置它的參數(shù)為38400,后OK。如圖4.7所示:</p><p><b>  圖4.7</b></p><p>  把以上的參數(shù)設(shè)置完成以后把程序添加進來編譯,編

70、譯通過后接上實驗箱進行驗顯。</p><p>  在Keil中的編譯結(jié)果如圖4.8所示:</p><p><b>  圖4.8</b></p><p>  我們接上實驗箱后的效果如下圖4.9所示:</p><p><b>  圖4.9</b></p><p><b>

71、;  5 結(jié)  論</b></p><p>  通過這段時間的設(shè)計,終于完成了我計算器的設(shè)計,雖然只是一個非常簡單的計算器,可是我也經(jīng)過了一翻很大的努力才完全達到設(shè)計要求的,從心底里說,還是挺高興的,畢竟這次設(shè)計所要求的東西都做了出來,然而高興之余不得不深思呀!</p><p>  在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計但這次設(shè)計真的讓我長進了很多,單片

72、機的設(shè)計重點就在于軟件程序的設(shè)計,需要有很巧妙的編程方法,在編程時,由于粗心大意馬虎,有些語句看似沒問題,可就是不出效果,經(jīng)仔細(xì)揣摩修改后,程序才正常運行。學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高。</p><p>  從這次的畢業(yè)設(shè)計中,我真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,理論指導(dǎo)實踐,在實踐中對理論知識加以理解。還要有獨立思考能力和團隊協(xié)作

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論