版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢 業(yè) 設(shè) 計(jì)</b></p><p> 學(xué)生姓名: XXXX 學(xué) 號(hào): 09XXXXXXXXX </p><p> 專(zhuān) 業(yè): 電子科學(xué)與技術(shù) </p><p> 題 目: 虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng)的開(kāi)發(fā) </p><p&
2、gt; 指導(dǎo)教師: ) </p><p> 評(píng)閱教師: </p><p> 2013 年 6 月</p><p> 畢 業(yè) 設(shè) 計(jì) 中 文 摘 要</p><p> 畢 業(yè) 設(shè) 計(jì) 外 文 摘 要</p><p>&l
3、t;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><p><b> 2 系統(tǒng)設(shè)計(jì)3&l
4、t;/b></p><p> 2.1電路整體設(shè)計(jì)3</p><p> 2.2課題解決的問(wèn)題3</p><p> 2.3課題研究的方法4</p><p> 2.4 電路仿真部分6</p><p> 3 硬件電路設(shè)計(jì)7</p><p> 3.1整體框圖設(shè)計(jì)7</p
5、><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 鍵盤(pán)顯示19</p><p> 3.7 A/D轉(zhuǎn)換模塊22</p&
6、gt;<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 軟件語(yǔ)言的選擇28</p><p> 4.2 軟件運(yùn)行環(huán)境28</p>
7、<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</p><p> 5.4 鍵盤(pán)測(cè)試35</
8、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</p><p> 5.10 交通燈設(shè)計(jì)3
9、9</p><p> 5.11 整體電路測(cè)試40</p><p><b> 結(jié)論44</b></p><p><b> 致謝45</b></p><p><b> 參考文獻(xiàn)46</b></p><p><b> 附錄48&l
10、t;/b></p><p><b> 1.緒論</b></p><p> 1.1課題的背景分析</p><p> 針對(duì)傳統(tǒng)的單片機(jī),需采購(gòu)大量的、比較貴的的硬件設(shè)備,而且設(shè)備維護(hù)和工作量也非常大,傳統(tǒng)的單片機(jī)實(shí)驗(yàn)采用硬件仿真器,實(shí)驗(yàn)箱或?qū)嶒?yàn)板,由于單片機(jī)應(yīng)用技術(shù)涉及的范圍比較廣,它涉及到到計(jì)算機(jī)、須硬件和軟件結(jié)合才能實(shí)現(xiàn),也就是將
11、外圍電路和單片機(jī)程序相結(jié)合,如果用真實(shí)的實(shí)驗(yàn)箱則費(fèi)會(huì)用高,器材又不能地發(fā)揮充分利用,加上所用實(shí)驗(yàn)板開(kāi)發(fā)周期比較長(zhǎng),可行性不好。 </p><p> 現(xiàn)在使用Proteus仿真軟件,實(shí)現(xiàn)了純軟件的虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng),既可調(diào)試單片機(jī)程序,也可以仿真單片機(jī)的外圍器件的工作情況;既能充分利用計(jì)算機(jī)等硬件資源,減少硬件設(shè)備的維護(hù)工作量,還可提供豐富的實(shí)驗(yàn)內(nèi)容。</p><p> 1.2技術(shù)概況及
12、發(fā)展趨勢(shì)</p><p> 現(xiàn)代科技技術(shù)的發(fā)展,促進(jìn)了計(jì)算機(jī)技術(shù)在軟件和硬件上的飛速發(fā)展,利用計(jì)算機(jī)軟件的仿真技術(shù),可以充分地仿真電路的工作等實(shí)際的工程問(wèn)題。</p><p> 目前,嵌入式系統(tǒng)已經(jīng)廣泛地滲透到工程設(shè)計(jì)、科學(xué)研究、軍事技術(shù)、各類(lèi)產(chǎn)業(yè)和商業(yè)文化藝術(shù)以及人們的日常生活等方方面面中,由于社會(huì)對(duì)掌握嵌入式技術(shù)人才的大量需求,使得嵌入式軟硬件工程師成為未來(lái)幾年內(nèi)最為熱門(mén)的職業(yè)之一
13、,相當(dāng)一部分高校已開(kāi)設(shè)嵌入式系統(tǒng)的相關(guān)課程。</p><p> 嵌入式系統(tǒng)是實(shí)踐與理論相結(jié)合的課程,對(duì)于嵌入式處學(xué)習(xí)者來(lái)說(shuō)沒(méi)有足夠的資金來(lái)購(gòu)買(mǎi)開(kāi)發(fā)板,所以只能選擇仿真仿真來(lái)學(xué)習(xí)嵌入式系統(tǒng),proteus是目前最好的仿真軟件,能夠虛擬出嵌入式系統(tǒng)開(kāi)發(fā)中常用的處理器和外圍器件。</p><p> Proteus與其他軟件不同,它不僅能仿真CPU的工作情況,而且也能仿真參與單片機(jī)仿真的外圍電
14、路和其他電路的工作情況。在調(diào)試和仿真的過(guò)程中,關(guān)心的是從工程的角度直接看程序運(yùn)行的結(jié)果和電路的工作過(guò)程。不再關(guān)心的是某些程序語(yǔ)句執(zhí)行單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變。這樣的仿真彌補(bǔ)了工程和實(shí)驗(yàn)見(jiàn)的矛盾和脫節(jié)。</p><p> 1.3 課題的目的和意義</p><p> 單片機(jī)技術(shù)是電子專(zhuān)業(yè)一門(mén)重要的基礎(chǔ)課程,它要求的對(duì)動(dòng)手能力要求很高,長(zhǎng)期以來(lái),由于實(shí)驗(yàn)設(shè)備資源的限制,使得教學(xué)實(shí)驗(yàn)受到
15、了限制,本設(shè)計(jì)是利用Proteus軟件進(jìn)行虛擬單片機(jī)試驗(yàn)系統(tǒng)的開(kāi)發(fā),所涉及到單片機(jī)及外圍電路可以在沒(méi)有硬件的情況下進(jìn)行各種實(shí)驗(yàn)的仿真,從而大大地挺高了學(xué)習(xí)的興趣。</p><p> 在現(xiàn)代教學(xué)中計(jì)算機(jī)網(wǎng)絡(luò)和虛擬實(shí)驗(yàn)等技術(shù)已經(jīng)逐漸成為教學(xué)的的手段和工具。通過(guò)實(shí)驗(yàn)可以使所學(xué)的東西更加清楚和明了,通過(guò)實(shí)驗(yàn)可以是學(xué)生通過(guò)實(shí)驗(yàn)加深對(duì)理論知識(shí)的理解和認(rèn)識(shí)。尤其是那些那些難以理解的內(nèi)容,虛擬實(shí)驗(yàn)在現(xiàn)代教學(xué)有很高的地位,它使得
16、很多復(fù)雜的問(wèn)題變得簡(jiǎn)單化,同時(shí)也節(jié)省很多件資源,在實(shí)驗(yàn)中通過(guò)一些形象生動(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é)帶來(lái)不小的壓力和沖擊,所以我們就要尋找一種新的途徑解決實(shí)驗(yàn)教學(xué)的問(wèn)題,傳統(tǒng)的實(shí)驗(yàn)需要各種
17、設(shè)備儀器,和相關(guān)的配套設(shè)施,而且對(duì)實(shí)驗(yàn)器材不夠充分地利用,學(xué)生在試驗(yàn)室對(duì)各種儀器不熟悉,對(duì)實(shí)驗(yàn)內(nèi)容準(zhǔn)備的不夠充分而到不到滿(mǎn)意的實(shí)驗(yàn)結(jié)果,現(xiàn)在利用虛擬的實(shí)驗(yàn)系統(tǒng)可以很好地解決這一問(wèn)題,所以虛擬試驗(yàn)室教學(xué)將成為一種發(fā)展趨勢(shì),同時(shí)也提高學(xué)習(xí)者的積極性和動(dòng)手能力。</p><p><b> 2.系統(tǒng)設(shè)計(jì)</b></p><p><b> 2.1電路整體設(shè)計(jì)<
18、;/b></p><p> 本課題共分為幾大模塊,具體為L(zhǎng)ED顯示、1602液晶顯示、溫度傳感器、獨(dú)立按鍵、數(shù)字按鍵、4X4鍵盤(pán)顯示、6位數(shù)碼管、蜂鳴器、8位發(fā)光二極管流水燈顯示、LCD顯示以及A/D和D/A轉(zhuǎn)換幾個(gè)模塊。所有電路都是圍繞主芯片AT89C52來(lái)完成的,下圖為設(shè)計(jì)的電路的整體框圖,如圖2-1所示。</p><p> 圖2-1 系統(tǒng)電路框圖</p>&l
19、t;p> 2.2課題解決的問(wèn)題</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)行一些簡(jiǎn)單的單片機(jī)實(shí)驗(yàn)構(gòu)建一個(gè)虛擬硬件環(huán)境。</p><p>
20、?。?)4X4鍵盤(pán):主要輸入數(shù)據(jù)</p><p><b> ?。?)顯示部分:</b></p><p> LED:LED是一種特別的二極管,當(dāng)連接最電的時(shí)候就會(huì)發(fā)出光,通常被用在電子器具來(lái)顯示電路是否關(guān)閉或打開(kāi)的指示燈。</p><p> LCD:LCD為英文Liquid Crystal Display的縮寫(xiě),即液晶顯示器,是一種數(shù)字顯示技
21、術(shù),可以通過(guò)液晶和彩色過(guò)濾器過(guò)濾光源,在平面面板上產(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)來(lái)實(shí)現(xiàn)一些真實(shí)世界的功能。數(shù)模轉(zhuǎn)換器(DAC)就可以做到這一點(diǎn),而且它們的輸出還可以用來(lái)驅(qū)動(dòng)各種設(shè)備。 </p&
22、gt;<p> DAC一般被放置在數(shù)字系統(tǒng)中。在數(shù)字系統(tǒng)中,一些真實(shí)世界的信號(hào)通過(guò)模數(shù)轉(zhuǎn)換器(ADC)數(shù)字化和處理過(guò)后,然后需要重新轉(zhuǎn)化成模擬信號(hào)的系統(tǒng)中。這些系統(tǒng)所要求的DAC性能會(huì)受到系統(tǒng)其它組件的性能和要求的影響。</p><p> 2.3 課題研究的方法</p><p> 2.3.1 總體方案</p><p><b> 圖2-
23、2 總體方案</b></p><p> 分別對(duì)LED顯示、獨(dú)立鍵盤(pán)、矩陣鍵盤(pán)、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ù)路線(xiàn)</p><p><b> 圖2-3 技術(shù)路線(xiàn)</b&g
24、t;</p><p> 圍繞著主芯片設(shè)計(jì)LED顯示、獨(dú)立鍵盤(pán)、矩陣鍵盤(pán)、數(shù)字鍵盤(pán)、LCD顯示、數(shù)碼管、計(jì)數(shù)器、數(shù)字溫度顯示、蜂鳴器模塊、交通燈設(shè)計(jì)、以及A/D和D/A等電路模塊并在Porteus上畫(huà)出相應(yīng)的電路圖并保存。用C語(yǔ)言編譯能夠完成相應(yīng)模塊功能的源程序。運(yùn)行Proteus進(jìn)行仿真調(diào)試。如果仿真沒(méi)有成功則修改電路或源程序后重新進(jìn)行仿真測(cè)試。</p><p> 2.4 電路圖仿真部
25、分</p><p> Proteus與其他軟件不同,它不僅能仿真CPU的工作情況,而且也能仿真參與單片機(jī)仿真的外圍電路和其他電路的工作情況。因此在調(diào)試和仿真的過(guò)程中,關(guān)心的是從工程的角度直接看程序運(yùn)行的結(jié)果和電路的工作過(guò)程。不再關(guān)心的是某些程序語(yǔ)句執(zhí)行單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變。這樣的仿真彌補(bǔ)了工程和實(shí)驗(yàn)見(jiàn)的矛盾和脫節(jié)。</p><p> 采用Proteus 仿真軟件進(jìn)行
26、虛擬單片機(jī)實(shí)驗(yàn),具有比較明顯的優(yōu)勢(shì),如涉及到的實(shí)驗(yàn)實(shí)習(xí)內(nèi)容全面、硬件投入少、學(xué)生可自行實(shí)驗(yàn)、實(shí)驗(yàn)過(guò)程中損耗小、與工程實(shí)踐最為接近等。</p><p><b> 3. 硬件電路設(shè)計(jì)</b></p><p> 3.1 整體框圖設(shè)計(jì)</p><p> 在proteus中由LED模塊及驅(qū)動(dòng)電路、1602液晶顯示模塊、LCD顯示模塊、6位數(shù)碼管、A
27、D/DA轉(zhuǎn)換模塊、獨(dú)立按鍵、矩陣按鍵、數(shù)字按鍵、蜂鳴器模塊、溫度傳感器等模塊。如圖3-1所示。</p><p> 圖3-1 電路總設(shè)計(jì)圖</p><p> 3.2 主芯片—AT89C52</p><p> 本設(shè)計(jì)主要是圍繞芯片AT89C52來(lái)設(shè)計(jì)的,下圖為芯片AT89C52引腳的具體說(shuō)明,如圖3-2所示。</p><p> 3.2.1
28、 AT89C52介紹</p><p> AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫(xiě)的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)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。</
29、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è)讀寫(xiě)口線(xiàn),AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線(xiàn)編程(S系列的才支持在線(xiàn)編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低
30、開(kāi)發(fā)成本。</p><p> 3.2.2 管腳說(shuō)明</p><p><b> 主要管腳有:</b></p><p> XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電
31、源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(32~39 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線(xiàn)控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。 </p
32、><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0 口:P0口是一組8 位漏極開(kāi)路型雙向I/O 口, 也即地址/數(shù)據(jù)總線(xiàn)復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門(mén)電路,對(duì)端口P0 寫(xiě)“1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)
33、存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線(xiàn)分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線(xiàn)復(fù)用,在訪問(wèn)期間激活內(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 邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入
34、口。作輸入口使用時(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)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)
35、4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口P2 寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問(wèn)8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX @RI 指令)時(shí),P2 口輸出P2 鎖存器的內(nèi)容。Flash 編程或校驗(yàn)時(shí),P2
36、亦接收高位地址和一些控制信號(hào)。 </p><p> P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)P3 口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線(xiàn)外,更重要的用途是它的第二功能P3 口還接收一些用于Flash 閃速存儲(chǔ)器
37、編程和程序校驗(yàn)的控制信號(hào)。 </p><p> RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 </p><p> ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪
38、問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE 脈沖。對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無(wú)效。 </p><p> PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序
39、存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。 </p><p> EA/VPP:外部訪問(wèn)允許。欲使CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。</p>
40、<p> 3.2.3 外圍電路</p><p> 外圍電路由晶振電路和復(fù)位電路組成,晶振電路由晶振和兩個(gè)30uF的電路組成,分別接單片機(jī)的XTAL1和XTAL2。晶振的作用是為了系統(tǒng),他提供時(shí)鐘信號(hào)給了系統(tǒng),通常便于各部分保持同步,所以一個(gè)系統(tǒng)共用一個(gè)晶振,要使通過(guò)電子調(diào)整頻率的保持同步,那就必須在有些系統(tǒng)中的基頻和射頻使用不同的晶振。晶振電路通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時(shí)鐘頻率。&
41、lt;/p><p> 復(fù)位電路由復(fù)位開(kāi)關(guān)和下拉電阻R7組成,接單片機(jī)的RST引腳。復(fù)位電路的作用是使單片機(jī)的程序計(jì)數(shù)器清零,復(fù)位電路就好比電腦,當(dāng)死機(jī)的時(shí)候,按下復(fù)位鍵程序從頭開(kāi)始執(zhí)行,受到干擾或者程序跑飛的時(shí)候,按下復(fù)位鍵從頭開(kāi)始執(zhí)行。內(nèi)部計(jì)數(shù)器的編程主要是定時(shí)常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部記數(shù)器在單片機(jī)中主要有定時(shí)器和記數(shù)器兩個(gè)功能。</p><p> 定時(shí)器有關(guān)的寄存器有工作
42、方式寄存器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ī)器周期的長(zhǎng)度是12個(gè)振蕩周期,該實(shí)驗(yàn)系統(tǒng)的晶振是11.0592MHz。</p><p><b> 圖3.3 外圍電路</b></p><
43、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ù)極接9引腳的排阻,排阻的1腳接VCC,</p><p
44、> 接排阻的作用是防止發(fā)光二極管在電壓過(guò)大的情況下燒壞,然后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> (2)8位發(fā)光二極管的工作原理</p>&l
45、t;p> 因?yàn)槎O管左邊接的是Vcc作為高電平,所以如果要二極管亮的話(huà)P1口必須輸入低電平,就一條通路而言,在P1.0輸入低電平后,第一個(gè)發(fā)光二極管導(dǎo)通,所以就亮了。然后在后面加上延遲,也就是亮的時(shí)間后再輸入P1.1口為低電平,第二個(gè)二極管就發(fā)亮,同理而言,就實(shí)現(xiàn)了流水燈的實(shí)驗(yàn)。</p><p> 3.4 1602液晶顯示模塊</p><p> 1602字符液晶顯示器的D0到D
46、7端口與用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ù)總線(xiàn)D0-D7,RS、VEE、RW三個(gè)控制端口(共14線(xiàn)),工作電壓為5V。沒(méi)背光,和常用的1602B功能
47、和引腳一樣(除了調(diào)背光的二個(gè)線(xiàn)腳)。如圖3-5所示。</p><p> 圖3-5 LCD顯示電路</p><p><b> 1.管腳功能</b></p><p> 第1腳:VSS為電源地</p><p> 第2腳:VDD接5V電源正極</p><p> 第3腳:V0為液晶顯示器對(duì)比度調(diào)整
48、端,對(duì)比度最弱時(shí)接正電源,對(duì)比度最高時(shí)接地電源。</p><p> 第4腳:RS為選擇寄存器,高電平1時(shí)寄存器選擇數(shù)據(jù)、低電平0時(shí)寄存器選擇指令。</p><p> 第5腳:RW為讀寫(xiě)信號(hào)線(xiàn),高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。</p><p> 第6腳:E(或EN)端為使能(enable)端。</p><p> 第7
49、~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×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字
50、節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。但由于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō),顯示字符就比較簡(jiǎn)單了,先讓讓控制器工作在文本方式的時(shí)候,再根據(jù)根據(jù)在LCD上顯示每行的列數(shù)和行列號(hào)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此處送上該字符對(duì)應(yīng)的代碼就可了。</p><p><b> 3.5 數(shù)碼管模塊</b></p><p> LED數(shù)
51、碼管是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來(lái)表示。當(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ù)碼管的顯示筆畫(huà)常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一
52、般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過(guò)30mA。發(fā)光二極管的陽(yáng)極連接到一起連接到電源正極的稱(chēng)為共陽(yáng)數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱(chēng)為共陰數(shù)碼管。發(fā)光二極管的陽(yáng)極連接到一起連接到電源正極的稱(chēng)為共陽(yáng)數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱(chēng)為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。</p><p>
53、 LED數(shù)碼管(LED Segment Displays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線(xiàn)已在內(nèi)部連接完成,只需將它們的各個(gè)筆劃引出,公共電極。數(shù)碼管根據(jù)LED分為共陰和共陽(yáng)是因?yàn)樗麄兊慕臃ú煌诸?lèi),如果了解LED的特性,尤其是對(duì)編程是非常重要的,數(shù)碼管的類(lèi)型不同,電路除了有差別外,編程的方法和原理也有所不同,共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路不同,到那它們的原理是一樣的,知識(shí)它們的電源極性不同而已罷了。led數(shù)碼管
54、廣泛用于儀器儀表,汽車(chē)電子、時(shí)鐘、顯示屏、家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,波長(zhǎng),功耗,亮度等。</p><p> 圖3-6 6位數(shù)碼管</p><p><b> 1.電路連接:</b></p><p> 電路采用共陽(yáng)的接法,數(shù)碼管電路用2個(gè)74HC573,其中一個(gè)的Q0-Q7分別與6位數(shù)碼管的A,B,C,D,E,F,G,DP引腳相連
55、,另一個(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ù)碼管共陽(yáng)極碼表<p0.0-a,p0.7-dp></p><p>
56、 TABLE:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,</p><p> 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e</p><p> (2) 數(shù)碼管共陽(yáng)極碼表<p0.0-a,p0.7-dp></p><p> TABLE:0x3f,0x06,0x5b,0x4f,0x66,
57、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> 正常顯示的LED數(shù)碼管,數(shù)碼管的各個(gè)段碼就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng),才能顯
58、示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管不同的驅(qū)動(dòng)方式,根據(jù)數(shù)碼管的驅(qū)動(dòng)方式,可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩類(lèi)。 </p><p><b> A、靜態(tài)顯示: </b></p><p> 靜態(tài)顯示也稱(chēng)直流驅(qū)動(dòng)。靜態(tài)顯示是指由一個(gè)單片機(jī)的I/O埠進(jìn)行驅(qū)動(dòng)每個(gè)數(shù)碼管的每一個(gè)段碼,或者使用如BCD碼二-十進(jìn)位進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O埠多
59、。故實(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 "的數(shù)碼管的的同名端連在一起,同時(shí)增加位元選通控制電路為每個(gè)數(shù)碼管的公
60、共極COM,各自獨(dú)立的I/O線(xiàn)控制位元選通由。 </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)和人的視覺(jué)暫留現(xiàn)象,只要點(diǎn)亮速度快,不管是不是各位數(shù)碼管是否同時(shí)點(diǎn)亮,給人的感覺(jué)就是穩(wěn)定的顯示,不會(huì)讓人感覺(jué)有閃爍的感覺(jué),靜態(tài)顯示的效果和動(dòng)態(tài)顯示的效果是一樣的,能夠節(jié)省大量的I/O埠
61、,而且功耗更低。7段LED數(shù)碼管是利用7個(gè)LED(發(fā)光二極管)外加一個(gè)小數(shù)點(diǎn)的LED組合而成的顯示設(shè)備。</p><p><b> 3.6 鍵盤(pán)模塊</b></p><p> 3.6.1 獨(dú)立按鍵電路</p><p> 獨(dú)立按鍵電路有四個(gè)按鍵組成,分別接單片機(jī)AT89C52的P3.4/T0,P3.5/T1、P3.6/WR、P3.7/RD引
62、腳相連。如圖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×4 矩陣鍵盤(pán),以P3.0-P3.3 作輸入線(xiàn),以P3.4-P3.7作輸出
63、線(xiàn);數(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)接口說(shuō)明</b></p><p> 接口P3.0控制0號(hào),1號(hào),2號(hào),3號(hào)開(kāi)關(guān);</p><p> 接口P3.1控制4號(hào),5號(hào),6號(hào),7號(hào)開(kāi)關(guān);
64、</p><p> 接口P3.2控制8號(hào),9號(hào),A號(hào),B號(hào)開(kāi)關(guān);</p><p> 接口P3.3控制開(kāi)關(guān)C,D,E,F(xiàn);</p><p> P3.4-P3.7則為輸出。</p><p> 圖3-9 矩陣按鍵電路</p><p> 當(dāng)按下0號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0111111’。</p><
65、;p> 當(dāng)按下1號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111001’。 </p><p> 當(dāng)按下2號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0110111’。 </p><p> 當(dāng)按下3號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1001111’。 </p><p> 當(dāng)按下4號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1100110’。 </p><p> 當(dāng)按下5號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘
66、1101101’。</p><p> 當(dāng)按下6號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111101’。 </p><p> 當(dāng)按下7號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘0000111’。</p><p> 當(dāng)按下8號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1111111’。</p><p> 當(dāng)按下9號(hào)開(kāi)關(guān)時(shí),數(shù)碼管顯示為‘1101111’。</p><p&
67、gt; 當(dāng)按下開(kāi)關(guān)A時(shí),數(shù)碼管顯示為 ‘1110111’。</p><p> 當(dāng)按下開(kāi)關(guān)B時(shí),數(shù)碼管顯示為 ‘1111100’。</p><p> 當(dāng)按下開(kāi)關(guān)C時(shí),數(shù)碼管顯示為 ‘0111001’。 </p><p> 當(dāng)按下開(kāi)關(guān)D時(shí),數(shù)碼管顯示為 ‘1011110’。</p><p> 當(dāng)按下開(kāi)關(guān)E時(shí),數(shù)碼管顯示為 ‘1
68、111001’。</p><p> 當(dāng)按下開(kāi)關(guān)F時(shí),數(shù)碼管顯示為 ‘1110001’。</p><p> 2)4×4 矩陣鍵盤(pán)工作原理</p><p> 矩陣鍵盤(pán)又稱(chēng)為行列式鍵盤(pán),是列線(xiàn)由4條I/O線(xiàn)組成,行線(xiàn)是由4條I/O線(xiàn)組成的矩陣鍵盤(pán)。在列線(xiàn)和行線(xiàn)的重合的交叉點(diǎn)上,設(shè)置一個(gè)按鍵,這樣就組成了4X4共16個(gè)按鍵。這種鍵盤(pán)的格局方方正正,而且可以
69、大大地利用了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/WR、P3.7/RD引腳相連。如圖3-10所示。</p>
70、<p> 圖3-10 數(shù)字按鍵電路</p><p> 3.7 A/D 轉(zhuǎn)換模塊</p><p> 圖3-11 ADC0804</p><p><b> (1)芯片介紹</b></p><p> ADC0804是一個(gè)8位、單通道、低價(jià)格A/D轉(zhuǎn)換器,主要特點(diǎn)是:摸數(shù)轉(zhuǎn)換時(shí)間大約100us,方便的TTL或
71、CMOS標(biāo)準(zhǔn)接口,可以滿(mǎn)足差分電壓輸入;具有參考電壓輸入端;內(nèi)含時(shí)鐘發(fā)生器;單電源工作時(shí)(0V~5V)輸入信號(hào)電壓范圍是0V~5V,不需要調(diào)零等等。 </p><p> (引腳1):片選信號(hào)。低電平有效,高電平時(shí)芯片不工作。 </p><p> ?。ㄒ_2):外部讀數(shù)據(jù)控制信號(hào)。此信號(hào)
72、低電平時(shí)ADC0804把轉(zhuǎn)換完成的數(shù)據(jù)加載到DB口。 </p><p> ?。ㄒ_3):外部寫(xiě)數(shù)據(jù)控制信號(hào)。此信號(hào)的上升沿可以啟動(dòng)ADC0804的A/D轉(zhuǎn)換過(guò)程。 </p><p> CLK IN(引腳
73、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ī)可以稱(chēng)為中斷觸發(fā)信號(hào)。
74、60; </p><p> Vin(+)(引腳6):輸入信號(hào)電壓的正極。 </p><p> Vin(-)(引腳7):輸入信號(hào)電壓的負(fù)極??梢赃B接到電源地。 </p><
75、p> AGND(引腳8):模擬電源的地線(xiàn)。 </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ù)字電源的地線(xiàn)。 </p><p> DB8~DB0(引腳11~引腳18):數(shù)字信號(hào)輸出口,連接單片機(jī)的數(shù)據(jù)總線(xiàn)。 </
77、p><p> CLK R(引腳19):時(shí)鐘輸入端。 </p><p> VCC(引腳20):5V電源引腳。</p><p> (2)A/D轉(zhuǎn)換電路設(shè)計(jì)</p><p> ADC0804芯片的DB0-DB7接單片機(jī)AT89C52的P1.0
78、-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> 圖3-12 AD轉(zhuǎn)換電路</p><p> 3
79、.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,滿(mǎn)量程誤差為±1LSB,轉(zhuǎn)換時(shí)間為1μs分辨率為8位。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)
80、換。邏輯電平輸入和TTL兼容。在DAC0832中有兩級(jí)鎖存器:輸入寄存器稱(chēng)為第一級(jí)鎖存器,鎖存信號(hào)為ILE是它所允許的,DAC寄存器稱(chēng)為第二級(jí)鎖存器,它的鎖存信號(hào)也稱(chēng)為通道控制信號(hào) /XFER。</p><p><b> 引腳說(shuō)明如下:</b></p><p> DI0~DI7:8位數(shù)據(jù)輸入線(xiàn)。</p><p> CS:片選信號(hào)輸入,低電
81、平有效。</p><p> ILE:允許控制信號(hào)的數(shù)據(jù)鎖存,高電平有效。</p><p> WR1:寫(xiě)選通輸入信號(hào)的輸入寄存器,低電平有效。</p><p> WR2:寫(xiě)選通信號(hào)(輸入) DAC寄存器,低電平有效。</p><p> XFE:數(shù)據(jù)傳送控制信號(hào)(輸入),低電平有效。</p><p> IOUTl
82、、IOUT2:電流輸出,Ioutl+Iout2=常數(shù)。</p><p> RFB:反饋電阻端。內(nèi)部接反饋電阻,外部通過(guò)該引腳接運(yùn)放輸出端。</p><p> VREF:基準(zhǔn)電壓,其值為-l0V~+l0V。</p><p> AGND:模擬地,作為基準(zhǔn)電源和模擬信號(hào)的參考地。</p><p> DGND:數(shù)字地,作為工作電源地和數(shù)字邏輯
83、地,兩種地線(xiàn)可在基準(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口從P0.0到P0.7口,而CS(低電平有效)、WR1和WR2(低電平有效)
84、、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> DS18B20的VCC接電源,GND接地,DQ接AT89C52芯片的P2.2引腳。&l
85、t;/p><p> 圖3-15 溫度傳感器電路</p><p> 下圖位為溫度傳感器的工作原理框圖,如圖3-16所示。</p><p> 圖3-16 DS18B20溫度傳感器工作原理框圖</p><p> 3.10 蜂鳴器模塊</p><p> 蜂鳴器是發(fā)聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無(wú)源蜂
86、鳴器)就可以發(fā)聲,其主要參數(shù)是外形尺寸、發(fā)聲方向、工作電壓、工作頻率、工作電流、驅(qū)動(dòng)方式(直流/方波)等。這些都可以根據(jù)需要來(lái)選擇。</p><p> 蜂鳴器分兩種:有源和無(wú)源,有源的是一通電就響的,標(biāo)有正負(fù)極,而無(wú)源的是需要方波信號(hào)驅(qū)動(dòng)的,沒(méi)有正負(fù)極。</p><p> 三極管Q2起開(kāi)關(guān)作用,其基極的高電平使三極管飽和導(dǎo)通,使蜂鳴器發(fā)聲;而基極低電平則使三極管關(guān)閉,蜂鳴器停止發(fā)聲。&
87、lt;/p><p><b> 電路連接:</b></p><p> 電路采用無(wú)源的蜂鳴器,一端接高電平,一端接三極管Q2的集電極,Q2的發(fā)射極接地,基極接1K的電阻,再接一個(gè)倒相放大器,再接到AT89C52的P2.3引腳上。如圖3-17所示。</p><p> 圖3-17 蜂鳴器模塊</p><p><b>
88、 4.軟件程序</b></p><p> 4.1 編程語(yǔ)言的選擇</p><p> 目前,支持單片機(jī)語(yǔ)言比較常用的是匯編語(yǔ)言和C語(yǔ)言。而C語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活,運(yùn)算符豐富,數(shù)據(jù)類(lèi)型多,具有現(xiàn)代語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu),語(yǔ)言限制不太嚴(yán)格,程序自由度大,并且生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高,其編寫(xiě)程序的可讀性、維護(hù)性和可移植性都很好(與匯編語(yǔ)言相比)。</p>
89、;<p> 4.2 軟件運(yùn)行環(huán)境</p><p> 當(dāng)源程序編寫(xiě)好以后,必須要翻譯成單片機(jī)能夠識(shí)別的目標(biāo)代碼,然后裝載到單片機(jī)的程序存儲(chǔ)器進(jìn)行調(diào)試,這種翻譯工具稱(chēng)為編譯器/連接器。另外還需要一個(gè)Windows的集成開(kāi)發(fā)環(huán)境,該開(kāi)發(fā)環(huán)境將源程序編寫(xiě)、匯編/編譯/鏈接、調(diào)試等單片機(jī)開(kāi)發(fā)所要用到的工具軟件集合到一個(gè)軟件中,可在仿真器環(huán)境下調(diào)試,也可以模擬仿真。本次設(shè)計(jì)采用Keil C51集成開(kāi)發(fā)環(huán)境,
90、Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具uVision3。在uVision3的Windows界面下,其生成的目標(biāo)代碼效率非常高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。目前Keil C51已經(jīng)成為最流行的單片機(jī)軟件開(kāi)發(fā)工具。</p><p> 本設(shè)計(jì)在系統(tǒng)程序設(shè)計(jì)中采用了模塊編程方法,每一個(gè)功能模塊都能完成某一明確任務(wù),實(shí)現(xiàn)具體的某個(gè)功能,如LED模塊及驅(qū)動(dòng)電路、1602液晶顯示模塊、L
91、CD顯示模塊、6位數(shù)碼管、AD/DA轉(zhuǎn)換模塊、地址總線(xiàn)擴(kuò)展、獨(dú)立按鍵、矩陣按鍵、數(shù)字按鍵、蜂鳴器模塊、溫度傳感器等模塊等。</p><p> 4.3 proteus和keil的配置</p><p> 4.3.1 proteus軟件</p><p> 1)Proteus介紹</p><p> Proteus與其他軟件不同,它不僅能仿真C
92、PU的工作情況,而且也能仿真參與單片機(jī)仿真的外圍電路和其他電路的工作情況。在調(diào)試和仿真的過(guò)程中,關(guān)心的是從工程的角度直接看程序運(yùn)行的結(jié)果和電路的工作過(guò)程。不再關(guān)心的是某些程序語(yǔ)句執(zhí)行單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變。</p><p> 2)proteus的工作過(guò)程</p><p> 運(yùn)行proteus的ISIS程序后,進(jìn)入該仿真軟件的主界面。通過(guò)工具欄中的p(從庫(kù)中選擇元件)命令,從 p
93、ick devices窗口中選擇電路設(shè)計(jì)所需要的元器件,將元件放置在相應(yīng)的位置并調(diào)整相應(yīng)的位置,然后在設(shè)置元件參數(shù),再將該鏈接的器件連接起來(lái),最后就是在keil里編寫(xiě)程序,首先打開(kāi)keil,建立工程輸入工程名,在就是選器件,一般就是AT89C51或者是C52系列的芯片,然后就是和Proteus聯(lián)調(diào),在keil中運(yùn)行debug,在運(yùn)行run,就能看到proteus中的仿真結(jié)果了。</p><p> 3)Prote
94、us軟件所提供的儀表資源</p><p> 對(duì)proteus和keil聯(lián)調(diào)組成的虛擬實(shí)驗(yàn)系統(tǒng)所提供的資源有很多種,它包括虛擬的器件,虛擬的儀器,儀表等,如串口,示波器等。測(cè)試的儀器的質(zhì)量和數(shù)量類(lèi)型是衡量一個(gè)虛擬實(shí)驗(yàn)系統(tǒng)是否合格的標(biāo)志。Proteus提供了一個(gè)圖形顯示功能的界面,還提供了虛擬的儀器儀表,以圖形的方式實(shí)時(shí)地顯示電路中各種變化,其中以示波器的使用功能最多。</p><p>
95、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í)行,然后用debug菜單下的Pause animation </p>
96、<p> 菜單或者shift+break 組合鍵停止運(yùn)行。對(duì)于分步執(zhí)行,我們可以使用單步運(yùn)行或者是設(shè)置斷點(diǎn)來(lái)運(yùn)行程序,在proteus中可以看要演示的結(jié)果,對(duì)于軟件的分步調(diào)試,我們可以選擇工具欄中的相應(yīng)工具進(jìn)行操作,也可以選擇step over、step out和step into命令來(lái)執(zhí)行。在做單步執(zhí)行時(shí)單句執(zhí)行,進(jìn)入子程序還是跳出子程序執(zhí)行。在debug的菜單下可以查看仿真中所出現(xiàn)的信息,如軟件列表和單片機(jī)系統(tǒng)資源和調(diào)試
97、分析等。</p><p> 4.3.2 Keil uVision3</p><p> Keil 軟件是一款功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,它提供豐富的庫(kù)函數(shù),全Windows界面。值得一提的是,它功能之所以強(qiáng)大在于多數(shù)語(yǔ)句生成匯編代碼很緊湊,讓人一看容易理解。另外就是它的生成目標(biāo)代碼效率特別的高。所在所有的開(kāi)發(fā)軟件中占很大的優(yōu)勢(shì)。</p><p> C51 for
98、 windows和for DOS的集成開(kāi)發(fā)環(huán)境包括C51工具包中的uVision和Ishell,可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。</p><p> 4.3.3 proteus和keil的聯(lián)調(diào)方法</p><p> (1)、安裝keil uvision3與 proteus 7.5。 </p><p> ?。?)、把proteus安裝目錄下 VD
99、M51.dll文件復(fù)制到Keil安裝根目錄下的 \C51\BIN根目錄下。</p><p> ?。?)、找到安裝keil的文件夾修改keil安裝目錄下Tools.ini文件,在C51字段加入TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver")。</p><p> (4)、打開(kāi)proteus,畫(huà)出相應(yīng)電路(注意:pr
100、oteus中mouse的左右鍵與一般程序是相反的樣子)。在proteus的tools菜單中選中use remote debug monitor </p><p> (5)、進(jìn)入KEIL的project菜單option for target ''工程名''。在DEBUG選項(xiàng)中右欄上部的下拉菜選中 Proteus VSM Monitor-51 Driver。 在進(jìn)入seting,如果
101、同一臺(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> (6)、在keil中進(jìn)行debug,同時(shí)在proteus中查看直觀的結(jié)果(如流水燈等。</p><p> 右鍵Target1,選擇Option for Target ‘Target1’,在out
102、put中勾選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><p&
103、gt; 圖4-8 proteus設(shè)置界面</p><p> 5.電路的仿真與測(cè)試</p><p> 5.1 LED實(shí)驗(yàn)演示</p><p> 圖5-1 流水燈演示</p><p><b> 演示說(shuō)明:</b></p><p> 從上面的原理圖中可以看出,如果要讓第一個(gè)燈亮起來(lái)就是接在
104、P1.0口的LED1,只需要把P1.0口的電平變?yōu)榈碗娖骄湍軌驅(qū)崿F(xiàn);相反,如果把把P1.0口的電平變?yōu)楦唠娖?,則接在P1.0口的LED1燈就會(huì)熄滅;同理,如果想以同樣的方法點(diǎn)亮其他的LED燈,來(lái)實(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ì)一亮一暗地做流水燈了。由于人的視覺(jué)停留再加上程序的運(yùn)行時(shí)間
105、很短,所以在寫(xiě)程序的時(shí)候要調(diào)用延時(shí)函數(shù),延時(shí)一段時(shí)間,否則就看不到流水效果了。程序見(jiàn)(附錄)。</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高、返回到開(kāi)始、程序結(jié)束。
106、</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><p
107、><b> 演示說(shuō)明:</b></p><p> 下載程序后,屏幕上顯示如下字符,程序見(jiàn)(附錄)。</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 service
108、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> 演示說(shuō)明:</b></p><p> 6位數(shù)碼管從0到F循環(huán)顯示,8位數(shù)碼管也跟著流水顯示。</p><p><b> 5.4 鍵盤(pán)測(cè)試</b></p><p> 5.4.1 單鍵識(shí)別</p><p><b> 演示說(shuō)明:</b></
110、p><p> 第一次按鍵按下LED燈第一個(gè)開(kāi)始亮,第二次按鍵按下第二個(gè)LED燈亮,以此輪推。</p><p><b> 圖5-6 單鍵檢測(cè)</b></p><p> 5.4.2 矩陣鍵盤(pán)測(cè)試</p><p> 圖5-7 矩陣鍵盤(pán)測(cè)試</p><p><b> 演示說(shuō)明:</b
111、></p><p> 當(dāng)按下4X4矩陣鍵盤(pán)的按鍵時(shí),6位數(shù)碼管會(huì)顯示對(duì)應(yīng)的數(shù)字。</p><p> 圖5-8 鍵盤(pán)顯示程序流程</p><p> 5.5 AD轉(zhuǎn)換實(shí)驗(yàn)</p><p> 圖5-9 AD轉(zhuǎn)換演示</p><p><b> 演示說(shuō)明:</b></p>&l
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> 演示說(shuō)明:</b></p><p> 下載程序后可觀察到D10
113、發(fā)光二極管由暗變亮再熄滅過(guò)程。</p><p><b> 5.7 計(jì)時(shí)器</b></p><p> 圖5-12 計(jì)數(shù)器演示</p><p><b> 演示說(shuō)明:</b></p><p> 運(yùn)行仿真后,從零開(kāi)始計(jì)時(shí)到59自動(dòng)清零,從零開(kāi)始計(jì)時(shí)。</p><p> 5.
114、8 1602液晶顯示時(shí)鐘</p><p> 圖5-13 1602液晶顯示時(shí)鐘</p><p> 5.9 DS18B20溫度傳感器</p><p> 圖5-14 溫度傳感器</p><p><b> 演示說(shuō)明:</b></p><p> 程序功能:將DS18B20所采集到的溫度實(shí)時(shí)顯示到1
115、602上。</p><p> 5.10 交通燈設(shè)計(jì)</p><p> 圖5-15 交通燈演示</p><p><b> 演示說(shuō)明:</b></p><p> 程序功能:模擬交通燈顯示。</p><p> 其中,紅燈與綠燈顯示時(shí)間均為50s,中間的黃燈顯示時(shí)間為15s。</p>
116、<p> 綠燈用八位發(fā)光二極管流動(dòng)閃爍作代表;</p><p> 紅燈用八位發(fā)光二極管全亮作代表;</p><p> 黃燈用八位發(fā)光二極管全亮全滅閃爍作代表。</p><p> 剛開(kāi)始顯示的為綠燈。</p><p> 顯示順序:綠--黃--紅--黃--綠--黃--紅--………………</p><p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng)的開(kāi)發(fā)
- 虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng)的開(kāi)發(fā)畢業(yè)設(shè)計(jì)
- 虛擬單片機(jī)實(shí)驗(yàn)系統(tǒng)的開(kāi)發(fā)畢業(yè)設(shè)計(jì)
- 面向?qū)嶒?yàn)的單片機(jī)學(xué)習(xí)板開(kāi)發(fā)-畢業(yè)論文
- 單片機(jī)教學(xué)實(shí)驗(yàn)箱的開(kāi)發(fā)與研究-畢業(yè)論文
- 單片機(jī)教學(xué)實(shí)驗(yàn)箱的開(kāi)發(fā)與研究畢業(yè)論文
- 畢業(yè)論文范文——便捷式單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)裝置
- 單片機(jī)應(yīng)用系統(tǒng)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)畢業(yè)論文
- 單片機(jī)開(kāi)發(fā)的流量計(jì)畢業(yè)論文
- 單片機(jī)系統(tǒng)-畢業(yè)論文外文翻譯
- 畢業(yè)論文--單片機(jī)數(shù)據(jù)采集系統(tǒng)
- 畢業(yè)論文--基于單片機(jī)的打鈴系統(tǒng)
- 畢業(yè)論文--基于單片機(jī)的打鈴系統(tǒng)
- 關(guān)于單片機(jī)的畢業(yè)論文--基于單片機(jī)的時(shí)間溫度顯示系統(tǒng)
- 單片機(jī)畢業(yè)論文8
- 單片機(jī)秒表畢業(yè)論文
評(píng)論
0/150
提交評(píng)論