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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機(jī)函數(shù)波形發(fā)生器課程設(shè)計東北石油大學(xué)課程設(shè)計課程單片機(jī)課程設(shè)計題目函數(shù)波形發(fā)生器設(shè)計院系電氣信息工程學(xué)院測控系專業(yè)班級測控技術(shù)與儀器11—1學(xué)生姓名任建偉學(xué)生學(xué)號指導(dǎo)教師路敬祎張巖7月8日東北石油大學(xué)課程設(shè)計任務(wù)書課程單片機(jī)課程設(shè)計題目函數(shù)波形發(fā)生器設(shè)計專業(yè)測控技術(shù)與儀器姓名任建偉學(xué)號一、任務(wù)設(shè)計一款基于AT89C51單片機(jī)的函數(shù)波形發(fā)生器。二、設(shè)計要求要求:利用D/A芯片產(chǎn)生峰峰值為5V的鋸齒波、三角波、梯形波、正弦波和方波??刂乒δ埽菏褂?個撥動開關(guān)進(jìn)行功能切換。當(dāng)K0接高電平時輸出鋸齒波;當(dāng)K1接高電平輸出梯形波;當(dāng)K2接高電平輸出三角波;K3接高電平輸出正弦波;K4接高電平輸出方波。使用的主要元器件:8031、6MHz的晶振、74LS373、74LS138、2764、DAC0832、LM324、撥動開關(guān)K0、K1、K2、K3、K4等。輸出波形的驗證方法:使用示波器測量輸出波形。三、參考資料[1]陳志旺,李亮。51單片機(jī)快速上手。機(jī)械工業(yè)出版社。[2]薛定宇??刂葡到y(tǒng)計算及輔助設(shè)計——MATLAB語言與應(yīng)用(第2版)。清華大學(xué)出版社。[3]鄒虹。單片機(jī)波形發(fā)生器的設(shè)計。重慶郵電學(xué)院學(xué)報。[4]毅剛,彭喜元。單片機(jī)原理與應(yīng)用設(shè)計。電子工業(yè)出版社。[5]楊素行.模擬電子技術(shù)基礎(chǔ)簡明教程(第三版)[M].北京:高等教育出版社,.[6]AltiumDesigner原理圖與PCB設(shè)計[M].北京:電子工業(yè)出版社.完成期限.6.30至.7.9指導(dǎo)教師路敬祎張巖專業(yè)負(fù)責(zé)人曹廣華6月目錄TOC\o"1-2"\h\z\u第一章緒論 11.1課題背景 11.2本系統(tǒng)研究的國內(nèi)外現(xiàn)狀 21.3本文主要研究內(nèi)容和工作 2第二章方案論證 32.1方案一純硬件設(shè)計法 32.2方案二純軟件設(shè)計法 32.3方案三軟硬件結(jié)合法 4第三章系統(tǒng)硬件設(shè)計 53.1內(nèi)部結(jié)構(gòu)概述 53.2P0~P3口結(jié)構(gòu)及功能 53.3時鐘電路和復(fù)位電路 63.4系統(tǒng)硬件總體設(shè)計 83.5DAC0832的引腳及功能 83.674LS373的引腳及功能 93.7系統(tǒng)硬件原理 9第四章系統(tǒng)的軟件設(shè)計 114.1主程序流程圖 114.2波形的產(chǎn)生 12第五章系統(tǒng)調(diào)試與仿真結(jié)果 145.1系統(tǒng)調(diào)試 145.2仿真結(jié)果 14結(jié)論 15參考文獻(xiàn) 16附錄一程序 17附錄二仿真效果圖 22第一章緒論1.1課題背景波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號和用戶定義信號,并保證高精度、高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。函數(shù)波形發(fā)生器具有連續(xù)的相位變換、和頻率穩(wěn)定性等優(yōu)點,不但能夠模擬各種復(fù)雜信號,還可對頻率、幅值、相移、波形進(jìn)行動態(tài)、及時的控制,并能夠與其它儀器進(jìn)行通訊,組成自動測試系統(tǒng),因此被廣泛用于自動控制系統(tǒng)、震動激勵、通訊和儀器儀表領(lǐng)域。在70年代前,信號發(fā)生器主要有兩類:正弦波和脈沖波,而函數(shù)發(fā)生器介于兩類之間,能夠提供正弦波、余弦波、方波、三角波、上弦波等幾種常見標(biāo)準(zhǔn)波形,產(chǎn)生其它波形時需要采用較復(fù)雜的電路和機(jī)電結(jié)合的方法。這個時期的波形發(fā)生器多采用模擬電子技術(shù),而且模擬器件構(gòu)成的電路存在著尺寸大、價格貴、功耗大等缺點,而且要產(chǎn)生較為復(fù)雜的信號波形,則電路結(jié)構(gòu)非常復(fù)雜。同時,主要表現(xiàn)為兩個突出問題,一是經(jīng)過電位器的調(diào)節(jié)來實現(xiàn)輸出頻率的調(diào)節(jié),因此很難將頻率調(diào)到某一固定值;二是脈沖的占空比不可調(diào)節(jié)。在70年代后,微處理器的出現(xiàn),能夠利用處理器、A/D和D/A,硬件和軟件使波形發(fā)生器的功能擴(kuò)大,產(chǎn)生更加復(fù)雜的波形。這時期的波形發(fā)生器多以軟件為主,實質(zhì)是采用微處理器對DAC的程序控制,就能夠得到各種簡單波形。90年代末,出現(xiàn)幾種真正高性能、高價格的函數(shù)發(fā)生器、可是HP公司推出了型號為HP770S的信號模擬裝置系統(tǒng),它由HP8770A任意波形數(shù)字化和HP1776A波形發(fā)生軟件組成。HP8770A實際上也只能產(chǎn)生8中波形,而且價格昂貴。不久以后,Analogic公司推出了型號為Data-2020的多波形合成器,Lecroy公司生產(chǎn)的型號為9100的任意波形發(fā)生器等。到了二十一世紀(jì),隨著集成電路技術(shù)的高速發(fā)展,出現(xiàn)了多種工作頻率可過GHz的DDS芯片,同時也推動了函數(shù)波形發(fā)生器的發(fā)展,,Agilent的產(chǎn)品33220A能夠產(chǎn)生17種波形,最高頻率可達(dá)到20M,的產(chǎn)品N6030A能夠產(chǎn)生高達(dá)500MHz的頻率,采樣的頻率可達(dá)1.25GHz。由上面的產(chǎn)品能夠看出,函數(shù)波形發(fā)生器發(fā)展很快近幾年來,國際上波形發(fā)生器技術(shù)發(fā)展主要體現(xiàn)在以下幾個方面:(1)過去由于頻率很低應(yīng)用的范圍比較狹小,輸出波形頻率的提高,使得波形發(fā)生器能應(yīng)用于越來越廣的領(lǐng)域。波形發(fā)生器軟件的開發(fā)正使波形數(shù)據(jù)的輸入變得更加方便和容易。波形發(fā)生器一般允許用一系列的點、直線和固定的函數(shù)段把波形數(shù)據(jù)存入存儲器。同時能夠利用一種強(qiáng)有力的數(shù)學(xué)方程輸入方式,復(fù)雜的波形能夠由幾個比較簡單的公式復(fù)合成v=f(t)形式的波形方程的數(shù)學(xué)表示式產(chǎn)生。從而促進(jìn)了函數(shù)波形發(fā)生器向任意波形發(fā)生器的發(fā)展,各種計算機(jī)語言的飛速發(fā)展也對任意波形發(fā)生器軟件技術(shù)起到了推動作用。當(dāng)前能夠利用可視化編程語言(如VisualBasic,VisualC等等)編寫任意波形發(fā)生器的軟面板這樣允許從計算機(jī)顯示屏上輸入任意波形,來實現(xiàn)波形的輸入。(2)與VXI資源結(jié)合。當(dāng)前,波形發(fā)生器由獨立的臺式儀器和適用于個人計算機(jī)的插卡以及新近開發(fā)的VXI模塊。由于VXI總線的逐漸成熟和對測量儀器的高要求,在很多領(lǐng)域需要使用VXI系統(tǒng)測量產(chǎn)生復(fù)雜的波形,VXI的系統(tǒng)資源提供了明顯的優(yōu)越性,但由于開發(fā)VXI模塊的周期長,而且需要專門的VXI機(jī)箱的配套使用,使得波形發(fā)生器VXI模塊僅限于航空、軍事及國防等大型領(lǐng)域。在民用方面,VXI模塊遠(yuǎn)遠(yuǎn)不如臺式儀器更為方便。(3)隨著信息技術(shù)蓬勃發(fā)展,臺式儀器在走了一段下坡路之后,又重新繁榮起來。不過現(xiàn)在新的臺式儀器的形態(tài),和幾年前的己有很大的不同。這些新一代臺式儀器具有多種特性,能夠執(zhí)行多種功能。而且外形尺寸與價格,都比過去的類似產(chǎn)品減少了一半。1.2本系統(tǒng)研究的國內(nèi)外現(xiàn)狀早在1978年,由美國Wavetek公司和日本東亞電波工業(yè)公司公布了最高取樣頻率為5MHz,能夠形成256點(存儲長度)波形數(shù)據(jù),垂直分辨率為8bit,主要用于振動、醫(yī)療、材料等領(lǐng)域的第一代高性能信號源,經(jīng)過將近30年的發(fā)展,伴隨著電子元器件、電路、及生產(chǎn)設(shè)備的高速化、高集成化,波形發(fā)生器的性能有了飛速的提高,變得操作越來越簡單而輸出波形的能力越來越強(qiáng)。波形操作方法的好壞,是由波形發(fā)生器控制軟件質(zhì)量保證的,編輯功能增加得越多,波形形成的操作性越好。1.3本文主要研究內(nèi)容和工作近年來,波形發(fā)生器在各種領(lǐng)域中得到越來越廣泛的應(yīng)用。本系統(tǒng)主要經(jīng)過研究51單片機(jī)的功能,外加D/A轉(zhuǎn)換器等其它器件,進(jìn)行硬件設(shè)計和軟件編程,完成鋸齒波、梯形波、三角波、方波和正弦波共五種波形的形成。波形頻率的變化由程序來控制,即經(jīng)過改變定時器的初值來改變輸出波形相鄰兩點的時間間隔,從而實現(xiàn)波形頻率的改變。第二章方案論證2.1方案一純硬件設(shè)計法波形發(fā)生器設(shè)計的純硬件法早期,波形發(fā)生器的設(shè)計主要是采用運(yùn)算放大器加分立元件來實現(xiàn)。實現(xiàn)的波形比較單一,主要為正弦波、方波和三角波。工作原理嗍也相對簡單:首先是產(chǎn)生正弦波,然后經(jīng)過波形變換(正弦波經(jīng)過比較器產(chǎn)生方波,方波經(jīng)過積分器變?yōu)槿遣?實現(xiàn)方波和三角波。在各種波形后加上一級放大電路,能夠使輸出波形的幅度達(dá)到要求,經(jīng)過開關(guān)電路實現(xiàn)不同輸出波形的切換,改變電路的具體參數(shù)能夠?qū)崿F(xiàn)頻率、幅度和占空比的改變。經(jīng)過對電路結(jié)構(gòu)的優(yōu)化及所用元器件的嚴(yán)格選取能夠提高電路的頻率穩(wěn)定性和準(zhǔn)確度。純硬件法中,正弦波的設(shè)計是基礎(chǔ),實現(xiàn)方法也比較多,電路形式一般有LC、RC和石英晶體振蕩器三類。LC振蕩器適宜于產(chǎn)生幾Hz至幾百MHz的高頻信號;石英晶體振蕩器能產(chǎn)生幾百kHz至幾十MHz的高頻信號且穩(wěn)定度高;對于頻率低于幾MHz,特別是在幾百Hz時,常采用RC振蕩電路。RC振蕩電路又分為文氏橋振蕩電路、雙T網(wǎng)絡(luò)式和移相式振蕩電路等類型。其中,以文氏橋振蕩電路最為常見。當(dāng)前,實現(xiàn)波形發(fā)生器最簡單的方法是采用單片集成的函數(shù)信號發(fā)生器。它是將產(chǎn)生各種波形的功能電路集成優(yōu)化到一個集成電路芯片里,外加少量的電阻、電容元件來實現(xiàn)。采用這種方法的突出優(yōu)勢是電路簡單,實現(xiàn)方便,精度高,性能優(yōu)越;缺點是功能較全的集成芯片價格較貴。實際中應(yīng)用較多的單片函數(shù)信號發(fā)生器有MAX038(最高頻率可達(dá)40MHz)和ICL8038(最高頻率為300kHz)。2.2方案二純軟件設(shè)計法波形發(fā)生器的設(shè)計還能夠采用純軟件的方法來實現(xiàn)。虛擬儀器鞠使傳統(tǒng)儀器發(fā)生了革命性的變化,是21世紀(jì)測試儀器領(lǐng)域技術(shù)發(fā)展的重要方向。它以計算機(jī)為基礎(chǔ),軟件為核心,沒有傳統(tǒng)儀器那樣具體的物理結(jié)構(gòu).在計算機(jī)上實現(xiàn)儀器的虛擬面板,經(jīng)過軟件設(shè)計實現(xiàn)和改變儀器的功能。例如用圖形化編程工具LabVIEW來實現(xiàn)任意波形發(fā)生器的功能:在LabVIEW軟件的前面板經(jīng)過拖放控件,設(shè)計儀器的功能面板(如波形顯示窗口,波形選擇按鍵,波形存儲回放等工作界面),在軟件的后面板直接拖放相應(yīng)的波形函數(shù)并進(jìn)行參數(shù)設(shè)置或直接調(diào)用編程函數(shù)來設(shè)計任意波形以實現(xiàn)波形產(chǎn)生功能;完成的軟件打包后,可脫離編程環(huán)境獨立運(yùn)行。實現(xiàn)任意波形發(fā)生器的功能。采用純軟件的虛擬儀器設(shè)計思路能夠使設(shè)計簡單、高效,僅改變軟件程序就能夠輕松實現(xiàn)波形功能的改變或升級。從長遠(yuǎn)角度來看,純軟件法成本較低。軟件法的缺點是波形的響應(yīng)速度和精度遜色于硬件法。2.3方案三軟硬件結(jié)合法軟硬件結(jié)合的波形發(fā)生器設(shè)計方法同時兼具軟硬件設(shè)計的優(yōu)勢:既具有純硬件設(shè)計的快速、高性能,同時又具有軟件控制的靈活性、智能性。如以單片機(jī)和單片集成函數(shù)發(fā)生器為核心。輔以鍵盤控制、液晶顯示等電路,設(shè)計出智能型函數(shù)波形發(fā)生器,采用軟硬件結(jié)合的方法能夠?qū)崿F(xiàn)功能較全、性能更優(yōu)的波形發(fā)生器,同時還能夠擴(kuò)展波形發(fā)生器的功能,比如經(jīng)過軟件編程控制實現(xiàn)波形的存儲、運(yùn)算、打印等功能,采用USB接口設(shè)計。使波形發(fā)生器具有遠(yuǎn)程通信功能等。當(dāng)前,實驗、科研和工業(yè)生產(chǎn)中使用的信號源大多采用此方法來實現(xiàn)。純硬件設(shè)計法功能較單一,波形改變困難、控制的靈活性不夠,不具備智能性,其中由運(yùn)算放大器加分立元件組成的波形發(fā)生器,除在學(xué)生實驗訓(xùn)練中使用外。基本不被采用。純軟件設(shè)計法實現(xiàn)簡單,程序改變及功能升級靈活,但實現(xiàn)的波形精度及響應(yīng)速度不如硬件法高。純軟件法主要適用于對波形精度、響應(yīng)速度要求不是很高的場合。相比之下,軟硬件結(jié)合的方法能夠設(shè)計出性能最優(yōu)、功能擴(kuò)展靈活、控制智能化的新一代的波形發(fā)生器,能夠滿足教學(xué)、科研、工業(yè)生產(chǎn)等各方面對波形發(fā)生器性能有較高要求的應(yīng)用場合。綜合以上幾種設(shè)計方案,本設(shè)計采用方案三的方法—軟硬件設(shè)計法。其方案能夠產(chǎn)生很好的波形,也易實現(xiàn)。第三章系統(tǒng)硬件設(shè)計3.1內(nèi)部結(jié)構(gòu)概述典型的MCS-51單片機(jī)芯片集成了以下幾個基本組成部分:1)一個8位的CPU;2)128B或256B單元內(nèi)數(shù)據(jù)存儲器(RAM);3)4KB或8KB片內(nèi)程序存儲器(ROM或EPROM);4)4個8位并行I/O接口P0~P3;5)兩個定時/計數(shù)器;6)5個中斷源的中端管理控制系統(tǒng);7)一個全雙工串行I/O口UART(通用異步接收、發(fā)送器);8)一個片內(nèi)振蕩器和時鐘產(chǎn)生電路。圖3-1單片機(jī)引腳圖3.2P0~P3口結(jié)構(gòu)及功能3.2.1P0口結(jié)構(gòu)及功能P0口由一個輸出鎖存器、一個轉(zhuǎn)換開關(guān)MUX、兩個三態(tài)輸入緩沖器、輸出驅(qū)動電路和一個與門及一個反相器組成。P0口具有兩種功能:第一,P0口能夠用作通用I/O接口;第二,P0口能夠用作地址/數(shù)據(jù)總線。3.2.2P1口結(jié)構(gòu)及功能P1口是由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路組成,驅(qū)動電路內(nèi)部設(shè)有上拉電阻。3.2.3P2口結(jié)構(gòu)及功能P2口由一個輸出鎖存器、一個轉(zhuǎn)換開關(guān)MUX、兩個三態(tài)輸入緩沖器、輸出驅(qū)動電路和一個反相器組成。P2口共有兩個功能:第一個功能與上述兩組引腳的第一功能相同,即可用作通用I/O口;它的第二功能與P0口引腳的第二功能相配合,作為地址總線用于輸出片外存儲器的高8位。3.2.4P3口結(jié)構(gòu)及功能P3口由一個輸出鎖存器、三個三態(tài)輸入緩沖器、輸出驅(qū)動電路和一個與非門組成。P3口有兩個功能:第一個功能與其余三個端口的第一功能相同;第二功能做控制用,每個引腳的功能不同:P3.0——RXD:串行口接收數(shù)據(jù)輸入端P3.1——TXD:串行口發(fā)送數(shù)據(jù)輸出端P3.2——INT0:外部中斷申請輸入端0P3.3——INT1:外部中斷申請輸入端1P3.4——T0:外部計數(shù)脈沖輸入端0P3.5——T1:外部計數(shù)脈沖輸入端1P3.6——WR:寫外設(shè)控制信號輸出端P3.7——RD:讀外設(shè)控制信號輸出端3.3時鐘電路和復(fù)位電路單片機(jī)的時鐘信號用來提供單片機(jī)內(nèi)各種微操作的時間基準(zhǔn);復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。3.3.1時鐘電路單片機(jī)的時鐘信號一般有兩種產(chǎn)生方式。一種是內(nèi)部時鐘方式;另一種是外部時鐘方式。圖3-2時鐘方式圖內(nèi)部時鐘方式只要在單片機(jī)的XTAL1和XTAL2引腳外接晶振就構(gòu)成了自激振蕩器,并在單片機(jī)內(nèi)部產(chǎn)生時鐘脈沖信號。外部時鐘方式是把外部已有的時鐘信號引入到單片機(jī)內(nèi),常見于多片單片機(jī)同時工作,已使各單片機(jī)同步。單片機(jī)的時序單位:晶振周期為時鐘脈沖頻率的倒數(shù),為最小的時序單位,也稱T狀態(tài);時鐘周期包含兩個晶振周期,也稱S狀態(tài);完成一個基本操作所需要的時間稱為機(jī)器周期,由6個時鐘周期組成,即12個晶振周期;指令的執(zhí)行時間稱為指令周期,一般含有1~4個機(jī)器周期。3.3.2單片機(jī)的復(fù)位狀態(tài)當(dāng)MCS-51系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機(jī)器周期以上的高電平時,單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作一般有兩種基本形式:上電復(fù)位和手動復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。手動復(fù)位是當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時,按下復(fù)位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復(fù)位的操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機(jī)冷啟動后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個特殊功能寄存器復(fù)位后的狀態(tài)為確定值。3.4系統(tǒng)硬件總體設(shè)計波形的產(chǎn)生是經(jīng)過51單片機(jī)執(zhí)行某一波形發(fā)生器程序,向D/A轉(zhuǎn)換器的輸入端按一定的規(guī)律發(fā)生數(shù)據(jù),從而在D/A轉(zhuǎn)換電路的輸出端得到相應(yīng)的電壓波形。鍵盤鍵盤AT89C51DAC0832運(yùn)放電路波形輸出圖3-3總體設(shè)計圖3.5DAC0832的引腳及功能DAC0832是雙列直插式8位D/A轉(zhuǎn)換器,完成數(shù)字量輸入到模擬量輸出的轉(zhuǎn)換。圖3-4DAC0832引腳圖DAC0832結(jié)構(gòu):D0~D7:8位的數(shù)據(jù)輸入端,D7為最高位,TTL電平,有效時間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會出錯);ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;CS:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ms)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生,當(dāng)LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時將輸入數(shù)據(jù)鎖存;XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ms)有效。WR2:DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ms)有效。由WR1、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負(fù)跳變時將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開始D/A轉(zhuǎn)換。IOUT1:模擬電流輸出端1,當(dāng)DAC寄存器中數(shù)據(jù)全為1時,輸出電流最大,當(dāng)DAC寄存器中數(shù)據(jù)全為0時,輸出電流為0。IOUT2:模擬電流輸出端2,IOUT2與IOUT1的和為一個常數(shù)。Rfb:反饋信號輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度。Vcc:電源輸入端,范圍為(+5~+15)V。VREF:基準(zhǔn)電壓輸入線,范圍為(-10~+10)V;AGND:模擬信號地。DGND:數(shù)字信號地。3.674LS373的引腳及功能74LS373是常見的地址鎖存器芯片,它實質(zhì)是一個帶三態(tài)緩沖輸出的8D觸發(fā)器。D0~D7:數(shù)據(jù)輸入端;Q0~Q7:數(shù)據(jù)輸出端;OE:三態(tài)允許控制端,低電平有效;當(dāng)OE為低電平時,Q0~Q7為正常邏輯狀態(tài),可用來驅(qū)動負(fù)載或總線;當(dāng)OE為高電平時,Q0~Q7呈高阻態(tài),既不驅(qū)動總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。LE:鎖存允許端。當(dāng)鎖存允許端LE為高電平時,Q隨數(shù)據(jù)D而變;當(dāng)LE為低電平時,Q被鎖存在已建立的數(shù)據(jù)電平。圖3-574LS373引腳圖3.7系統(tǒng)硬件原理51單片機(jī)的最小系統(tǒng)最小系統(tǒng)由振蕩電路、電源電路、復(fù)位電路、EA及應(yīng)用程序組成。它有三種聯(lián)接方式。一種是兩級緩沖器型,即輸入數(shù)據(jù)經(jīng)過兩級緩沖器型,即輸入數(shù)據(jù)經(jīng)過兩級緩沖器后,送入D/A轉(zhuǎn)換電路。第二種是單級緩沖型,輸入數(shù)據(jù)經(jīng)輸入寄存器直接送入DAC寄存器,然后送D/A轉(zhuǎn)換電路。第三種是兩個緩沖器直通,輸入數(shù)據(jù)直接送D/A轉(zhuǎn)換電路進(jìn)行轉(zhuǎn)換。3.圖3-6系統(tǒng)原理圖第四章系統(tǒng)的軟件設(shè)計系統(tǒng)軟件由主程序和產(chǎn)生波形的子程序組成,軟件設(shè)計主要是產(chǎn)生各種波形的子程序的編程。經(jīng)過編程可得到各種波形。頻率的改變可采用插入延時子程序的方法來實現(xiàn)。4.1主程序流程圖開始初始化讀取波形選擇開關(guān)調(diào)波形發(fā)生子程序結(jié)束波形轉(zhuǎn)換否是否波形判別開始初始化讀取波形選擇開關(guān)調(diào)波形發(fā)生子程序結(jié)束波形轉(zhuǎn)換否是否波形判別圖4-1主程序流程圖4.2波形的產(chǎn)生4.2.1設(shè)計思路利用中斷,當(dāng)5個開關(guān)中有任意一個閉合時,跳轉(zhuǎn)至中斷程序,在中斷程序中判斷是哪一個按鍵閉合,跳轉(zhuǎn)至相應(yīng)的程序,執(zhí)行輸出波形的操作,每輸出一個點之后,判斷按鍵是否斷開,如果依舊閉合,則繼續(xù)輸出,如果已經(jīng)斷開,則結(jié)束中斷程序。函數(shù)波形發(fā)生器函數(shù)波形發(fā)生器K0鋸齒波K1梯形波K2三角波K3方波K4正弦波圖4-2主程序流程圖4.2.2鋸齒波的產(chǎn)生鋸齒波的實現(xiàn)過程是首先定義一個初值然后進(jìn)行加法操作,加的步數(shù)的多少則根據(jù)要求的頻率來進(jìn)行。然后加到某個數(shù)之后就再重新設(shè)置為初值,再重復(fù)執(zhí)行剛剛的操作,如此循環(huán)下去。4.2.3梯形波的產(chǎn)生梯形波的實現(xiàn)是設(shè)置一個初值,然后進(jìn)行加一,當(dāng)加到某個數(shù)時延時,之后減一,減到初值時在返回到之前的操作,繼續(xù)加一、延時、減一。4.2.4三角波的產(chǎn)生三角波的實現(xiàn)是設(shè)置一個初值,當(dāng)加到某個值的時候,執(zhí)行減一操作,減到初值時,再加一。4.2.5方波的產(chǎn)生方波的實現(xiàn)只需開始的時候設(shè)置一個初值然后直接輸出這個值就行了,輸出一段時間后,然后再重新置一個數(shù)據(jù),然后再輸出這個數(shù)據(jù)一段時間,可是此時的時間一定要等于前面那段時間。4.2.6正弦波的產(chǎn)生正弦波的實現(xiàn)需要查表,每查一次表,輸出一個數(shù)值,之后查下一個數(shù)值繼續(xù)輸出,當(dāng)一個波形的256個數(shù)值全部輸出之后,從頭開始繼續(xù)輸出。第五章系統(tǒng)調(diào)試與仿真結(jié)果5.1系統(tǒng)調(diào)試根據(jù)系統(tǒng)設(shè)計方案,本系統(tǒng)的調(diào)試共分為三大部分:仿真電路調(diào)試,程序調(diào)試和程序和仿真電路聯(lián)調(diào)。由于在系統(tǒng)設(shè)計中采用模塊設(shè)計法,因此方便對各電路模塊功能進(jìn)行逐級測試。5.1.1對各個模塊的功能進(jìn)行調(diào)試,主要調(diào)試各模塊能否實現(xiàn)指定的功能。調(diào)試結(jié)果表明,各模塊能夠?qū)崿F(xiàn)其預(yù)期功能。5.1.2軟件調(diào)試采用keilc軟件,將編好的程序進(jìn)行調(diào)試,主要是檢查語法錯誤。在此過程中,發(fā)現(xiàn)了好多錯誤。要耐心調(diào)試。5.1.3將調(diào)試好的仿真電路和程序進(jìn)行聯(lián)調(diào),主要調(diào)試系統(tǒng)的實現(xiàn)功能。只要程序調(diào)試完成,線路連好,本步?jīng)]有困難。5.2仿真結(jié)果在Proteus軟件中運(yùn)行仿真。按下K0鍵時,示波器輸出鋸齒波;按下K1鍵時輸出梯形波;按下K2鍵時輸出三角波;按下K3鍵時輸出方波;按下K4鍵時輸出正弦波。具體波形見附錄二。結(jié)論本次的設(shè)計中利用AT89C51和DAC0832以及放大器完成電路的設(shè)計,用開關(guān)來控制各種波形的發(fā)生及轉(zhuǎn)換,用單片機(jī)輸出后,經(jīng)過模數(shù)轉(zhuǎn)換器生成波形,最終能夠經(jīng)過示波器觀察。在這次的軟件設(shè)計中,程序設(shè)計采用的是匯編語言。匯編語言具有速度快,能夠直接對硬件進(jìn)行操作的優(yōu)點,它能夠極好的發(fā)揮硬件的功能??墒菂R編語言也存在編寫的代碼非常難懂,不好維護(hù),很容易產(chǎn)生bug,難于調(diào)試的缺點。因此,在大型程序的設(shè)計中,多采用C語言進(jìn)行程序編譯。C語言簡潔高效,是最貼近硬件的高級編程語言,經(jīng)過多年的發(fā)展,現(xiàn)在已成熟為專業(yè)水平的高級語言。而且,現(xiàn)在單片機(jī)產(chǎn)品推出時紛紛配套了C語言編譯器,應(yīng)用廣泛。不過就本次課程設(shè)計來說,匯編語言還是適用的。由于此次是第一次進(jìn)行課設(shè),有些軟件以及芯片以前從未接觸過,因此還不是很得心應(yīng)手,因此在設(shè)計中遇到了很多問題及難點。比如:proteus軟件以及wave6000的使用;D/A轉(zhuǎn)換器和鎖存器的結(jié)構(gòu)、功能等等,這些都需要自己去查找資料了解這些。經(jīng)過此次的課程設(shè)計,我進(jìn)一步了解了波形發(fā)生器的原理,在實際動手操作過程中,使我接觸了許多我以前沒接觸過的元件,提高了自己的動手能力。而且在編程時重新溫習(xí)了剛學(xué)不久的51單片機(jī)以及MATLAB語言,不但讓我學(xué)習(xí)了一些新的知識,而且對以前所學(xué)內(nèi)容進(jìn)行了鞏固,讓我懂得理論知識的重要性,沒有理論的指導(dǎo)一切實際行動都是盲目的,且實際操作是所學(xué)的理論知識得到驗證,更能加深對理論知識的理解,讓我受益匪淺。參考文獻(xiàn)[1]陳志旺,李亮。51單片機(jī)快速上手。機(jī)械工業(yè)出版社。[2]薛定宇。控制系統(tǒng)計算及輔助設(shè)計——MATLAB語言與應(yīng)用(第2版)。清華大學(xué)出版社。[3]鄒虹。單片機(jī)波形發(fā)生器的設(shè)計。重慶郵電學(xué)院學(xué)報。[4]毅剛,彭喜元。單片機(jī)原理與應(yīng)用設(shè)計。電子工業(yè)出版社。[5]楊素行.模擬電子技術(shù)基礎(chǔ)簡明教程(第三版)[M].北京:高等教育出版社,.[6]AltiumDesigner原理圖與PCB設(shè)計[M].北京:電子工業(yè)出版社.[7]譚浩強(qiáng).C程序設(shè)計(第2版)[M].北京:清華大學(xué)出版社1999.[8]陳明義.電子技術(shù)教程設(shè)計實用教程(第3版)[M].長沙:中南大學(xué),.[9]馬曉.函數(shù)信號發(fā)生器的設(shè)計[D].河南.[10]李華.MCS-51系列單片機(jī)實用接口技術(shù)[M].[11]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].[12]閻石.模擬電子技術(shù)基礎(chǔ)[M].附錄一程序ORG0000HLJMPMAINORG0003H外部中斷0LJMPINT00ORG0040HMAIN:MOVSP,60H;更改堆棧指針,避免堆棧與工作寄存器區(qū)發(fā)生沖突SETBIT0;外部中斷請求0為下降沿觸發(fā)方式SETBEA;中斷允許總開關(guān)打開SETBEX0;允許外部中斷0中斷INT00:CLREA;關(guān)中斷PUSHPSW;現(xiàn)場保護(hù)PUSHAccSETBEA;開中斷JNBP1.0,IR0;如果K0鍵閉合,則跳轉(zhuǎn)至IR0輸出鋸齒波JNBP1.1,IR1;如果K1鍵閉合,則跳轉(zhuǎn)至IR1輸出梯形波JNBP1.2,IR2;如果K2鍵閉合,則跳轉(zhuǎn)至IR2輸出三角波JNBP1.3,IR3;如果K3鍵閉合,則跳轉(zhuǎn)至IR3輸出方波JNBP1.4,IR4;如果K4鍵閉合,則跳轉(zhuǎn)至IR4輸出正弦波INTIR:CLREA;關(guān)中斷POPAcc;現(xiàn)場恢復(fù)POPPSWSETBEA;開中斷RETI鋸齒波發(fā)生子程序如下:IR0:MOVR0,#0FEH設(shè)置端口地址MOVA,#00HLOOP:MOVX@R0,A;寫入JBP1.0,INTIR;如果k0鍵已經(jīng)斷開,則返回INCA;A加一SJMPLOOP;循環(huán)LJMPINTIR;返回梯形波發(fā)生子程序如下:IR1:MOVR0,#0FEH;設(shè)置端口地址MOVA,#00HUP:MOVX@R0,A;寫入JBP1.1,INTIR;如果k1鍵已經(jīng)斷開,則返回INCA;A加一JNZUP;循環(huán)DECA;如果已經(jīng)溢出,則減一,減一之后A的值為255LCALLDELAY;延時JBP1.1,INTIR;如果k1鍵已經(jīng)斷開,則返回DOWN:DECA;MOVX@R0,A;寫入JBP1.1,INTIR;如果k1鍵已經(jīng)斷開,則返回JNZDOWN;循環(huán)SJMPUP;如果減到0,則跳轉(zhuǎn)至UP,繼續(xù)執(zhí)行加一操作LJMPINTIR;返回DELAY:MOVR7,#100;延時子程序DELAY1:MOVR6,#10NOPDELAY2:DJNZR6,DELAY2DJNZR7,DELAY1RET三角波發(fā)生子程序如下:IR2:MOVR0,#0FEH;設(shè)置端口地址MOVA,#00HUP2:MOVX@R0,A;寫入JBP1.2,INTIR;如果k2鍵已經(jīng)斷開,則返回INCA;A加一JNZUP2;循環(huán)DOWN2:DECA;A減一MOVX@R0,A;寫入JBP1.2,INTIR;如果k2鍵已經(jīng)斷開,則返回JNZDOWN2;循環(huán)SJMPUP2;如果減到0,則跳轉(zhuǎn)至UP2,繼續(xù)加一操作LJMPINTIR;返回方波發(fā)生子程序如下:IR3:MOVR0,#0FEH;設(shè)置端口地址POSI:MOVA,#00H;給A賦值0x00MOVX@R0,A;寫入LCALLDELAY;延時JBP1.3,INTIR;如果k3鍵已經(jīng)斷開,則返回NEGA:MOVA,#0FFH;給A賦值0xFFMOVX@R0,A;寫入LCALLDELAY;延時JBP1.3,INTIR;如果k3鍵已經(jīng)斷開,則返回SJMPPOSI;跳轉(zhuǎn)至POSI,繼續(xù)下一個波形的輸出LJMPINTIR;返回正弦波發(fā)生子程序如下:IR4:MOVR0,#0FEH;設(shè)置端口地址MOVR1,#00HXX:MOVA,R1LCALLHANSHU;調(diào)用查表函數(shù)MOVX@R0,A;寫入JBP1.4,INTIR;如果k4鍵已經(jīng)斷開,則返回INCR1SJMPXX;繼續(xù)查表LJMPINTIR;返回HANSHU:MOVDPTR,#TAB1MOVCA,@A+DPTRRETTAB1:db080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aehdb0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8hdb0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4hdb0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh

溫馨提示

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

評論

0/150

提交評論