智能儀表頻率發(fā)生器_第1頁
智能儀表頻率發(fā)生器_第2頁
智能儀表頻率發(fā)生器_第3頁
智能儀表頻率發(fā)生器_第4頁
智能儀表頻率發(fā)生器_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、頻率頻率發(fā)生器發(fā)生器設(shè)計(jì)設(shè)計(jì)頻率發(fā)生器 本系統(tǒng)以低功耗單片機(jī)stm32為主控器件分為微控制器、DA轉(zhuǎn)換器、功率放大等模塊,實(shí)現(xiàn)了一個(gè)能產(chǎn)生任意頻率波頻率發(fā)生器。 本設(shè)計(jì)利用單片機(jī)生成各種波形的數(shù)據(jù)將數(shù)據(jù)傳輸給RAM存儲(chǔ)器通過后級(jí)的DA轉(zhuǎn)換器實(shí)現(xiàn)波形的產(chǎn)生。系統(tǒng)輸入波形,1HZ步進(jìn),可調(diào)峰-峰值可在0到10V之間任意調(diào)節(jié)。電路設(shè)計(jì)條理清晰,人機(jī)交互界面友好,控制方便,很好地完成了題目的所有基本和發(fā)揮要求。 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容1設(shè)計(jì)放大器電路2設(shè)計(jì)嵌入式系統(tǒng)電路及程序,實(shí)現(xiàn)頻率發(fā)生器基本功能,可以產(chǎn)生三種標(biāo)準(zhǔn)波形:正玄波、三角波和方波;3編寫嵌入式系統(tǒng)程序,實(shí)現(xiàn)函數(shù)頻率發(fā)生器功能,可以對(duì)標(biāo)準(zhǔn)波形設(shè)計(jì)

2、頻率、周期、最大值、最小值、峰峰值、偏移量和方波占空比。4編寫嵌入式系統(tǒng)程序,實(shí)現(xiàn)隨機(jī)頻率發(fā)生器功能,輸出波形。實(shí)驗(yàn)設(shè)備實(shí)驗(yàn)設(shè)備1.示波器、信號(hào)發(fā)生器、萬用表2.STC單片機(jī)開發(fā)板、C8051F開發(fā)板、STM32開發(fā)板實(shí)驗(yàn)器件: STM32F103ZET6、ADUC7026實(shí)驗(yàn)實(shí)驗(yàn)方案方案(1 1)波形生成方案)波形生成方案 采用STM32單片機(jī)生成波形,由于是軟件濾波,所以不會(huì)有寄生的高次諧波分量, 生成的波形比較純凈。它的特點(diǎn)是價(jià)格低、性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、 體積小、耗電少。 采用此方案既可滿足課程設(shè)計(jì)的基本要求又能充分發(fā)揮其優(yōu)勢(shì),電路簡(jiǎn)單,易控制, 性價(jià)比高。 (2 2

3、)任意波形的生成原理)任意波形的生成原理 采用鍵盤輸入,這是最基本的方法。優(yōu)點(diǎn)是輸入值精確。但用戶自定義輸入時(shí)無法 自由輸入想要的特殊波形, 而且輸入數(shù)據(jù)繁瑣,操作麻煩,由于實(shí)現(xiàn)相對(duì)簡(jiǎn)單,故本實(shí)驗(yàn)采用該方案。系統(tǒng)設(shè)計(jì)分析 (1 1)硬件部分)硬件部分STM32液晶屏D/A運(yùn)放鍵盤輸入控制示波器 運(yùn)算放大器電路R1是耦合電阻,R2,R3都為分壓式反饋電阻。R2和R1的電壓比例為1:2,OUT2的電壓為-5v0v,在第二級(jí)運(yùn)放中要把-5v0v之間的電壓轉(zhuǎn)變?yōu)?5v5v,即第一級(jí)運(yùn)放轉(zhuǎn)換成電壓量的值沒增加或減少1v,第二級(jí)運(yùn)放產(chǎn)生的電壓就減少或增加2v。(2 2)微控制器軟件實(shí)現(xiàn))微控制器軟件實(shí)現(xiàn)

4、微控制器主要用于完成數(shù)據(jù)的采集,顯示以及處理,生成各種波形數(shù)據(jù),本系統(tǒng)采樣256個(gè)數(shù)據(jù),采用8位DA轉(zhuǎn)換器,因此RAM地址位設(shè)置為8位,數(shù)據(jù)位設(shè)置為8位。微控制器先進(jìn)行數(shù)據(jù)收集處理,生成各種波形的歸一化數(shù)據(jù),然后存儲(chǔ)在256位的數(shù)組里,根據(jù)幅值要求乘以相應(yīng)的系數(shù),最終生成可以存放在RAM里的數(shù)據(jù)。 本系統(tǒng)采用12位DA轉(zhuǎn)換器,最大輸出電壓為5Vpp,功率放大為2倍,所以系統(tǒng)最大的輸出電壓可以達(dá)到10Vpp,可計(jì)算出最小電壓分辨率為:電壓分辨率:K=10/4096(V)主流程初始化液晶顯示鍵盤輸入處理判斷波形方波正弦波三角波鋸齒波中斷返回定時(shí)中斷開始 (1)是波形發(fā)生器的主流圖,由系統(tǒng)初始化和人

5、機(jī)交互模塊組成,其中液晶顯示子模塊和鍵盤輸入處理子模塊占用單片機(jī)主要處理時(shí)間,單片機(jī)反復(fù)運(yùn)行該模塊程序人機(jī)交互模塊相當(dāng)于系統(tǒng)的監(jiān)控程序;(2)是定時(shí)中斷服務(wù)流程圖,波形發(fā)生模塊放置在定時(shí)中斷服務(wù)程序中,系統(tǒng)每隔一定時(shí)間,產(chǎn)生一個(gè)定時(shí)中斷,暫停主流程運(yùn)行,轉(zhuǎn)到定時(shí)中斷服務(wù)程序起始處,執(zhí)行波形發(fā)生模塊,該模塊輸出一個(gè)樣值后,結(jié)束此次中斷服務(wù),返回主流程斷點(diǎn)處繼續(xù)運(yùn)行。反復(fù)多次定時(shí)中斷服務(wù),從而完成波形生成。(3 3)鍵盤輸入處理子模塊)鍵盤輸入處理子模塊 在具體實(shí)現(xiàn)時(shí),鍵值識(shí)別部分作為主程序,鍵功能處理部分作為子程序,它們之間的關(guān)系是主程序調(diào)用子程序。鍵盤的工作過程:1)掃描鍵盤,獲得列掃描碼和行

6、狀態(tài)碼,從而確定被按下的按鍵的鍵值;2)根據(jù)鍵值,通過散轉(zhuǎn)表,跳轉(zhuǎn)到相應(yīng)的鍵功能處理部分;3)進(jìn)入鍵處理部分,完成鍵功能;4)完成一次鍵輸入工作 通過鍵盤對(duì)單片機(jī)系統(tǒng)進(jìn)行設(shè)置,每按一次鍵,鍵盤都會(huì)有上述的處理過程,每次僅能完成一個(gè)鍵功能。在實(shí)際設(shè)置波形參數(shù)時(shí),一個(gè)參數(shù)需要多個(gè)鍵功能來實(shí)現(xiàn),那么相應(yīng)的鍵盤也要多次完成鍵值識(shí)別,跳轉(zhuǎn)鍵處理的工作過程。(4 4)函數(shù)參數(shù))函數(shù)參數(shù)設(shè)置設(shè)置 1)正弦波歸一化數(shù)據(jù)生成函數(shù) S(t)=sin(t) /(2K) 2)三角波歸一化數(shù)據(jù)生成函數(shù) T(t)=t/(63 *2K) (t64) T(t)=(127-t)/(63 *2K) (64t128) T(t)=(

7、t-128)/(63 *2K) (128t192) T(t)=(255-t)/(63 *2K) (192t256)3)方波歸一化數(shù)據(jù)生成函數(shù) 根據(jù)電壓分辨率可以得出方波歸一化數(shù)據(jù)生成函數(shù)為: F(t)= 1/(2k) (0t128) F(t)= - 1/(2k) (128t256)4)5次諧波數(shù)據(jù)的生成函數(shù) W(t)=a*sin(t)+ b*sin(2t+m)+ c*sin(3t+n)+d* sin(4t+p)+ e*sin(5t+q) 此函數(shù)要求幅值和相位參數(shù):a.b.c.d.e.m.n.p.q 5)正弦波、方波、三角波線性組合波數(shù)據(jù)生成函數(shù) D(t)=a*S(t)+ b*F(t+m)+ c

8、*T(t+n)(5 5)實(shí)驗(yàn)參考程序)實(shí)驗(yàn)參考程序/*-* 功 能 :STM32 DAC 數(shù)模轉(zhuǎn)換(正弦波/矩形波/三角波)輸出實(shí)驗(yàn) * 說 明 :按 SW5 輸出正弦波 / 按 SW4 輸出矩形波 / 按 SW3 輸出三角波, 輸出端口 PA4 *-*/ #include #include / STM32F10 x Library Definitions#include STM32_Reg.h / STM32 register and bit Definitions#include STM32_Init.h / STM32 Initialization#include common.h#in

9、clude sine_wave_1024.h / 輸出端口 : PA4#define SINE_WAVE1/sine 正弦波#define RECT_WAVE2/rectangular矩形波#define HACKLE_WAVE3/hackle三角波 UINT8 flag = 0;UINT8 func = SINE_WAVE;/*- MAIN function *-*/int main (void) UINT16 i = 0; UINT32 *pDAC_BASE = (UINT32 *)DAC_BASE; stm32_Init(); / STM32 setup LED_Init(); /打開D

10、AC時(shí)鐘使能 RCC-APB1ENR |= (UINT32)(1 29); /設(shè)置DAC控制參數(shù) *(pDAC_BASE + 0 x00) = (0 x01 0)| (0 x00 2) | (0 x04 3) | (0 x03 6) | (0 x0b 8); *(pDAC_BASE + 0 x04) = 0 x01 printf( - Program start - rn); while (TRUE)/ Loop forever if(!Get_SW5()func = SINE_WAVE;else if(!Get_SW4()func = RECT_WAVE;else if(!Get_SW3()

11、func = HACKLE_WAVE; switch(func)case SINE_WAVE:/-#ifdef SINE_WAVE if(i 1024) i+=2; else i = 0; *(pDAC_BASE + 0 x08) = Sine_WAVEi 4;#endif/-break; case RECT_WAVE: #ifdef RECT_WAVEfor(i=0;i2000;i+)*(pDAC_BASE + 0 x08) = 0 x0fff;for(i=0;i2000;i+)*(pDAC_BASE + 0 x08) = 0;#endif/-break;case HACKLE_WAVE:#

12、ifdef HACKLE_WAVE if(flag) flag = 0;while(TRUE) if(i 0) i -= 1; else break; *(pDAC_BASE + 0 x08) = i; #endifbreak; default:break;/- / end while / end main /*- * 設(shè)置方向 *-*/void Set_IO_direction(UINT8 PORT, UINT8 GPIO, UINT8 Value) RCC-APB2ENR |= RCC_APB2ENR_IOPAEN; if(PORT = PORT_A) if(GPIO CRL &= (0

13、x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set used bit if(PORT = PORT_B) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set used bit if(PORT = PORT_C) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set

14、used bit if(PORT = PORT_D) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value (GPIO * 4 - 8 * 4);/Set used bit if(PORT = PORT_E) if(GPIO CRL &= (0 x0f CRL |= (Value CRH &= (0 x0f CRH |= (Value SR & USART_FLAG_TXE); USART2-DR = (ch & 0 x1FF); return (ch); /*- GetKey Read character to Ser

15、ial Port. *-*/int GetKey (void) while (!(USART2-SR & USART_FLAG_RXNE); return (int)(USART2-DR & 0 x1FF); void LED_Init(void)Set_IO_direction(PORT_E,LED1,OUTPUT);Set_IO_direction(PORT_E,LED2,OUTPUT);Set_IO_direction(PORT_E,LED3,OUTPUT);Set_IO_direction(PORT_E,LED4,OUTPUT);Set_IO_direction(PORT_B,SW2,INPUT);Set_IO_direction(PORT_B,SW3,INP

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論