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

下載本文檔

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

文檔簡介

1、<p><b>  畢 業(yè) 設(shè) 計(jì)</b></p><p>  學(xué)生姓名: 端木青云 學(xué) 號(hào): 09XXXXXXXXX </p><p>  專 業(yè): 電子科學(xué)與技術(shù) </p><p>  題 目: 虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng)的開發(fā) </p><p> 

2、 指導(dǎo)教師: 王保柱(副教授) 張秀清(講師) </p><p>  評(píng)閱教師: 武瑞紅(副教授) </p><p>  2013 年 6 月</p><p>  河北科技大學(xué)理工學(xué)院畢業(yè)設(shè)計(jì)成績?cè)u(píng)定表</p><p>  畢 業(yè) 設(shè) 計(jì) 中 文 摘 要</p><p>  畢 業(yè)

3、 設(shè) 計(jì) 外 文 摘 要</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 課題背景分析1</p><p>  1.2課題概況及發(fā)展趨勢(shì)2</p><p>  1.3課題的目的和意義2</p&

4、gt;<p><b>  2 系統(tǒng)設(shè)計(jì)3</b></p><p>  2.1電路整體設(shè)計(jì)3</p><p>  2.2課題解決的問題3</p><p>  2.3課題研究的方法4</p><p>  2.4 電路仿真部分6</p><p>  3 硬件電路設(shè)計(jì)7</

5、p><p>  3.1整體框圖設(shè)計(jì)7</p><p>  3.2主芯片—AT89C528</p><p>  3.3 LED顯示模塊14</p><p>  3.4 LCD顯示模塊16</p><p>  3.5 數(shù)碼管顯示17</p><p>  3.6 鍵盤顯示19</p>

6、;<p>  3.7 A/D轉(zhuǎn)換模塊22</p><p>  3.8 D/A轉(zhuǎn)換模塊24</p><p>  3.9 溫度傳感器模塊25</p><p>  3.10 蜂鳴器模塊26</p><p>  4 軟件聯(lián)調(diào)配置28</p><p>  4.1 軟件語言的選擇28</p>

7、<p>  4.2 軟件運(yùn)行環(huán)境28</p><p>  4.3 proteus和keil的配置28</p><p>  5 電路的仿真與測(cè)試32</p><p>  5.1 LED流水燈32</p><p>  5.2 LCD字符顯示33</p><p>  5.3 數(shù)碼管動(dòng)態(tài)掃描34<

8、/p><p>  5.4 鍵盤測(cè)試35</p><p>  5.5 A/D轉(zhuǎn)換實(shí)驗(yàn)36</p><p>  5.6 D/A轉(zhuǎn)換實(shí)驗(yàn)37</p><p>  5.7計(jì)時(shí)器 38</p><p>  5.8 1602液晶顯示時(shí)鐘38</p><p>  5.9 DS18B20溫度按傳感器39

9、</p><p>  5.10 交通燈設(shè)計(jì)39</p><p>  5.11 整體電路測(cè)試40</p><p><b>  結(jié)論44</b></p><p><b>  致謝45</b></p><p><b>  參考文獻(xiàn)46</b><

10、/p><p><b>  附錄48</b></p><p><b>  1.緒論</b></p><p>  1.1課題的背景分析</p><p>  針對(duì)傳統(tǒng)的單片機(jī),需采購大量的、比較貴的的硬件設(shè)備,而且設(shè)備維護(hù)和工作量也非常大,傳統(tǒng)的單片機(jī)實(shí)驗(yàn)采用硬件仿真器,實(shí)驗(yàn)箱或?qū)嶒?yàn)板,由于單片機(jī)應(yīng)用技術(shù)

11、涉及的范圍比較廣,它涉及到到計(jì)算機(jī)、須硬件和軟件結(jié)合才能實(shí)現(xiàn),也就是將外圍電路和單片機(jī)程序相結(jié)合,如果用真實(shí)的實(shí)驗(yàn)箱則費(fèi)會(huì)用高,器材又不能地發(fā)揮充分利用,加上所用實(shí)驗(yàn)板開發(fā)周期比較長,可行性不好。 </p><p>  現(xiàn)在使用Proteus仿真軟件,實(shí)現(xiàn)了純軟件的虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng),既可調(diào)試單片機(jī)程序,也可以仿真單片機(jī)的外圍器件的工作情況;既能充分利用計(jì)算機(jī)等硬件資源,減少硬件設(shè)備的維護(hù)工作量,還可提供豐富的實(shí)

12、驗(yàn)內(nèi)容。</p><p>  1.2技術(shù)概況及發(fā)展趨勢(shì)</p><p>  現(xiàn)代科技技術(shù)的發(fā)展,促進(jìn)了計(jì)算機(jī)技術(shù)在軟件和硬件上的飛速發(fā)展,利用計(jì)算機(jī)軟件的仿真技術(shù),可以充分地仿真電路的工作等實(shí)際的工程問題。</p><p>  目前,嵌入式系統(tǒng)已經(jīng)廣泛地滲透到工程設(shè)計(jì)、科學(xué)研究、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)以及人們的日常生活等方方面面中,由于社會(huì)對(duì)掌握嵌入式技術(shù)

13、人才的大量需求,使得嵌入式軟硬件工程師成為未來幾年內(nèi)最為熱門的職業(yè)之一,相當(dāng)一部分高校已開設(shè)嵌入式系統(tǒng)的相關(guān)課程。</p><p>  嵌入式系統(tǒng)是實(shí)踐與理論相結(jié)合的課程,對(duì)于嵌入式處學(xué)習(xí)者來說沒有足夠的資金來購買開發(fā)板,所以只能選擇仿真仿真來學(xué)習(xí)嵌入式系統(tǒng),proteus是目前最好的仿真軟件,能夠虛擬出嵌入式系統(tǒng)開發(fā)中常用的處理器和外圍器件。</p><p>  Proteus與其他軟件

14、不同,它不僅能仿真CPU的工作情況,而且也能仿真參與單片機(jī)仿真的外圍電路和其他電路的工作情況。在調(diào)試和仿真的過程中,關(guān)心的是從工程的角度直接看程序運(yùn)行的結(jié)果和電路的工作過程。不再關(guān)心的是某些程序語句執(zhí)行單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變。這樣的仿真彌補(bǔ)了工程和實(shí)驗(yàn)見的矛盾和脫節(jié)。</p><p>  1.3 課題的目的和意義</p><p>  單片機(jī)技術(shù)是電子專業(yè)一門重要的基礎(chǔ)課程,它要求的

15、對(duì)動(dòng)手能力要求很高,長期以來,由于實(shí)驗(yàn)設(shè)備資源的限制,使得教學(xué)實(shí)驗(yàn)受到了限制,本設(shè)計(jì)是利用Proteus軟件進(jìn)行虛擬單片機(jī)試驗(yàn)系統(tǒng)的開發(fā),所涉及到單片機(jī)及外圍電路可以在沒有硬件的情況下進(jìn)行各種實(shí)驗(yàn)的仿真,從而大大地挺高了學(xué)習(xí)的興趣。</p><p>  在現(xiàn)代教學(xué)中計(jì)算機(jī)網(wǎng)絡(luò)和虛擬實(shí)驗(yàn)等技術(shù)已經(jīng)逐漸成為教學(xué)的的手段和工具。通過實(shí)驗(yàn)可以使所學(xué)的東西更加清楚和明了,通過實(shí)驗(yàn)可以是學(xué)生通過實(shí)驗(yàn)加深對(duì)理論知識(shí)的理解和認(rèn)識(shí)

16、。尤其是那些那些難以理解的內(nèi)容,虛擬實(shí)驗(yàn)在現(xiàn)代教學(xué)有很高的地位,它使得很多復(fù)雜的問題變得簡單化,同時(shí)也節(jié)省很多件資源,在實(shí)驗(yàn)中通過一些形象生動(dòng)的演示,是所學(xué)的知識(shí)轉(zhuǎn)化為能力,在以后的工作中實(shí)踐中得以靈活地應(yīng)用。</p><p>  傳統(tǒng)的試驗(yàn)室,需要大量的實(shí)驗(yàn)器材,而且很多器材都得不到充分地利用,加上電子產(chǎn)品的更新?lián)Q代,很多實(shí)驗(yàn)器材用不了幾年就會(huì)被淘汰,再加上目前學(xué)生人數(shù)的增加,勢(shì)必會(huì)給實(shí)驗(yàn)教學(xué)帶來不小的壓力和沖

17、擊,所以我們就要尋找一種新的途徑解決實(shí)驗(yàn)教學(xué)的問題,傳統(tǒng)的實(shí)驗(yàn)需要各種設(shè)備儀器,和相關(guān)的配套設(shè)施,而且對(duì)實(shí)驗(yàn)器材不夠充分地利用,學(xué)生在試驗(yàn)室對(duì)各種儀器不熟悉,對(duì)實(shí)驗(yàn)內(nèi)容準(zhǔn)備的不夠充分而到不到滿意的實(shí)驗(yàn)結(jié)果,現(xiàn)在利用虛擬的實(shí)驗(yàn)系統(tǒng)可以很好地解決這一問題,所以虛擬試驗(yàn)室教學(xué)將成為一種發(fā)展趨勢(shì),同時(shí)也提高學(xué)習(xí)者的積極性和動(dòng)手能力。</p><p><b>  2.系統(tǒng)設(shè)計(jì)</b></p>

18、;<p><b>  2.1電路整體設(shè)計(jì)</b></p><p>  本課題共分為幾大模塊,具體為LED顯示、1602液晶顯示、溫度傳感器、獨(dú)立按鍵、數(shù)字按鍵、4X4鍵盤顯示、6位數(shù)碼管、蜂鳴器、8位發(fā)光二極管流水燈顯示、LCD顯示以及A/D和D/A轉(zhuǎn)換幾個(gè)模塊。所有電路都是圍繞主芯片AT89C52來完成的,下圖為設(shè)計(jì)的電路的整體框圖,如圖2-1所示。</p>&

19、lt;p>  圖2-1 系統(tǒng)電路框圖</p><p>  2.2課題解決的問題</p><p>  為了解決傳統(tǒng)基于硬件的單片機(jī)實(shí)驗(yàn)室諸多弊端,本課題采用PC和軟件建立的單片機(jī)虛擬試驗(yàn)系統(tǒng),即在proteus上使用的各種虛擬儀器,按照試驗(yàn)要求和設(shè)計(jì)原理,虛擬出與現(xiàn)實(shí)相同的實(shí)驗(yàn)系統(tǒng),進(jìn)而完成整個(gè)實(shí)驗(yàn),也充分利用了proteus軟件的功能,對(duì)各個(gè)電路部分進(jìn)行仿真。為進(jìn)行一些簡單的單片機(jī)實(shí)

20、驗(yàn)構(gòu)建一個(gè)虛擬硬件環(huán)境。</p><p> ?。?)4X4鍵盤:主要輸入數(shù)據(jù)</p><p><b>  (2)顯示部分:</b></p><p>  LED:LED是一種特別的二極管,當(dāng)連接最電的時(shí)候就會(huì)發(fā)出光,通常被用在電子器具來顯示電路是否關(guān)閉或打開的指示燈。</p><p>  LCD:LCD為英文Liquid

21、 Crystal Display的縮寫,即液晶顯示器,是一種數(shù)字顯示技術(shù),可以通過液晶和彩色過濾器過濾光源,在平面面板上產(chǎn)生圖象。</p><p> ?。?)A/D和D/A:</p><p>  真實(shí)世界的模擬信號(hào),例如溫度、壓力、聲音或者圖像等,被不斷轉(zhuǎn)換成更容易儲(chǔ)存、處理和發(fā)射的數(shù)字形式,但是在很多系統(tǒng)中,數(shù)字信息也必須重新轉(zhuǎn)換成模擬信號(hào)來實(shí)現(xiàn)一些真實(shí)世界的功能。數(shù)模轉(zhuǎn)換器(DAC)就

22、可以做到這一點(diǎn),而且它們的輸出還可以用來驅(qū)動(dòng)各種設(shè)備。 </p><p>  DAC一般被放置在數(shù)字系統(tǒng)中。在數(shù)字系統(tǒng)中,一些真實(shí)世界的信號(hào)通過模數(shù)轉(zhuǎn)換器(ADC)數(shù)字化和處理過后,然后需要重新轉(zhuǎn)化成模擬信號(hào)的系統(tǒng)中。這些系統(tǒng)所要求的DAC性能會(huì)受到系統(tǒng)其它組件的性能和要求的影響。</p><p>  2.3 課題研究的方法</p><p>  2.3.1 總體方案

23、</p><p><b>  圖2-2 總體方案</b></p><p>  分別對(duì)LED顯示、獨(dú)立鍵盤、矩陣鍵盤、LCD顯示、蜂鳴器模塊、數(shù)碼管以及A/D和D/A等實(shí)驗(yàn)項(xiàng)目進(jìn)行硬件電路和軟件程序的設(shè)計(jì)并結(jié)合Proteus和Keil uVision3進(jìn)行仿真。如圖2-2所示。</p><p>  2.3.2 技術(shù)路線</p>&l

24、t;p><b>  圖2-3 技術(shù)路線</b></p><p>  圍繞著主芯片設(shè)計(jì)LED顯示、獨(dú)立鍵盤、矩陣鍵盤、數(shù)字鍵盤、LCD顯示、數(shù)碼管、計(jì)數(shù)器、數(shù)字溫度顯示、蜂鳴器模塊、交通燈設(shè)計(jì)、以及A/D和D/A等電路模塊并在Porteus上畫出相應(yīng)的電路圖并保存。用C語言編譯能夠完成相應(yīng)模塊功能的源程序。運(yùn)行Proteus進(jìn)行仿真調(diào)試。如果仿真沒有成功則修改電路或源程序后重新進(jìn)行仿真測(cè)

25、試。</p><p>  2.4 電路圖仿真部分</p><p>  Proteus與其他軟件不同,它不僅能仿真CPU的工作情況,而且也能仿真參與單片機(jī)仿真的外圍電路和其他電路的工作情況。因此在調(diào)試和仿真的過程中,關(guān)心的是從工程的角度直接看程序運(yùn)行的結(jié)果和電路的工作過程。不再關(guān)心的是某些程序語句執(zhí)行單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變。這樣的仿真彌補(bǔ)了工程和實(shí)驗(yàn)見的矛盾和脫節(jié)。</p>

26、;<p>  采用Proteus 仿真軟件進(jìn)行虛擬單片機(jī)實(shí)驗(yàn),具有比較明顯的優(yōu)勢(shì),如涉及到的實(shí)驗(yàn)實(shí)習(xí)內(nèi)容全面、硬件投入少、學(xué)生可自行實(shí)驗(yàn)、實(shí)驗(yàn)過程中損耗小、與工程實(shí)踐最為接近等。</p><p><b>  3. 硬件電路設(shè)計(jì)</b></p><p>  3.1 整體框圖設(shè)計(jì)</p><p>  在proteus中由LE

27、D模塊及驅(qū)動(dòng)電路、1602液晶顯示模塊、LCD顯示模塊、6位數(shù)碼管、AD/DA轉(zhuǎn)換模塊、獨(dú)立按鍵、矩陣按鍵、數(shù)字按鍵、蜂鳴器模塊、溫度傳感器等模塊。如圖3-1所示。</p><p>  圖3-1 電路總設(shè)計(jì)圖</p><p>  3.2 主芯片—AT89C52</p><p>  本設(shè)計(jì)主要是圍繞芯片AT89C52來設(shè)計(jì)的,下圖為芯片AT89C52引腳的具體說明,如

28、圖3-2所示。</p><p>  3.2.1 AT89C52介紹</p><p>  AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元功能強(qiáng)大

29、的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。</p><p>  圖3-2 A89C52芯片</p><p>  AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Fl

30、ash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。</p><p>  3.2.2 管腳說明</p><p><b>  主要管腳有:</b></p><p>  XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位

31、電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(32~39 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)

32、功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。 </p><p><b>  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0 口:P0口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏

33、輯門電路,對(duì)端口P0 寫“1”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。 </p><p>  P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門

34、電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C52 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),F(xiàn)lash 編程和程序校驗(yàn)期間,P1 接收低8 位地址。</p><p>  P2 口:P2 是一個(gè)帶有內(nèi)部上拉

35、電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門電路。對(duì)端口P2 寫“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 指

36、令)時(shí),P2 口輸出P2 鎖存器的內(nèi)容。Flash 編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。 </p><p>  P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門電路。對(duì)P3 口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,

37、更重要的用途是它的第二功能P3 口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。 </p><p>  RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 </p><p>  ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出

38、固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE 脈沖。對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無效。 </p>

39、<p>  PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。 </p><p>  EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加

40、密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。</p><p>  3.2.3 外圍電路</p><p>  外圍電路由晶振電路和復(fù)位電路組成,晶振電路由晶振和兩個(gè)30uF的電路組成,分別接單片機(jī)的XTAL1和XTAL2。晶振的作用是為了系統(tǒng),他提供時(shí)鐘信號(hào)給了系統(tǒng),通常便于各部分保持同步,所以一個(gè)系統(tǒng)共用一個(gè)晶振,要使通過電子調(diào)整頻率的保持同步,那就必須在有些系統(tǒng)中的基頻和射頻使用不同

41、的晶振。晶振電路通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時(shí)鐘頻率。</p><p>  復(fù)位電路由復(fù)位開關(guān)和下拉電阻R7組成,接單片機(jī)的RST引腳。復(fù)位電路的作用是使單片機(jī)的程序計(jì)數(shù)器清零,復(fù)位電路就好比電腦,當(dāng)死機(jī)的時(shí)候,按下復(fù)位鍵程序從頭開始執(zhí)行,受到干擾或者程序跑飛的時(shí)候,按下復(fù)位鍵從頭開始執(zhí)行。內(nèi)部計(jì)數(shù)器的編程主要是定時(shí)常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部記數(shù)器在單片機(jī)中主要有定時(shí)器和記數(shù)器兩個(gè)功能。

42、</p><p>  定時(shí)器有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式0--3,并確定用于定時(shí)還是記數(shù),TCON主要功能是為定時(shí)器在溢出時(shí)設(shè)定標(biāo)志位,并控制定時(shí)器的運(yùn)行或停止等,內(nèi)部記數(shù)器用作定時(shí)器時(shí),是對(duì)機(jī)器周期記數(shù)。每個(gè)機(jī)器周期的長度是12個(gè)振蕩周期,該實(shí)驗(yàn)系統(tǒng)的晶振是11.0592MHz。</p><p><b>  

43、圖3.3 外圍電路</b></p><p>  3.3 LED顯示模塊</p><p><b> ?。?)電路接法</b></p><p>  以AT89C52為主芯片設(shè)計(jì)的一個(gè)8位發(fā)光二極管以流水燈的形式顯示的基本電路,首先,8個(gè)發(fā)光二極管的輸出端是和74HC573的端口從Q0到Q7端相接,形成8個(gè)輸入端口,其次,8位二極管的負(fù)極

44、接9引腳的排阻,排阻的1腳接VCC。</p><p>  接排阻的作用是防止發(fā)光二極管在電壓過大的情況下燒壞,然后74HC573接AT89C52的P1口從P1.0到P1.7,這樣就形成了8個(gè)閉合回路。74HC573起到驅(qū)動(dòng)的作用,一般情形下,74HC573的驅(qū)動(dòng)能力大于74LS573的驅(qū)動(dòng)能力。如圖3-4所示。</p><p>  圖3-4 LED顯示電路</p><p

45、> ?。?)8位發(fā)光二極管的工作原理</p><p>  因?yàn)槎O管左邊接的是Vcc作為高電平,所以如果要二極管亮的話P1口必須輸入低電平,就一條通路而言,在P1.0輸入低電平后,第一個(gè)發(fā)光二極管導(dǎo)通,所以就亮了。然后在后面加上延遲,也就是亮的時(shí)間后再輸入P1.1口為低電平,第二個(gè)二極管就發(fā)亮,同理而言,就實(shí)現(xiàn)了流水燈的實(shí)驗(yàn)。</p><p>  3.4 1602液晶顯示模塊<

46、/p><p>  1602字符液晶顯示器的D0到D7端口與用AT89C52 的P0口P0.0到P0.7相接,VEE端接RV1的VL端,RV一端接地,另一端接+5V。9引腳的排阻2到9端接單片機(jī)的P0.0到P0.7。VDD接+5V,RS、RW、E分別接P2.0到P2.2。</p><p>  1602為2行16列液晶顯示器,可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS、VEE、RW三

47、個(gè)控制端口(共14線),工作電壓為5V。沒背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個(gè)線腳)。如圖3-5所示。</p><p>  圖3-5 LCD顯示電路</p><p><b>  1.管腳功能</b></p><p>  第1腳:VSS為電源地。</p><p>  第2腳:VDD接5V電源正極。<

48、;/p><p>  第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,對(duì)比度最弱時(shí)接正電源,對(duì)比度最高時(shí)接地電源。</p><p>  第4腳:RS為選擇寄存器,高電平1時(shí)寄存器選擇數(shù)據(jù)、低電平0時(shí)寄存器選擇指令。</p><p>  第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。</p><p>  第6腳:E(或EN)端為

49、使能(enable)端。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。</p><p>  第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。</p><p><b>  2.字符顯示原理</b></p><p>  用LCD顯示一個(gè)比較復(fù)雜的字符時(shí),因?yàn)橐粋€(gè)字符由6×8或8&#

50、215;8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,先讓讓控制器工作在文本方式的時(shí)候,再根據(jù)根據(jù)在LCD上顯示每行的列數(shù)和行列號(hào)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此處送上該字符對(duì)應(yīng)的代碼就可了。</p><p><b>  3.5 數(shù)碼管模塊

51、</b></p><p>  LED數(shù)碼管是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的 2個(gè)8數(shù)碼管字樣了。如:顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示

52、筆畫常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、

53、8、9、A、B、C、D、E、F。</p><p>  LED數(shù)碼管(LED Segment Displays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需將它們的各個(gè)筆劃引出,公共電極。數(shù)碼管根據(jù)LED分為共陰和共陽是因?yàn)樗麄兊慕臃ú煌诸?,如果了解LED的特性,尤其是對(duì)編程是非常重要的,數(shù)碼管的類型不同,電路除了有差別外,編程的方法和原理也有所不同,共陰和共陽極數(shù)碼管的內(nèi)部電路

54、不同,到那它們的原理是一樣的,知識(shí)它們的電源極性不同而已罷了。led數(shù)碼管廣泛用于儀器儀表,汽車電子、時(shí)鐘、顯示屏、家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,波長,功耗,亮度等。</p><p>  圖3-6 6位數(shù)碼管</p><p><b>  1.電路連接:</b></p><p>  電路采用共陽的接法,數(shù)碼管電路用2個(gè)74HC573,其中

55、一個(gè)的Q0-Q7分別與6位數(shù)碼管的A,B,C,D,E,F,G,DP引腳相連,另一個(gè)的Q0-Q5與6位數(shù)碼管的1-6引腳相連。兩個(gè)74HC573的D0-D7與單片機(jī)的P0.0-P0.7引腳相連。</p><p>  圖3-7 7段數(shù)碼管</p><p><b>  2.數(shù)碼管編碼表</b></p><p>  (1)數(shù)碼管共陽極碼表<p0.

56、0-a,p0.7-dp></p><p>  TABLE:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,</p><p>  0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e</p><p>  (2) 數(shù)碼管共陽極碼表<p0.0-a,p0.7-dp></p><p

57、>  TABLE:0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7D,0x07</p><p>  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 </p><p>  3.LED數(shù)碼管引腳定義 </p><p>  每一筆劃都是對(duì)應(yīng)一個(gè)字母表示 DP是小數(shù)點(diǎn)。</p><p>

58、;  正常顯示的LED數(shù)碼管,數(shù)碼管的各個(gè)段碼就要用驅(qū)動(dòng)電路來驅(qū)動(dòng),才能顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管不同的驅(qū)動(dòng)方式,根據(jù)數(shù)碼管的驅(qū)動(dòng)方式,可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩類。 </p><p><b>  A、靜態(tài)顯示: </b></p><p>  靜態(tài)顯示也稱直流驅(qū)動(dòng)。靜態(tài)顯示是指由一個(gè)單片機(jī)的I/O埠進(jìn)行驅(qū)動(dòng)每個(gè)數(shù)碼管的每一個(gè)段碼,或者使用如BCD碼二-

59、十進(jìn)位進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O埠多。故實(shí)際應(yīng)用時(shí)必須增加驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬體電路的復(fù)雜性。 </p><p><b>  B、動(dòng)態(tài)顯示: </b></p><p>  數(shù)碼管動(dòng)態(tài)最為廣泛的一種顯示方式之一是顯示界面,它在是單片機(jī)中應(yīng)用非常廣泛,動(dòng)態(tài)顯示是將所有8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp &qu

60、ot;的數(shù)碼管的的同名端連在一起,同時(shí)增加位元選通控制電路為每個(gè)數(shù)碼管的公共極COM,各自獨(dú)立的I/O線控制位元選通由。 </p><p>  LED數(shù)碼管的COM端由分時(shí)輪流控制,受控制的數(shù)碼管輪流顯示,這就是所謂的動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示時(shí),每位元數(shù)碼管的點(diǎn)亮?xí)r間間隔為1~2ms,由于發(fā)光二極體的余輝效應(yīng)和人的視覺暫留現(xiàn)象,只要點(diǎn)亮速度快,不管是不是各位數(shù)碼管是否同時(shí)點(diǎn)亮,給人的感覺就是穩(wěn)定的顯示,不會(huì)讓人感覺有

61、閃爍的感覺,靜態(tài)顯示的效果和動(dòng)態(tài)顯示的效果是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。7段LED數(shù)碼管是利用7個(gè)LED(發(fā)光二極管)外加一個(gè)小數(shù)點(diǎn)的LED組合而成的顯示設(shè)備。</p><p><b>  3.6 鍵盤模塊</b></p><p>  3.6.1 獨(dú)立按鍵電路</p><p>  獨(dú)立按鍵電路有四個(gè)按鍵組成,分別接單片機(jī)AT8

62、9C52的P3.4/T0,P3.5/T1、P3.6/WR、P3.7/RD引腳相連。如圖3-8所示。</p><p>  圖3-8 獨(dú)立按鍵電路</p><p>  3.6.2 4X4矩陣按鍵電路</p><p>  電路由16個(gè)按鍵分四組組成,分別與單片機(jī)AT89C52的P3.0/RXD,P3.1/TXD、P3.2/INT0、P3.3/INT1引腳相連。4×

63、;4 矩陣鍵盤,以P3.0-P3.3 作輸入線,以P3.4-P3.7作輸出線;數(shù)碼管的a,b,c,d,e,f,g 7個(gè)端端口接的是主芯片AT89C52的P2口從P0.0到P0.6端,在數(shù)碼管上顯示每個(gè)按鍵的“0-F”序號(hào)。如圖3-9所示。</p><p><b>  1)接口說明</b></p><p>  接口P3.0控制0號(hào),1號(hào),2號(hào),3號(hào)開關(guān);</p&g

64、t;<p>  接口P3.1控制4號(hào),5號(hào),6號(hào),7號(hào)開關(guān);</p><p>  接口P3.2控制8號(hào),9號(hào),A號(hào),B號(hào)開關(guān);</p><p>  接口P3.3控制開關(guān)C,D,E,F(xiàn);</p><p>  P3.4-P3.7則為輸出。</p><p>  圖3-9 矩陣按鍵電路</p><p>  當(dāng)按下

65、0號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘0111111’。</p><p>  當(dāng)按下1號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘1111001’。 </p><p>  當(dāng)按下2號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘0110111’。 </p><p>  當(dāng)按下3號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘1001111’。 </p><p>  當(dāng)按下4號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘1100110’。 &l

66、t;/p><p>  當(dāng)按下5號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘1101101’。</p><p>  當(dāng)按下6號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘1111101’。 </p><p>  當(dāng)按下7號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘0000111’。</p><p>  當(dāng)按下8號(hào)開關(guān)時(shí),數(shù)碼管顯示為‘1111111’。</p><p>  當(dāng)按下9號(hào)開

67、關(guān)時(shí),數(shù)碼管顯示為‘1101111’。</p><p>  當(dāng)按下開關(guān)A時(shí),數(shù)碼管顯示為 ‘1110111’。</p><p>  當(dāng)按下開關(guān)B時(shí),數(shù)碼管顯示為 ‘1111100’。</p><p>  當(dāng)按下開關(guān)C時(shí),數(shù)碼管顯示為 ‘0111001’。 </p><p>  當(dāng)按下開關(guān)D時(shí),數(shù)碼管顯示為 ‘1011110’。<

68、/p><p>  當(dāng)按下開關(guān)E時(shí),數(shù)碼管顯示為 ‘1111001’。</p><p>  當(dāng)按下開關(guān)F時(shí),數(shù)碼管顯示為 ‘1110001’。</p><p>  2)4×4 矩陣鍵盤工作原理</p><p>  矩陣鍵盤又稱為行列式鍵盤,是列線由4條I/O線組成,行線是由4條I/O線組成的矩陣鍵盤。在列線和行線的重合的交叉點(diǎn)上,設(shè)置

69、一個(gè)按鍵,這樣就組成了4X4共16個(gè)按鍵。這種鍵盤的格局方方正正,而且可以大大地利用了I/O口。</p><p>  3.6.3 數(shù)字按鍵電路</p><p>  數(shù)字按鍵模塊引腳A,B,C,D分別與單片機(jī)AT89C52的P3.0/RXD,P3.1/TXD、P3.2/INT0、P3.3/INT1引腳相連。1,2,3,4引腳分別接單片機(jī)AT89C52的P3.4/T0,P3.5/T1、P3.6

70、/WR、P3.7/RD引腳相連。如圖3-10所示。</p><p>  圖3-10 數(shù)字按鍵電路</p><p>  3.7 A/D 轉(zhuǎn)換模塊</p><p>  圖3-11 ADC0804</p><p><b> ?。?)芯片介紹</b></p><p>  ADC0804是一個(gè)8位、單通道、

71、低價(jià)格A/D轉(zhuǎn)換器,主要特點(diǎn)是:摸數(shù)轉(zhuǎn)換時(shí)間大約100us,方便的TTL或CMOS標(biāo)準(zhǔn)接口,可以滿足差分電壓輸入;具有參考電壓輸入端;內(nèi)含時(shí)鐘發(fā)生器;單電源工作時(shí)(0V~5V)輸入信號(hào)電壓范圍是0V~5V,不需要調(diào)零等等。 </p><p> ?。ㄒ_1):片選信號(hào)。低電平有效,高電平時(shí)芯片不工作。        </

72、p><p>  (引腳2):外部讀數(shù)據(jù)控制信號(hào)。此信號(hào)低電平時(shí)ADC0804把轉(zhuǎn)換完成的數(shù)據(jù)加載到DB口。        </p><p> ?。ㄒ_3):外部寫數(shù)據(jù)控制信號(hào)。此信號(hào)的上升沿可以啟動(dòng)ADC0804的A/D轉(zhuǎn)換過程。       &

73、#160;</p><p>  CLK IN(引腳4):時(shí)鐘輸入引腳。ADC0804使用RC振蕩器作為A/D時(shí)鐘,CLK IN是振動(dòng) 的輸入端。        </p><p> ?。ㄒ_5):轉(zhuǎn)換結(jié)束輸出信號(hào)。ADC0804完成一次A/D轉(zhuǎn)換后,此引腳輸出一個(gè)低脈沖。對(duì)單片機(jī)可以稱為中斷觸

74、發(fā)信號(hào)。        </p><p>  Vin(+)(引腳6):輸入信號(hào)電壓的正極。       </p><p>  Vin(-)(引腳7):輸入信號(hào)電壓的負(fù)極。可以連接到電源地。    

75、60;   </p><p>  AGND(引腳8):模擬電源的地線。       </p><p>  Vref/2(引腳9):參考電源輸入端。參考電源取輸入信號(hào)電壓(最大值)的二分之一。例如輸入信號(hào)電壓是0V~5V時(shí),參考電源取2.0V,輸入信號(hào)電壓是0V~4V時(shí),參考電源取2.0V。&

76、#160;          </p><p>  DGND(引腳10):數(shù)字電源的地線。       </p><p>  DB8~DB0(引腳11~引腳18):數(shù)字信號(hào)輸出口,連接單片機(jī)的數(shù)據(jù)總線。 

77、0;     </p><p>  CLK R(引腳19):時(shí)鐘輸入端。        </p><p>  VCC(引腳20):5V電源引腳。</p><p>  (2)A/D轉(zhuǎn)換電路設(shè)計(jì)</p><p&g

78、t;  ADC0804芯片的DB0-DB7接單片機(jī)AT89C52的P1.0-P1.7引腳,CS接P3.2/INT0,RD接P3.7/RD,WR接P3.6/WR。CLK IN接一個(gè)0.1uF電容在接到VIN-,CLK R接CLK IN,A GND與D GND相連,在與VIN-相連接地,D GND串聯(lián)兩個(gè)1k的電阻,在接高電平。ADC0808內(nèi)部帶有輸出鎖存器,可以與AT89C52單片機(jī)直接相連。</p><p> 

79、 圖3-12 AD轉(zhuǎn)換電路</p><p>  3.8 D/A 轉(zhuǎn)換模塊</p><p>  圖3-13 DAC0832</p><p> ?。?)DAC0832芯片介紹</p><p>  DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。其主要參數(shù)如下:參考電壓為(+10~-10)V,供電電源為(+5~+15)V,滿量程誤差為±1LS

80、B,轉(zhuǎn)換時(shí)間為1μs分辨率為8位。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。邏輯電平輸入和TTL兼容。在DAC0832中有兩級(jí)鎖存器:輸入寄存器稱為第一級(jí)鎖存器,鎖存信號(hào)為ILE是它所允許的,DAC寄存器稱為第二級(jí)鎖存器,它的鎖存信號(hào)也稱為通道控制信號(hào) /XFER。</p><p><b>  引腳說明如下:</b></p><p>  DI0~DI7:8位數(shù)據(jù)輸入

81、線。</p><p>  CS:片選信號(hào)輸入,低電平有效。</p><p>  ILE:允許控制信號(hào)的數(shù)據(jù)鎖存,高電平有效。</p><p>  WR1:寫選通輸入信號(hào)的輸入寄存器,低電平有效。</p><p>  WR2:寫選通信號(hào)(輸入) DAC寄存器,低電平有效。</p><p>  XFE:數(shù)據(jù)傳送控制信號(hào)(輸

82、入),低電平有效。</p><p>  IOUTl、IOUT2:電流輸出,Ioutl+Iout2=常數(shù)。</p><p>  RFB:反饋電阻端。內(nèi)部接反饋電阻,外部通過該引腳接運(yùn)放輸出端。</p><p>  VREF:基準(zhǔn)電壓,其值為-l0V~+l0V。</p><p>  AGND:模擬地,作為基準(zhǔn)電源和模擬信號(hào)的參考地。</p&

83、gt;<p>  DGND:數(shù)字地,作為工作電源地和數(shù)字邏輯地,兩種地線可在基準(zhǔn)電源處進(jìn)行單點(diǎn)共地。</p><p>  Vcc:芯片工作電源,其值為+5V到l5V。</p><p> ?。?)D/A轉(zhuǎn)換電路設(shè)計(jì)</p><p>  圖3-14 DA轉(zhuǎn)換電路</p><p>  DAC0832芯片的8位輸入口接的是主芯片的P1口

84、從P0.0到P0.7口,而CS(低電平有效)、WR1和WR2(低電平有效)、GND、XFER(低電平有效)一系列低電平都接地,然后VCC、VREF、ILE端都與高電平相連,DI0到DI7接單片機(jī)的P0.0到P0.7引腳。INOUT1和INOUT2分別接發(fā)光二極管D10和D1,D10和D1都接地。如圖3-14所示。</p><p>  3.9 溫度傳感器模塊</p><p>  DS18B2

85、0的VCC接電源,GND接地,DQ接AT89C52芯片的P2.2引腳。</p><p>  圖3-15 溫度傳感器電路</p><p>  下圖位為溫度傳感器的工作原理框圖,如圖3-16所示。</p><p>  圖3-16 DS18B20溫度傳感器工作原理框圖</p><p>  3.10 蜂鳴器模塊</p><p>

86、;  蜂鳴器是發(fā)聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無源蜂鳴器)就可以發(fā)聲,其主要參數(shù)是外形尺寸、發(fā)聲方向、工作電壓、工作頻率、工作電流、驅(qū)動(dòng)方式(直流/方波)等。這些都可以根據(jù)需要來選擇。</p><p>  蜂鳴器分兩種:有源和無源,有源的是一通電就響的,標(biāo)有正負(fù)極,而無源的是需要方波信號(hào)驅(qū)動(dòng)的,沒有正負(fù)極。</p><p>  三極管Q2起開關(guān)作用,其基極的高電平使三

87、極管飽和導(dǎo)通,使蜂鳴器發(fā)聲;而基極低電平則使三極管關(guān)閉,蜂鳴器停止發(fā)聲。</p><p><b>  電路連接:</b></p><p>  電路采用無源的蜂鳴器,一端接高電平,一端接三極管Q2的集電極,Q2的發(fā)射極接地,基極接1K的電阻,再接一個(gè)倒相放大器,再接到AT89C52的P2.3引腳上。如圖3-17所示。</p><p>  圖3-1

88、7 蜂鳴器模塊</p><p><b>  4.軟件程序</b></p><p>  4.1 編程語言的選擇</p><p>  目前,支持單片機(jī)語言比較常用的是匯編語言和C語言。而C語言簡潔、緊湊,使用方便、靈活,運(yùn)算符豐富,數(shù)據(jù)類型多,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu),語言限制不太嚴(yán)格,程序自由度大,并且生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高,其編寫

89、程序的可讀性、維護(hù)性和可移植性都很好(與匯編語言相比)。</p><p>  4.2 軟件運(yùn)行環(huán)境</p><p>  當(dāng)源程序編寫好以后,必須要翻譯成單片機(jī)能夠識(shí)別的目標(biāo)代碼,然后裝載到單片機(jī)的程序存儲(chǔ)器進(jìn)行調(diào)試,這種翻譯工具稱為編譯器/連接器。另外還需要一個(gè)Windows的集成開發(fā)環(huán)境,該開發(fā)環(huán)境將源程序編寫、匯編/編譯/鏈接、調(diào)試等單片機(jī)開發(fā)所要用到的工具軟件集合到一個(gè)軟件中,可在仿

90、真器環(huán)境下調(diào)試,也可以模擬仿真。本次設(shè)計(jì)采用Keil C51集成開發(fā)環(huán)境,Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具uVision3。在uVision3的Windows界面下,其生成的目標(biāo)代碼效率非常高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。目前Keil C51已經(jīng)成為最流行的單片機(jī)軟件開發(fā)工具。</p><p>  本設(shè)計(jì)在系統(tǒng)程序設(shè)計(jì)中采用了模塊編程方法,每一個(gè)功能模塊都能完成某一明確

91、任務(wù),實(shí)現(xiàn)具體的某個(gè)功能,如LED模塊及驅(qū)動(dòng)電路、1602液晶顯示模塊、LCD顯示模塊、6位數(shù)碼管、AD/DA轉(zhuǎn)換模塊、地址總線擴(kuò)展、獨(dú)立按鍵、矩陣按鍵、數(shù)字按鍵、蜂鳴器模塊、溫度傳感器等模塊等。</p><p>  4.3 proteus和keil的配置</p><p>  4.3.1 proteus軟件</p><p>  1)Proteus介紹</p&g

92、t;<p>  Proteus與其他軟件不同,它不僅能仿真CPU的工作情況,而且也能仿真參與單片機(jī)仿真的外圍電路和其他電路的工作情況。在調(diào)試和仿真的過程中,關(guān)心的是從工程的角度直接看程序運(yùn)行的結(jié)果和電路的工作過程。不再關(guān)心的是某些程序語句執(zhí)行單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變。</p><p>  2)proteus的工作過程</p><p>  運(yùn)行proteus的ISIS程序

93、后,進(jìn)入該仿真軟件的主界面。通過工具欄中的p(從庫中選擇元件)命令,從 pick devices窗口中選擇電路設(shè)計(jì)所需要的元器件,將元件放置在相應(yīng)的位置并調(diào)整相應(yīng)的位置,然后在設(shè)置元件參數(shù),再將該鏈接的器件連接起來,最后就是在keil里編寫程序,首先打開keil,建立工程輸入工程名,在就是選器件,一般就是AT89C51或者是C52系列的芯片,然后就是和Proteus聯(lián)調(diào),在keil中運(yùn)行debug,在運(yùn)行run,就能看到proteus中

94、的仿真結(jié)果了。</p><p>  3)Proteus軟件所提供的儀表資源</p><p>  對(duì)proteus和keil聯(lián)調(diào)組成的虛擬實(shí)驗(yàn)系統(tǒng)所提供的資源有很多種,它包括虛擬的器件,虛擬的儀器,儀表等,如串口,示波器等。測(cè)試的儀器的質(zhì)量和數(shù)量類型是衡量一個(gè)虛擬實(shí)驗(yàn)系統(tǒng)是否合格的標(biāo)志。Proteus提供了一個(gè)圖形顯示功能的界面,還提供了虛擬的儀器儀表,以圖形的方式實(shí)時(shí)地顯示電路中各種變化,

95、其中以示波器的使用功能最多。</p><p>  4)Proteus軟件所提供的調(diào)試手段</p><p>  Proteus 提供了兩種方法對(duì)于單片機(jī)硬件電路和軟件的調(diào)試:一是整個(gè)系統(tǒng)總體的執(zhí)行,一是對(duì)軟件的分步調(diào)試的執(zhí)行情況。</p><p>  對(duì)于整體調(diào)試執(zhí)行的方法,我們采用在keil里面執(zhí)行debug菜單下的execute或者是按快捷鍵F12啟動(dòng)執(zhí)行,然后用

96、debug菜單下的Pause animation 菜單或者shift+break 組合鍵停止運(yùn)行。對(duì)于分步執(zhí)行,我們可以使用單步運(yùn)行或者是設(shè)置斷點(diǎn)來運(yùn)行程序,在proteus中可以看要演示的結(jié)果,對(duì)于軟件的分步調(diào)試,我們可以選擇工具欄中的相應(yīng)工具進(jìn)行操作,也可以選擇step over、step out和step into命令來執(zhí)行。在做單步執(zhí)行時(shí)單句執(zhí)行,進(jìn)入子程序還是跳出子程序執(zhí)行。在debug的菜單下可以查看仿真中所出現(xiàn)的信息,如軟

97、件列表和單片機(jī)系統(tǒng)資源和調(diào)試分析等。</p><p>  4.3.2 Keil uVision3</p><p>  Keil 軟件是一款功能強(qiáng)大的集成開發(fā)調(diào)試工具,它提供豐富的庫函數(shù),全Windows界面。值得一提的是,它功能之所以強(qiáng)大在于多數(shù)語句生成匯編代碼很緊湊,讓人一看容易理解。另外就是它的生成目標(biāo)代碼效率特別的高。所在所有的開發(fā)軟件中占很大的優(yōu)勢(shì)。</p><

98、p>  C51 for windows和for DOS的集成開發(fā)環(huán)境包括C51工具包中的uVision和Ishell,可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。</p><p>  4.3.3 proteus和keil的聯(lián)調(diào)方法</p><p> ?。?)、安裝keil uvision3與 proteus 7.5。 </p><p> ?。?)、把p

99、roteus安裝目錄下 VDM51.dll文件復(fù)制到Keil安裝根目錄下的 \C51\BIN根目錄下。</p><p> ?。?)、找到安裝keil的文件夾修改keil安裝目錄下Tools.ini文件,在C51字段加入TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver")。</p><p> ?。?)、打開proteu

100、s,畫出相應(yīng)電路(注意:proteus中mouse的左右鍵與一般程序是相反的樣子)。在proteus的tools菜單中選中use remote debug monitor 。</p><p> ?。?)、進(jìn)入KEIL的project菜單option for target “工程名''。在DEBUG選項(xiàng)中右欄上部的下拉菜選中 Proteus VSM Monitor-51 Driver。 在進(jìn)入set

101、ing,如果同一臺(tái)機(jī)IP 名為127.0.0.1,如不是同一臺(tái)機(jī)則填另一臺(tái)的IP地址。端口號(hào)一定為8000 。注意:可以在一臺(tái)機(jī)器上運(yùn)行keil,另一臺(tái)中運(yùn)行proteus進(jìn)行遠(yuǎn)程仿真。</p><p> ?。?)、在keil中進(jìn)行debug,同時(shí)在proteus中查看直觀的結(jié)果(如流水燈等。</p><p>  右鍵Target1,選擇Option for Target ‘Target1

102、’,在output中勾選creat HEX,Debug中勾選Proteus VSM Simulator和Run to main。</p><p>  圖4-6 設(shè)置DEBUG界面</p><p>  圖4-7 設(shè)置VDM51 SETTONGS界面</p><p>  然后在Proteus環(huán)境中選擇調(diào)試->使用遠(yuǎn)程調(diào)試監(jiān)控如圖4-8所示。</p>

103、<p>  圖4-8 proteus設(shè)置界面</p><p>  5.電路的仿真與測(cè)試</p><p>  5.1 LED實(shí)驗(yàn)演示</p><p>  圖5-1 流水燈演示</p><p><b>  演示說明:</b></p><p>  從上面的原理圖中可以看出,如果要讓第一個(gè)燈亮

104、起來就是接在P1.0口的LED1,只需要把P1.0口的電平變?yōu)榈碗娖骄湍軌驅(qū)崿F(xiàn);相反,如果把把P1.0口的電平變?yōu)楦唠娖剑瑒t接在P1.0口的LED1燈就會(huì)熄滅;同理,如果想以同樣的方法點(diǎn)亮其他的LED燈,來實(shí)現(xiàn)點(diǎn)亮和熄滅,則就要使得接在P1.0到P1.7口變?yōu)榈碗娖綍?huì)點(diǎn)亮,高電平就會(huì)熄滅。要實(shí)現(xiàn)流水燈的功能,我們只要將LED1到LED8的電平變?yōu)榈碗娖近c(diǎn)亮,高電平熄滅。如此交替重復(fù)下去,就會(huì)一亮一暗地做流水燈了。由于人的視覺停留再加上程

105、序的運(yùn)行時(shí)間很短,所以在寫程序的時(shí)候要調(diào)用延時(shí)函數(shù),延時(shí)一段時(shí)間,否則就看不到流水效果了。程序見(附錄)。</p><p>  實(shí)現(xiàn)8個(gè)LED流水燈程序用中文表示為:P1.0低、延時(shí)、P1.0高、P1.1低、延時(shí)、P1.1高、P1.2低、延時(shí)、P1.2高、P1.3低、延時(shí)、P1.3高、P1.4低、延時(shí)、P1.4高、P1.5低、延時(shí)、P1.5高、P1.6低、延時(shí)、P1.6高、P1.7低、延時(shí)、P1.7高、返回到開始

106、、程序結(jié)束。</p><p>  51單片機(jī)上電后為高電平,要使第一個(gè)發(fā)光二極管點(diǎn)亮,給P1.0口送一個(gè)低電平。然后延時(shí)一段時(shí)間, P1.0口變?yōu)楦唠娖?送一個(gè)低電平給P1.1口,點(diǎn)亮第二個(gè)發(fā)光二極管。如此重復(fù),就會(huì)看到流水的效果了,程序流程如圖5-2所示。</p><p>  圖5-2 流水燈程序圖</p><p>  5.2 LCD字符顯示</p>

107、<p><b>  演示說明:</b></p><p>  下載程序后,屏幕上顯示如下字符,程序見(附錄)。</p><p>  I want to bring out the secret of nature and apply them for the happiness of man.I don't know of any better se

108、rvice to offer for the short time we are in the world. ---Thomas Edison </p><p>  圖5-3 1602液晶顯示</p><p>  圖5-4 LCD顯示程序流程</p><p>  5.3 數(shù)碼管動(dòng)態(tài)掃描</p><p>  圖5-5 數(shù)碼管動(dòng)態(tài)掃描</p

109、><p><b>  演示說明:</b></p><p>  6位數(shù)碼管從0到F循環(huán)顯示,8位數(shù)碼管也跟著流水顯示。</p><p><b>  5.4 鍵盤測(cè)試</b></p><p>  5.4.1 單鍵識(shí)別</p><p><b>  演示說明:</b>

110、;</p><p>  第一次按鍵按下LED燈第一個(gè)開始亮,第二次按鍵按下第二個(gè)LED燈亮,以此輪推。</p><p><b>  圖5-6 單鍵檢測(cè)</b></p><p>  5.4.2 矩陣鍵盤測(cè)試</p><p>  圖5-7 矩陣鍵盤測(cè)試</p><p><b>  演示說明:

111、</b></p><p>  當(dāng)按下4X4矩陣鍵盤的按鍵時(shí),6位數(shù)碼管會(huì)顯示對(duì)應(yīng)的數(shù)字。</p><p>  圖5-8 鍵盤顯示程序流程</p><p>  5.5 AD轉(zhuǎn)換實(shí)驗(yàn)</p><p>  圖5-9 AD轉(zhuǎn)換演示</p><p><b>  演示說明:</b></p&g

112、t;<p>  8位數(shù)碼管全亮,數(shù)碼管的前三位顯示AD轉(zhuǎn)換的值。</p><p>  圖5-10 AD轉(zhuǎn)換程序流程</p><p>  5.6 DA轉(zhuǎn)換實(shí)驗(yàn)</p><p>  圖5-11 DA轉(zhuǎn)換演示</p><p><b>  演示說明:</b></p><p>  下載程序后可

113、觀察到D10發(fā)光二極管由暗變亮再熄滅過程。</p><p><b>  5.7 計(jì)時(shí)器</b></p><p>  圖5-12 計(jì)數(shù)器演示</p><p><b>  演示說明:</b></p><p>  運(yùn)行仿真后,從零開始計(jì)時(shí)到59自動(dòng)清零,從零開始計(jì)時(shí)。</p><p&g

114、t;  5.8 1602液晶顯示時(shí)鐘</p><p>  圖5-13 1602液晶顯示時(shí)鐘</p><p>  5.9 DS18B20溫度傳感器</p><p>  圖5-14 溫度傳感器</p><p><b>  演示說明:</b></p><p>  程序功能:將DS18B20所采集到的溫度

115、實(shí)時(shí)顯示到1602上。</p><p>  5.10 交通燈設(shè)計(jì)</p><p>  圖5-15 交通燈演示</p><p><b>  演示說明:</b></p><p>  程序功能:模擬交通燈顯示。</p><p>  其中,紅燈與綠燈顯示時(shí)間均為50s,中間的黃燈顯示時(shí)間為15s。<

116、/p><p>  綠燈用八位發(fā)光二極管流動(dòng)閃爍作代表;</p><p>  紅燈用八位發(fā)光二極管全亮作代表;</p><p>  黃燈用八位發(fā)光二極管全亮全滅閃爍作代表。</p><p>  剛開始顯示的為綠燈。</p><p>  顯示順序:綠--黃--紅--黃--綠--黃--紅--………………</p>&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論