版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)設計(論文)</p><p> 題目:多種波形發(fā)生器的設計與實現(xiàn)</p><p> 系 別: 電子信息系 </p><p> 專 業(yè): 通信工程 </p><p><b> 2013年06月</b></p><p>
2、畢業(yè)設計(論文)任務書</p><p> 1.畢業(yè)設計(論文)題目: 多種波形發(fā)生器的設計與實現(xiàn) </p><p> 2.題目背景和意義:隨著信息技術的發(fā)展,現(xiàn)代電子系統(tǒng)對波形發(fā)生器提出了更高的要求。高頻率穩(wěn)定度、高分辨率及極短的頻率轉換時間等是現(xiàn)代波形發(fā)生器的標準。設計一款數字控制的多種波形發(fā)生器具有實際意義。
3、 </p><p> 3.設計(論文)的主要內容(理工科含技術指標): </p><p> (1)基本功能:產生方波,正弦波,三角波等多種波形 </p>
4、<p> (2)完成電路的方案設計 </p><p> (3)完成系統(tǒng)的硬件電路設計 </p><p> ?。?)完成系統(tǒng)的軟件程序設計
5、 </p><p> ?。?)完成系統(tǒng)的整體安裝、調試 </p><p> 輸出出波形:正弦波、方波、三角波
6、 </p><p> 頻率:1Hz-20kHz; </p><p> 頻率分辨率:0.05Hz; </p
7、><p> 幅度:-5V-+5V </p><p> 失真度:<15% </p><p>
8、 4.設計的基本要求及進度安排(含起始時間、設計地點): </p><p> (1)選題、收集資料、確定開發(fā)工具、理解題目、開題報告[3周,2013年03月05日前] </p><p> (2)需求分析(需求說明書)、開發(fā)計劃(項目計劃書)[2周,2013年03月15日前]
9、 </p><p> (3)規(guī)劃總體方框圖以及各部分電路方框圖[2周,2013年04月05日前] </p><p> (4)畫各部分電路圖[2周,2013年04月20日前] </p><p> (5)系統(tǒng)集成[2周,2013年05月05日前]
10、 </p><p> (6)系統(tǒng)測試[1周,2013年05月10日前] </p><p> (7)導師驗收[1周,2013年05月10日前
11、 </p><p> (8)完成論文[1周,2013年5月15日前] </p><p> 5.畢業(yè)設計(論文)的工作量要求 撰寫15000字論文 </p><p> ?、?實驗(時數)*或實習(
12、天數): 無特別要求 </p><p> ?、?圖紙(幅面和張數)*: 無特別要求 </p><p> ?、?其他要求: 查閱資料不少于10份
13、 </p><p> 指導教師簽名: 年 月 日</p><p> 學生簽名: 年 月 日</p><p> 系主任審批: 年 月 日</p><p
14、> 說明:1本表一式二份,一份由學生裝訂入冊,一份教師自留。</p><p> 2 帶*項可根據學科特點選填。</p><p> 多種波形發(fā)生器的設計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 基于單片機的波形發(fā)生器是一種常用的信號源,它廣泛地應用在電子技術實驗、自動控制系統(tǒng)和
15、其他科研領域。信號發(fā)生器是一種常用的信號源,廣泛地應用于電子電路、自動控制系統(tǒng)和教學實驗等領域。目前使用的信號發(fā)生器大部分是函數信號發(fā)生器,且特殊波形發(fā)生器的價格昂貴。利用單片機采用程序設計方法來產生波形,線路相對簡單,結構緊湊,價格低廉,頻率穩(wěn)定度高,抗干擾能力強等優(yōu)點,而且還能對波形進行細微的調整,改良波形,易于程序控制。本系統(tǒng)利用單片機AT89C52采用程序設計方法產生鋸齒波、三角波、正弦波、梯形波四種波形,再通過D/A轉換器DA
16、C0832將數字信號轉換成模擬信號,濾波放大,最終由示波器顯示出來,并通過獨立式鍵盤來控制四種波形的類型選擇。本次設計主要有單片機主控模塊、數模轉換模塊、獨立按鍵模塊和延時鎖存模塊,由Protues和Keil軟件來完成仿真。 </p><p> 關鍵詞:信號發(fā)生器;AT89C52單片機;DAC0832;獨立式鍵盤;Protues;Keil</p><p> A Variety of W
17、aveform Generator Design and Implementation</p><p><b> Abstract</b></p><p> The waveform generator based on SCM is a common signal source,it is widely used in electronic technology
18、 experiment,automatic control system and other research areas.The signal generator is a common signal source,it is widely used in electronic circuits,automatic control system, teaching experiments and other fields.The si
19、gnal generator is currently used mostly is function generator and special waveform generator is so expensive.Using SCM programming method used to generate waveforms,relatively </p><p> Key Words: Signal Gen
20、erator; AT89C52 Single Chip Microcomputer; DAC0832; Independent Type Keyboard; Protues; Keil目 錄</p><p><b> 1 緒論1</b></p><p><b> 1.1選題背景1</b></p><p>
21、1.2課題研究的意義1</p><p> 1.3主要完成的工作1</p><p> 2 設計方案與選擇3</p><p><b> 2.1設計方案3</b></p><p><b> 2.2方案選擇3</b></p><p> 3 硬件電路設計4<
22、/p><p> 3.1 主要芯片介紹4</p><p> 3.1.1 單片機AT89C524</p><p> 3.1.2 DAC0832數模轉換器7</p><p> 3.1.3 74HC138譯碼器和74HC573鎖存器8</p><p> 3.2 硬件原理圖9</p><p&g
23、t; 3.2.1 主控單片機部分9</p><p> 3.2.2 獨立按鍵控制部分10</p><p> 3.2.3 數模轉換部分11</p><p> 3.2.4 延時鎖存電路部分12</p><p> 3.3總的電路圖設計12</p><p> 4 軟件程序設計14</p>&
24、lt;p> 4.1流程圖的設計14</p><p> 4.1.1主流程圖的設計14</p><p> 4.1.2鋸齒波流程圖的設計15</p><p> 4.1.3三角波流程圖的設計15</p><p> 4.1.4梯形波流程圖的設計16</p><p> 4.1.5正弦波流程圖的設計17
25、</p><p> 4.2子程序的設計18</p><p> 4.2.1鋸齒波的產生18</p><p> 4.2.2三角波的產生19</p><p> 4.2.3梯形波的產生19</p><p> 4.2.4正弦波的產生20</p><p><b> 4.3主程
26、序21</b></p><p><b> 5 仿真軟件22</b></p><p> 5.1 PROTUES22</p><p> 5.2 KEIL C5124</p><p> 6 調試與仿真結果26</p><p> 6.1 KEIL C51的使用方法26&l
27、t;/p><p> 6.2 PROTUES的使用方法26</p><p> 6.3 波形發(fā)生器的仿真26</p><p><b> 7 結論30</b></p><p><b> 參考文獻31</b></p><p><b> 致謝32</b&
28、gt;</p><p> 畢業(yè)設計(論文)知識產權聲明33</p><p> 畢業(yè)設計(論文)獨創(chuàng)性聲明34</p><p><b> 1 緒論</b></p><p><b> 1.1選題背景</b></p><p> 單片機是一種集成的電路芯片,是采用超大規(guī)
29、模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。</p><p> 波形發(fā)生器是一種數據信號發(fā)生器,在調試硬件時,常常需要加入一些信號,以觀察電路工作是否正常。用一般的信號發(fā)生器,不但笨重,而且只發(fā)一些簡單的
30、波形,不能滿足需要。例如用戶要調試串口通信程序時,就要在計算機上寫好一段程序,再用線連接計算機和用戶實驗板,如果不正常,不知道是通訊線有問題還是程序有問題。</p><p> 基于單片機的簡易波形發(fā)生器是一種常用的信號源,它廣泛地應用在電子技術實驗、自動控制系統(tǒng)和其他科研領域。</p><p> 1.2課題研究的意義</p><p> 波形發(fā)生器是電子技術領域
31、中常見的信號源之一,在測量、自動控制、通信、廣播和熱處理等許多技術領域有著廣泛的應用[1]。波形發(fā)生器有產生三種或多種波形的波形發(fā)生器,使用的器件可以是分立器件,也可以采用集成電路。</p><p> 隨著信息技術的發(fā)展,現(xiàn)代電子系統(tǒng)對波形發(fā)生器提出了更高的要求。高頻率穩(wěn)定度、高分辨率及極短的頻率轉換時間等是現(xiàn)代波形發(fā)生器的標準。設計一款數字控制的多種波形發(fā)生器具有實際意義。</p><p&
32、gt; 本課題采用的是以AT89C52為核心,結合DAC0808實現(xiàn)程控一般波形的低頻信號輸出,可產生梯形波、三角波、正弦波和鋸齒波等多種波形,波形的周期可用獨立按鍵改變,具有線路簡單、結構緊湊、性能優(yōu)越等特點,并且它具有功能豐富穩(wěn)定、價格便宜、操作方便特點,具有一定的推廣作用。</p><p> 1.3主要完成的工作</p><p> 本系統(tǒng)利用單片機AT89C52采用程序設計方法
33、產生鋸齒波、三角波、正弦波、梯形波四種波形,再通過D/A轉換器DAC0832將數字信號轉換成模擬信號,</p><p> 濾波放大,最終由示波器顯示出來,并通過按鍵來控制四種波形的類型選擇。</p><p><b> 2 設計方案與選擇</b></p><p><b> 2.1設計方案</b></p>
34、<p> 方案一:555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路經之一,不用依靠單片機[2]。555定時器構成多諧振蕩器,利用充放電時間差控制電路,通過電位器穩(wěn)定頻率,然后利用積分電路得到方波、三角波、正弦波等多種波形。</p><p> 方案二:采用單片機(AT89C52)和數模轉換芯片(DAC0832)實現(xiàn)波形的產生,波形的產生由按鍵控制,經過D/A和運放器輸出波形。</p>
35、;<p> 方案三:采用FPGA和DAC,使用直接數字頻率合成技術可合成任意波形。</p><p> 方案四:使用傳統(tǒng)的鎖相頻率合成方法。通過芯片IC145152,壓控振蕩器搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利用過零比較器轉換成方波,積分電路轉換成波形[3]。</p><p><b> 2.2方案選擇</b></p><
36、p> 方案一這種電路存在波形質量差,控制難,可調范圍小,電路復雜和體積大等缺點;方案三這種方式成本較高,程序復雜度高,不容易實現(xiàn);方案四電路復雜,干擾因素多,不易實現(xiàn);方案二此方案通過編程簡化了外部電路,原理簡單,容易實現(xiàn)。綜合考慮,采用方案二。</p><p> 軟硬件結合法軟硬件結合的波形發(fā)生器設計方法同時兼具軟硬件設計的優(yōu)勢:既具有純硬件設計的快速、高性能,同時又具有軟件控制的靈活性、智能性。如以
37、單片機和單片集成函數發(fā)生器為核心,輔以鍵盤控制、液晶顯示等電路,設計出智能型函數波形發(fā)生器,采用軟硬件結合的方法可以實現(xiàn)功能較全、性能更優(yōu)的波形發(fā)生器,同時還可以擴展波形發(fā)生器的功能,比如通過軟件編程控制實現(xiàn)波形的存儲、運算、打印等功能,采用USB接口設計。使波形發(fā)生器具有遠程通信功能等[4]。目前,實驗、科研和工業(yè)生產中使用的信號源大多采用此方法來實現(xiàn)。</p><p><b> 3 硬件電路設計&
38、lt;/b></p><p> 本方案是基于AT89C52與DAC0832的單緩沖方式(單緩沖方式是控制輸入鎖存器和DAC寄存器同時接收資料,或者只用輸入鎖存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情形)接口電路來設計[5]。單緩沖式接口電路具有過程簡單,容易實現(xiàn)。由于本設計運用匯編的編程語言,導致用獨立式鍵盤來實現(xiàn)簡單控制。本方案所產生的信號頻率穩(wěn)定性高,精確度
39、高。而且在硬件方面它所選的元器件比較常見。其主要流程圖和模塊如圖3.1所示。</p><p> 圖3.1 硬件原理框圖</p><p> 3.1 主要芯片介紹</p><p> 3.1.1 單片機AT89C52</p><p> AT89C52是51系列單片機的一個型號。AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8
40、k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統(tǒng)控制應用場合。</p><p> AT89C52有40個引腳,32個外部雙向輸入/輸出(I\O)端口,同時內含2個外中斷口,3
41、個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本[6]。</p><p> AT89C52為8位通用微處理器,采用工業(yè)標準的C51內核,在內部功能及管腳排布上與通用的8XC52相同,其主要用于會聚調整時的功能控制。
42、功能包括對會聚主IC 內部寄存器、數據RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。AT89C52單片機的管腳圖如圖3.2所示。</p><p> 圖3.2 AT89C52管腳圖</p><p> 主要性能參數[7]:</p><p> a. 兼容MCS51指令系統(tǒng) </p>&
43、lt;p> b. 8k可反復擦寫(>1000)次Flash ROM </p><p> c. 32個雙向I/O口 </p><p> d. 256x8bit內部RAM </p><p> e. 3個16位可編程定時/計數器中斷 </p><p> f. 2個串行中斷 </p><p> g. 可
44、編程UART串行通道 </p><p> h. 2個外部中斷源 </p><p> i. 共6個中斷源 </p><p> j. 2個讀寫中斷口線 </p><p> k. 低功耗空閑和掉電模式</p><p> l. 軟件設置睡眠和喚醒功能 </p><p> 其各管腳功能為[8]
45、:</p><p> P0口:P0口是一組8位漏極開路型雙向I/O 口,也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash 編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。&
46、lt;/p><p> P1口:P1是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51 不同之處是 ,P1.0 和P1.1還可分別作為定時/計數器2 的外部計數輸入P1.0/T2和輸入。 &l
47、t;/p><p> P2口:P2 是一個帶有內部上拉電阻的8 位雙向I/O 口,P2的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數據存儲器時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器(如執(zhí)行
48、MOVX @RI 指令)時,P2口輸出P2鎖存器的內容。Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。 </p><p> P3口:P3口是一組帶有內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流個TTL邏輯)4門電路。對P3口寫入“1”時,它們被內部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要
49、的用途是它的第二功能。P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。 </p><p> RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。</p><p> ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,
50、因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOV指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE 禁止位無效。 </p><p> PSEN
51、:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。 </p><p> EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存E
52、A端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內部程序存儲器中的指令。Flash 存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。</p><p> XTAL1:振蕩器反相放大器的及內部時鐘發(fā)生器的輸入端。 </p><p> XTAL2:振蕩器反相放大器的輸出端。</p><p> 3.1.2 DA
53、C0832數模轉換器</p><p> DAC0832是采用CMOS工藝制成的單片直流輸出型8位數/模轉換器。它由倒T型R-2R電阻網絡、模擬開關、運算放大器和參考電壓VREF四大部分組成。與微處理器完全兼容。這個D/A芯片以其價格低廉、接口簡單、轉換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成。 </p>
54、<p> DAC0832是采樣頻率為八位的D/A轉換芯片,集成電路內有兩級輸入寄存器,使DAC0832芯片具備雙緩沖、單緩沖和直通三種輸入方式,以便適于各種電路的需要(如要求多路D/A異步輸入、同步轉換等)。所以這個芯片的應用很廣泛。 D/A轉換結果采用電流形式輸出。若需要相應的模擬電壓信號,可通過一個高輸入阻抗的線性運算放大器實現(xiàn)。運放的反饋電阻可通過RFB端引用片內固有電阻,也可外接[9]。DAC0832邏輯輸入滿足TT
55、L電平,可直接與TTL電路或微機電路連接。DAC0832引腳圖如圖3.3所示。</p><p> 圖3.3 DAC0832引腳圖</p><p><b> 其各引腳功能如下:</b></p><p> a.(chip selected芯片選擇,片選):片選信號,低電平有效。</p><p> b. 輸入寄存器的寫
56、選通信號。</p><p> c. GND:第3腳的GND為模擬信號地,第10腳的GND為數字信號地。</p><p> d. DI0~DI7(DI表示Digital Input,數字輸入):8位數據輸入端,TTL電平。</p><p> e. VREF(Reference voltage input 參考電壓輸入):基準電壓輸入引腳,要求外接精密電壓源(-1
57、0~10V)。</p><p> f. RFB(FeedBack Resistor反饋電阻):反饋信號輸入引腳,反饋電阻集成在芯片內部。</p><p> g. IOUT1、IOUT2:電流輸出引腳,電流 IOUT1和IOUT2的和為常數,當輸入全為1時IOUT1最大,當輸入為全0 時, IOUT2最大。IOUT1和IOUT2隨 DAC 寄存器的內容線性變化。單極性輸出時, IOUT2
58、通常接地。 </p><p> h. 數據傳送信號,低電平有效。</p><p> i. DAC寄存器寫選通信號。</p><p> j. ILE(input latch enable輸入鎖存使能):數據允許鎖存信號,高電平有效。</p><p> k. VCC:電源輸入引腳(+
59、5V~+15V)。</p><p> 3.1.3 74HC138譯碼器和74HC573鎖存器</p><p> 74HC138 作用原理于高性能的存貯譯碼或要求傳輸延遲時間短的數據傳輸系統(tǒng),在高性能存貯器系統(tǒng)中,用這種譯碼器可以提高譯碼系統(tǒng)的效率。</p><p> 74HC138譯碼器可接受3位二進制加權地址輸入(A0,A1和A2),并當使能時,提供8個互斥
60、的低有效輸出(Y0至Y7)。74HC138特有3個使能輸入端:兩個低有效(E1和E2)和一個高有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高[10]。利用這種復合使能特性,僅需4片74HC138芯片和1個反相器,即可輕松實現(xiàn)并行擴展,組合成為一個1-32(5線到32線)譯碼器。任選一個低有效使能輸入端作為數據輸入,而把其余的使能輸入端作為選通端,則74HC138亦可充當一個8輸出多路分配器,未使用的使能
61、輸入端必須保持綁定在各自合適的高有效或低有效狀態(tài)。74HC138的引腳圖如圖3.4所示。</p><p> 圖3.4 74HC138引腳圖</p><p> 74HC573數據鎖存器。主要用于數碼管、按鍵等等的控制。74HC573的八個鎖存器都是透明的D型鎖存器,當使能(G)為高時,Q輸出將隨數據(D)輸入而變。當使能為低時,輸出將鎖存在已建立的數據電平上。輸出控制不影響鎖存器的內部工
62、作,即老數據可以保持,甚至當輸出被關閉時,新的數據也可以置入。這種電路可以驅動大電容或低阻抗負載,可以直接與系統(tǒng)總線接口并驅動總線,而不需要外接口。74HC573的引腳圖如圖3.5所示。 </p><p> 圖3.5 74HC573引腳圖</p><p><b> 3.2 硬件原理圖</b></p><p> 3.2.1 主控單片機部分&
63、lt;/p><p> 中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設置的。當中央處理器CPU正在處理某件事的時候外界發(fā)生了緊急事件,要求CPU暫停當前的工作,轉而去處理這個緊急事件[11]。在波形發(fā)生器中,只用到片內定時器/計數器溢出時產生的中斷請求,即是在AT89C52輸出一個波形采樣點信號后,接著啟動定時器,在定時器未產生中斷之前,AT89C52等待,直到定時器計時結束,產生中斷請求,AT89C52響應中斷
64、,接著輸出下一個采樣點信號,如此循環(huán)產生所需要的信號波形。</p><p> 本此課設中,AT89C52單片機的P1口接獨立式按鍵電路,P2口部分接譯碼器,P0口接鎖存器。主控電路圖如圖3.6所示。</p><p><b> 圖3.6 主控電路</b></p><p> 3.2.2 獨立按鍵控制部分</p><p>
65、; 獨立式鍵盤中,各按鍵相互獨立,每個按鍵各接一根輸入線,每根輸入線上的按鍵工作狀態(tài)不會影響其它輸入線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)就可以很容易的判斷按鍵是否被按下了。獨立式鍵盤電路配置靈活,軟件結構簡單。但每個按鍵需占用一根輸入線,在按鍵數量較多時,輸入口浪費大,電路結構顯得很繁雜,故此種鍵盤適用于按鍵較少或操作速度較高的場合。如圖3.7所示。</p><p> 圖3.7 獨立式鍵盤電路圖&l
66、t;/p><p> 按鍵與AT89C52的P1口連接。K1是監(jiān)測是否輸出鋸齒波按鍵;K2是監(jiān)測是否輸出三角波按鍵;K3監(jiān)測是否輸出梯形波按鍵;K4監(jiān)測是否輸出正弦波按鍵;K5是調頻按鍵。</p><p> 3.2.3 數模轉換部分</p><p> 由于單片機產生的是數字信號,要想得到所需要的波形,就要把數字信號轉換成模擬信號,所以該文選用價格低廉、接口簡單、轉換
67、控制容易并具有8位分辨率的數模轉換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉換器以及輸入控制電路四部分組成。但實際上,DAC0832輸出的電量也不是真正能連續(xù)可調,而是以其絕對分辨率為單位增減,是準模擬量的輸出[12]。</p><p> 根據對DAC0832的數據鎖存器和DAC寄存器的不同的控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本設
68、計選用但緩沖方式。由于AT89C52所產生的是數字信號,所以通過DAC0832把數字信號轉換成模擬信號。DAC0832輸出的模擬量是電流,為了轉換成電壓,所以在它后面接入一個運放器,如圖3.8所示。</p><p> 圖3.8 數模轉換電路圖</p><p> 3.2.4 延時鎖存電路部分</p><p> 74HC138譯碼器和74HC573鎖存器是該系統(tǒng)的
69、驅動電路必不可少的一部分,控制波形輸出和鎖存按鍵狀態(tài)。電路如圖3.9所示。</p><p> 圖3.9 74HC138和74HC573的工作電路</p><p> 3.3總的電路圖設計</p><p> 多種波形發(fā)生器的總的電路圖如圖3.10所示。該系統(tǒng)由按鍵控制各種波形的產生及波形頻率的變化。</p><p> 圖3.10 總電路圖
70、</p><p><b> 4 軟件程序設計</b></p><p><b> 4.1流程圖的設計</b></p><p> 4.1.1主流程圖的設計</p><p> 主程序的流程圖如圖4.1所示,開始時判斷是否調頻,然后判斷是否調用鋸齒波程序,然后判斷是否調用三角波程序,然后判斷是否調用
71、梯形波程序,然后判斷是否調用正弦波程序,最后在循環(huán)回到判斷是否調頻。</p><p> 圖4.1 軟件主程序流程圖</p><p> 4.1.2鋸齒波流程圖的設計</p><p> 鋸齒波的實現(xiàn)過程是首先定義一個初值然后進行加法操作,加的步數的多少則根據要求的頻率來進行。然后加到某個數之后就再重新設置為初值,再重復執(zhí)行剛剛的操作,如此循環(huán)下去。鋸齒波程序的流程
72、圖如圖4.2所示。</p><p> 圖4.2 鋸齒波程序流程圖</p><p> 4.1.3三角波流程圖的設計</p><p> 三角波的實現(xiàn)是設置一個初值,當加到某個值的時候,執(zhí)行減一操作,減到初值時,再加一。三角波程序的流程圖如圖4.3所示。</p><p> 圖4.3 三角波程序流程圖</p><p>
73、 4.1.4梯形波流程圖的設計</p><p> 梯形波的實現(xiàn)是設置一個初值,然后進行加一,當加到某個數時延時,之后減一,減到初值時在返回到之前的操作,繼續(xù)加一、延時、減一。梯形波程序的流程圖如圖4.4所示。</p><p> 圖4.4 梯形波程序流程圖</p><p> 4.1.5正弦波流程圖的設計</p><p> 正弦波的實現(xiàn)
74、比較麻煩,需要查表,每查一次表,輸出一個數值,之后查下一個數值繼續(xù)輸出,當一個波形的256個數值全部輸出之后,從頭開始繼續(xù)輸出。流程圖如圖4.5所示。</p><p> 圖4.5 正弦波程序流程圖</p><p><b> 4.2子程序的設計</b></p><p> 4.2.1鋸齒波的產生</p><p> 鋸
75、齒波的實現(xiàn)過程是首先定義一個初值然后進行加法操作,加的步數的多少則根據要求的頻率來進行。然后加到某個數之后就再重新設置為初值,再重復執(zhí)行剛剛的操作,如此循環(huán)下去。子程序如下:</p><p> ST : MOV A,#00H ;設置初值</p><p> LOOP:MOVX @DPTR,A ; 把數據送到端口轉換</p><p> ADD A,R6;通過步長改
76、變數據,上升波形</p><p> CJNE A,#00H,LOOP ; A值是否到最高點</p><p> DJNZ R5,LOOP</p><p><b> SJMP LOP </b></p><p> 4.2.2三角波的產生</p><p> 三角波的實現(xiàn)是設置一個初值,當加到某個
77、值的時候,執(zhí)行減一操作,減到初值時,再加一。子程序如下:</p><p> TRIANGLE:MOV A,#00H ;設置初值</p><p> LOOP3:MOVX @DPTR,A ;把數據送到端口轉換</p><p> ADD A,R6 ;通過步長改變數據上升波形</p><p> CJNE A,#00H,LOOP3 ; A值是否
78、到最高點</p><p> DEC A ;減少步長改變數據下降波形</p><p> LOOP2:MOVX @DPTR,A ;把數據送到端口轉換</p><p> DEC A ;減少步長改變數據下降波形</p><p> CJNE A,#00H,LOOP2 ;A值是否到最低點 </p><p> DJN
79、Z R5,LOOP3 ;波形周期</p><p> SJMP LOP ;返回檢測開關</p><p> 4.2.3梯形波的產生</p><p> 梯形波的實現(xiàn)是設置一個初值,然后進行加一,當加到某個數時延時,之后減一,減到初值時在返回到之前的操作,繼續(xù)加一、延時、減一[13]。梯形波產生的子程序如下:</p><p> TXING:M
80、OV A,#00H ;設置初值</p><p> LOOP4:MOVX @DPTR,A ;把數據送到端口轉換</p><p> ADD A,R6 ;增加步長改變數據上升波形</p><p> CJNE A,#00H,LOOP4 ;A值是否到最高點</p><p> SUBB A,R6 ;下降波形做準備</p><p
81、><b> DEC A</b></p><p> MOV R7,0EEH ;循環(huán)次數</p><p> LOOP2:MOVX @DPTR,A ;進行延時</p><p> DJNZ R7,LOP2</p><p> LOOP1:MOVX @DPTR,A ;把數據送到端口轉換</p><
82、p><b> SUBB A,R6</b></p><p><b> DEC A</b></p><p> CJNE A,#00H,LOOP1 ;是否到最低點</p><p> MOV R7,0EEH ;循環(huán)次數</p><p> LOOP1:MOVX @DPTR,A ;把數據送到端口
83、轉換</p><p> DJNZ R7,LOP1 ;進行延時</p><p> SJMP LOP ;返回檢測開關</p><p> 4.2.4正弦波的產生</p><p> 正弦波的實現(xiàn)比較麻煩,需要查表,每查一次表,輸出一個數值,之后查下一個數值繼續(xù)輸出,當一個波形的256個數值全部輸出之后,從頭開始繼續(xù)輸出。正弦波產生的子程序如下
84、:</p><p> SINE: MOV A,#00H ;設置初值</p><p> LOOP7: MOV R7,A ;保存當前的數據</p><p> MOV DPTR,#SIN ;讀取表的地址</p><p> MOVC A,@A+DPTR ;讀取表中的數據</p><p> MOV DPTR,#7FFH
85、 ;D/A0832的端口地址</p><p> MOVX @DPTR,A ;進行數據轉換</p><p> MOV A,R7 ;恢復當前數據</p><p> INC A ;為讀取表的下一個值做準備</p><p> CJNE A,#00H,LOOP7 ;是否讀完表的數據</p><p> SJMP STAR
86、T ;返回檢測開關</p><p> FM: MOV R6,#04H ;改變調頻/調幅</p><p> MOV R5,#02H </p><p> SJMP START ;返回檢測開關</p><p> ;--------以下是通過正弦的值所建立的一個表</p><p> SIN: DB 80H,83H
87、,86H,89H,8DH,90H,93H,96H</p><p> DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH</p><p> DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H</p><p> DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H<
88、;/p><p> DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H</p><p> DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H</p><p> DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH</p><p> DB
89、 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH</p><p> DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH</p><p> DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H</p><p> DB 0F5H,0F4H,0F2H,0F1H,0
90、EFH, 0EEH,0ECH,0EAH</p><p> DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH</p><p> DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H</p><p> DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H<
91、;/p><p> DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H</p><p> DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H</p><p> DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H</p><p> DB 66H,
92、 63H, 60H, 5DH, 5AH, 57H, 55H, 51H</p><p> DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH</p><p> DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H</p><p> DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18
93、H, 16H</p><p> DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH</p><p> DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H</p><p> DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H</p><p>
94、 DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H</p><p> DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H</p><p> DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H</p><p> DB 16H, 18H, 1AH, 1CH, 1EH,
95、 20H, 22H, 25H</p><p> DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H</p><p> DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH</p><p> DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H</p>&l
96、t;p> DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H</p><p><b> 4.3主程序</b></p><p><b> 主程序的代碼如下:</b></p><p> ORG 0000H;程序開始</p><p> MOV SP,#60H
97、 ;設置堆棧</p><p> MOV DPTR,#7FFH ;0832的地址</p><p> LOP: MOV P1,#0FFH</p><p><b> MOV A,P1</b></p><p> JNB P1.4,FM ;是否需要調頻</p><p> MOV R6,#01H ;
98、設置步長</p><p> MOV R5,#01H </p><p> START:JNB P1.0,ST ;輸出鋸齒波程序</p><p> JNB P1.1,TRIANGLE ;輸出三角波程序</p><p> JNB P1.2,TXING ;輸出梯形波程序</p><p> JNB P1.3,SIN
99、E ;輸出正弦波程序</p><p> SJMP LOP ;循環(huán)檢測</p><p><b> 5 仿真軟件</b></p><p> 本次課程設計中,我們用到了Protues7.8對其電路圖進行繪制和仿真,還用到了Keil C51對程序進行譯碼和編譯。</p><p> 5.1 PROTUES</p>
100、;<p> PROTEUS軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。PROTUES是世界上著名的EDA工具(仿真軟件),從原理
101、圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型[14]。在編譯方面,它也支持IAR、KEI
102、L和MPLAB等多種編譯器。</p><p> 可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,PROTUES建立了完備的電子設計開發(fā)環(huán)境。 </p><p> 豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件;智能的器件搜索:通過模糊搜索可
103、以快速定位所需要的器件;智能化的連線功能:自動連線功能使連接導線簡單快捷,大大縮短繪圖時間;支持總線結構:使用總線器件和總線布線使電路設計簡明清晰;可輸出高質量圖紙:通過個性化設置,可以生成印刷質量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。 </p><p> PROSPICE混合仿真:基于工業(yè)標準SPICE3F5,實現(xiàn)數字/模擬電路的混合仿真;超過27000個仿真器件:可以通過內
104、部原型或使用廠家的SPICE文件自行設計仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導入第三方發(fā)布的仿真器件;多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數信號、單頻FM、數字時鐘和碼流,還支持文件形式的信號</p><p> 輸入;豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發(fā)生器、直流電壓/電流表、交流電壓/電流表、數字圖案發(fā)生器、
105、頻率</p><p> 計/計數器、邏輯探頭、虛擬終端、SPI調試器、I2C調試器等。生動的仿真顯示:用色點顯示引腳的數字電平,導線以不同顏色表示其對地電壓大小,結合動態(tài)器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動;高級圖形仿真功能:基于圖標的分析可以精確分析電路的多項指標,包括工作點、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進行一致性分析。</p>&l
106、t;p> 支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級還在繼續(xù)增加,如即將支持CORTEX、DSP處理器;支持通用外設模型:如字符LCD模塊、圖形LCD模塊、LED點陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進/伺服電機、RS232虛擬終端、電子溫度計等等,其COM
107、PIM(COM口物理接口模型)還可以使仿真電路通過PC機串口和外部電路實現(xiàn)雙向異步串行通信;實時仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;編譯及調試:支持單片機匯編語言的編輯/編譯/源碼級仿真,內帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、KEIL和Hitech)結合,進行高級語言的源碼級仿真
108、和調試。</p><p> 原理圖到PCB的快速通道:原理圖設計完成后,一鍵便可進入ARES的PCB設計環(huán)境,實現(xiàn)從概念到產品的完整設計;先進的自動布局/布線功能:支持器件的自動/人工布局;支持無自動布線或人工布線;支持引腳交換/門交換功能使PCB設計更為合理;完整的PCB設計功能:最多可設計16個銅箔層,2個絲印層,4個機械層(含板邊),靈活的布線策略供用戶設置,自動設計規(guī)則檢查,3D 可視化預覽;多種輸出格
109、式的支持:可以輸出多種格式文件,包括Gerber文件的導入或導出,便利與其它PCB設計工具的互轉(如PROTEL)和PCB板的設計和加工。PROTUES可提供的仿真元器件資源:仿真數字和模擬、交流和直流等數千種元器件,有30多個元件庫。PROTUES可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調試器、I2C調試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調用。除了現(xiàn)實存在
110、的儀器外,PROTUES還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數指標,例如</p><p> 它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應。這在相當程度上替代了傳統(tǒng)的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調試、運行結果等。 </p><p>
111、課程設計、畢業(yè)設計是學生走向就業(yè)的重要實踐環(huán)節(jié)。由于PROTUES提供了實驗室無法相比的大量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數量、質量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學生實踐精神、創(chuàng)造精神的平臺。</p><p> 隨著科技的發(fā)展,計算機仿真技術已成為許多設計部門重要的前期設計手段。它具有設計靈活,結果、過程的統(tǒng)一的特點??墒乖O計時間大為縮短、耗資大為減少,也可降低工程制造的風
112、險。相信在單片機開發(fā)應用中PROTUES也能獲得愈來愈廣泛的應用。 </p><p> 使用PROTUES 軟件進行單片機系統(tǒng)仿真設計,是虛擬仿真技術和計算機多媒體技術相結合的綜合運用,有利于培養(yǎng)學生的電路設計能力及仿真軟件的操作能力;在單片機課程設計和全國大學生電子設計競賽中,我們使用 PROTUES 開發(fā)環(huán)境對學生進行培訓,在不需要硬件投入的條件下,學生普遍反映,對單片機的學習比單純學習書本知識更容易接受,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 波形發(fā)生器畢業(yè)設計
- 波形發(fā)生器畢業(yè)設計論文
- 數字波形發(fā)生器畢業(yè)設計
- 信號波形發(fā)生器的設計畢業(yè)設計
- 畢業(yè)設計--超低頻波形發(fā)生器的設計
- 基于fpga的任意波形發(fā)生器的設計與實現(xiàn)-畢業(yè)設計論文
- 數字化波形發(fā)生器的設計畢業(yè)設計
- 模電多種波形發(fā)生器
- 函數-任意波形發(fā)生器設計與實現(xiàn).pdf
- 基于單片機的波形發(fā)生器的設計畢業(yè)設計
- fpga任意波形發(fā)生器設計與實現(xiàn)(初稿)
- 基于單片機的波形發(fā)生器的設計畢業(yè)設計
- 基于單片機的波形發(fā)生器的設計畢業(yè)設計
- fpga實現(xiàn)的任意波形發(fā)生器的設計
- DDS任意波形發(fā)生器的設計與實現(xiàn).pdf
- 《電子技術》課程設計-多種波形發(fā)生器的設計論文
- 數字波形發(fā)生器的設計
- 任意波形發(fā)生器設計及實現(xiàn).pdf
- 課程設計說明書《多種波形發(fā)生器》
- 寬帶任意波形發(fā)生器平臺的設計與實現(xiàn).pdf
評論
0/150
提交評論