摘要
設(shè)計(jì)了一個(gè)基于DAC0832的信號發(fā)生器,使之輸出不同頻率的正弦波、三角波、鋸齒波和方波,并通過按鍵切換不同的波形,也可以改變頻率以及頻率變化的步進(jìn)。本方案選擇了DAC0832作為核心芯片,并與51單片機(jī)結(jié)合,設(shè)計(jì)出一款建議的高精度頻率信號發(fā)生器,具有體積小功率等優(yōu)點(diǎn)。DAC0832是國家半導(dǎo)體公司生產(chǎn)的一款DA轉(zhuǎn)換器。為了實(shí)現(xiàn)幅度可程控的功能,這里選用了2個(gè)DAC0832芯片完成功能,其中一個(gè)用來產(chǎn)生波形,另外一個(gè)設(shè)計(jì)成程控放大器進(jìn)行改變幅度,它的放大倍數(shù)通過DAC0832的數(shù)字端口來實(shí)現(xiàn),根據(jù)設(shè)定的輸出幅值,單片機(jī)只需要通過公式換算出給予的對應(yīng)電平。所有要輸出的參數(shù)都能通過液晶LCD1602顯示。
關(guān)鍵詞:單片機(jī); LCD1602;信號發(fā)生器;DAC0832
1?引言
1.1?目的和意義
信號發(fā)生器亦稱信號發(fā)生器,主要作為實(shí)驗(yàn)用信號源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一。目前,市場上常見的波形發(fā)生器多為純硬件的搭接而成,波形種類多為鋸齒、正弦、方波、三角等波形。用分立元件組成的信號發(fā)生器,通常是單信號發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試;用集成芯片的信號發(fā)生器,可達(dá)到較高的頻率和產(chǎn)生多種波形信號,但電路較為復(fù)雜且不易調(diào)試。利用DA轉(zhuǎn)換器配合單片機(jī)可以實(shí)現(xiàn)波形產(chǎn)生的功能,而且可以根據(jù)需要進(jìn)行調(diào)整,設(shè)計(jì)靈活。
當(dāng)今是科學(xué)技術(shù)及儀器設(shè)備高度智能化飛速發(fā)展的信息社會,電子技術(shù)的進(jìn)步,給人們帶來了根本性的轉(zhuǎn)變?,F(xiàn)代電子領(lǐng)域中,單片機(jī)的應(yīng)用正在不斷的走向深入,這必將導(dǎo)致傳統(tǒng)控制與檢測技術(shù)的日益革新。單片機(jī)構(gòu)成的儀器具有高可靠性、高性能價(jià)格比,在智能儀表系統(tǒng)和辦公自動化等諸多領(lǐng)域得以極為廣泛的應(yīng)用,并走入家庭,從洗衣機(jī)、微波爐到音響汽車,處處可見其應(yīng)用。因此,單片機(jī)技術(shù)開發(fā)和應(yīng)用水平已逐步成為一個(gè)國家工業(yè)發(fā)展水平的標(biāo)志之一。
信號發(fā)生器作為一種常見的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的一般可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制難,可調(diào)范圍小,電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過程控制,生物醫(yī)學(xué),地震模擬機(jī)械振動等領(lǐng)域常常要用到低頻信號源。而由硬件電路構(gòu)成的低頻信號其性能難以令人滿意,而且由于低頻信號源所需的RC要很大。大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證。體積大,漏電,損耗顯著更是其致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會大大增加。
信號發(fā)生器作為一種常見的電子儀器設(shè)備,既能夠構(gòu)成獨(dú)立的信號源,也可以是高新能的網(wǎng)絡(luò)分析儀,頻譜儀以及自動測試裝備的組成部分,信號信號發(fā)生器的關(guān)鍵技術(shù)是多種高性能儀器的支的組成部分,信號信號發(fā)生器的關(guān)鍵技術(shù)是多種高性能儀器的支撐技術(shù),因?yàn)樗悄軌蛱岣哔|(zhì)量的精密信號源及掃描源,可使相應(yīng)系統(tǒng)的檢測過程大大簡化,降低檢測費(fèi)用并且提高檢測精度。
1.2 研究概況及發(fā)展趨勢
波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號和用戶定義信號,并保證高精度、高穩(wěn)定性、可重復(fù)性和易操作性的電子儀器。信號波形發(fā)生器具有連續(xù)的相位變換、和頻率穩(wěn)定性等優(yōu)點(diǎn),不僅可以模擬各種復(fù)雜信號,還可對頻率、幅值、相移、波形進(jìn)行動態(tài)、及時(shí)的控制,并能夠與其它儀器進(jìn)行通訊,組成自動測試系統(tǒng),因此被廣泛用于自動控制系統(tǒng)、震動激勵(lì)、通訊和儀器儀表領(lǐng)域。在?70 年代前,信號發(fā)生器主要有兩類:正弦波和脈沖波,而信號發(fā)生器介于兩類之間,能夠提供正弦波、余弦波、方波、三角波、上弦波等幾種常用標(biāo)準(zhǔn)波形,產(chǎn)生其它波形時(shí),需要采用較復(fù)雜的電路和機(jī)電結(jié)合的方法。這個(gè)時(shí)期的波形發(fā)生器多采用模擬電子技術(shù),而且模擬器件構(gòu)成的電路存在著尺寸大、價(jià)格貴、功耗大等缺點(diǎn),并且要產(chǎn)生較為復(fù)雜的信號波形,則電路結(jié)構(gòu)非常復(fù)雜。同時(shí),主要表現(xiàn)為兩個(gè)突出問題,一是通過電位器的調(diào)節(jié)來實(shí)現(xiàn)輸出頻率的調(diào)節(jié),因此很難將頻率調(diào)到某一固定值;二是脈沖的占空比不可調(diào)節(jié)。在 70 年代后,微處理器的出現(xiàn),可以利用處理器、A/D/和 D/A,硬件和軟件使波形發(fā)生器的功能擴(kuò)大,產(chǎn)生更加復(fù)雜的波形。這時(shí)期的波形發(fā)生器多以軟件為主,實(shí)質(zhì)是采用微處理器對 DAC的程序控制,就可以得到各種簡單的波形。90 年代末,出現(xiàn)幾種真正高性能、高價(jià)格的信號發(fā)生器、但是HP公司推出了型號為 HP770S的信號模擬裝置系統(tǒng),它由 HP8770A任意波形數(shù)字化和 HP1776A波形發(fā)生軟件組成。?????HP8770A實(shí)際上也只能產(chǎn)生8 中波形,而且價(jià)格昂貴。不久以后,Analogic公司推出了型號為 Data-2020的多波形合成器,Lecroy 公司生產(chǎn)的型號為9100 的任意波形發(fā)生器等。 到了二十一世紀(jì),隨著集成電路技術(shù)的高速發(fā)展,出現(xiàn)了多種工作頻率可過 GHz 的DDS 芯片,同時(shí)也推動了信號波形發(fā)生器的發(fā)展,2003 年,Agilent的產(chǎn)品 33220A能夠產(chǎn)生 17 ?種波形,最高頻率可達(dá)到 20M,2005 年的產(chǎn)品N6030A ?能夠產(chǎn)生高達(dá) 500MHz ?的頻率,采樣的頻率可達(dá) 1.25GHz。由上面的產(chǎn)品可以看出,信號波形發(fā)生器發(fā)展很快近幾年來,國際上波形發(fā)生器技術(shù)發(fā)展主要體現(xiàn)在以下幾個(gè)方面:
(1)過去由于頻率很低應(yīng)用的范圍比較狹小,輸出波形頻率的提高,使得波形發(fā)生器能應(yīng)用于越來越廣的領(lǐng)域。波形發(fā)生器軟件的開發(fā)正使波形數(shù)據(jù)的輸入變得更加方便和容易。波形發(fā)生器通常允許用一系列的點(diǎn)、直線和固定的信號段把波形數(shù)據(jù)存入存儲器。同時(shí)可以利用一種強(qiáng)有力的數(shù)學(xué)方程輸入方式,復(fù)雜的波形可以由幾個(gè)比較簡單的公式復(fù)合成 v=f (t)形式的波形方程的數(shù)學(xué)表達(dá)式產(chǎn)生。從而促進(jìn)了信號波形發(fā)生器向任意波形發(fā)生器的發(fā)展,各種計(jì)算機(jī)語言的飛速發(fā)展也對任意波形發(fā)生器軟件技術(shù)起到了推動作用。目前可以利用可視化編程語言(如Visual Basic ,Visual C 等等)編寫任意波形發(fā)生器的軟面板,這樣允許從計(jì)算機(jī)顯示屏上輸入任意波形,來實(shí)現(xiàn)波形的輸入。
(2)與VXI資源結(jié)合。目前,波形發(fā)生器由獨(dú)立的臺式儀器和適用于個(gè)人計(jì)算機(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í)行多種功能。而且外形尺寸與價(jià)格,都比過去的類似產(chǎn)品減少了一半。
2.1主控模塊的選型和論證
方案一:
采用MSP430系列單片機(jī),該單片機(jī)是TI公司1996年開始推向市場的一種16位超低功耗的混合信號處理器。其內(nèi)部集成了很多模擬電路、數(shù)字電路和微處理器,提供強(qiáng)大的功能。不過該芯片昂貴不適合一般的設(shè)計(jì)開發(fā)。
方案二
采用51系列的單片機(jī),該單片機(jī)是一個(gè)高可靠性,超低價(jià),無法解密,高性能的8位單片機(jī),32個(gè)IO口,且STC系列的單片機(jī)可以在線編程、調(diào)試,方便地實(shí)現(xiàn)程序的下載與整機(jī)的調(diào)試。
因此選用方案二中的51系列單片機(jī)作為主控芯片。
2.2顯示模塊的選型和論證
方案一:
采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較合適,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對較高,所以不用此種作為顯示。
方案二:
采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價(jià)格雖適中,對于顯示數(shù)字也最合適,而且采用動態(tài)掃描法與單片機(jī)連接時(shí),占用單片機(jī)口線少。但是由于數(shù)碼管動態(tài)掃描需要借助74LS164移位寄存器進(jìn)行移位,該芯片在電路調(diào)試時(shí)往往有很多障礙,所以不采用LED數(shù)碼管作為顯示。
方案三:
采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,對于本設(shè)計(jì)而言一個(gè)LCD1602的液晶屏即可,價(jià)格也還能接受,需要的借口線較多,但會給調(diào)試帶來諸多方便。
所以本設(shè)計(jì)中方案三中的LCD1602液顯示屏作為顯示模塊。
2.3信號產(chǎn)生模塊的選型和論證
方案一:
利用R2R型DA轉(zhuǎn)換器DAC0832進(jìn)行產(chǎn)生信號,把要產(chǎn)生的信號根據(jù)其規(guī)則建立一個(gè)ROM表,單片機(jī)每隔一段時(shí)間根據(jù)ROM表的值去改變數(shù)模轉(zhuǎn)換器的電壓輸出值,如果ROM表示根據(jù)正弦變化記錄的表則輸出的波形則為正弦波,如此類推,只用通過改變時(shí)間的間隔即可改變輸出波形的頻率。
方案二:
利用集成芯片DDS芯片AD9833進(jìn)行產(chǎn)生信號,該芯片可以通過與單片機(jī)通信設(shè)定其輸出波形和頻率,而且設(shè)定的頻率精度非常高。DDS芯片中主要包括頻率控制寄存器、高速相位累加器和正弦計(jì)算器三個(gè)部分。頻率控制寄存器可以串行或并行的方式裝載并寄存用戶輸入的頻率控制碼。
方案一由于使用的獨(dú)立的DA轉(zhuǎn)換器,設(shè)計(jì)比較靈活,只要預(yù)先先把波形的ROM表生產(chǎn)好存儲到單片機(jī)內(nèi)即可輸出,定頻率的設(shè)定波形而選用DDS芯片則只需要通過固定的時(shí)序控制則能方便產(chǎn)生設(shè)。但是由于DDS成本較為高昂,因此本設(shè)計(jì)選用DA轉(zhuǎn)換器來實(shí)現(xiàn)波形產(chǎn)生的功能。
2.4程控放大模塊的選型和論證
方案一:
選用DAC0832搭配外部電路構(gòu)成程控放大器,由于DAC0832是一個(gè)8位DA轉(zhuǎn)換器,因此能設(shè)置成256檔放大倍數(shù)。通過單片機(jī)控制DA轉(zhuǎn)換器的數(shù)字端口即可改變放大倍數(shù)。
方案二:
選用VCA810作為主芯片進(jìn)行程控放大,VCA是一款高性能的壓控放大器芯片,它有一個(gè)增益控制引腳,用戶可以通過改變該腳的電壓進(jìn)行增益的控制,增益的控制范圍為-40dB~40dB,不過VCA810需要搭配外部的DA轉(zhuǎn)換器才能實(shí)現(xiàn)程控放大的功能。
由于DAC0832的價(jià)格較VCA810便宜,而且VCA810需要搭配外部DA轉(zhuǎn)換器才能實(shí)現(xiàn)增益改變的功能,因此這里選用DAC0832進(jìn)行程控放大。
一、硬件方案
硬件組成:本系統(tǒng)采用51單片機(jī)+LCD1602+DAC0832+按鍵+UA741等而成。
二、設(shè)計(jì)功能
1. 單片機(jī)型號:STC89C52/51、AT89C52/51、AT89S52/51都可通用。
2.產(chǎn)品自帶單片機(jī)上電復(fù)位電路、手動復(fù)位電路(復(fù)位按鍵)、晶振電路(給單片機(jī)提供時(shí)鐘周期)。
3.可以通過按鍵設(shè)置切換波形和頻率。
4.可以產(chǎn)生4種波形,矩形波、三角波、正弦波、鋸齒波。
5.通過1602液晶顯示波形和輸出頻率,頻率范圍為1HZ-10000HZ,步進(jìn)頻率為1HZ。
6.輸出幅度范圍為0.1V到5V,步進(jìn)為0.1V。
7.輸出方波時(shí),占空比可以設(shè)置,占空比范圍10%--99%。
三、成品實(shí)物圖
四、原理圖???
五、PCB圖???
六、?程序源碼?
部分代碼:
TH0 = 0xf0;
TL0 = 0xf0;
TR0=1; //計(jì)數(shù)器停止計(jì)數(shù)
ET0=1; //開啟計(jì)數(shù)器0中斷
switch(gType)
{
case 0: LCDDispString(5,1,"Sin");break;
case 1: LCDDispString(5,1,"Squ");break;
case 2: LCDDispString(5,1,"Tri");break;
case 3: LCDDispString(5,1,"Saw");break;
}
LCDDispNum(12,1,SaveTable[5]);LCDDispNum(14,1,SaveTable[6]);
for(i=0;i<5;i++)
LCDDispNum(3+i,2,SaveTable[i]);
if(gType == 1)
{
LCDDispNum(13,2,SaveTable[7]);
LCDDispNum(14,2,SaveTable[8]);
}
else
{
LCDDispChar(13,2,'-');
LCDDispChar(14,2,'-');
}
EA=1; //開總中斷
while(1)
{
key_scan();
}
}
//gType=0:正弦波
//gType=1:方波
//gType=2:三角波
//gType=3:鋸齒波
void timer0(void) interrupt 1 //計(jì)數(shù)器0中斷
{
count = count + fword;
switch(gType)
{
case 0: DAPort = TableSin[count>>8];
break;
case 1: if(count>Duty*655)
DAPort = 0xff;
gTimeCount=0;
LCDCursor();
LCDDispChar(13,1,'.');
}
//功能設(shè)定四:設(shè)置方波占空比
else if((gFunctionCount==4)&&(gType==1))
{
gTimeCount=0;
LCDCursor();
LCDDispNum(14,2,DutyNum[1]);
LCDDispNum(13,2,DutyNum[0]);
}
//設(shè)定完畢
else if((gFunctionCount==5)||((gFunctionCount==4)&&(gType!=1)))
{
gFunctionCount=0;
LCDNotCursor();
//計(jì)算頻率值
freqtemp=(unsigned int )FreqNum[0]*10000+(unsigned int )FreqNum[1]*1000+(unsigned int)FreqNum[2]*100+(unsigned int)FreqNum[3]*10+(unsigned int)FreqNum[4];
if(freqtemp>10000)//當(dāng)輸入頻率大于10kHz時(shí),將頻率設(shè)置成10kHz
{
freqtemp = 10000;
LCDDispNum(3,2,1);LCDDispNum(4,2,0);LCDDispNum(5,2,0);LCDDispNum(6,2,0);LCDDispNum(7,2,0);
FreqNum[0]=1;FreqNum[1]=0;FreqNum[2]=0;FreqNum[3]=0;FreqNum[4]=0;
}
else if(freqtemp<1)//當(dāng)輸入頻率小于1Hz時(shí),將頻率設(shè)置成1Hz
{
freqtemp = 1;
LCDDispNum(3,2,0);LCDDispNum(4,2,0);LCDDispNum(5,2,0);LCDDispNum(6,2,0);LCDDispNum(7,2,1);
}
//計(jì)算幅值
amptemp =(unsigned int )AmpNum[0] *10 +(unsigned int )AmpNum[1];
if(amptemp>50)
{
LCDDispNum(12,1,5);LCDDispNum(14,1,0);
AmpNum[0]=5;AmpNum[1]=0;
}
//計(jì)算占空比
dutytemp=(unsigned char)DutyNum[0]*10 +(unsigned char)DutyNum[1];
if(dutytemp>90)//當(dāng)輸入占空比大于90%時(shí),將占空比設(shè)置成90%
{
dutytemp = 90;
LCDDispNum(13,2,9);LCDDispNum(14,2,0);
}
else if(dutytemp<10)//當(dāng)輸入占空比小于10%時(shí),將占空比設(shè)置成10%
{
dutytemp = 10;
LCDDispNum(13,2,1);LCDDispNum(14,2,0);
DutyNum[0]=1;DutyNum[1]=0;
}
if(gType!=1)//當(dāng)波形不為方波時(shí),顯示橫杠表示無效
?資料包括:
需要完整的資料可以加入我的紛傳圈子,里面有資源壓縮包的百度網(wǎng)盤下載地址及提取碼。文章來源:http://www.zghlxwxcb.cn/news/detail-761797.html
紛傳點(diǎn)擊用微信打開即可,過程有點(diǎn)繁瑣請見諒。文章來源地址http://www.zghlxwxcb.cn/news/detail-761797.html
到了這里,關(guān)于20、基于51單片機(jī)的函數(shù)發(fā)生器四種波形頻率系統(tǒng)設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!