單片機函數波形發(fā)生器課程設計_第1頁
單片機函數波形發(fā)生器課程設計_第2頁
單片機函數波形發(fā)生器課程設計_第3頁
單片機函數波形發(fā)生器課程設計_第4頁
單片機函數波形發(fā)生器課程設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、東 北 石 油 大 學 課 程 設 計 課 程 單片機課程設計 題 目 函數波形發(fā)生器設計 院 系 電氣信息工程學院測控系 專業(yè)班級 測控技術與儀器 111 學生姓名 任建偉 學生學號 3 指導教師 路敬祎 張巖 2014 年 7 月 8 日 東北石油大學課程設計任務書 課程 單片機課程設計 題目 函數波形發(fā)生器設計 專業(yè) 測控技術與儀器 姓名 任建偉 學號 3 一、任務 設計一款基于 AT89C51 單片機的函數波形發(fā)生器。 二、設計要求 要求:利用 D/A 芯片產生峰峰值為 5V 的鋸齒波、三角波、梯形波、正弦 波和方波。 控制功能:使用 5 個撥動開關進行功能切換。當 K0 接高電平時輸

2、出鋸齒波; 當 K1 接高電平輸出梯形波;當 K2 接高電平輸出三角波;K3 接高電平輸出正弦 波;K4 接高電平輸出方波。 使用的主要元器件:8031、6MHz 的晶振、 74LS373、74LS138、2764、DAC0832、LM324、撥動開關 K0、K1、K2、K3、K4 等。 輸出波形的驗證方法:使用示波器測量輸出波形。 三、參考資料 1陳志旺,李亮。51 單片機快速上手。機械工業(yè)出版社。 2薛定宇??刂葡到y計算及輔助設計MATLAB 語言與應用(第 2 版) 。清華 大學出版社。 3鄒虹。單片機波形發(fā)生器的設計。重慶郵電學院學報。 4毅剛,彭喜元。單片機原理與應用設計。電子工業(yè)出

3、版社。 5楊素行.模擬電子技術基礎簡明教程(第三版)M.北京:高等教育出版社, 2006. 6 Altium Designer 原理圖與 PCB 設計 M.北京:電子工業(yè)出版社 2009. 完成期限 2014.6.30 至 2014.7.9 指導教師 路敬祎 張巖 專業(yè)負責人 曹廣華 2014 年 6 月 30 日 目錄 第一章 緒論.1 1.1 課題背景 .1 1.2 本系統研究的國內外現狀 .2 1.3 本文主要研究內容和工作 .2 第二章 方案論證.3 2.1 方案一 純硬件設計法.3 2.2 方案二純軟件設計法 .3 2.3 方案三 軟硬件結合法.4 第三章 系統硬件設計.5 3.1

4、內部結構概述 .5 3.2 P0P3 口結構及功能.5 3.3 時鐘電路和復位電路 .6 3.4 系統硬件總體設計 .8 3.5 DAC0832 的引腳及功能.8 3.6 74LS373 的引腳及功能.9 3.7 系統硬件原理 .9 第四章 系統的軟件設計.11 4.1 主程序流程圖 .11 4.2 波形的產生 .12 第五章 系統調試與仿真結果.14 5.1 系統調試 .14 5.2 仿真結果 .14 結論.15 參考文獻.16 附錄一 程序.17 附錄二 仿真效果圖.22 第一章 緒論 1.1 課題背景 波形發(fā)生器是能夠產生大量的標準信號和用戶定義信號,并保證高精度、 高穩(wěn)定性、可重復性和

5、易操作性的電子儀器。函數波形發(fā)生器具有連續(xù)的相位 變換、和頻率穩(wěn)定性等優(yōu)點,不僅可以模擬各種復雜信號,還可對頻率、幅值、 相移、波形進行動態(tài)、及時的控制,并能夠與其它儀器進行通訊,組成自動測 試系統,因此被廣泛用于自動控制系統、震動激勵、通訊和儀器儀表領域。 在 70 年代前,信號發(fā)生器主要有兩類:正弦波和脈沖波,而函數發(fā)生器介 于兩類之間,能夠提供正弦波、余弦波、方波、三角波、上弦波等幾種常用標 準波形,產生其它波形時需要采用較復雜的電路和機電結合的方法。這個時期 的波形發(fā)生器多采用模擬電子技術,而且模擬器件構成的電路存在著尺寸大、 價格貴、功耗大等缺點,并且要產生較為復雜的信號波形,則電路

6、結構非常復 雜。同時,主要表現為兩個突出問題,一是通過電位器的調節(jié)來實現輸出頻率 的調節(jié),因此很難將頻率調到某一固定值;二是脈沖的占空比不可調節(jié)。 在 70 年代后,微處理器的出現,可以利用處理器、A/D 和 D/A,硬件和軟 件使波形發(fā)生器的功能擴大,產生更加復雜的波形。這時期的波形發(fā)生器多以 軟件為主,實質是采用微處理器對 DAC 的程序控制,就可以得到各種簡單波 形。 90 年代末,出現幾種真正高性能、高價格的函數發(fā)生器、但是 HP 公司推 出了型號為 HP770S 的信號模擬裝置系統,它由 HP8770A 任意波形數字化和 HP1776A 波形發(fā)生軟件組成。HP8770A 實際上也只能

7、產生 8 中波形,而且價格 昂貴。不久以后, Analogic 公司推出了型號為 Data-2020 的多波形合成器, Lecroy 公司生產的型號為 9100 的任意波形發(fā)生器等。 到了二十一世紀,隨著集成電路技術的高速發(fā)展,出現了多種工作頻率可 過 GHz 的 DDS 芯片,同時也推動了函數波形發(fā)生器的發(fā)展, 2003 年, Agilent 的產品 33220A 能夠產生 17 種波形,最高頻率可達到 20M, 2005 年的 產品 N6030A 能夠產生高達 500MHz 的頻率,采樣的頻率可達 1.25GHz。由上 面的產品可以看出,函數波形發(fā)生器發(fā)展很快近幾年來,國際上波形發(fā)生器技

8、術發(fā)展主要體現在以下幾個方面: (1)過去由于頻率很低應用的范圍比較狹小,輸出波形頻率的提高,使得波形發(fā) 生器能應用于越來越廣的領域。波形發(fā)生器軟件的開發(fā)正使波形數據的輸入變 得更加方便和容易。波形發(fā)生器通常允許用一系列的點、直線和固定的函數段 把波形數據存入存儲器。同時可以利用一種強有力的數學方程輸入方式,復雜 的波形可以由幾個比較簡單的公式復合成 v=f (t)形式的波形方程的數學表達式 產生。從而促進了函數波形發(fā)生器向任意波形發(fā)生器的發(fā)展,各種計算機語言 的飛速發(fā)展也對任意波形發(fā)生器軟件技術起到了推動作用。目前可以利用可視 化編程語言 (如 Visual Basic ,Visual C

9、等等)編寫任意波形發(fā)生器的軟面板這 樣允許從計算機顯示屏上輸入任意波形,來實現波形的輸入。 (2)與 VXI 資源結合。目前,波形發(fā)生器由獨立的臺式儀器和適用于個人計算 機的插卡以及新近開發(fā)的 VXI 模塊。由于 VXI 總線的逐漸成熟和對測量儀器的 高要求,在很多領域需要使用 VXI 系統測量產生復雜的波形,VXI 的系統資源 提供了明顯的優(yōu)越性,但由于開發(fā) VXI 模塊的周期長,而且需要專門的 VXI 機 箱的配套使用,使得波形發(fā)生器 VXI 模塊僅限于航空、軍事及國防等大型領域。 在民用方面,VXI 模塊遠遠不如臺式儀器更為方便。 (3)隨著信息技術蓬勃發(fā)展,臺式儀器在走了一段下坡路之后

10、,又重新繁榮起來。 不過現在新的臺式儀器的形態(tài),和幾年前的己有很大的不同。這些新一代臺式 儀器具有多種特性,可以執(zhí)行多種功能。而且外形尺寸與價格,都比過去的類 似產品減少了一半。 1.2 本系統研究的國內外現狀 早在 1978 年,由美國 Wavetek 公司和日本東亞電波工業(yè)公司公布了最高取 樣頻率為 5MHz,可以形成 256 點(存儲長度)波形數據,垂直分辨率為 8bit,主要用于振動、醫(yī)療、材料等領域的第一代高性能信號源,經過將近 30 年的發(fā)展,伴隨著電子元器件、電路、及生產設備的高速化、高集成化,波形 發(fā)生器的性能有了飛速的提高,變得操作越來越簡單而輸出波形的能力越來越 強。波形操

11、作方法的好壞,是由波形發(fā)生器控制軟件質量保證的,編輯功能增 加得越多,波形形成的操作性越好。 1.3 本文主要研究內容和工作 近年來,波形發(fā)生器在各種領域中得到越來越廣泛的應用。本系統主要通 過研究 51 單片機的功能,外加 D/A 轉換器等其它器件,進行硬件設計和軟件 編程,完成鋸齒波、梯形波、三角波、方波和正弦波共五種波形的形成。波形 頻率的變化由程序來控制,即通過改變定時器的初值來改變輸出波形相鄰兩點 的時間間隔,從而實現波形頻率的改變。 第二章 方案論證 2.1 方案一 純硬件設計法 波形發(fā)生器設計的純硬件法早期,波形發(fā)生器的設計主要是采用運算放大 器加分立元件來實現。實現的波形比較單

12、一,主要為正弦波、方波和三角波。 工作原理嗍也相對簡單:首先是產生正弦波,然后通過波形變換(正弦波通過比 較器產生方波,方波經過積分器變?yōu)槿遣?實現方波和三角波。在各種波形后 加上一級放大電路,可以使輸出波形的幅度達到要求,通過開關電路實現不同 輸出波形的切換,改變電路的具體參數可以實現頻率、幅度和占空比的改變。 通過對電路結構的優(yōu)化及所用元器件的嚴格選取可以提高電路的頻率穩(wěn)定性和 準確度。純硬件法中,正弦波的設計是基礎,實現方法也比較多,電路形式一 般有 LC、RC 和石英晶體振蕩器三類。LC 振蕩器適宜于產生幾 Hz 至幾百 MHz 的 高頻信號;石英晶體振蕩器能產生幾百 kHz 至幾十

13、 MHz 的高頻信號且穩(wěn)定度高; 對于頻率低于幾 MHz,特別是在幾百 Hz 時,常采用 RC 振蕩電路。RC 振蕩電路又分為文氏 橋振蕩電路、雙 T 網絡式和移相式振蕩電路等類型。其中,以文氏橋振蕩電路 最為常用。目前,實現波形發(fā)生器最簡單的方法是采用單片集成的函數信號發(fā) 生器。它是將產生各種波形的功能電路集成優(yōu)化到一個集成電路芯片里,外加 少量的電阻、電容元件來實現。采用這種方法的突出優(yōu)勢是電路簡單,實現方 便,精度高,性能優(yōu)越;缺點是功能較全的集成芯片價格較貴。實際中應用較 多的單片函數信號發(fā)生器有 MAX038(最高頻率可達 40MHz)和 ICL8038(最高頻率 為 300kHz)

14、。 2.2 方案二 純軟件設計法 波形發(fā)生器的設計還可以采用純軟件的方法來實現。虛擬儀器鞠使傳統儀 器發(fā)生了革命性的變化,是 21 世紀測試儀器領域技術發(fā)展的重要方向。它以計 算機為基礎,軟件為核心,沒有傳統儀器那樣具體的物理結構在計算機上實 現儀器的虛擬面板,通過軟件設計實現和改變儀器的功能。例如用圖形化編程 工具 LabVIEW 來實現任意波形發(fā)生器的功能:在 LabVIEW 軟件的前面板通過拖 放控件,設計儀器的功能面板(如波形顯示窗口,波形選擇按鍵,波形存儲回放 等工作界面),在軟件的后面板直接拖放相應的波形函數并進行參數設置或直接 調用編程函數來設計任意波形以實現波形產生功能;完成的

15、軟件打包后,可脫 離編程環(huán)境獨立運行。實現任意波形發(fā)生器的功能。采用純軟件的虛擬儀器設 計思路可以使設計簡單、高效,僅改變軟件程序就可以輕松實現波形功能的改 變或升級。從長遠角度來看,純軟件法成本較低。軟件法的缺點是波形的響應 速度和精度遜色于硬件法。 2.3 方案三 軟硬件結合法 軟硬件結合的波形發(fā)生器設計方法同時兼具軟硬件設計的優(yōu)勢:既具有純 硬件設計的快速、高性能,同時又具有軟件控制的靈活性、智能性。如以單片 機和單片集成函數發(fā)生器為核心。輔以鍵盤控制、液晶顯示等電路,設計出智 能型函數波形發(fā)生器,采用軟硬件結合的方法可以實現功能較全、性能更優(yōu)的 波形發(fā)生器,同時還可以擴展波形發(fā)生器的功

16、能,比如通過軟件編程控制實現 波形的存儲、運算、打印等功能,采用 USB 接口設計。使波形發(fā)生器具有遠程 通信功能等。目前,實驗、科研和工業(yè)生產中使用的信號源大多采用此方法來 實現。 純硬件設計法功能較單一,波形改變困難、控制的靈活性不夠,不具備智 能性,其中由運算放大器加分立元件組成的波形發(fā)生器,除在學生實驗訓練中 使用外?;静槐徊捎?。純軟件設計法實現簡單,程序改變及功能升級靈活, 但實現的波形精度及響應速度不如硬件法高。純軟件法主要適用于對波形精度、 響應速度要求不是很高的場合。相比之下,軟硬件結合的方法可以設計出性能 最優(yōu)、功能擴展靈活、控制智能化的新一代的波形發(fā)生器,可以滿足教學、科

17、 研、工業(yè)生產等各方面對波形發(fā)生器性能有較高要求的應用場合。綜合以上幾 種設計方案,本設計采用方案三的方法軟硬件設計法。其方案能夠產生很好 的波形,也易實現。 第三章 系統硬件設計 3.1 內部結構概述 典型的 MCS-51 單片機芯片集成了以下幾個基本組成部分: 1)一個 8 位的 CPU; 2) 128B 或 256B 單元內數據存儲器(RAM) ; 3) 4KB 或 8KB 片內程序存儲器(ROM 或 EPROM) ; 4) 4 個 8 位并行 I/O 接口 P0P3; 5)兩個定時/計數器; 6) 5 個中斷源的中端管理控制系統; 7)一個全雙工串行 I/O 口 UART(通用異步接收

18、、發(fā)送器) ; 8)一個片內振蕩器和時鐘產生電路。 圖 3-1 單片機引腳圖 3.2 P0P3 口結構及功能 3.2.1 P0 口結構及功能 P0 口由一個輸出鎖存器、一個轉換開關 MUX、兩個三態(tài)輸入緩沖器、輸 出驅動電路和一個與門及一個反相器組成。 P0 口具有兩種功能:第一, P0 口可以用作通用 I/O 接口;第二, P0 口 可以用作地址/數據總線。 3.2.2 P1 口結構及功能 P1 口是由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅動電路組成,驅 動電路內部設有上拉電阻。 3.2.3 P2 口結構及功能 P2 口由一個輸出鎖存器、一個轉換開關 MUX、兩個三態(tài)輸入緩沖器、輸 出驅

19、動電路和一個反相器組成。 P2 口共有兩個功能:第一個功能與上述兩組引腳的第一功能相同,即可用 作通用 I/O 口;它的第二功能與 P0 口引腳的第二功能相配合,作為地址總線用 于輸出片外存儲器的高 8 位。 3.2.4 P3 口結構及功能 P3 口由一個輸出鎖存器、三個三態(tài)輸入緩沖器、輸出驅動電路和一個與非 門組成。 P3 口有兩個功能:第一個功能與其余三個端口的第一功能相同;第二功能 做控制用,每個引腳的功能不同: P3.0RXD:串行口接收數據輸入端 P3.1TXD:串行口發(fā)送數據輸出端 P3.2INT0:外部中斷申請輸入端 0 P3.3INT1:外部中斷申請輸入端 1 P3.4T0:外

20、部計數脈沖輸入端 0 P3.5T1:外部計數脈沖輸入端 1 P3.6WR:寫外設控制信號輸出端 P3.7RD:讀外設控制信號輸出端 3.3 時鐘電路和復位電路 單片機的時鐘信號用來提供單片機內各種微操作的時間基準;復位操作則 使單片機的片內電路初始化,使單片機從一種確定的狀態(tài)開始運行。 3.3.1 時鐘電路 單片機的時鐘信號通常有兩種產生方式。一種是內部時鐘方式;另一種是 外部時鐘方式。 圖 3-2 時鐘方式圖 內部時鐘方式只要在單片機的 XTAL1 和 XTAL2 引腳外接晶振就構成了自 激振蕩器,并在單片機內部產生時鐘脈沖信號。外部時鐘方式是把外部已有的 時鐘信號引入到單片機內,常用于多片

21、單片機同時工作,已使各單片機同步。 單片機的時序單位:晶振周期為時鐘脈沖頻率的倒數,為最小的時序單位, 也稱 T 狀態(tài);時鐘周期包含兩個晶振周期,也稱 S 狀態(tài);完成一個基本操作所 需要的時間稱為機器周期,由 6 個時鐘周期組成,即 12 個晶振周期;指令的執(zhí) 行時間稱為指令周期,通常含有 14 個機器周期。 3.3.2 單片機的復位狀態(tài) 當 MCS-51 系列單片機的復位引腳 RST(全稱 RESET)出現 2 個機器周期以 上的高電平時,單片機就執(zhí)行復位操作。如果 RST 持續(xù)為高電平,單片機就處 于循環(huán)復位狀態(tài)。根據應用的要求,復位操作通常有兩種基本形式:上電復位 和手動復位。上電復位要

22、求接通電源后,自動實現復位操作。手動復位是當單 片機已在運行當中時,按下復位鍵 K 后松開,也能使 RST 為一段時間的高電平, 從而實現上電或開關復位的操作。 單片機的復位操作使單片機進入初始化狀態(tài),其中包括使程序計數器 PC0000H,這表明程序從 0000H 地址單元開始執(zhí)行。單片機冷啟動后,片內 RAM 為隨機值,運行中的復位操作不改變片內 RAM 區(qū)中的內容, 21 個特殊 功能寄存器復位后的狀態(tài)為確定值。 3.4 系統硬件總體設計 波形的產生是通過 51 單片機執(zhí)行某一波形發(fā)生器程序,向 D/A 轉換器的 輸入端按一定的規(guī)律發(fā)生數據,從而在 D/A 轉換電路的輸出端得到相應的電壓

23、波形。 鍵盤AT89C51DAC0832 運放電路波形輸出 圖 3-3 總體設計圖 3.5 DAC0832 的引腳及功能 DAC0832 是雙列直插式 8 位 D/A 轉換器,完成數字量輸入到模擬量輸出的 轉換。 圖 3-4 DAC0832 引腳圖 DAC0832 結構:D0D7: 8 位的數據輸入端, D7 為最高位, TTL 電 平,有效時間應大于 90ns(否則鎖存器的數據會出錯) ; ILE:數據鎖存允許控制信號輸入線,高電平有效; CS:片選信號輸入線(選通數據鎖存器) ,低電平有效; WR1:數據鎖存器寫選通輸入線,負脈沖(脈寬應大于 500ms)有效。由 ILE、CS、WR1 的

24、邏輯組合產生,當 LE1 為高電平時,數據鎖存器狀態(tài)隨輸入 數據線變換, LE1 的負跳變時將輸入數據鎖存; XFER:數據傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應大于 500ms)有效。 WR2:DAC 寄存器選通輸入線,負脈沖(脈寬應大于 500ms)有效。由 WR1、XFER 的邏輯組合產生 LE2,當 LE2 為高電平時, DAC 寄存器的輸出 隨寄存器的輸入而變化,LE2 的負跳變時將數據鎖存器的內容打入 DAC 寄存器 并開始 D/A 轉換。 IOUT1:模擬電流輸出端 1,當 DAC 寄存器中數據全為 1 時,輸出電流最 大,當 DAC 寄存器中數據全為 0 時,輸出電流為

25、 0。 IOUT2:模擬電流輸出端 2, IOUT2 與 IOUT1 的和為一個常數。 Rfb:反饋信號輸入線,改變 Rfb 端外接電阻值可調整轉換滿量程精度。 Vcc:電源輸入端,范圍為 (+5+ 15)V。 VREF:基準電壓輸入線,范圍為 (-10+10)V; AGND:模擬信號地。 DGND:數字信號地。 3.6 74LS373 的引腳及功能 74LS373 是常用的地址鎖存器芯片,它實質是一個帶三態(tài)緩沖輸出的 8D 觸發(fā)器。 D0D7:數據輸入端; Q0Q7:數據輸出端; OE:三態(tài)允許控制端,低電平有效;當 OE 為低電平時, Q0Q7 為正常 邏輯狀態(tài),可用來驅動負載或總線;當

26、OE 為高電平時, Q0Q7 呈高阻態(tài),既 不驅動總線,也不為總線的負載,但鎖存器內部的邏輯操作不受影響。 LE:鎖存允許端。當鎖存允許端 LE 為高電平時, Q 隨數據 D 而變;當 LE 為低電平時, Q 被鎖存在已建立的數據電平。 圖 3-5 74LS373 引腳圖 3.7 系統硬件原理 51 單片機的最小系統最小系統由振蕩電路、電源電路、復位電路、EA 及 應用程序組成。它有三種聯接方式。一種是兩級緩沖器型,即輸入數據經過兩 級緩沖器型,即輸入數據經過兩級緩沖器后,送入 D/A 轉換電路。第二種是單 級緩沖型,輸入數據經輸入寄存器直接送入 DAC 寄存器,然后送 D/A 轉換電 路。第

27、三種是兩個緩沖器直通,輸入數據直接送 D/A 轉換電路進行轉換。 3.7.1 系統原理圖 圖 3-6 系統原理圖 第四章 系統的軟件設計 系統軟件由主程序和產生波形的子程序組成,軟件設計主要是產生各種波 形的子程序的編程。通過編程可得到各種波形。頻率的改變可采用插入延時子 程序的方法來實現。 4.1 主程序流程圖 圖 4-1 主程序流程圖 開始 初始化 讀取波形選擇開關 調波形發(fā)生子程序 結束 波形 轉換 否 是否 波形判別 4.2 波形的產生 4.2.1 設計思路 利用中斷,當 5 個開關中有任意一個閉合時,跳轉至中斷程序,在中斷程 序中判斷是哪一個按鍵閉合,跳轉至相應的程序,執(zhí)行輸出波形的

28、操作,每輸 出一個點之后,判斷按鍵是否斷開,如果依舊閉合,則繼續(xù)輸出,如果已經斷 開,則結束中斷程序。 函數波形發(fā)生器 K0 鋸齒 波 K1 梯形 波 K2 三角 波 K3 方波 K4 正弦 波 圖 4-2 主程序流程圖 4.2.2 鋸齒波的產生 鋸齒波的實現過程是首先定義一個初值然后進行加法操作,加的步數的多 少則根據要求的頻率來進行。然后加到某個數之后就再重新設置為初值,再重 復執(zhí)行剛剛的操作,如此循環(huán)下去。 4.2.3 梯形波的產生 梯形波的實現是設置一個初值,然后進行加一,當加到某個數時延時,之 后減一,減到初值時在返回到之前的操作,繼續(xù)加一、延時、減一。 4.2.4 三角波的產生 三

29、角波的實現是設置一個初值,當加到某個值的時候,執(zhí)行減一操作,減 到初值時,再加一。 4.2.5 方波的產生 方波的實現只需開始的時候設置一個初值然后直接輸出這個值就行了,輸 出一段時間后,然后再重新置一個數據,然后再輸出這個數據一段時間,但是 此時的時間一定要等于前面那段時間。 4.2.6 正弦波的產生 正弦波的實現需要查表,每查一次表,輸出一個數值,之后查下一個數值 繼續(xù)輸出,當一個波形的 256 個數值全部輸出之后,從頭開始繼續(xù)輸出。 第五章 系統調試與仿真結果 5.1 系統調試 根據系統設計方案,本系統的調試共分為三大部分:仿真電路調試,程序 調試和程序和仿真電路聯調。由于在系統設計中采

30、用模塊設計法,所以方便對 各電路模塊功能進行逐級測試。 5.1.1 仿真電路調試 對各個模塊的功能進行調試,主要調試各模塊能否實現指定的功能。調試 結果表明,各模塊能夠實現其預期功能。 5.1.2 程序調試 軟件調試采用 keil c 軟件,將編好的程序進行調試,主要是檢查語法錯誤。 在此過程中,發(fā)現了好多錯誤。要耐心調試。 5.1.3 聯調 將調試好的仿真電路和程序進行聯調,主要調試系統的實現功能。只要程 序調試完成,線路連好,本步沒有困難。 5.2 仿真結果 在 Proteus 軟件中運行仿真。按下 K0 鍵時,示波器輸出鋸齒波;按下 K1 鍵時輸出梯形波;按下 K2 鍵時輸出三角波;按下

31、 K3 鍵時輸出方波;按下 K4 鍵時輸出正弦波。具體波形見附錄二。 結論 本次的設計中利用 AT89C51 和 DAC0832 以及放大器完成電路的設計,用 開關來控制各種波形的發(fā)生及轉換,用單片機輸出后,經過模數轉換器生成波 形,最終可以通過示波器觀察。在這次的軟件設計中,程序設計采用的是匯編 語言。匯編語言具有速度快,可以直接對硬件進行操作的優(yōu)點,它可以極好的 發(fā)揮硬件的功能。但是匯編語言也存在編寫的代碼非常難懂,不好維護,很容 易產生 bug,難于調試的缺點。因此,在大型程序的設計中,多采用 C 語言進 行程序編譯。 C 語言簡潔高效,是最貼近硬件的高級編程語言,經過多年的發(fā)展,現在

32、已成熟為專業(yè)水平的高級語言。而且,現在單片機產品推出時紛紛配套了 C 語 言編譯器,應用廣泛。不過就本次課程設計來說,匯編語言還是適用的。由于 此次是第一次進行課設,有些軟件以及芯片以前從未接觸過,因此還不是很得 心應手,所以在設計中遇到了很多問題及難點。比如: proteus 軟件以及 wave6000 的使用; D/A 轉換器和鎖存器的結構、功能等等,這些都需要自己 去查找資料了解這些。通過此次的課程設計,我進一步了解了波形發(fā)生器的原 理,在實際動手操作過程中,使我接觸了許多我以前沒接觸過的元件,提高了 自己的動手能力。而且在編程時重新溫習了剛學不久的 51 單片機以及 MATLAB 語言

33、,不僅讓我學習了一些新的知識,而且對以前所學內容進行了鞏固,讓我 懂得理論知識的重要性,沒有理論的指導一切實際行動都是盲目的,且實際操 作是所學的理論知識得到驗證,更能加深對理論知識的理解,讓我受益匪淺。 參考文獻 1陳志旺,李亮。51 單片機快速上手。機械工業(yè)出版社。 2薛定宇??刂葡到y計算及輔助設計MATLAB 語言與應用(第 2 版) 。清 華大學出版社。 3鄒虹。單片機波形發(fā)生器的設計。重慶郵電學院學報。 4毅剛,彭喜元。單片機原理與應用設計。電子工業(yè)出版社。 5楊素行.模擬電子技術基礎簡明教程(第三版)M.北京:高等教育出版社, 2006. 6 Altium Designer 原理圖

34、與 PCB 設計 M.北京:電子工業(yè)出版社 2009. 7譚浩強.C 程序設計(第 2 版) M .北京:清華大學出版社 1999. 8陳明義.電子技術教程設計實用教程(第 3 版)M.長沙:中南大學, 2009. 9馬曉.函數信號發(fā)生器的設計 D.河南 2012. 10李華.MCS-51 系列單片機實用接口技術 M. 11何立民.單片機應用技術選編 M. 12閻石.模擬電子技術基礎 M. 附錄一 程序 ORG 0000H LJMP MAIN ORG 0003H 外部中斷 0 LJMP INT00 ORG 0040H MAIN: MOV SP,60H; 更改堆棧指針,避免堆棧與工作寄存器區(qū)發(fā)生

35、沖突 SETB IT0; 外部中斷請求 0 為下降沿觸發(fā)方式 SETB EA; 中斷允許總開關打開 SETB EX0; 允許外部中斷 0 中斷 INT00: CLR EA ; 關中斷 PUSH PSW; 現場保護 PUSH Acc SETB EA; 開中斷 JNB P1.0,IR0; 如果 K0 鍵閉合,則跳轉至 IR0 輸出鋸齒波 JNB P1.1,IR1; 如果 K1 鍵閉合,則跳轉至 IR1 輸出梯形波 JNB P1.2,IR2; 如果 K2 鍵閉合,則跳轉至 IR2 輸出三角波 JNB P1.3,IR3; 如果 K3 鍵閉合,則跳轉至 IR3 輸出方波 JNB P1.4,IR4; 如果

36、 K4 鍵閉合,則跳轉至 IR4 輸出正弦波 INTIR: CLR EA; 關中斷 POP Acc; 現場恢復 POP PSW SETB EA ; 開中斷 RETI 鋸齒波發(fā)生子程序如下: IR0: MOV R0,#0FEH 設置端口地址 MOV A,#00H LOOP: MOVX R0,A ; 寫入 JB P1.0,INTIR; 如果 k0 鍵已經斷開,則返回 INC A ; A 加一 SJMP LOOP; 循環(huán) LJMP INTIR; 返回 梯形波發(fā)生子程序如下: IR1: MOV R0,#0FEH; 設置端口地址 MOV A,#00H UP: MOVX R0,A; 寫入 JB P1.1,

37、INTIR; 如果 k1 鍵已經斷開,則返回 INC A; A 加一 JNZ UP ; 循環(huán) DEC A; 如果已經溢出,則減一,減一之后 A 的值為 255 LCALL DELAY; 延時 JB P1.1,INTIR; 如果 k1 鍵已經斷開,則返回 DOWN: DEC A; MOVX R0,A; 寫入 JB P1.1,INTIR; 如果 k1 鍵已經斷開,則返回 JNZ DOWN ; 循環(huán) SJMP UP; 如果減到 0,則跳轉至 UP,繼續(xù)執(zhí)行加一操作 LJMP INTIR; 返回 DELAY: MOV R7,#100; 延時子程序 DELAY1: MOV R6,#10 NOP DELA

38、Y2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET 三角波發(fā)生子程序如下: IR2: MOV R0,#0FEH; 設置端口地址 MOV A,#00H UP2: MOVX R0,A; 寫入 JB P1.2,INTIR; 如果 k2 鍵已經斷開,則返回 INC A; A 加一 JNZ UP2; 循環(huán) DOWN2: DEC A; A 減一 MOVX R0,A; 寫入 JB P1.2,INTIR; 如果 k2 鍵已經斷開,則返回 JNZ DOWN2; 循環(huán) SJMP UP2; 如果減到 0,則跳轉至 UP2,繼續(xù)加一操作 LJMP INTIR; 返回 方波發(fā)生子程序如下: IR

39、3: MOV R0,#0FEH; 設置端口地址 POSI: MOV A,#00H; 給 A 賦值 0 x00 MOVX R0,A; 寫入 LCALL DELAY ; 延時 JB P1.3,INTIR; 如果 k3 鍵已經斷開,則返回 NEGA: MOV A,#0FFH ; 給 A 賦值 0 xFF MOVX R0,A; 寫入 LCALL DELAY; 延時 JB P1.3,INTIR; 如果 k3 鍵已經斷開,則返回 SJMP POSI; 跳轉至 POSI,繼續(xù)下一個波形的輸出 LJMP INTIR; 返回 正弦波發(fā)生子程序如下: IR4: MOV R0,#0FEH; 設置端口地址 MOV R

40、1,#00H XX: MOV A,R1 LCALL HANSHU; 調用查表函數 MOVX R0,A; 寫入 JB P1.4,INTIR; 如果 k4 鍵已經斷開,則返回 INC R1 SJMP XX; 繼續(xù)查表 LJMP INTIR ; 返回 HANSHU: MOV DPTR,#TAB1 MOVC A,A+DPTR RET TAB1: db 080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0a eh db 0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8 h db 0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h, 0f4h db 0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論