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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)論文</b></p><p>  用單片機(jī)控制數(shù)碼管顯示數(shù)字</p><p><b>  的設(shè)計(jì)與研究</b></p><p>  學(xué)生姓名: </p><p>  專 業(yè): </p&g

2、t;<p>  年 級(jí): </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p><b>  目錄</b></p><p><b>  摘 要2</

3、b></p><p><b>  設(shè)計(jì)背景與方案3</b></p><p>  第一章 單片機(jī)介紹5</p><p>  1.1 單片機(jī)基礎(chǔ)知識(shí)學(xué)習(xí)5</p><p>  1.2 AT89S51單片機(jī)的主要性能參數(shù)7</p><p>  1.3 AT89S51芯片內(nèi)部結(jié)構(gòu)簡(jiǎn)介

4、7</p><p>  1.4 主要引腳功能8</p><p>  第二章 數(shù)碼管的介紹12</p><p>  2.1 數(shù)碼管分類、結(jié)構(gòu)及工作原理12</p><p>  2.2 數(shù)碼管的引腳13</p><p>  2.3 驅(qū)動(dòng)方式14</p><p>  第三章 Keil

5、軟件簡(jiǎn)介16</p><p>  3.1 系統(tǒng)概述16</p><p>  3.2 整體結(jié)構(gòu)簡(jiǎn)介16</p><p>  3.3 建立項(xiàng)目步驟17</p><p>  第四章 程序設(shè)計(jì)及仿真22</p><p>  4.1 設(shè)計(jì)要求22</p><p>  4.2 利用pr

6、oyeus仿真軟件畫出電路圖22</p><p>  4.3 流程圖繪制以及說明23</p><p>  4.4 用kiel設(shè)計(jì)程序及仿真結(jié)果23</p><p>  4.5 心得體會(huì)29</p><p><b>  附錄a30</b></p><p><b>  附錄b

7、31</b></p><p><b>  致謝34</b></p><p><b>  參考文獻(xiàn)35</b></p><p><b>  摘 要</b></p><p>  單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱

8、單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。</p><p>  AT89S51是美國(guó)ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度

9、、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器 既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。</p><p>  關(guān)鍵詞: 單片機(jī) AT89s51 數(shù)碼管 proteus keil3</p><p>&l

10、t;b>  設(shè)計(jì)背景與方案</b></p><p><b>  一、設(shè)計(jì)背景</b></p><p><b>  1.單片機(jī)發(fā)展前景</b></p><p>  目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)

11、自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。</p><p>  2.共陽(yáng)極數(shù)碼管的顯示方法</p><p>  LED數(shù)碼管是單片機(jī)

12、控制系統(tǒng)中最常見的顯示器件之一,一般用來顯示處理結(jié)果或輸入輸出信號(hào)的狀態(tài)。數(shù)碼管顯示是一個(gè)系統(tǒng)工程中必不可少的人機(jī)交互環(huán)節(jié),因此關(guān)于數(shù)碼管的驅(qū)動(dòng)也就是系統(tǒng)工程中的一個(gè)重要的環(huán)節(jié)。數(shù)碼管的驅(qū)動(dòng)分為動(dòng)態(tài)驅(qū)動(dòng)和靜態(tài)驅(qū)動(dòng)兩種。所謂靜態(tài)驅(qū)動(dòng),就是指無論多少位LED數(shù)碼管,同時(shí)處于顯示狀態(tài)。動(dòng)態(tài)顯示驅(qū)動(dòng)是指無論在任何時(shí)刻只有一個(gè)LED數(shù)碼管處于顯示狀態(tài),及單片機(jī)采用“掃描”方式控制各個(gè)數(shù)碼管輪流顯示。</p><p>  3

13、.共陽(yáng)極數(shù)碼管的驅(qū)動(dòng)設(shè)計(jì)</p><p>  將數(shù)碼管每個(gè)LED燈對(duì)應(yīng)單片機(jī)的一個(gè)I/O口。通過單片機(jī)的P口來控制LED燈的亮和滅。I/O口之間互相獨(dú)立,需要用I/O口直接控制LED。動(dòng)態(tài)顯示將數(shù)碼管的每個(gè)引腳一對(duì)一連接在一起接單片機(jī)的數(shù)據(jù),而將各個(gè)數(shù)碼管的公共端單獨(dú)送至單片機(jī)的I/O口進(jìn)行片選。此外,在此基礎(chǔ)上,用單片機(jī)與三極管來驅(qū)動(dòng)數(shù)碼管,從而實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示。</p><p>&

14、lt;b>  二、設(shè)計(jì)方案</b></p><p><b>  1.靜態(tài)顯示</b></p><p>  靜態(tài)顯示,就是每一個(gè)數(shù)碼管顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種辦法單片機(jī)中CPU的開銷小。能供給單獨(dú)鎖

15、存的I/O接口電路很多,各數(shù)碼管的公共極固定接有效電平,各數(shù)碼管的字形控制端分別由各自的控制信號(hào)控制。LED顯示亮度溫度,容易調(diào)節(jié),編程容易,工作是占用CPU時(shí)間短。但若直接用單片機(jī)輸出各位數(shù)碼管的字形信號(hào)時(shí),占用單片機(jī)的I/O口線較多。一般僅適用于顯示位數(shù)較少的應(yīng)用場(chǎng)合。</p><p><b>  2.動(dòng)態(tài)顯示</b></p><p>  P2.0端口控制數(shù)碼管的

16、個(gè)位的供電,當(dāng)相應(yīng)的端口變成低電平時(shí),驅(qū)動(dòng)相應(yīng)的三極管會(huì)導(dǎo)通,+5V通過驅(qū)動(dòng)三極管給數(shù)碼管相應(yīng)的位供電,這是只要P3口送出數(shù)字的顯示代碼,數(shù)碼管就能正常的顯示數(shù)字。</p><p>  3.動(dòng)態(tài)顯示與靜態(tài)顯示對(duì)比</p><p>  本設(shè)計(jì)要求循環(huán)顯示,要求顯示不同數(shù)字,所以要求用動(dòng)態(tài)掃描的方式實(shí)現(xiàn),即采用動(dòng)態(tài)的顯示方式,就是顯示1毫秒,不斷循環(huán),這樣只要掃描時(shí)間小于1/50秒,就會(huì)因?yàn)槿?/p>

17、眼的視覺殘留效應(yīng),看到不同數(shù)字的穩(wěn)定顯示。數(shù)碼管的字形控制端對(duì)應(yīng)的并在一起,由一組I/O端口進(jìn)行控制,公共極相互獨(dú)立,分別由不同的I/O控制信號(hào)控制。</p><p>  為了達(dá)到我們的設(shè)計(jì)要求,實(shí)現(xiàn)用單片機(jī)控制數(shù)碼管顯示數(shù)字的設(shè)計(jì),下面我們將從基礎(chǔ)知識(shí)開始研究。</p><p><b>  第一章 單片機(jī)介紹</b></p><p>  單片

18、機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。</p><p>  單片機(jī)也被稱為微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),

19、它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。</p><p><b>  單片機(jī)基礎(chǔ)知識(shí)學(xué)習(xí)</b></p><p&g

20、t;  早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹?jiǎn)單可靠而性能不錯(cuò)獲得了很大的好評(píng)。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速

21、取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Win

22、dows和Linux操作系統(tǒng)。</p><p>  單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)。現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)

23、單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他計(jì)算的總和,甚至比人類的數(shù)量還要多。 </p><p>  單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最

24、佳選擇。 </p><p>  單片機(jī)內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過價(jià)錢也是低的,一般不超過10元即可用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!它主要是作為控制部分的核心部件。 </p><p>

25、;  它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場(chǎng)控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。</p><p>  圖1-1 單片機(jī)芯片</p><p>  目前,很多人對(duì)匯編語(yǔ)言并不認(rèn)可??梢哉f,掌握用C語(yǔ)言單片機(jī)編程很重要,可以大大提高開發(fā)的效率。不過初學(xué)者可以不了解單片機(jī)的匯編語(yǔ)言,但一定要了解單片機(jī)具體性能和特點(diǎn),不然在單片機(jī)領(lǐng)

26、域是比較致命的。如果不考慮單片機(jī)硬件資源,在KEIL中用C胡亂編程,結(jié)果只能是出了問題無法解決!可以肯定的說,最好的C語(yǔ)言單片機(jī)工程師都是從匯編走出來的編程者因?yàn)閱纹瑱C(jī)的C語(yǔ)言雖然是高級(jí)語(yǔ)言,但是它不同于臺(tái)式機(jī)個(gè)人電腦上的VC++什么的單片機(jī)的硬件資源不是非常強(qiáng)大,不同于我們用VC、VB等高級(jí)語(yǔ)言在臺(tái)式PC上寫程序畢竟臺(tái)式電腦的硬件非常強(qiáng)大,所以才可以不考慮硬件資源的問題。還有就是在單片機(jī)編程中C語(yǔ)言雖然編程方便,便于人們閱讀,但是在執(zhí)

27、行效率上是要比匯編語(yǔ)言低10%到20%,所以用什么語(yǔ)言編寫程序是要看具體用在什么場(chǎng)合下??偟膩碚f做單片機(jī)編程要靈活使用匯編語(yǔ)言與C語(yǔ)言,讓單片機(jī)的強(qiáng)大功能以最高是效率展示給用戶。</p><p>  1.2 AT89S51單片機(jī)的主要性能參數(shù)</p><p>  AT89S51 是美國(guó) ATMEL 公司生產(chǎn)的低功耗,高性能 CMOS8 位單片機(jī),片內(nèi)含 4k bytes 的可系統(tǒng)編程的

28、Flash 只讀程序存儲(chǔ)器,器件采用 ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。它集 Flash 程序存儲(chǔ)器既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用 8 位微處理器于單片芯片中,ATMEL 公司的功能強(qiáng)大,低價(jià)位 AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。</p><p><b>  主要性能參數(shù)</b>

29、;</p><p>  與單片機(jī)產(chǎn)品兼容4k 字節(jié) Flash 閃速存儲(chǔ)器、128 字節(jié)內(nèi)部 RAM、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz、三級(jí)加密程序存儲(chǔ)器、32個(gè)可編程I/O口線 、兩個(gè)數(shù)據(jù)指針、兩個(gè) 16 位定時(shí)/計(jì)數(shù)器、六個(gè)中斷源 、全雙工UART串行通道低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器(WDT)、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符、一個(gè) 5 向量?jī)杉?jí)中斷結(jié)構(gòu)、片內(nèi)振蕩器及時(shí)鐘電路。同

30、時(shí),AT89S51 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU 的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。</p><p>  1.3 AT89S51芯片內(nèi)部結(jié)構(gòu)簡(jiǎn)介</p><p>  AT89S51單片機(jī)的片內(nèi)硬件組成結(jié)構(gòu)如附錄

31、A中圖1所示。把作為控制應(yīng)用所必需的基本功能部件都集成在一個(gè)尺寸有限的集成電路芯片上。下面介紹附錄A中圖1里片內(nèi)各功能部件。</p><p><b>  一、中央處理器:</b></p><p>  中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功

32、能等操作。</p><p>  二、數(shù)據(jù)存儲(chǔ)器(內(nèi)部RAM):</p><p>  數(shù)據(jù)存儲(chǔ)器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲(chǔ)器的地址空間為256個(gè)RAM單元,但其中能作為數(shù)據(jù)存儲(chǔ)器供用戶使用的僅有前面128個(gè),后128個(gè)被專用寄存器占用。</p><p>  三、程序存儲(chǔ)器(內(nèi)部ROM):</p><p>  程序存儲(chǔ)器用于存放

33、程序和固定不變的常數(shù)等。通常采用只讀存儲(chǔ)器,且其又多種類型,在89系列單片機(jī)中全部采用閃存。AT89S51內(nèi)部配置了4KB閃存。</p><p>  四、定時(shí)/計(jì)數(shù)器(ROM):</p><p>  定時(shí)/計(jì)數(shù)器用于實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。AT89S51共有2個(gè)16位定時(shí)/計(jì)數(shù)器。</p><p>  五、并行輸入輸出(I/O)口:</p><p&g

34、t;  8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。每個(gè)口都由1個(gè)鎖存器和一個(gè)驅(qū)動(dòng)器組成。它們主要用于實(shí)現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。</p><p><b>  六、全雙工串行口:</b></p><p>  AT89S51內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作

35、異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b>  七、時(shí)鐘電路:</b></p><p>  時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列。</p><p><b>  八、中斷系統(tǒng):</b></p><p>  中斷系統(tǒng)的作用主要是對(duì)外部或內(nèi)部的終端請(qǐng)求進(jìn)行管理與處理。A

36、T89S51共有5個(gè)中斷源,其中又2個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。</p><p>  1.4 主要引腳功能</p><p>  AT89S51 引腳圖如圖1-2所示:</p><p>  (1)VCC:電源電壓</p><p><b> ?。?)GND:地線</b></p><p>  (3)

37、P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。</p><p> ?。?)P1口:Pl 是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端

38、口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。Flash編程和程序校驗(yàn)期間,Pl接收低8位地址。</p><p>  表1 具有第二功能的P1口引腳</p><p>  圖1-2 AT89S51引腳圖</p><p> ?。?)P2 口:P2 是一個(gè)帶有內(nèi)部上

39、拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX@Ri 指令)時(shí),P2 口線

40、上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個(gè)訪問期間不改變。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和其它控制信號(hào)。</p><p> ?。?)P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/0 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對(duì)P3口寫入“l(fā)”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時(shí),被外部拉低的P3口將用上拉電阻輸出電流(I

41、IL)。P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表所示:</p><p>  表2 具有第二功能的P3口引腳</p><p>  P3口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p> ?。?)RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢出將使該引腳輸出高電平

42、,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。</p><p>  (8)ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳

43、過一個(gè)ALE脈沖。對(duì)F1ash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條M0VX和M0VC指令A(yù)LE才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無效。</p><p> ?。?)PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S51

44、 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的PSEN信號(hào)。</p><p> ?。?0)EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令

45、。F1ash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程電壓Vpp。</p><p> ?。?1)XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。</p><p>  第二章 數(shù)碼管的介紹</p><p>  2.1 數(shù)碼管分類、結(jié)構(gòu)及工作原理</p><p><b>  一、數(shù)碼管分類</b></p>

46、<p>  數(shù)碼管也稱LED數(shù)碼管,數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管.數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、3位、4位、5位、6位、7位等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。</p><p>  共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(C

47、OM)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。</p><p>  共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極PWR接到電源輸入PWR上, 當(dāng)某一字段發(fā)光二極管的陰極極為低電平時(shí), 相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮

48、。</p><p><b>  二、數(shù)碼管結(jié)構(gòu)</b></p><p>  LED數(shù)碼管(LED Segment Displays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。LED數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“+1”型。位數(shù)有半位、1、2、3、4、5、6、8、10位等等

49、,LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽(yáng)兩類,了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍(lán),黃等幾種。LED數(shù)碼管廣泛用于儀表,時(shí)鐘,車站,家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,功耗,亮度,波長(zhǎng)等。</p><p><b>  三、數(shù)

50、碼管工作原理</b></p><p>  數(shù)碼管的每一段是由發(fā)光二極管組成,所以在使用時(shí)跟發(fā)光二極管一樣,也要連接限流電阻,否則電流過大會(huì)燒毀發(fā)光二極管的。</p><p>  共陽(yáng)極數(shù)碼管中8個(gè)發(fā)光二極管的陽(yáng)極(二極管正端)連接一起,即為共陽(yáng)極接法,簡(jiǎn)稱共陽(yáng)數(shù)碼管。通常,公共陽(yáng)極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸入端為低電平時(shí),該端所連接的

51、字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。</p><p>  共陰極數(shù)碼管中8個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起,即為共陰極接法,簡(jiǎn)稱共陰數(shù)碼管。通常,共陰極接低電平(一般接地),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),該端所連接的字符導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同

52、組合可顯示出各種數(shù)字或字符。同樣,要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。</p><p><b>  數(shù)碼管的引腳</b></p><p>  數(shù)碼管一般有七段或者八段(小數(shù)點(diǎn)DP段有就是八段,否則就是ABCDEFG七段)。</p><p>  圖2-1 共陽(yáng)極數(shù)碼管引腳圖</p&g

53、t;<p>  數(shù)碼管分共陰極和共陽(yáng)極兩種(共陽(yáng)極就是把所有LED的陽(yáng)極連接到共同接點(diǎn)COM,而每個(gè)LED的陰極分別為A、B、C、D、E、F、G及DP(小數(shù)點(diǎn));共陰極則是把所有LED的陰極連接到共同接點(diǎn)COM,而每個(gè)LED的陽(yáng)極分別為A、B、C、D、E、F、G及DP(小數(shù)點(diǎn))),引腳有a、c、d、e、f、g、h和公共端,如下圖(h引腳也叫做DP引腳,接的就是小數(shù)點(diǎn)) </p><p>  圖2-2

54、 共陰極數(shù)碼管引腳圖</p><p>  對(duì)于單個(gè)數(shù)碼管來說,從它的正面看進(jìn)去,左下角那個(gè)腳為1腳,以逆時(shí)針方向依次為1~10腳,左上角那個(gè)腳便是10腳了,上面兩個(gè)圖中的數(shù)字分別與這10個(gè)管腳一一對(duì)應(yīng)。注意,3腳和8腳是連通的,這兩個(gè)都是公共腳。</p><p><b>  2.3 驅(qū)動(dòng)方式</b></p><p>  數(shù)碼管要正常顯示,就

55、要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。</p><p><b>  一、靜態(tài)顯示驅(qū)動(dòng)</b></p><p>  靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二—十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度

56、高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢,實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。</p><p><b>  二、動(dòng)態(tài)顯示驅(qū)動(dòng)</b></p><p>  數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)

57、碼管的8個(gè)顯示筆劃“a、b、c、d、e、f、g、dp”的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就

58、是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p>  第三章 Keil軟件簡(jiǎn)介</p><p>  單片機(jī)開發(fā)中除必要的硬件外,同樣離不

59、開軟件,我們寫的匯編語(yǔ)言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出

60、。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。</p><p>  掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語(yǔ)

61、言編程,那么Keil幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。</p><p><b>  系統(tǒng)概述</b></p><p>  Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),

62、與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語(yǔ)言后再使用C來開發(fā),體會(huì)更加深刻。</p><p>  Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)

63、。</p><p>  3.2 整體結(jié)構(gòu)簡(jiǎn)介</p><p>  C51工具包的整體結(jié)構(gòu),如圖3-1所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件

64、可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。</p><p>  圖3-1 C51工具包的整體結(jié)構(gòu)圖</p><p>  3.3 建立項(xiàng)目步驟<

65、/p><p> ?。?)點(diǎn)擊Project菜單,選擇彈出的下拉式菜單中的New Project,如圖3-2。</p><p><b>  圖3-2</b></p><p>  接著彈出一個(gè)標(biāo)準(zhǔn)Windows文件對(duì)話窗口,在“文件名”中輸入您的第一個(gè)C程序項(xiàng)目名稱,“保存”后的文件擴(kuò)展名為uv2,這是KEIL uVision2項(xiàng)目文件擴(kuò)展名,以后我們

66、可以直接點(diǎn)擊此文件以打開先前做的項(xiàng)目。</p><p>  (2)選擇所要的單片機(jī)。</p><p> ?。?)首先我們要在項(xiàng)目中創(chuàng)建新的程序文件或加入舊程序文件。如果你沒有現(xiàn)成的程序,那么就要新建一個(gè)程序文件。</p><p> ?。?)點(diǎn)擊保存新建的程序,也可以用菜單File-Save或快捷鍵Ctrl+S進(jìn)行保存。我們把第一個(gè)程序命名為test1.c,保存在項(xiàng)目

67、所在的目錄中,這時(shí)你會(huì)發(fā)現(xiàn)程序單詞有了不同的顏色,說明KEIL的C語(yǔ)法檢查生效了。如圖3-3,鼠標(biāo)在屏幕左邊的Source Group1文件夾圖標(biāo)上右擊彈出菜單,在這里可以做在項(xiàng)目中增加減少文件等操作。</p><p><b>  圖3-3</b></p><p> ?。?)C程序文件已被我們加到了項(xiàng)目中了,下面就剩下編譯運(yùn)行了。如圖3-4,圖中1、2、3都是編譯按鈕

68、,不同是1是用于編譯單個(gè)文件。2是編譯當(dāng)前項(xiàng)目,如果先前編譯過一次之后文件沒有做動(dòng)編輯改動(dòng),這時(shí)再點(diǎn)擊是不會(huì)再次重新編譯的。3是重新編譯,每點(diǎn)擊一次均會(huì)再次編譯鏈接一次,不管程序是否有改動(dòng)。在3右邊的是停止編譯按鈕,只有點(diǎn)擊了前三個(gè)中的任一個(gè),停止按鈕才會(huì)生效。在4中可以看到編譯的錯(cuò)誤信息和使用的系統(tǒng)資源情況等,以后我們要查錯(cuò)就靠它了。6是有一個(gè)小放大鏡的按鈕,這就是開啟\關(guān)閉調(diào)試模式的按鈕,它也存在于菜單Debug-Start\Sto

69、p Debug Session,快捷鍵為Ctrl+F5。</p><p><b>  圖3-4</b></p><p> ?。?)進(jìn)入調(diào)試模式,軟件窗口樣式大致如圖3-5所示。圖中1為運(yùn)行,當(dāng)程序處于停止?fàn)顟B(tài)時(shí)才有效,2為停止,程序處于運(yùn)行狀態(tài)時(shí)才有效。3是復(fù)位,模擬芯片的復(fù)位,程序回到最開頭處執(zhí)行。按4我們可以打開5中的串行調(diào)試窗口,這個(gè)窗口我們可以看到從51芯片的

70、串行口輸入輸出的字符,這里的第一個(gè)項(xiàng)目也正是在這里看運(yùn)行結(jié)果。首先按4打開串行調(diào)試窗口,再按運(yùn)行按鈕。要停止程序運(yùn)行回到文件編輯模式中,就要先按停止按鈕再按開啟\關(guān)閉調(diào)試模式按鈕。然后我們就可以進(jìn)行關(guān)閉KEIL等相關(guān)操作了。</p><p>  (7)生成HEX文件。HEX文件格式是Intel公司提出的按地址排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié),所有數(shù)據(jù)使用16進(jìn)制數(shù)字表示,常用來保存單片機(jī)或其他處理器的目標(biāo)程序代碼。

71、它保存物理程序存儲(chǔ)區(qū)中的目標(biāo)代碼映象。一般的編程器都支持這種格式。</p><p><b>  圖3-5</b></p><p>  打開目錄,找到test.Uv2的文件就可以打開先前的項(xiàng)目了。然后右擊圖3-6中的1項(xiàng)目文件夾,彈出項(xiàng)目功能菜單,選Options for Target'Target1',彈出項(xiàng)目選項(xiàng)設(shè)置窗口,同樣先選中項(xiàng)目文件夾圖標(biāo),這

72、時(shí)在Project菜單中也有一樣的菜單可選。</p><p><b>  圖3-6</b></p><p>  打開項(xiàng)目選項(xiàng)窗口,轉(zhuǎn)到Output選項(xiàng)頁(yè)圖3-7所示,圖中1是選擇編譯輸出的路徑,2是設(shè)置編譯輸出生成的文件名,3則是決定是否要?jiǎng)?chuàng)建HEX文件,選中它就可以輸出HEX文件到指定的路徑中。</p><p><b>  圖3-7

73、</b></p><p>  選好后再將它重新編譯一次,很快在編譯信息窗口中就顯示HEX文件創(chuàng)建到指定的路徑中了,如圖3-8這樣我們就可用自己的編程器所附帶的軟件去讀取并燒到芯片了,再用實(shí)驗(yàn)板看結(jié)果。</p><p><b>  圖3-8</b></p><p>  第四章 程序設(shè)計(jì)及仿真</p><p>&

74、lt;b>  4.1 設(shè)計(jì)要求</b></p><p>  要求利用單片機(jī)中斷功能控制數(shù)碼管顯示,狀態(tài):當(dāng)無外中斷時(shí),主程序運(yùn)行狀態(tài)為七段數(shù)碼管的A到G段依次點(diǎn)亮,不斷循環(huán),有外中斷輸入時(shí),顯示為0到9,然后返回主程序原斷點(diǎn),繼續(xù)執(zhí)行,數(shù)碼管繼續(xù)段點(diǎn)亮。</p><p>  利用proyeus仿真軟件畫出電路圖</p><p>  首先添加元器件

75、:元件拾取共有兩種辦法,一種是按類別查找和拾取元件,另一種是直接查找和拾取元件。然后在原理圖編輯區(qū)單擊鼠標(biāo)左鍵即完成元件的釋放。最后電路連線:用鼠標(biāo)左鍵單擊編輯區(qū)元件的一個(gè)端點(diǎn)拖動(dòng)到要連接的另外一個(gè)元件的端點(diǎn),先松開左鍵后再單擊鼠標(biāo)左鍵,即完成一根連線,以此類推最終結(jié)果如圖 4-2所示。</p><p><b>  圖4-2</b></p><p><b>

76、  流程圖繪制以及說明</b></p><p>  主程序主要分為四部分,包括復(fù)位電路部分、獨(dú)立按鍵的判別部分、單片機(jī)控制主程序部分和譯碼顯示部分,模塊流程圖如圖4-1所示:</p><p>  圖4-1 主程序流程圖</p><p>  4.4 用keil設(shè)計(jì)程序及仿真結(jié)果</p><p><b>  一、程序如下

77、:</b></p><p>  ORG 0000H ;從0000H單元開始 </p><p>  LJMP START ;跳轉(zhuǎn)到真正的程序起點(diǎn)</p><p><b>  START:</b></p><p>  MOV SP,#5FH ;堆棧初始化</p>&l

78、t;p>  MOV 20H,#00H ;20H作為計(jì)數(shù)器</p><p><b>  LOOP:</b></p><p>  CALL DISP ;調(diào)用顯示程序</p><p>  CALL DELAY ;調(diào)用延時(shí)程序</p><p>  INC 20H ;計(jì)數(shù)

79、器加1</p><p>  MOV A,20H ;將計(jì)數(shù)器中的值送到A中</p><p>  CJNE A, #0AH,L1 ;A中的值到了10嗎?未到轉(zhuǎn)L1</p><p>  MOV 20H,#00H ;A中的值到了10讓其回0</p><p>  L1: </p><p&

80、gt;  LJMP LOOP ;轉(zhuǎn)LOOP繼續(xù)循環(huán)</p><p>  DISP: ;顯示子程序</p><p>  CLR P2.7 ;由硬件電路要求</p><p>  MOV A,20H ;取出計(jì)數(shù)器中的值送A</p><p>  MOV DPTR,#50H

81、 ;將字形碼表的首地址送到DPTR中</p><p>  MOVC A,@A+DPTR ;根據(jù)A中的值查表</p><p>  MOV P0,A ;查出相應(yīng)字形碼送到P0口</p><p>  RET ;返回</p><p>  DELAY: ;延時(shí)子程序&l

82、t;/p><p>  MOV R7,#10 ;R7=10</p><p>  D1: MOV R6,#250 ;R6=250</p><p>  D2: MOV R5,#250 ;R5=250</p><p>  D3: DJNZ R5,D3 ;R5中的值不等于0轉(zhuǎn)

83、本身循環(huán)</p><p>  DJNZ R6,D2 ;R6中的值不等于0轉(zhuǎn)D2</p><p>  DJNZ R7,D1 ;R7中的值不等于0轉(zhuǎn)D1</p><p>  RET ;返回</p><p>  ORG 50H ;從50H單元開始存放字形碼表</

84、p><p>  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p>  END ; 結(jié)束偽指令</p><p><b>  二、程序仿真及燒錄</b></p><p>  啟動(dòng)Keil軟件,輸入源程序,并保存起來;然后建立工程文件

85、,加入源程序,設(shè)置工程。打開Debug選項(xiàng)卡后,在左側(cè)最下面的Parametet文本框中輸入“-ddpj”,單擊“確定”關(guān)閉對(duì)話框,如圖4-3所示。</p><p>  圖4-3 設(shè)置工程文件</p><p>  按F7匯編、鏈接以獲得目標(biāo)文件,然后選擇Debug-Start/Stor Debug菜單項(xiàng)進(jìn)入調(diào)試狀態(tài)。選擇Peripherals“鍵盤顯示實(shí)驗(yàn)仿真板”。如圖4-4所示。<

86、;/p><p>  圖4-4 選擇實(shí)驗(yàn)仿真板</p><p>  再單擊“運(yùn)行”按鈕即可開始運(yùn)行??梢詮姆抡姘迳现庇^地觀察到LED上有數(shù)字的顯示,如圖4-5所示。</p><p>  圖4-5 仿真運(yùn)行顯示</p><p><b>  三、仿真結(jié)果如下:</b></p><p>  從仿真板上直觀

87、地觀察到LED上有數(shù)字的顯示,顯示數(shù)字從0到9,如圖4-6所示。</p><p>  圖4-6 仿真顯示數(shù)字0到9</p><p>  4.5 心得體會(huì):</p><p>  本次設(shè)計(jì)主要是針對(duì)單片機(jī)知識(shí),用匯編語(yǔ)言在KEIL中編程,在PROTEUS中繪制原理圖并進(jìn)行仿真,通過對(duì)這兩個(gè)軟件的學(xué)習(xí),了解了其功能的強(qiáng)大,掌握了AT89S51的內(nèi)部結(jié)構(gòu)及工作原理,對(duì)于

88、我們以后的學(xué)習(xí)和實(shí)踐有很大的指導(dǎo)意義。這次課程設(shè)計(jì)使我在學(xué)習(xí)新知識(shí)的同時(shí),還鍛煉了我的意志品質(zhì),當(dāng)調(diào)試程序出現(xiàn)錯(cuò)誤時(shí),并沒有使我灰心,讓我放棄,而是通過自己不懈的努力,弄懂了每一部分知識(shí)。</p><p>  因此,本次課設(shè)對(duì)我以后無論是學(xué)習(xí)還是工作,都有著較大的幫助。通過這次課程設(shè)計(jì),使我意識(shí)到了課本上的知識(shí)遠(yuǎn)遠(yuǎn)不能滿足當(dāng)今社會(huì)的需要,讓我知道了未來學(xué)習(xí)知識(shí)要更加注重實(shí)踐與實(shí)用。</p><

89、p>  通過此次設(shè)計(jì)給我最大的感觸就是做任何事都要自信和認(rèn)真。自信不可盲目,更不要自大,一切有真實(shí)學(xué)和能力的人往往對(duì)此把握的游刃有余。認(rèn)真是一種作風(fēng)和態(tài)度,是一個(gè)人品質(zhì)的集中體現(xiàn),也包含對(duì)事業(yè)的責(zé)任心!有時(shí)候我們需要的太多,我們不妨從這兩方面做起,去挑戰(zhàn)自己!</p><p><b>  附錄A</b></p><p>  圖1 AT89S51結(jié)構(gòu)框圖<

90、/p><p>  附錄B 單片機(jī)AT89S51匯編指令表</p><p><b>  數(shù)據(jù)傳送指令</b></p><p><b>  算術(shù)操作類指令</b></p><p><b>  邏輯操作類指令</b></p><p><b>  控制轉(zhuǎn)移

91、類指令</b></p><p><b>  布爾變量操作類指令</b></p><p><b>  致謝</b></p><p>  首先衷心感謝我的指導(dǎo)教師**老師。本次的論文工作是在雷老師的悉心指導(dǎo)下完成的,從論文的選題、資料的收集、設(shè)計(jì)以及論文的撰寫,各個(gè)方面都離不開*老師熱情耐心的幫助和教導(dǎo)。在此次論文

92、中,*老師認(rèn)真的工作態(tài)度,誠(chéng)信寬厚的為人處世態(tài)度,都給我留下了難以磨滅的印象,也為我今后的工作樹立了優(yōu)秀的榜樣。</p><p>  其次感謝我的組員**等等。他們?cè)谝黄鸲冗^了很多快樂,開心的日子。在他們的幫助下,我順利的解決了遇到的各種困難。沒有他們無私的幫助,我是無法完成論文工作的。</p><p>  最后,向所有關(guān)心我的親人、師長(zhǎng)和同學(xué)們表示深深的謝意!</p>&l

93、t;p><b>  參考文獻(xiàn)</b></p><p>  [1] 張宏偉,李新德主編. 單片機(jī)應(yīng)用技術(shù). 北京:北京理工大學(xué)出版社,2010</p><p>  [2] 劉江龍主編. 機(jī)電一體化技術(shù). 北京:北京理工大學(xué)出版社,2009</p><p>  [3] 毛謙敏主編. 單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì). 北京:國(guó)防工業(yè)出版社,2005&

94、lt;/p><p>  [4] 陳光東,趙性初主編. 單片微型計(jì)算機(jī)原理與接口技術(shù)(第二版). 武漢:華中科技大學(xué)出</p><p><b>  版社,1999 </b></p><p>  [5] 李華等主編. MCS-51系列單片機(jī)實(shí)用接口技術(shù). 北京:北京航空航天大學(xué)出版社,1993</p><p>  [6

95、] 郁漢琪主編. 數(shù)字電子技術(shù)實(shí)驗(yàn)及課題設(shè)計(jì). 北京:高等教育出版社,1997</p><p>  [7] 高欽和主編. 可編程控制器應(yīng)用技術(shù)與設(shè)計(jì)實(shí)例. 北京:人民郵電出版社,2004</p><p>  [8] 戴勝華等主編. 單片機(jī)原理與應(yīng)用. 北京:清華大學(xué)出版社,2005</p><p>  [9] 張洪潤(rùn),蘭清華主編. 單片機(jī)應(yīng)用技術(shù)教程. 北京:清華大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論