【正文】
摘要摘 要基于89C52單片機(jī)的波形發(fā)生器。其設(shè)計(jì)簡(jiǎn)單、性能優(yōu)好,可用于多種需要低頻信號(hào)的場(chǎng)所,具有一定的實(shí)用性,在現(xiàn)實(shí)生活中已經(jīng)得到廣泛的運(yùn)用硬件設(shè)計(jì)是采用89C51單片機(jī)作為控制核心,外圍采用數(shù)字/模擬轉(zhuǎn)換電路(DAC0832)、運(yùn)放電路(LM324)、和獨(dú)立聯(lián)接式按鍵。軟件設(shè)計(jì)是通過(guò)兩個(gè)中斷分別控制波形的選擇和幅值的選擇,其中INT1比INT0的優(yōu)先級(jí)要高,因此幅值的程序就放在INT1的子程序中,這樣就能先判斷是否要調(diào)幅值再判斷輸出哪種波形。設(shè)計(jì)基本完成任務(wù),產(chǎn)生正弦波、三角波、方波和鋸齒波四種波形??梢酝ㄟ^(guò)鍵盤選擇波型和五個(gè)幅值的調(diào)整。另外,我采用KEIL和PROTEUS去仿真,以達(dá)到驗(yàn)證作品功能的目的。關(guān)鍵詞: 波形發(fā)生器,單片機(jī)89C52,DAC0832IIIABSTRACTABSTRACTBased on the 89C52 microcontroller waveform generator. Its simple design, excellent performance, and can be used for a variety of lowfrequency signals need a place, has a certain practical, in real life has been widely used89C51 microcontroller hardware design is used as the control core, external digital / analog converter (DAC0832), operational amplifiers (LM324), and independent connection type button.Software design is interrupted by two separate control waveform selection and the choice of amplitude, which INT1 INT0 priority than the higher, the amplitude of the procedures to a subroutine on the INT1, so you can first determine whether AM and then determine what the value of the output waveform.Basic design is pleted the task, resulting in sine wave, triangle wave, square wave, and sawtooth waveforms of four. You can choose the keyboard and fivewave amplitude adjustment. Also, I used to go KEIL and PROTEUS simulation capabilities in order to achieve the purpose of verification work.KEY WORDS: Waveform generator, Microcontroller 89C52, DAC0832目錄目錄摘 要 IABSTRACT III第一章 緒論 1 1 1 本論文所做的工作 2 本論文的結(jié)構(gòu)安排 2第2章系統(tǒng)總體設(shè)計(jì) 3 3 3 3 3第3章系統(tǒng)硬件設(shè)計(jì) 9 9 9 10 10 按鍵電路 10(MC1458) 11第4章系統(tǒng)軟件設(shè)計(jì) 13 13 17 19 20 21 22第5章 波形發(fā)生器的調(diào)試 25 25 30 31 31第六章 結(jié)論與展望 33 結(jié)論 33 展望 33致 謝 35參考文獻(xiàn) 37附錄1 Proteus原理圖 39附錄2 源程序 41附錄3 外文翻譯 4561緒論第一章 緒論單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。波形發(fā)生器是一種數(shù)據(jù)信號(hào)發(fā)生器,在調(diào)試硬件時(shí),常常需要加入一些信號(hào),以觀察電路工作是否正常。用一般的信號(hào)發(fā)生器,不但笨重,而且只發(fā)一些簡(jiǎn)單的波形,不能滿足需要。例如用戶要調(diào)試串口通信程序時(shí),就要在計(jì)算機(jī)上寫好一段程序,再用線連接計(jì)算機(jī)和用戶實(shí)驗(yàn)板,如果不正常,不知道是通訊線有問(wèn)題還是程序有問(wèn)題。用E2000/L的波形發(fā)生器功能,就可以定義串口數(shù)據(jù)。通過(guò)邏輯探勾輸出,調(diào)試起來(lái)簡(jiǎn)單快捷?;趩纹瑱C(jī)的簡(jiǎn)易波形發(fā)生器是一種常用的信號(hào)源,它廣泛地應(yīng)用在電子技術(shù)實(shí)驗(yàn)、自動(dòng)控制系統(tǒng)和其他科研領(lǐng)域。目前, 簡(jiǎn)易波形發(fā)生器的構(gòu)成方法有很多,例如采用DDS(Direct2Digital Synthesis)型的任意波發(fā)生器、采用專用的信號(hào)發(fā)生芯片MAX038以及傳統(tǒng)的AWG 。本設(shè)計(jì)通過(guò)分析比較后采用傳統(tǒng)的方法來(lái)實(shí)現(xiàn)多功能波形發(fā)生器。借助高性能單片機(jī)運(yùn)算速度高,系統(tǒng)集成度強(qiáng)的優(yōu)勢(shì),設(shè)計(jì)的這種信號(hào)發(fā)生器,比以前的數(shù)字式信號(hào)發(fā)生器具有硬件簡(jiǎn)單,理解及實(shí)現(xiàn)起來(lái)較容易,該方案的設(shè)計(jì)思路較為清晰,且容易對(duì)頻率和幅值進(jìn)行控制等優(yōu)點(diǎn)。任意波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號(hào)和用戶定義信號(hào),并保證高精度、高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。任意波形發(fā)生器具有連續(xù)的相位變換、和頻率穩(wěn)定性等優(yōu)點(diǎn),不僅可以模擬各種復(fù)雜信號(hào),還可對(duì)頻率、幅值、相移、波形進(jìn)行動(dòng)態(tài)、及時(shí)的控制,并能夠與其它儀器進(jìn)行通訊,組成自動(dòng)測(cè)試系統(tǒng),因此被廣泛用于自動(dòng)控制系統(tǒng)、震動(dòng)激勵(lì)、通訊和儀器儀表領(lǐng)域。 近幾年來(lái),國(guó)際上任意波形發(fā)生器技術(shù)發(fā)展主要體現(xiàn)在以下幾個(gè)方面:(1)過(guò)去由于頻率很低應(yīng)用的范圍比較狹小,輸出波形頻率的提高,使得任意波形發(fā)生器能應(yīng)用于越來(lái)越廣的領(lǐng)域。任意波形發(fā)生器軟件的開(kāi)發(fā)正使任意波形的輸入變得更加方便和容易。任意波形發(fā)生器通常允許用一系列的點(diǎn)、直線和固定的函數(shù)段把波形數(shù)據(jù)存入存儲(chǔ)器。同時(shí)可以利用一種非常強(qiáng)有力的數(shù)學(xué)方程輸入方式,復(fù)雜的波形可以由幾個(gè)比較簡(jiǎn)單的公式復(fù)合成v=f(t)形式的波形方程的數(shù)學(xué)表達(dá)式產(chǎn)生。各種計(jì)算機(jī)語(yǔ)言的飛速發(fā)展也推動(dòng)了任意波形發(fā)生器軟件技術(shù)的發(fā)展。目前可以利用可視化編程語(yǔ)言(如Visual Basic Visual C等等)編寫任意波形發(fā)生器的軟面板,這樣允許徒手從計(jì)算機(jī)顯示屏上輸入任意波形,來(lái)實(shí)現(xiàn)波形的輸入。(2)隨著信息技術(shù)蓬勃發(fā)展,臺(tái)式儀器在走了一段下坡路之后,有在繁榮起來(lái)。不過(guò)現(xiàn)在的新的臺(tái)式儀器的形態(tài),和幾年前的已有很大的不同。這些新一代臺(tái)式儀器具有多種特性,可以執(zhí)行多種功能。而且外形尺寸與價(jià)格,都比過(guò)去的類似產(chǎn)品減少了一半。 本論文所做的工作本論文主要進(jìn)行了以下工作:(1)通過(guò)查閱相關(guān)資料,學(xué)習(xí)信號(hào)發(fā)生器的工作原理及了解其應(yīng)用場(chǎng)合。(2)復(fù)習(xí)“MCS51單片機(jī)原理及其系統(tǒng)設(shè)計(jì)”,掌握其接口擴(kuò)展包括:顯示鍵盤等(3)掌握單片機(jī)仿真軟件keil3和Proteus的使用(4)組建基于單片機(jī)的信號(hào)發(fā)生器系統(tǒng),畫出總體結(jié)構(gòu)框圖(5)采用匯編語(yǔ)言編寫應(yīng)用程序,輸出不同波形,幅度可以調(diào)節(jié)并且在示波器上顯示(6)最后完成對(duì)系統(tǒng)測(cè)試結(jié)果的統(tǒng)計(jì)和分析(7)撰寫論文。 本論文的結(jié)構(gòu)安排全文共分為六章,本章介紹本課題的研究現(xiàn)狀和選題目的意義等;第二章介紹波形發(fā)生器設(shè)計(jì)的總體方案與論證;第三章介紹波形發(fā)生器系統(tǒng)硬件電路的設(shè)計(jì);第四章介紹波形發(fā)生器系統(tǒng)功能的軟件設(shè)計(jì)(信號(hào)產(chǎn)生、D/A轉(zhuǎn)換等的軟件設(shè)計(jì)),并給出了各個(gè)子模塊的程序流程圖;第五章介紹了系統(tǒng)的調(diào)試過(guò)程和調(diào)試結(jié)果,并對(duì)系統(tǒng)調(diào)試過(guò)程中出現(xiàn)的問(wèn)題進(jìn)行了分析,給出了相應(yīng)的解決方案。第六章結(jié)論和展望。系統(tǒng)總體設(shè)計(jì)第2章系統(tǒng)總體設(shè)計(jì)本系統(tǒng)是以單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832以及8個(gè)按鍵盤共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見(jiàn)波形的產(chǎn)生及幅值調(diào)節(jié)的功能。按鈕開(kāi)關(guān)單片機(jī)控制單元D/A示波器圖21系統(tǒng)原理框主要功能是實(shí)現(xiàn)利用單片機(jī)AT89C51和8位D/A轉(zhuǎn)換芯片DAC0832共同實(shí)現(xiàn)正弦波,方波,三角波,鋸齒波這四種常見(jiàn)波形的發(fā)生,并且通過(guò)按鍵利用DAC接口實(shí)現(xiàn)波形發(fā)生器可以產(chǎn)生鋸齒波、三角波、方波和正弦波等常用標(biāo)準(zhǔn)波形。,,當(dāng)相應(yīng)的控制鍵按下后,出現(xiàn)相應(yīng)的波形主要性能指標(biāo)正弦波的頻率范圍:,上限頻率暫時(shí)不確定,但應(yīng)盡量提高,對(duì)于四種波形它們的幅值都有五種即1V、2V、3V、4V和5V。 方案:采用單片機(jī)(AT89S51)和數(shù)模轉(zhuǎn)換芯片(DAC0832)實(shí)現(xiàn)波形的產(chǎn)生,波形的產(chǎn)生由程序控制,向D/A的輸入端按一定的規(guī)律發(fā)送數(shù)據(jù),經(jīng)過(guò)D/A和LM324輸出,通過(guò)兩個(gè)中斷控制不同波形的產(chǎn)生。此方案通過(guò)編程簡(jiǎn)化了外部電路,原理簡(jiǎn)單,容易實(shí)現(xiàn)。該波形發(fā)生器有以下幾部分組成:(1)控制模塊(2)按鍵(3)采樣模塊三部分組成。(1)控制模塊:方案:用單片AT89C51作為系統(tǒng)的主控核心。單片機(jī)具有體積小,使用靈活的,易于人機(jī)對(duì)話和良好的數(shù)據(jù)處理,有較強(qiáng)的指令尋址和運(yùn)算功能等優(yōu)點(diǎn)。且單片機(jī)功耗低,價(jià)格低廉的優(yōu)點(diǎn)。 89S52單片機(jī)有44個(gè)引腳PLCC和TQFP方形封裝形式,40個(gè)引腳的雙列直插式封裝形式,最常用的40個(gè)引腳封裝形式及其配置如圖31所示,各個(gè)引腳功能說(shuō)明如圖22: 圖22 單片機(jī)GND:接地P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P1 輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,()和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(),具體如表11所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如表12所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。RST:復(fù)位輸入。晶振工作時(shí),RST腳將持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,RST 腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置 “1”,ALE操作將無(wú)效。這一位置 “1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。:外部程序存儲(chǔ)器選通信號(hào)()是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在flash編程期間,也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。(2)按鍵方案:采用傳統(tǒng)的獨(dú)立式按鍵;用傳統(tǒng)的LED段選位選的方式進(jìn)行波形的切換及顯示。這種方式占用系統(tǒng)資源較多,并且效率低,程系編寫大量而復(fù)雜。(3)采樣模塊:采用ADC0832DAC0832基本介紹DAC0832是雙列直插式8位D/A轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。圖23為DAC0832的引腳圖。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時(shí)間為1μs,滿量程誤差為177。1LSB,參考電壓(+10/span10)V,供電電源為(+5~+15)V,邏輯電平輸入與TTL兼容