基于proteus仿真的數(shù)字濾器波器設(shè)計(jì)_第1頁
基于proteus仿真的數(shù)字濾器波器設(shè)計(jì)_第2頁
基于proteus仿真的數(shù)字濾器波器設(shè)計(jì)_第3頁
基于proteus仿真的數(shù)字濾器波器設(shè)計(jì)_第4頁
基于proteus仿真的數(shù)字濾器波器設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、智能儀器基礎(chǔ)與設(shè)計(jì)課程設(shè)計(jì)設(shè)計(jì)報(bào)告(部分)智能儀器基礎(chǔ)與設(shè)計(jì)課程設(shè)計(jì)基于單片機(jī)C語言編程及LCD液晶顯示器的數(shù)字濾波顯示系統(tǒng)設(shè)計(jì)Design of Digital Filter and Display System Based on C language Programming and Single-Chip Computers基于單片機(jī)C語言編程及LCD液晶顯示器的數(shù)字濾波顯示系統(tǒng)設(shè)計(jì)摘 要本次實(shí)驗(yàn)設(shè)計(jì)的主要內(nèi)容是在Proteus仿真環(huán)境下,借助單片機(jī)和c語言編程,實(shí)現(xiàn)對(duì)模擬信號(hào)的采集、濾波以及對(duì)濾波后信號(hào)的LCD動(dòng)態(tài)顯示。本次設(shè)計(jì)主要采用了三中濾波方式:平均值濾波、中位置濾波、遞推平均濾波

2、。應(yīng)用的主要器件有:MCS-51單片機(jī),TLC549 8位串行AD,KS0108控制的12864 LCD ADC0808 DAC0832。通過對(duì)疊加了噪聲信號(hào)的模擬信號(hào)的模數(shù)轉(zhuǎn)換實(shí)現(xiàn)信號(hào)采集,在單片機(jī)內(nèi)部采用函數(shù)濾波濾出信號(hào)上面疊加的高頻噪聲,最后通過單片機(jī)控制兩個(gè)LCD分別示波器輸出采集到的疊有噪聲的信號(hào)和濾波后的結(jié)果。關(guān)鍵字?jǐn)?shù)字濾波 LCD動(dòng)態(tài)顯示 MCS-51 TLC549 KS0108 12864 ADC0808 DAC0832AbstractThis experiment design is mainly based on the environment of Proteus 8.0

3、, single-chip computer and C language programming. This design managed to collect analog signal, filter signal and dynamic display signal on LCD. In this design, we used 3 diffident filter methods: mean filter; medium filter; recursive average filtering. The devices we used are: MCS-51 single-chip c

4、omputer; 8-bit serial ADC TLC549; LCD 12864 with its driver KS0108 ADC0808 DAC0832.KeywordDigital filtering LCD dynamic display MCS-51 TLC549 KS0108 12864 ADC0808 DAC0832目 錄1 引言51.1課題背景介紹52 各部分器件簡單介紹42.1 MCS-51單片機(jī) 42.2 AD轉(zhuǎn)換器ADC0808 52.3 DA轉(zhuǎn)換器DAC0832 73 數(shù)字濾波器設(shè)計(jì)83.1 數(shù)字濾波原理介紹83.2 信號(hào)發(fā)生電路163.3 單片機(jī)電路163.4

5、 數(shù)據(jù)采集電路173.5 DA轉(zhuǎn)換電路183.6 總電路194 程序設(shè)計(jì)204.1程序流程圖204.2 主程序21參考文獻(xiàn)25附錄252 各部分器件功能及使用方法介紹:2.1 MCS-51單片機(jī):圖2.1-2在HMOS技術(shù)大發(fā)展的背景下,Intel公司在MCS-48系列的基礎(chǔ)上MCS-51 系列單片機(jī)1,于1980年推出了8位MCS-51系列單片機(jī)。它與以前的機(jī)型相比,功能增強(qiáng)了許多,就其指令和運(yùn)行速度而言,超過了INTEL8085的CPU和Z80的CPU,成為工業(yè)控制系統(tǒng)中較為理想的機(jī)種。較早的MCS-51典型時(shí)鐘為12MHz,而目前與MCS-51單片機(jī)兼容的一些單片機(jī)的時(shí)鐘頻率達(dá)到40MH

6、z甚至更高,現(xiàn)在已有400MHz的單片機(jī)問世。圖2.1-151系列是基本型,包括8051、8751、8031、8951.這四個(gè)機(jī)種區(qū)別,僅在于片內(nèi)程序儲(chǔ)存器。8051為4KBROM,8751為4KBEPROM,8031片內(nèi)無程序儲(chǔ)存器,8951為4KBEEPROM。其他性能結(jié)構(gòu)一樣,有片內(nèi)128B RAM,2個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源。其中,8031性價(jià)比較高,又易于開發(fā),目前應(yīng)用面廣泛。51系列單片機(jī)的特點(diǎn)-8位cpu-片內(nèi)帶振蕩器,頻率范圍為1.2MHz12MHz-片內(nèi)帶128B的數(shù)據(jù)存儲(chǔ)器-片內(nèi)帶4KB的程序存儲(chǔ)器-程序存儲(chǔ)器的尋址空間為64KB-片外數(shù)據(jù)存儲(chǔ)器的尋址空間為64K

7、B-128個(gè)用戶位尋址空間-21個(gè)字節(jié)特殊功能寄存器-4個(gè)8位的I/O并行接口:P0、P1、P2、P3-兩個(gè)16位定時(shí)、計(jì)數(shù)器-兩個(gè)優(yōu)先級(jí)別的五個(gè)中斷源-一個(gè)全雙工的串行I/O接口,可多機(jī)通信-111條指令,包含乘法指令和除法指令-片內(nèi)采用單總線結(jié)構(gòu)-有較強(qiáng)的位處理能力-采用單一+5V電源2.2 AD轉(zhuǎn)換器ADC0808:ADC0808是采樣分辨率為8位的、以逐次逼近原理進(jìn)行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。ADC0808是ADC0809的簡化版本,功能基本相同。一般在硬件仿真時(shí)采用ADC0808進(jìn)行A

8、/D轉(zhuǎn)換,實(shí)際使用時(shí)采用ADC0809進(jìn)行A/D轉(zhuǎn)換。轉(zhuǎn)換電壓 -0.3VVcc+0.3V電源電壓6.5V控制端電壓 -0.3V15VADC0808芯片有28條引腳,采用雙列直插式封裝,如右圖所示。各引腳功能如下:15和2628(IN0IN7):8路模擬量輸入端。8、14、15和1721:8位數(shù)字量輸出端。22(ALE):地址鎖存允許信號(hào),輸入,高電平有效。6(START): A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。7(EOC): A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電

9、平)。9(OE):數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。10(CLK):時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。12(VREF(+)和16(VREF(-):參考電壓輸入端11(Vcc):主電源輸入端。13(GND):地。2325(ADDA、ADDB、ADDC):3位地址輸入線,用于選通8路模擬輸入中的一路圖2.2-2圖2.2-12.3 DAC 0832: DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)DA芯片以其價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)

10、換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。圖2.3-1* D0D7:8位數(shù)據(jù)輸入線,TTL電平,有效時(shí)間應(yīng)大于90ns(否則鎖存器的數(shù)據(jù)會(huì)出錯(cuò));* ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;* CS:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效;* WR1:數(shù)據(jù)鎖存器寫選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;* XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns)有效;* WR2:DAC寄存器

11、選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。由WR2、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時(shí),DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開始D/A轉(zhuǎn)換。* IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化;* IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);* Rfb:反饋信號(hào)輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;* Vcc:電源輸入端,Vcc的范圍為+5V+15V;* VREF:基準(zhǔn)電壓輸入線,VREF的范圍為-10V+10V;* AGND:模擬信號(hào)地;* DGND:數(shù)字信號(hào)地。3 數(shù)字濾波原理

12、介紹介紹:數(shù)字濾波方法有很多種,如中值濾波、算術(shù)平均濾波、加權(quán)平均濾波,限幅濾波等等。本次課程設(shè)計(jì)我選用的是限幅濾波方法和中位值濾波法3.1.1限副濾波A、方法: 根據(jù)經(jīng)驗(yàn)判斷,確定兩次采樣允許的最大偏差值(設(shè)為A) 每次檢測(cè)到新值時(shí)判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值 B、優(yōu)點(diǎn): 能有效克服因偶然因素引起的脈沖干擾 C、缺點(diǎn) 無法抑制那種周期性的干擾 平滑度差程序:/* A值可根據(jù)實(shí)際情況調(diào)整 value為有效值,new_value為當(dāng)前采樣值 濾波程序返回有效的實(shí)際值 */ #define

13、A 10char value;char filter() char new_value; new_value = get_ad(); if ( ( new_value - value > A ) | ( value - new_value > A ) )return value; elsereturn new_value; 3.1.2中位值濾波法 A、方法: 連續(xù)采樣N次(N取奇數(shù)),把N次采樣值按大小排列 ,取中間值為本次有效值 B、優(yōu)點(diǎn): 能有效克服因偶然因素引起的波動(dòng)干擾,對(duì)溫度、液位的變化緩慢的被測(cè)參數(shù)有良好的濾波效果 C、缺點(diǎn): 對(duì)流量、速度等快速變化的參數(shù)不宜程序:/*

14、 N值可根據(jù)實(shí)際情況調(diào)整 排序采用冒泡法*/ #define N 11char filter() char value_bufN; char count,i,j,temp; for ( count=0;count<N;count+) value_bufcount = get_ad(); delay(); for (j=0;j<N-1;j+) for (i=0;i<N-j1;i+) if ( value_bufi>value_bufi+1 ) temp = value_bufi; value_bufi = value_bufi+1; value_bufi+1 = temp

15、; return value_buf(N-1)/2; 3.1.3算術(shù)平均濾波法 A、方法: 連續(xù)取N個(gè)采樣值進(jìn)行算術(shù)平均運(yùn)算 N值較大時(shí):信號(hào)平滑度較高,但靈敏度較低 N值較小時(shí):信號(hào)平滑度較低,但靈敏度較高 N值的選?。阂话懔髁?,N=12;壓力:N=4 B、優(yōu)點(diǎn): 適用于對(duì)一般具有隨機(jī)干擾的信號(hào)進(jìn)行濾波 這樣信號(hào)的特點(diǎn)是有一個(gè)平均值,信號(hào)在某一數(shù)值范圍附近上下波動(dòng) C、缺點(diǎn): 對(duì)于測(cè)量速度較慢或要求數(shù)據(jù)計(jì)算速度較快的實(shí)時(shí)控制不適用 比較浪費(fèi)RAM   程序:#define N 12char filter() int sum = 0; for ( count=0;count

16、<N;count+) sum + = get_ad(); delay(); return (char)(sum/N); 3.1.4遞推平均濾波法(又稱滑動(dòng)平均濾波法) (FIR前身)A、方法: 把連續(xù)取N個(gè)采樣值看成一個(gè)隊(duì)列 隊(duì)列的長度固定為N 每次采樣到一個(gè)新數(shù)據(jù)放入隊(duì)尾,并扔掉原來隊(duì)首的一次數(shù)據(jù).(先進(jìn)先出原則) 把隊(duì)列中的N個(gè)數(shù)據(jù)進(jìn)行算術(shù)平均運(yùn)算,就可獲得新的濾波結(jié)果 N值的選?。毫髁浚琋=12;壓力:N=4;液面,N=412;溫度,N=14 B、優(yōu)點(diǎn): 對(duì)周期性干擾有良好的抑制作用,平滑度高 適用于高頻振蕩的系統(tǒng) C、缺點(diǎn): 靈敏度低 對(duì)偶然出現(xiàn)的脈沖性干擾的抑制作用較差 不易消

17、除由于脈沖干擾所引起的采樣值偏差 不適用于脈沖干擾比較嚴(yán)重的場(chǎng)合 比較浪費(fèi)RAM程序:#define N 12char value_bufN; char i=0;char filter() char count; int sum=0; value_bufi+ = get_ad(); if ( i = N ) i = 0; for ( count=0;count<N,count+) sum+ = value_bufcount; return (char)(sum/N); 3.1.5中位值平均濾波法(又稱防脈沖干擾平均濾波法) A、方法: 相當(dāng)于“中位值濾波法”+“算術(shù)平均濾波法” 連續(xù)采樣

18、N個(gè)數(shù)據(jù),去掉一個(gè)最大值和一個(gè)最小值 然后計(jì)算N-2個(gè)數(shù)據(jù)的算術(shù)平均值 N值的選?。?14 B、優(yōu)點(diǎn): 融合了兩種濾波法的優(yōu)點(diǎn) 對(duì)于偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差 C、缺點(diǎn): 測(cè)量速度較慢,和算術(shù)平均濾波法一樣 比較浪費(fèi)RAM程序:#define N 12char filter() char count,i,j; char value_bufN; int sum=0; for (count=0;count<N;count+) value_bufcount = get_ad(); delay(); for (j=0;j<N-1;j+) for (i=0;i

19、<N-j-1;i+) if ( value_bufi>value_bufi+1 ) temp = value_bufi; value_bufi = value_bufi+1; value_bufi+1 = temp; for(count=1;count<N-1;count+) sum += valuecount; return (char)(sum/(N-2);    3.1.6限幅平均濾波法 A、方法: 相當(dāng)于“限幅濾波法”+“遞推平均濾波法” 每次采樣到的新數(shù)據(jù)先進(jìn)行限幅處理, 再送入隊(duì)列進(jìn)行遞推平均濾波處理 B、優(yōu)點(diǎn): 融合了兩種濾波法的優(yōu)

20、點(diǎn) 對(duì)于偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差 C、缺點(diǎn): 比較浪費(fèi)RAM 程序略 參考子程序1、33.1.7一階滯后濾波法 A、方法: 取a=01 本次濾波結(jié)果=(1-a)*本次采樣值+a*上次濾波結(jié)果 B、優(yōu)點(diǎn): 對(duì)周期性干擾具有良好的抑制作用 適用于波動(dòng)頻率較高的場(chǎng)合 C、缺點(diǎn): 相位滯后,靈敏度低 滯后程度取決于a值大小 不能消除濾波頻率高于采樣頻率的1/2的干擾信號(hào)程序:/* 為加快程序處理速度假定基數(shù)為100,a=0100 */#define a 50char value;char filter() char new_value; new_value = get

21、_ad(); return (100-a)*value + a*new_value); 3.1.8加權(quán)遞推平均濾波法 A、方法: 是對(duì)遞推平均濾波法的改進(jìn),即不同時(shí)刻的數(shù)據(jù)加以不同的權(quán) 通常是,越接近現(xiàn)時(shí)刻的數(shù)據(jù),權(quán)取得越大。 給予新采樣值的權(quán)系數(shù)越大,則靈敏度越高,但信號(hào)平滑度越低 B、優(yōu)點(diǎn): 適用于有較大純滯后時(shí)間常數(shù)的對(duì)象 和采樣周期較短的系統(tǒng) C、缺點(diǎn): 對(duì)于純滯后時(shí)間常數(shù)較小,采樣周期較長,變化緩慢的信號(hào) 不能迅速反應(yīng)系統(tǒng)當(dāng)前所受干擾的嚴(yán)重程度,濾波效果差程序:/* coe數(shù)組為加權(quán)系數(shù)表,存在程序存儲(chǔ)區(qū)。*/#define N 12char code coeN = 1,2,3,4,

22、5,6,7,8,9,10,11,12; char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;char filter() char count; char value_bufN; int sum=0; for (count=0,count<N;count+) value_bufcount = get_ad(); delay(); for (count=0,count<N;count+) sum += value_bufcount*coecount; return (char)(sum/sum_coe); 3.2 信號(hào)發(fā)生電路:使用proteu

23、s8.0提供的信號(hào)發(fā)生器和加法器實(shí)現(xiàn)信號(hào)發(fā)生,SUM1(B)為低頻原始信號(hào),SUM1(A)為高頻噪聲信號(hào)3.3 單片機(jī)電路:使用51系列單片機(jī)AT89C51,利用這個(gè)單片機(jī)進(jìn)行編程,實(shí)現(xiàn)對(duì)輸入信號(hào)的濾波。使用P0作為接受AD轉(zhuǎn)換器ADC0808的結(jié)果的端口,P1.0 - P1.2、P1.4連接四個(gè)開關(guān)控制濾波算法選擇。P2口輸出數(shù)字?jǐn)?shù)據(jù)給DAC0832,P3作為控制端控制ADC0808。DAC0832選擇為直通工作方式,不需要控制端。圖3.3-13.4 數(shù)據(jù)采集電路:ADC0808是8位并行輸出AD轉(zhuǎn)換器,由于只有一路信號(hào)輸入,A、B、C三個(gè)選擇端接地選擇IN0輸入端。模擬量從IN0輸入后,電

24、壓值在+REF和-REF之間的輸入信號(hào)會(huì)被轉(zhuǎn)換成數(shù)字量從OUT0 - OUT7輸出給P0口。START為啟動(dòng)轉(zhuǎn)換信號(hào),由單片機(jī)程序控制。CLOCK是ADC0808轉(zhuǎn)換時(shí)鐘信號(hào),由單片機(jī)內(nèi)部定時(shí)器T0中斷控制。EOC為輸出準(zhǔn)備就緒信號(hào),連接單片機(jī)外部中斷0,單片機(jī)以中斷方式接收ADC轉(zhuǎn)換信號(hào)。引腳連線如圖圖3.4-13.5 DAC輸出電路:單片機(jī)P2輸出濾波后的數(shù)字信號(hào)給DAC0832。DAC0832工作在直通方式,不需要控制信號(hào)。DAC0832輸出為電流信號(hào),采用運(yùn)算放大器UA741轉(zhuǎn)換成電壓信號(hào)引腳連接圖如下:圖 3.5-13.6 總電路:圖3.6-14 程序設(shè)計(jì):4.1 程序流程圖:4.2

25、 主程序:#include <reg51.h>#define uchar unsigned char#define A 0.002#define N 11sbit con1=P10;/濾波方式選擇sbit con2=P11;sbit con3=P12;sbit key=P14;/控制是否濾波sbit led=P15;/DAC轉(zhuǎn)換指示燈sbit OE=P30;/DAC使能信號(hào)sbit START=P31;/DAC轉(zhuǎn)換啟動(dòng)信號(hào)sbit EOC = P32;/DAC輸出準(zhǔn)備信號(hào)sbit CLOCK=P34;/DAC轉(zhuǎn)換時(shí)鐘uchar a;uchar res;uchar bufN =0;v

26、oid ADC0808();void change();/數(shù)值更新uchar get_data(n);/獲取數(shù)據(jù)uchar filter1();/平均值濾波uchar filter2();/中位值濾波uchar filter3();/遞推平均濾波void delay(uchar z);void inint();/單片機(jī)定時(shí)器及終端初始化void main()while(1)inint();ADC0808();P2=res;void inint() TMOD=0x11; TH0=(65536-2)/256;TL0=(65536-2)%256;TH1=(65536-50000)/256; TL1=(65536-50000)%256;EA=1;ET0=1;TR0=1;ET1=1; TR1=1;EX0=1; IT0=1;void ADC0808()START = 0; START = 1; START = 0;led=0;EOC=EOC;delay(1);if(key=0) if(con1=0)res=filter1(); if(con2=0) res=filter2();if(con3=0)res=filter3();else res=a;void change()uchar i;for(i=0;i<N-1;i+)bufi=bufi+1; b

溫馨提示

  • 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. 人人文庫網(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)論