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