基于proteus仿真的信號發(fā)生器.doc
-
資源ID:6643174
資源大?。?span id="yiakeym" class="font-tahoma">1,019.50KB
全文頁數(shù):25頁
- 資源格式: DOC
下載積分:9.9積分
快捷下載
會員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。
|
基于proteus仿真的信號發(fā)生器.doc
摘 要 數(shù)字信號發(fā)生器是在電子設(shè)計(jì) 自動(dòng)控制系統(tǒng)和儀表測量校正調(diào)試中應(yīng)用很多 的一種信號發(fā)生裝置和信號源 本文采用 AT89C51 單片機(jī)構(gòu)成的數(shù)字信號發(fā)生器 通過波形變換 可以產(chǎn)生方波 三角波 鋸齒波等多種波形 波形的周期可通過程 序來改變 并可以根據(jù)需要選擇單極性輸出或者雙極性輸出 具有線路簡單 性能 優(yōu)越 結(jié)構(gòu)緊湊等特點(diǎn) 關(guān)鍵詞 AT89C51 數(shù)字信號發(fā)生器 波形變換 ABSTRACT Digital signal generator in the electronic design Automatic control system and instrumentation correction in debugging application a lot of signal generator and signal source This paper uses the AT89C51chip microprocessor digital signal generator Through waveform conversion can produce square wave triangle wave sawtooth wave and other wave Waveform cycle can be programmed to change And can be based on the need to select the output unipolar or bipolar output With simple lines superior performance compact structure Key words AT89C51 Digital signal generator Wave transformation 目 錄 緒論 1 1 單片機(jī)的概述及信號發(fā)生器 2 1 1 單片機(jī)的概述 2 1 2 信號發(fā)生器的分類 2 1 3 研究內(nèi)容 2 1 4 PROTUES 軟件的介紹 2 2 實(shí)驗(yàn)設(shè)計(jì)原理及芯片簡介 4 2 1 實(shí)驗(yàn)設(shè)計(jì)原理 4 2 2 AT89C51 的簡介 4 2 3 DAC0832 芯片的簡介 6 2 4 DAC0832 的工作方式 8 3 實(shí)驗(yàn)硬件實(shí)現(xiàn)及單元電路的設(shè)計(jì) 10 3 1 硬件設(shè)計(jì)流程框圖 10 3 2 信號發(fā)生器的外圍結(jié)構(gòu) 10 3 3 單片機(jī)最小系統(tǒng)設(shè)計(jì) 11 3 4 波形產(chǎn)生模塊設(shè)計(jì) 11 4 實(shí)驗(yàn)仿真結(jié)果及調(diào)試 17 結(jié) 論 20 參考文獻(xiàn) 21 致 謝 22 緒論 電子測量及其他部門對各類信號發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展 促 使信號發(fā)生器種類增多 性能提高 尤其隨著 70 年代微處理器的出現(xiàn) 更促使信號 發(fā)生器向著自動(dòng)化 智能化方向發(fā)展 現(xiàn)在 許多信號發(fā)生器帶有微處理器 因而 具備了自校 自檢 自動(dòng)故障診斷和自動(dòng)波形形成和修正等功能 可以和控制計(jì)算 機(jī)及其他測量儀器一起方便的構(gòu)成自動(dòng)測試系統(tǒng) 當(dāng)前信號發(fā)生器總的趨勢是想著 款頻率覆蓋 低功耗 高頻率精度 多功能 自動(dòng)化和智能化方向發(fā)展 信號發(fā)生器廣泛應(yīng)用于電子工程 通信工程 自動(dòng)控制 遙測控制 測量儀器 儀表和計(jì)算機(jī)等技術(shù)領(lǐng)域 波形信號發(fā)生器又稱為函數(shù)信號發(fā)生器 作為試驗(yàn)用信 號源 是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一 目前 市場 上常見的波形信號發(fā)生器多為純硬件搭接而成 且波形種類有限 多為鋸齒 正弦 方波 三角等波形 信號發(fā)生器作為一種常見的應(yīng)用電子儀器設(shè)備 傳統(tǒng)的可以完 全由硬件電路搭接而成 如采用 555 振蕩電路發(fā)生正弦波 三角波和方波的電路便 是可取的路徑之一 不用依靠單片機(jī) 但是這種電路存在波形質(zhì)量差 控制難 可 調(diào)范圍小 電路復(fù)雜和體積大的缺點(diǎn) 在科學(xué)研究和生產(chǎn)實(shí)踐中 如工業(yè)過程控制 生物醫(yī)學(xué) 地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號源 而由硬件電路構(gòu)成的 低頻信號其性能難以令人滿意 而且由于低頻信號源所需的 RC 很大 大電阻 大 電容在制作上有些困難 參數(shù)的精度亦難以保證 體積大 漏電 損耗顯著更是其 致命的弱點(diǎn) 一旦工作需求功能有增加 則電路復(fù)雜程度會大大增加 本文采用 AT89C51 單片機(jī)構(gòu)成的波形發(fā)生器 可產(chǎn)生三角波 方波 鋸齒波和 正弦波等多種波形 波形周期可用程序改變 并可根據(jù)需要選擇單極性輸出或者雙 極性輸出 具有線路簡單 結(jié)構(gòu)緊湊 性能優(yōu)越等特點(diǎn) 1 單片機(jī)的概述及信號發(fā)生器 1 1 單片機(jī)的概述 隨著大規(guī)模集成電路技術(shù)的發(fā)展 中央處理 CPU 隨機(jī)存取存儲器 RAM 只讀存儲器 I O 接口 定時(shí)器 計(jì)數(shù)器和串行通信接口 以及其他一些計(jì)算機(jī)外 圍電路等均可集成在一塊芯片上構(gòu)成單片微型計(jì)算機(jī) 簡稱為單片機(jī) 單片機(jī)具有 體積小 成本低 性能穩(wěn)定 使用壽命長等特點(diǎn) 其中最明顯的優(yōu)勢就是可以嵌入 到各種儀器 設(shè)備中 這是其他計(jì)算機(jī)和網(wǎng)絡(luò)都無法做到的 1 2 信號發(fā)生器的分類 信號發(fā)生器應(yīng)用廣泛 種類繁多 性能各異 分類也不盡一致 按照頻率范圍 分類可以為 超低頻信號發(fā)生器 低頻信號發(fā)生器 視頻信號發(fā)生器 高頻波形發(fā) 生器 甚高頻波形發(fā)生器和超高頻信號發(fā)生器 按照輸出波形分類可以分為 正弦 信號發(fā)生器和非正弦信號發(fā)生器 非正弦信號發(fā)生器又包括 脈沖信號發(fā)生器 函 數(shù)信號發(fā)生器 掃頻信號發(fā)生器 數(shù)字序列波形發(fā)生器 圖形信號發(fā)生器 噪聲信 號發(fā)生器等 按照信號發(fā)生器性能指標(biāo)可以分為一般信號發(fā)生器和標(biāo)準(zhǔn)信號發(fā)生器 前者對輸出信號的頻率 幅度的準(zhǔn)確度和穩(wěn)定度以及波形失真等要求不高的一類信 號發(fā)生器 后者是指其輸出信號的頻率 幅度 調(diào)制系數(shù)等在一定范圍內(nèi)連續(xù)可調(diào) 并且讀數(shù)準(zhǔn)確 穩(wěn)定 屏蔽良好的中 高檔信號發(fā)生器 1 3 研究內(nèi)容 本文是做基于 51 單片機(jī)的信號發(fā)生器的設(shè)計(jì) 將采用編程的方法來實(shí)現(xiàn)三角波 鋸齒波 方波 正弦波的發(fā)生 根據(jù)設(shè)計(jì)的要求 對各種波形的頻率和幅度進(jìn)行程 序的編寫 并將所寫程序裝入單片機(jī)的程序存儲器中 在程序運(yùn)行中 當(dāng)接收到來 自外界的命令 需要輸出某種波形時(shí)再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序 經(jīng)電路的數(shù) 模轉(zhuǎn)換器和運(yùn)算放大處理后 從信號發(fā)生器的輸出端口輸出 1 4 Protues 軟件的介紹 Protues 是目前最好的模擬單片機(jī)外圍器件的工具 它可以仿真 51 系列 AVR PIC 等常用的 MCU 及其外圍電路 如 LCD RAM ROM 鍵盤 馬達(dá) LED AD DA 部分 SPI 器件 部分 IIC 器件 本文章基于 ProtuesPR06 7SP3 和 KEIL uVision3 軟件 當(dāng)然軟件仿真精度有限 而且不可能所有的器件都找得到 相應(yīng)的仿真模型 用開發(fā)板和仿真器當(dāng)然是最好的選擇 可是對于單片機(jī)愛好者 或者簡單的開發(fā)應(yīng)該是比較好的選擇 Protues 與其他的單片機(jī)仿真軟件不同的是 它不僅能仿真單片機(jī) CPU 的工作情況 也能反正仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情 況 因此在仿真和程序調(diào)試時(shí) 關(guān)心的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲 器內(nèi)容的改變 而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果 對于 這樣的仿真實(shí)驗(yàn) 從某種意義上講 是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用脫節(jié)的矛盾和現(xiàn)象 2 實(shí)驗(yàn)設(shè)計(jì)原理及芯片簡介 2 1 實(shí)驗(yàn)設(shè)計(jì)原理 數(shù)字信號可以通過數(shù) 模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號 因此可通過產(chǎn)生數(shù)字信號再轉(zhuǎn) 換成模擬信號的方法來獲得所需要的波形 AT89C51 單片機(jī)本身就是一個(gè)完整的微 型計(jì)算機(jī) 具有組成微型計(jì)算機(jī)的各種部分部件 中央處理器 CPU 隨機(jī)存取存儲 器 RAM I O 接口電路 定時(shí)器 計(jì)數(shù)器以及串行通訊接口等 只要將 89C51 再配置 鍵盤及其接口 顯示器及其接口 數(shù)模轉(zhuǎn)換及波形輸出 指示燈及其接口等四部分 即可構(gòu)成所需的波形信號發(fā)生器 其信號發(fā)生器構(gòu)成原理框圖如圖 2 1 所示 圖 2 1 信號發(fā)生器原理框圖 89C51 是整個(gè)波形信號發(fā)生器的核心部分 通過程序的編寫和執(zhí)行 產(chǎn)生各種 各樣的信號 并從鍵盤接收數(shù)據(jù) 進(jìn)行各種功能的轉(zhuǎn)換和信號幅度的調(diào)節(jié) 當(dāng)數(shù)字 信號經(jīng)過接口電路到達(dá)轉(zhuǎn)換電路 將其轉(zhuǎn)換成模擬信號也就是所需要的輸出波形 2 2 AT89C51 的簡介 圖 2 2 AT89C51 芯片外形結(jié)構(gòu)及引腳分布圖 AT89C51 是一種帶 4K 字節(jié)閃存可編程可擦除只讀存儲器 EPEROM Flash Programmable and Erasable Read Only Memory 的低電壓 高性能 CMOS 8 位微處 理器 俗稱單片機(jī) 5 AT89C2051 是一種帶 2K 字節(jié)內(nèi)閃存可編程可擦除只讀存儲 器的單片機(jī) 單片機(jī)的可擦除只讀存儲器可以反復(fù)擦出 1000 次 該器件采用 ATMEL 高密度非易失存儲器制造技術(shù)制造 與工業(yè)標(biāo)準(zhǔn)的 MCS 51 指令集和輸出 管腳兼容 由于將多功能 8 位 CPU 和閃爍存儲器組合在單個(gè)芯片中 ATMEL 的 AT89C51 是一種高效微控制器 AT89C51 是它的一種精簡版本 AT89C51 單片機(jī) 為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案 外形及引腳排列如下圖所示 管腳說明 VCC 供低電壓 GND 接地 P0 口 P0 口為一個(gè) 8 位漏極開路雙向 I O 口 每腳可吸收 8TTL 門電流 當(dāng) P0 口的管腳第一次寫 1 時(shí) 被定義為高阻輸入 P0 能夠用于外部程序數(shù)據(jù)存儲器 它 可以被定義為數(shù)據(jù) 地址的第八位 在 FLASH 編程時(shí) P0 口作為原碼輸入口 當(dāng) FLASH 進(jìn)行校驗(yàn)時(shí) P0 輸出原碼 此時(shí) P0 外部必須被拉高 P1 口 P1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 I O 口 P1 口緩沖器能接收輸 出 4TTL 門電流 P1 口管腳寫入 1 后 被內(nèi)部上拉為高 可用作輸入 P1 口被外部 下拉為低電平時(shí) 將輸出電流 這是由于內(nèi)部上拉的緣故 在 FLASH 編程和校驗(yàn) 時(shí) P1 口作為第八位地址接收 P2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 I O 口 P2 口緩沖器可接收 輸出 4 個(gè) TTL 門電流 當(dāng) P2 口被寫 1 時(shí) 其管腳被內(nèi)部上拉高 且作為輸入 并因此作 為輸入時(shí) P2 口的管腳被外部拉低 將輸出電流 這是由于內(nèi)部上拉的緣故 P2 口當(dāng)用于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí) P2 口輸出地址 的高八位 在給出地址 1 時(shí) 它利用內(nèi)部上拉優(yōu)勢 當(dāng)對外部八位地址數(shù)據(jù)存儲 器進(jìn)行讀寫時(shí) P2 口輸出其特殊功能寄存器的內(nèi)容 P2 口在 FLASH 編程和校驗(yàn)時(shí) 接受高八位地址信號和控制信號 P3 口 P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I O 口 可接收輸出 4 個(gè) TTL 門 電流 當(dāng) P3 口寫入 1 后 他們被內(nèi)部上拉為高電平 并用作輸入 作為輸入 由于外部下拉為低電平 P3 口將輸出電流 這是由于上拉的緣故 P3 口也可作為 AT89C51 的一些特殊功能口 如下表所示 各端口管腳 備選功能 P3 0 RXD 串行輸入口 P3 1 TXD 串行輸出口 P3 2 INT0 外部中斷 0 P3 3 INT1 外部中斷 1 P3 4 T0 計(jì)時(shí)器 0 外部輸入 P3 5 T1 計(jì)時(shí)器 1 外部輸入 P3 6 WR 外部數(shù)據(jù)存儲器寫選通 P3 7 RD 外部數(shù)據(jù)存儲器讀選通 P3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號 RST 復(fù)位輸入 當(dāng)振蕩器復(fù)位器件時(shí) 要保持 RST 腳兩個(gè)機(jī)器周期的高電平時(shí) 間 ALE PROG 當(dāng)訪問外部存儲器時(shí) 地址鎖存允許的輸出電平用于鎖存地址的低 位字節(jié) 在 FLASH 編程期間 此引腳用于輸入編程脈沖 在平時(shí) ALE 端以不變 的頻率周期輸出正脈沖信號 此頻率為振蕩器頻率的 1 6 因此它可用作對外部輸出 的脈沖或用于定時(shí)目的 然而要注意的是 每當(dāng)用作外部數(shù)據(jù)存儲器時(shí) 將跳過一 個(gè) ALE 脈沖 如想禁止 ALE 的輸出可在 AFR8EH 地址上置 0 此時(shí) ALE 只有在執(zhí) 行 MOVX MOVC 指令時(shí) ALE 才起作用 另外 該引腳被略微拉高 如果微處理 器在外部執(zhí)行狀態(tài) ALE 禁止 置位無效 PSEN 外部程序存儲器的選通信號 在由外部程序存儲器取指器件 每個(gè)機(jī)器 周期兩次 PSEN 有效 但在訪問外部數(shù)據(jù)存儲器時(shí) 這兩次有效的 PSEN 信號將不 出現(xiàn) EA VPP 當(dāng) EA 保持低電平時(shí) 則在此期間外部程序存儲器 0000H FFFFH 不管是否有內(nèi)部程序存儲器 注意加密方式 1 時(shí) EA 將內(nèi)部鎖定為 RESET 當(dāng) EA 端保持高電平時(shí) 此間內(nèi)部程序存儲器 在 FLASH 編程期間 次引腳也用于施 加 12V 編程電源 VPP XTAL1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入 XTAL2 來自反向振蕩器的輸出 2 3 DAC0832 芯片的簡介 圖 2 3 DAC0832 芯片外形結(jié)構(gòu)及引腳分布圖 DAC0832 是 8 分辨率的 D A 轉(zhuǎn)換集成芯片 與微處理器完全兼容 這個(gè) DA 芯片 以其價(jià)格低廉 接口簡單 轉(zhuǎn)換控制容易等優(yōu)點(diǎn) 在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的 應(yīng)用 D A 轉(zhuǎn)換器由 8 位輸入鎖存器 8 位 DAC 寄存器 8 位 D A 轉(zhuǎn)換電路及轉(zhuǎn)換控 制電路構(gòu)成 DAC0832 的主要特性參數(shù)如下 分辨率為 8 位 電流穩(wěn)定時(shí)間 1us 可單緩沖 雙緩沖或直接數(shù)字輸入 只需在滿量程下調(diào)整其線性度 單一電源供電 5V 15V 低功耗 20mW DAC0832 結(jié)構(gòu) D0 D7 8 位數(shù)據(jù)輸入線 TTL 電平 有效時(shí)間應(yīng)大于 90ns 否則鎖存器的數(shù)據(jù) 會出錯(cuò) ILE 數(shù)據(jù)鎖存允許控制信號輸入線 高電平有效 CS 片選信號輸入線 選通數(shù)據(jù)鎖存器 低電平有效 WR1 數(shù)據(jù)鎖存器寫選通輸入線 負(fù)脈沖 脈寬應(yīng)大于 500ns 有效 由 ILE CS WR1 的邏輯組合產(chǎn)生 LE1 當(dāng) LE1 為高電平時(shí) 數(shù)據(jù)鎖存器狀態(tài)隨輸 入數(shù)據(jù)線變換 LE1 的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存 XFER 數(shù)據(jù)傳輸控制信號輸入線 低電平有效 負(fù)脈沖 脈寬應(yīng)大于 500ns 有效 WR2 DAC 寄存器選通輸入線 負(fù)脈沖 脈寬應(yīng)大于 500ns 有效 由 WR2 XFER 的邏輯組合產(chǎn)生 LE2 當(dāng) LE2 為高電平時(shí) DAC 寄存器的輸出隨寄存器的 輸入而變化 LE2 的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入 DAC 寄存器并開始 D A 轉(zhuǎn)換 IOUT1 電流輸出端 1 其值隨 DAC 寄存器的內(nèi)容線性變化 IOUT2 電流輸出端 2 其值與 IOUT1 值之和為一常數(shù) Rfb 反饋信號輸入線 改變 Rfb 端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度 Vcc 電源輸入端 Vcc 的范圍為 5V 15V VREF 基準(zhǔn)電壓輸入線 VREF 的范圍為 10V 10V AGND 模擬信號地 DGND 數(shù)字信號地 DAC0832 的工作方式 根據(jù)對 DAC0832 的數(shù)據(jù)鎖存器和 DAC 寄存器的不同的控制方式 DAC0832 有三 種工作方式 直通方式 單緩沖方式和雙緩沖方式 DAC0832 引腳功能電路應(yīng)用原理圖 DAC0832 是采樣頻率為八位的 D A 轉(zhuǎn)換芯片 集成電路內(nèi)有兩級輸入寄存器 使 DAC0832 芯片具備雙緩沖 單緩沖和直通三種輸 入方式 以便適于各種電路的需要 如要求多路 D A 異步輸入 同步轉(zhuǎn)換等 所以 這個(gè)芯片的應(yīng)用很廣泛 關(guān)于 DAC0832 應(yīng)用的一些重要資料見下圖 D A 轉(zhuǎn)換結(jié)果 采用電流形式輸出 若需要相應(yīng)的模擬電壓信號 可通過一個(gè)高輸入阻抗的線性運(yùn) 算放大器實(shí)現(xiàn) 運(yùn)放的反饋電阻可通過 RFB 端引用片內(nèi)固有電阻 也可外接 DAC0832 邏輯輸入滿足 TTL 電平 可直接與 TTL 電路或微機(jī)電路連接 DAC0832 引腳功能說明 DI0 DI7 數(shù)據(jù)輸入線 TLL 電平 ILE 數(shù)據(jù)鎖存允許控制信號輸入線 高電平有效 CS 片選信號輸入線 低電平有效 WR1 為輸入寄存器的寫選通信號 XFER 數(shù)據(jù)傳送控制信號輸入線 低電平有效 WR2 為 DAC 寄存器寫選通輸入線 Iout1 電流輸出線 當(dāng)輸入全為 1 時(shí) Iout1 最大 Iout2 電流輸出線 其值與 Iout1 之和為一常數(shù) Rfb 反饋信號輸入線 芯片內(nèi)部有反饋電阻 Vcc 電源輸入線 5v 15v Vref 基準(zhǔn)電壓輸入線 10v 10v AGND 模擬地 摸擬信號和基準(zhǔn)電源的參考地 DGND 數(shù)字地 兩種地線在基準(zhǔn)電源處共地比較好 2 DAC0832 的引腳特性 DAC0832 是 20 引腳的雙列直插式芯片 各引腳的特性如下 片選信號 和允許鎖存信號 ILE 組合來決定 是否起作用 ILE 允許鎖存信號 寫信號 1 作為第一級鎖存信號 將輸入資料鎖存到輸入寄存器 此時(shí) 必須 和 ILE 同時(shí)有效 寫信號 2 將鎖存在輸入寄存器中的資料送到 DAC 寄存器中進(jìn)行鎖存 此時(shí) 傳 輸控制信號 必須有效 傳輸控制信號 用來控制 DI7 DI0 8 位數(shù)據(jù)輸入端 IOUT1 模擬電流輸出端 1 當(dāng) DAC 寄存器中全為 1 時(shí) 輸出電流最大 當(dāng) DAC 寄存器中全為 0 時(shí) 輸出電流為 0 IOUT2 模擬電流輸出端 2 IOUT1 IOUT2 常數(shù) RFB 反饋電阻引出端 DAC0832 內(nèi)部已經(jīng)有反饋電阻 所以 RFB 端可以直 接接到外部運(yùn)算放大器的輸出端 相當(dāng)于將反饋電阻接在運(yùn)算放大器的輸入端和輸 出端之間 VREF 參考電壓輸入端 可接電壓范圍為 10V 外部標(biāo)準(zhǔn)電壓通過 VREF 與 T 型電阻網(wǎng)絡(luò)相連 VCC 芯片供電電壓端 范圍為 5V 15V 最佳工作狀態(tài)是 15V AGND 模擬地 即模擬電路接地端 DGND 數(shù)字地 即數(shù)字電路接地端 2 4 DAC0832 的工作方式 DAC0832 進(jìn)行 D A 轉(zhuǎn)換 可以采用兩種方法對數(shù)據(jù)進(jìn)行鎖存 第一種方法是使輸入寄存器工作在鎖存狀態(tài) 而 DAC 寄存器工作在直通狀態(tài) 具體地說 就是使 和 都為低電平 DAC 寄存器的鎖存選通端得不到有效電平而直 通 此外 使輸入寄存器的控制信號 ILE 處于高電平 處于低電平 這樣 當(dāng) 端 來一個(gè)負(fù)脈沖時(shí) 就可以完成 1 次轉(zhuǎn)換 第二種方法是使輸入寄存器工作在直通狀態(tài) 而 DAC 寄存器工作在鎖存狀態(tài) 就是使 和 為低電平 ILE 為高電平 這樣 輸入寄存器的鎖存選通信號處于無效 狀態(tài)而直通 當(dāng) 和 端輸入 1 個(gè)負(fù)脈沖時(shí) 使得 DAC 寄存器工作在鎖存狀態(tài) 提供 鎖存數(shù)據(jù)進(jìn)行轉(zhuǎn)換 根據(jù)上述對 DAC0832 的輸入寄存器和 DAC 寄存器不同的控制方法 DAC0832 有 如下 3 種工作方式 單緩沖方式 單緩沖方式是控制輸入寄存器和 DAC 寄存器同時(shí)接收資料 或 者只用輸入寄存器而把 DAC 寄存器接成直通方式 此方式適用只有一路模擬量輸出 或幾路模擬量異步輸出的情形 雙緩沖方式 雙緩沖方式是先使輸入寄存器接收資料 再控制輸入寄存器的 輸出資料到 DAC 寄存器 即分兩次鎖存輸入資料 此方式適用于多個(gè) D A 轉(zhuǎn)換同步 輸出的情節(jié) 直通方式 直通方式是資料不經(jīng)兩級鎖存器鎖存 即 CS XFER WR1 WR2 均接地 ILE 接高電平 此方式適用于連續(xù)反饋控制線路和不帶微機(jī)的控 制系統(tǒng) 不過在使用時(shí) 必須通過另加 I O 接口與 CPU 連接 以匹配 CPU 與 D A 轉(zhuǎn) 換 DAC0832 主要用于波形的數(shù)據(jù)的傳送 是本課題中的主要芯片 3 實(shí)驗(yàn)硬件實(shí)現(xiàn)及單元電路的設(shè)計(jì) 3 1 硬件設(shè)計(jì)流程框圖 硬件原理框圖如圖 3 1 所示 圖 3 1 硬件原理框圖 3 2 信號發(fā)生器的外圍結(jié)構(gòu) 圖 3 2 信號發(fā)生器的外圍結(jié)構(gòu)框圖 顯示電路 鍵盤電路 單 片 機(jī) 數(shù) 模轉(zhuǎn)換 電路 復(fù)位電路 放大電路 波形輸出 3 3 單片機(jī)最小系統(tǒng)設(shè)計(jì) 89C51 是片內(nèi)有 ROM EPROM 的單片機(jī) 因此 這種芯片構(gòu)成的最小系統(tǒng)簡 單 可靠 用 80C51 單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí) 只要將單片機(jī)接上時(shí)鐘電路和復(fù) 位電路即可 如圖 3 2 AT89C51 單片機(jī)最小系統(tǒng)所示 圖 3 2 單片機(jī)最小系統(tǒng) 3 4 波形產(chǎn)生模塊設(shè)計(jì) 由單片機(jī)采用編程方法產(chǎn)生四種波形 通過 D A 轉(zhuǎn)換模塊 DAC0832 在進(jìn)行濾 波放大之后輸出 其電路圖如下 圖 3 2 波形產(chǎn)生電路 如上圖所示 單片機(jī)的 P0 口連接 DAC0832 的八位數(shù)據(jù)輸入端 DAC0832 的輸出端 接放大器 經(jīng)過放大后輸出所要的波形 其結(jié)構(gòu)圖如下 圖 3 3 DAC0832 的內(nèi)部結(jié)構(gòu) 3 5 軟件流程的設(shè)計(jì) 1 流程圖的繪制及說明 圖 3 4 主函數(shù)流程圖 2 程序部分設(shè)計(jì) include include define uchar unsigned char define DAC DATA P0 sbit nWR P3 6 sbit nCS P2 7 unsigned int a void clearmen void keyscan void delay1ms unsigned char ms 正弦波數(shù)據(jù) uchar code sin tab 128 64 67 70 73 76 79 82 85 88 91 94 96 99 102 104 106 109 111 113 115 117 118 120 121 123 124 125 126 126 127 127 127 127 127 127 127 126 126 125 124 123 121 120 118 117 115 113 111 109 106 104 102 99 96 94 91 88 85 82 79 76 73 70 67 64 60 57 54 51 48 45 42 39 36 33 31 28 25 23 21 18 16 14 12 10 9 7 6 4 3 2 1 1 0 0 0 0 0 0 0 1 1 2 3 4 6 7 9 10 12 14 16 18 21 23 25 28 31 33 36 39 42 45 48 51 54 57 60 三角波 uchar code san tab 128 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 方波波表 uchar code Pos tab 128 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 0 255 鋸齒波 uchar code JuC tab 128 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 unsigned char code DacPtr sbit K1 P1 4 sbit K2 P1 5 sbit K3 P1 6 sbit K4 P1 7 sbit K5 P1 3 sbit K6 P1 2 void main clearmen while 1 keyscan void keyscan 鍵控部分 if K1 0 當(dāng) K1 按下時(shí) 產(chǎn)生正弦波 while K1 0 DacPtr sin tab if K2 0 當(dāng) K2 按下時(shí) 產(chǎn)生三角波 while K2 0 DacPtr san tab if K3 0 當(dāng) K3 按下時(shí) 產(chǎn)生方波 while K3 0 DacPtr Pos tab if K4 0 當(dāng) K4 按下時(shí) 產(chǎn)生鋸齒波 while K4 0 DacPtr JuC tab if K5 0 當(dāng) K5 按下時(shí) 波形頻率增大 while K5 0 FreqControl 1 if FreqControl 12 FreqControl 1 if K6 0 當(dāng) K6 按下時(shí) 波形頻率減小 while K6 0 FreqControl 1 if FreqControl 0 FreqControl 12 void clearmen DacPtr sin tab nCS 0 DAC DATA 0 xff nWR 0 P3 0 xff TH1 255 TL1 155 TMOD 0 x21 P3 0 x00 a 0 ET1 1 TR1 1 EA 1 4 實(shí)驗(yàn)仿真結(jié)果及調(diào)試 仿真波信號 當(dāng)鍵 K1 第一次按下時(shí) 產(chǎn)生的波為正弦波 波形如圖 4 1 所示 圖 4 1 正弦波仿真圖 當(dāng)鍵 K2 第一次按下時(shí) 產(chǎn)生的波為三角波 波形如圖 4 2 所示 圖 4 2 三角波仿真圖 當(dāng)鍵 K3 第一次按下時(shí) 產(chǎn)生的波為方波 波形如圖 4 3 所示 圖 4 3 方波仿真圖 當(dāng)鍵 K4 第一次按下時(shí) 產(chǎn)生的波為鋸齒波 波形如圖 4 4 所示 圖 4 4 鋸齒波仿真圖 波形分析 在對系統(tǒng)進(jìn)行波形仿真時(shí)可以在虛擬示波器上觀察到三角波 正弦波和方波的 波形 其中三角波和正弦波的輸出有一定誤差 方波波形較為理想 這一方面與電 路設(shè)置的參數(shù)有關(guān) 另一方面也與使用的仿真軟件有關(guān) 對于上述問題的解決方法 是 改變仿真電路的參數(shù)或換用版本更高的仿真軟件 當(dāng)然一般產(chǎn)生這種情況的原 因多由于電路的參數(shù)設(shè)計(jì)不合理所制 但從仿真波形上可以看出波形的頻率大致與 程序中的設(shè)置吻合 波形的幅度與程序設(shè)置的最大值有關(guān) 而頻率受機(jī)器周期的控 制 當(dāng)仿真時(shí) 由于存在一定的系統(tǒng)誤差 波形效果不是很好 數(shù)字信號發(fā)生器仿真原理圖如下圖所示 結(jié) 論 基于單片機(jī)的數(shù)字信號發(fā)生器的設(shè)計(jì)與仿真已全部完成 所設(shè)計(jì)的信號發(fā)生器 能按預(yù)期的效果通過鍵 K1 K4 實(shí)現(xiàn)正弦波 三角波 方波 鋸齒波四種波形的切換 鍵 K5 K6 實(shí)現(xiàn)頻率可調(diào) 本系統(tǒng)可實(shí)現(xiàn)對波形的頻率調(diào)節(jié) 每次頻率調(diào)節(jié)的幅度 大小為 0 2KHZ 且系統(tǒng)的頻率范圍為 0 2KHZ 2 5KHZ 本數(shù)字信號發(fā)生器系統(tǒng)三 個(gè)模塊中 其中最重要的部分為單片機(jī)最小系統(tǒng)模塊部分 其他還有波形產(chǎn)生模塊 及按鍵控制模塊 各個(gè)模塊完成后 他們將組成完整的數(shù)字信號發(fā)生器系統(tǒng) 本文從理論上介紹了信號發(fā)生器的電路 通過 AT89C51 單片機(jī)與 DAC0832 芯 片為硬件平臺 結(jié)合軟件的靈活運(yùn)用 可產(chǎn)生幾種常見的波形 如正弦波 三角波 和方波等信號波形 文中具體介紹了信號發(fā)生器的硬件連接 通過波形轉(zhuǎn)換部分電 路從而實(shí)現(xiàn)任意波形的轉(zhuǎn)換 信號發(fā)生器的設(shè)計(jì)中 硬件結(jié)構(gòu)跟軟件編程都很重要 在文中都已具體給出 并通過 Protues 軟件進(jìn)行仿真 實(shí)現(xiàn)信號的產(chǎn)生及波形的轉(zhuǎn)換 參考文獻(xiàn) 1 王東鋒 單片機(jī) C 語言應(yīng)用 100 例 M 北京 電子工業(yè)出版社 2009 291 293 2 徐偉 C51 單片機(jī)高效入門 M ZA 北京 機(jī)械工業(yè)出版社 2007 5 8 3 陸子明 徐長根 單片機(jī)設(shè)計(jì)與應(yīng)用基礎(chǔ)教程 M 北京 國防工業(yè)出版社 2005 4 陳偉人 單片微型計(jì)算機(jī)原理與應(yīng)用 M 北京 清華大學(xué)出版社 2006 5 張毅剛 彭喜元 彭宇 單片機(jī)原理及應(yīng)用 M 北京 高等教育出版社 2010 16 33 6 高西全 丁玉美 數(shù)字信號處理 M 西安 西安電子科技大學(xué)出版社 2008 265 282 7 求是科技 單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航 M 北京人民郵電出版社 2004 8 樓然苗 51 系列單片機(jī)設(shè)計(jì)實(shí)例 M 北京 北京航空航天出版社 2003 3 9 何立民 MCS 51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) M 北京 北京航空航天大學(xué)出版社 2007 10 張永瑞 電子測量技術(shù)基礎(chǔ) M 西安 西安電子科技大學(xué)出版社 2006 61 101 11 Microcontroller With 4K Bytes in system programble Flash AT89S51 J ATMEL 2001 12 Pavel Zahradnik Miroslav Vicek Analytical Design Mehod for Optimal Equiripple Comb FIR Filters J IEEE Transactions on Circuits and Systems Express Briefs 2000 52 2