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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  單片機原理與應用及C51程序設計</p><p><b>  成績:______</b></p><p>  題目:簡易計算器的設計</p><p>  系別:電氣信息工程學院</p><p><b>  目錄</b></p><p><b>

2、  摘 要</b></p><p><b>  第一章 緒 論</b></p><p>  第二章 方案論證與設計</p><p>  2.1 設計目標和實現方法</p><p>  2.2方案論證與設計</p><p>  第三章 硬件模塊介紹</p>

3、<p><b>  3.1 運算模塊</b></p><p>  3.2 單片機(AT89C51)</p><p>  3.2.1 單片機(AT89S51)的引腳功能</p><p>  3.3.2 引腳介紹</p><p>  3.3 74ls245芯片</p><p> 

4、 74ls245芯片如圖3-7所示</p><p>  3.4 輸入模塊</p><p>  3.4.1 鍵盤介紹</p><p><b>  3.5 顯示模塊</b></p><p>  3.5 .1 數碼</p><p>  3.5.2 數碼管的分類</p>&l

5、t;p><b>  第四章 軟件設計</b></p><p>  4.1 LED顯示程序流程圖設計</p><p>  4.2 讀鍵輸入程序流程圖設計</p><p>  4.3 主程序流程圖設計</p><p>  第五章 仿真及調試</p><p><b>  總

6、結</b></p><p>  附錄 ....................................................................</p><p><b>  摘要</b></p><p>  計算器在人們的日常中是比較的常見的電子產品之一??墒撬€在發(fā)展之中,以后必將出現功能更加強大的

7、計算器,基于這樣的理念,本次設計是用單片機來設計的八位計算器。該設計系統(tǒng)是以AT89C51為單片機,用74LS245為顯示位控制, P1口作為輸入端,外接4X4的鍵盤,通過鍵盤掃描來對輸入數的控制,并外接驅動電路,系統(tǒng)采用LED數碼管作為顯示器,軟件程序采用均采用C語言編寫,便于移植與升級。報告詳細介紹了整個系統(tǒng)的硬件組成結構、工作原理和系統(tǒng)的軟件程序設計。計算器將完成的功能有整數的加,減,乘,除等功能。</p><

8、p>  關鍵字 計算器 數碼管 74LS245</p><p><b>  第一章 緒 論</b></p><p>  隨著社會的發(fā)展,科學的進步,人們的生活水平在逐步的提高,尤其是微電子技術的發(fā)展,猶如雨后春筍般的變化。電子產品的更新速度快就不足驚奇了, 單片機的應用已經越來越貼近生活,用單片機來實現一些電子設計也變得容易起來?! 〗陙?,單片機以其體

9、積小、價格廉、面向控制等獨特優(yōu)點,在各種工業(yè)控制、儀器儀表、設備、產品的自動化、智能化方面獲得了廣泛的應用。與此同時,單片機應用系統(tǒng)的可靠性成為人們越來越關注的重要課題。影響可靠性的因素是多方面的,如構成系統(tǒng)的元器件本身的可靠性、系統(tǒng)本身各部分之間的相互耦合因素等。其中系統(tǒng)的抗干擾性能是系統(tǒng)可靠性的重要指標。</p><p>  本設計采用80S51 芯片,實現了利用單片機進行了一個簡單計算器設計。允許對輸入數據

10、進行加減乘除運算及LED 顯示。如果設計對象是更為復雜的計算器系統(tǒng),其實際原理與方法與本設計基本相同。另外,實例所設計的計算器是用LED 數碼管顯示的,當然也可以用其他的器件顯示,如LED 顯示屏,這樣就可以顯示出更多的字符,在此基礎上,還可以編寫更加完善的程序來實現更多的計算功能。設計的關鍵所在,必須非常熟悉單片機的原理與結構,同時還要對整個設計流程有很好的把握,將單片機和其他模塊完整的銜接。</p><p>

11、  第二章 方案論證與設計</p><p>  2.1 設計目標和實現方法</p><p>  為了滿足計算器的基本要求,可以基本的運算(加減乘除),數據歸零和出錯警告提示,我們采用基于單片機設計計算器,并用LED 數碼管顯示數據,4*4 的矩陣鍵盤實現數據輸入。設計仿真和調試要用到Protues 、Keil等軟件。</p><p>  2.2方案論證與設計&l

12、t;/p><p>  根據功能和指標要求,本系統(tǒng)選用MCS 51 單片機為主控機。通過擴展必要的外圍接口</p><p>  電路,實現對計算器的設計。具體設計考慮如下:</p><p> ?、儆捎谝O計的是簡單的計算器,可以進行四則運算,對數字的大小范圍要求不高故</p><p>  我們采用可以進行四位數字的運算,選用8 個LED 數碼管顯示

13、數據和結果。</p><p> ?、诹硗怄I盤包括數字鍵(0~9)、符號鍵(+、-、×、÷)、清除鍵和等號鍵,故只需要16 個按鍵即可。</p><p><b>  系統(tǒng)模塊圖:</b></p><p>  圖2-1 系統(tǒng)模塊圖</p><p>  根據需要我們可以采用自上而下的程序設計方法,此方法先從

14、主程序開始設計,然后再編制各從屬程序和子程序,層層細化逐步求精,最終完成一個復雜程序的設計。這種方法比較符合人們的日常思維,缺點是一級的程序錯誤會對整個程序產生影響。程序流程圖如圖2-2所示:</p><p>  圖2-2 程序流程圖</p><p>  第三章 硬件模塊介紹</p><p><b>  3.1 運算模塊</b></p&g

15、t;<p>  MCS-51 單片機是在一塊芯片中集成了CPU、RAM、ROM、定時器/計數器和多功能I/O等一臺計算機所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數據存儲器(RAM)、程序存儲器(ROM/EPROM)、并行I/O 口、串行口、定時器/計數器、中斷系統(tǒng)及特殊功能寄存器(SFR)。單片機是靠程序運行的,并且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能

16、,通過使用單片機編寫的程序可以實現高智能,高效率,以及高可靠性!因此我們采用單片機作為計算器的主要功能部件,可以進行很快地實現運算功能,如圖2-1所示:</p><p>  圖3-1 單片機芯片</p><p>  3.2 單片機(AT89C51)</p><p>  單片機是我們電子產品實現自動化、智能化必不可少的電子元器件,它的外觀如圖3-2所示:</p&

17、gt;<p>  圖3-2 單片機外觀圖</p><p>  3.2.1 單片機(AT89S51)的引腳功能</p><p>  51系列單片機8031、8051及89c51/89s51均采用40Pin封裝的雙列直接DIP結構。上圖是它們的引腳配置:40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用,如圖3-3所示:&

18、lt;/p><p><b>  圖3-3 引腳圖</b></p><p>  3.3.2 引腳介紹</p><p>  3.3.2.1 電源引腳</p><p>  Vcc 40腳 正電源腳,工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。</p><p>  GND 2

19、0腳 接地端。</p><p>  3.3.2.2 外接晶體引腳</p><p>  外接晶體引腳如圖3-4所示:</p><p>  圖3-4 外接晶體管引腳</p><p>  Pin19:時鐘XTAL1腳, Pin18:時鐘XTAL2腳,XTAL1是片內振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接

20、加到XTAL1,而XTAL2懸空。內部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內選擇。電容取30PF左右。 型號同樣為AT89C51的芯片,在其后面還有頻率編號,有12,16,20,24MHz可選。大家在購買和選用時要注意了。如AT89C51 24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯片。</p><p>  3

21、.3.2.3 復位</p><p>  在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現在此引腳時,將使單片機復位,只要這個腳保持高電平,51芯片便循環(huán)復位。復位后P0-P3口均置1引腳表現為高電平,程序計數器和特殊功能寄存器SFR全部清零。當復位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的0000H處開始運行程序。常用的復位電路如下圖3-5所示。</p><p>  圖3-5

22、復位電路圖</p><p>  復位操作不會對內部RAM有所影響。當8051通電,時鐘電路開始工作,在RESET引腳上出現24個時鐘周期以上的高電平,系統(tǒng)即初始復位。什么叫復位?復位是單片機重新執(zhí)行程序代碼的意思。8051的復位方式可以是自動復位,也可以是手動復位,如圖3-6所示。此外,RESET/Vpd還是一復用腳,Vcc掉電期間,此腳可接上備用電源, 以保證單片機內部RAM的數據不丟失。</p>

23、<p><b>  圖3-6 復位方式</b></p><p>  3.3.2.4 輸入輸出(I/O)引腳:</p><p>  P39-P32為P0.0-P0.7輸入輸出腳,稱為P0口,是一個8位漏極開路型雙向I/O口。內部不帶上拉電阻,當外接上拉電阻時,P0口能以吸收電流的方式驅動八個LSTTL負載電路。通常在使用時外接上拉電阻,用來驅動多個數碼管。

24、在訪問外部程序和外部數據存儲器時,P0口是分時轉換的地址(低8位)/數據總線,不需要外接上拉電阻。P1-P8為P1.0-P1.7輸入輸出腳,稱為P1口,是一個帶內部上拉電阻的8位雙向I/0口。P1口能驅動4個LSTTL負載。 通常在使用時外不需要外接上拉電阻,就可以直接驅動發(fā)光二極管。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。</p><p>  P21-P28為P2.0-P2.7輸入輸出腳,稱為P2口

25、,是一個帶內部上拉電阻的8位雙向I/O口,P2口能驅動4個LSTTL負載。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數據存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。 </p><p>  P10-P17為P3.0-P3.7輸入輸出腳,稱為P3口,是一個帶內部上拉電阻

26、的8位雙向I/O口,P2口能驅動4個LSTTL負載,這8個引腳還用于專門的第二功能。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。</p><p>  P1-P3端口在做輸入使用時,因內部有上接電阻,被外部拉低的引腳會輸出一定的電流。除此之外P3端口還用于一些專門功能,具體請看下表3-1:</p><p>  表3-1 P3口功能表</p><p>  3.3

27、.2.5 其它的控制或復用引腳</p><p>  (1) ALE/PROG 30 訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率輸出脈沖信號(此頻率是振蕩器頻率的1/6)。在訪問外部數據存儲器時,出現一個ALE脈沖。對Flash存儲器編程時,這個引腳用于輸入編程脈沖PROG</p><p>  (2) PSEN 29 該

28、引是外部程序存儲器的選通信號輸出端。當AT89C51由外部程序存儲器取指令或常數時,每個機器周期輸出2個脈沖即兩次有效。但訪問外部數據存儲器時,將不會有脈沖輸出。</p><p>  (3) EA/Vpp 31 外部訪問允許端。當該引腳訪問外部程序存儲器時,應輸入低電平。要使AT89S51只訪問外部程序存儲器(地址為0000H-FFFFH),這時該引腳必須保持低電平。對Flash存儲器編程時,用于施加Vpp編程電

29、壓。</p><p>  3.3 74ls245芯片</p><p>  74ls245芯片如圖3-7所示:</p><p><b>  圖3-7 驅動電路</b></p><p>  74ls245是我們常見的芯片,在這里它用來驅動LED,它是8路同相三態(tài)雙向總線收發(fā)器,可以雙向傳送數據。</p>&l

30、t;p>  74ls245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數據。</p><p>  當8051單片機的P0口總線負載達到或超過P0最大負載能力時,必須介入74L245等 總線驅動器。</p><p>  當片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸;(接收)</p><p>  *DIR=“1”,信號由 A 向 B 傳輸;(

31、發(fā)送)當/CE為高電平時,A、B均為高阻態(tài)。</p><p><b>  3.4 輸入模塊</b></p><p>  計算器輸入數字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式,在這種情況下,編程會很簡單,但是會占用大量的I/O 口資源,因此在很多情況下都不采用這種方式。為此,我們引入了矩陣鍵盤的應用,采用四條I/O 線作為行線,四條I/O 線作為列線組成

32、鍵盤。在行線和列線的每個交叉點上設置一個按鍵。這樣鍵盤上按鍵的個數就為4×4個。這種行列式鍵盤結構能有效地提高單片機系統(tǒng)中I/O 口的利用率,如圖3-8所示:</p><p><b>  圖3-8 鍵盤按鍵</b></p><p>  3.4.1 鍵盤介紹</p><p>  每個按鍵都有它的行值和列值,行值和列值的組合就是識別這個

33、按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。鍵盤的一端(列線)通過電阻接VCC,而接地是通過程序輸出數字“0”實現的。鍵盤處理程序的任務是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么?還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地;另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。</p><p>  當

34、無按鍵閉合時,P10~P13 與P14~P17 之間開路;當有鍵閉合時,與閉合鍵相連的兩條I/O 口線之間短路。判斷有無按鍵按下的方法是:第一步,置列線P14~P17 為輸入狀態(tài),從行線P10~P13 輸出低電平,讀入列線數據,若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P14~P17 讀入數據,若有某一列為低電平,則對應行線上有鍵按下。綜合一二兩步的結果,可確定按鍵編號。但是鍵閉合一次只能進行一次鍵功能操

35、作,因此須等到按鍵釋放后,再進行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進行同樣的鍵操作。</p><p><b>  圖3-9 鍵盤電路</b></p><p><b>  3.5 顯示模塊</b></p><p>  發(fā)光二極管LED 是單片機應用系統(tǒng)中的一宗簡單而常用的輸出設備,其在系統(tǒng)中的主要作用是顯示單片機的輸

36、出數據、狀態(tài)等。因而作為典型的外圍器件,LED 顯示單元是反映系統(tǒng)輸出和操作輸入的有效器件。LED 具備數字接口可以方便的和大年紀系統(tǒng)連接;它的優(yōu)點是價格低,壽命長,對電壓電流的要求低及容易實現多路等,因而在單片機應用系統(tǒng)中獲得了廣泛的應用,所以在此設計中我首先選用了LED作為顯示器件。如圖3-10所示: </p><p>  圖3-10 數碼顯示管</p><p><b>  

37、3.5 .1 數碼</b></p><p>  3.5.2 數碼管的分類</p><p>  數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發(fā)光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管;按發(fā)光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數碼

38、管。共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。。共陰數碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數碼管。共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。</p><p>  LED顯示器由七段

39、發(fā)光二極管組成,排列成8字形狀,因此也成為七段LED顯示器,器排列形狀如下圖所示:</p><p>  圖3-11 LED段碼</p><p>  為了顯示數字或符號,要為LED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個小數點位,共計8段,因此提供的字形代碼的長度正好是一個字節(jié)。簡易計算器用到的數字0~9的共陰極字形代碼如下表3-1所示:</p><p>

40、;  表3-1 0~9七段數碼管共陰級字形代碼</p><p><b>  第四章 軟件設計</b></p><p>  4.1 LED顯示程序流程圖設計</p><p>  6位LED顯示的程序框圖如圖4-1所示:</p><p>  圖4-1 LED顯示流程圖</p><p>  4.2 讀

41、鍵輸入程序流程圖設計</p><p>  為了實現鍵盤的數據輸入功能和命令處理功能,每個鍵都有其處理子程序,為此每個鍵都對應一個碼——鍵碼。為了得到被按鍵的鍵碼,現使用行掃描法識別按鍵。列掃描信號進行讀入行的信號判斷該列是否有列的輸出——是則進行按照行列計算鍵盤的值,查表取得鍵碼并返回——若否則進行再次掃描。其程序框圖如下:</p><p><b>  圖4-2 程序框圖<

42、/b></p><p>  4.3 主程序流程圖設計</p><p><b>  運算主程序設計</b></p><p>  首先初始化參數,送LED低位顯示“0”,高位不顯示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數字鍵、清零鍵還是功能鍵(“+”“-”“*”“/”“=” ),是數值鍵則送LED顯示并保存數值,是清零鍵則做

43、清零處理,是功能鍵則又判斷是“=”還是運算鍵,若是“=”則計算最后結果并送LED顯示,若是運算鍵則保存相對運算程序的首地址。運算主程序框圖如3-4所示:</p><p>  圖4-4 運算主程序框圖</p><p>  第五章 仿真及調試</p><p>  在程序設計方法上,模塊化程序設計是單片機應用中最常用的程序設計方法。設計的中心思想是把一個復雜應用程序按整

44、體功能劃分成若干相對獨立的程序模塊,各模塊可以單獨設計、編程和調試,然后組合起來。這種方法便于設計和調試,容易實現多個程序共存,但各個模塊之間的連接有一定的難度。根據需要我們可以采用自上而下的程序設計方法,此方法先從主程序開始設計,然后再編制各從屬程序和子程序,層層細化逐步求精,最終完成一個復雜程序的設計。這種方法比較符合人們的日常思維,缺點是一級的程序錯誤會對整個程序產生影響。</p><p>  功能和操作:

45、加減乘除運算和顯示。</p><p> ?、偕想姾螅聊怀跏蓟?。</p><p> ?、谟嬎?。按下數字鍵,屏幕顯示要運算的第一個數字,再按下符號鍵,然后再按下</p><p>  數字鍵,屏幕顯示要運算的第二個數字,最后按下“﹦”號鍵,屏幕上顯示出計算結果。</p><p> ?、廴绻俅斡嬎?,可以按下“ON/C”鍵清零,或者按下單片機的復

46、位鍵,重新初始化。</p><p><b>  總 結</b></p><p>  經過近兩個星期的努力,終于順利完成了畢業(yè)設計。剛開始,我們頭緒不是很清楚,不知道從哪里入手,但通過老師的耐心指導并和同學認真研究設計課題,跑圖書館查資料、確定基本設計方案、對所用芯片功能進行查找、調試、上機仿真等,經歷了一次次的困難,卻積累了很多寶貴的經驗。在整個設計的過程中遇到的問題

47、主要有以下三點,第一:基礎知識掌握的不牢固,主要表現在一些常用的電路的形式和功能不清楚,對書本上的內容理解不夠透徹。第二:對一些常用的應用軟件缺少應用,體現在畫電路圖和系統(tǒng)的仿真的時候,對這些軟件的操作不熟練,浪費了很多時間。第三:相關知識掌握的不夠全面,缺少系統(tǒng)設計的經驗。</p><p>  這次設計進一步端了我的學習態(tài)度,學會了實事求是,嚴謹的作風,對自己要嚴格要求,不能夠一知半解,要力求明明白白。急于求成

48、是不好的,我有所感受。如果省略了那些必要的步驟,急于求成,不僅會浪費時間,還會適得其反。我覺得動手之前,頭腦里必須清楚該怎么做,這一點是很重要的。就目前來說,我的動手能力雖然差一點,但我想,通過我的不懈努力,在這方面,我總會得到提高。這一點,我堅信。因為別人能做到的,我也一定能做到。</p><p>  在此次的課程設計中我最大的體會就是進一步認識到了理論聯系實踐的重要性。一份耕耘,一份收獲。通過這段時間的設計,

49、讓我明白科學的思維方法和學習方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自己的工作更完美。總而言之,此次課程設計讓我學到了好多平時在課堂上學不到的東西,增加了我的知識運用能力,增強我的實際操作能力。謝謝老師給我們提供這么好的機會,為我們之后走向社會奠定了一個好的基礎。</p><p>  本次課程設計讓我學到了很多,也學會到了要怎么樣去面對困難,不要對知識一知半截,要有的求實的能力,通過老師的幫助我學到了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論