TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。 TLC2543的特點(diǎn) (1)12位分辯率A/D轉(zhuǎn)換器; (2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時間; (3)11個模擬輸入通道; (4)3路內(nèi)置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉(zhuǎn)換結(jié)束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導(dǎo); (10)可編程輸出數(shù)據(jù)長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
PSHLY-B回路電阻測試儀介紹
上傳時間: 2013-11-05
上傳用戶:木子葉1
假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類型為int),子程序為get_ad(); 1、限幅濾波法(又稱程序判斷濾波法) A、方法: 根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為A) 每次檢測到新值時判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值 B、優(yōu)點(diǎn): 能有效克服因偶然因素引起的脈沖干擾 C、缺點(diǎn) 無法抑制那種周期性的干擾 平滑度差 /* A值可根據(jù)實際情況調(diào)整 value為有效值,new_value為當(dāng)前采樣值 濾波程序返回有效的實際值 */ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值濾波法 A、方法: 連續(xù)采樣N次(N取奇數(shù)) 把N次采樣值按大小排列 取中間值為本次有效值 B、優(yōu)點(diǎn): 能有效克服因偶然因素引起的波動干擾 對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果 C、缺點(diǎn): 對流量、速度等快速變化的參數(shù)不宜 /* N值可根據(jù)實際情況調(diào)整 排序采用冒泡法*/
上傳時間: 2014-12-26
上傳用戶:nanshan
單片機(jī)軟件濾波的幾種方法:假定從AD中讀取數(shù)據(jù)的子程序為:unsigned int get_ad();1、限幅濾波法(又稱程序判斷濾波法)A、方法:根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為A)。每次檢測到新值時判斷:如果本次值與上次值之差<=A,則本次值有效;如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值。B、優(yōu)點(diǎn):能有效克服因偶然因素引起的脈沖干擾C、缺點(diǎn):無法抑制那種周期性的干擾,平滑度差D、軟件實現(xiàn)://=======================//值A(chǔ)可根據(jù)實際情況調(diào)整,value為有效值,new_value為當(dāng)前采樣值//濾波程序返回有效的實際值
上傳時間: 2013-10-20
上傳用戶:xiaojie
TKS仿真器B系列快速入門
上傳時間: 2013-10-31
上傳用戶:aix008
一個簡單好用的B+樹算法實現(xiàn)
上傳時間: 2015-01-04
上傳用戶:縹緲
一個用Basic實現(xiàn)的B-Tree算法
上傳時間: 2013-12-30
上傳用戶:ccclll
一個用Java applet實現(xiàn)的B-Tree算法
標(biāo)簽: B-Tree applet Java 算法
上傳時間: 2013-12-25
上傳用戶:qiao8960
用C++實現(xiàn)的B-Tree算法
上傳時間: 2014-01-20
上傳用戶:jiahao131
用Borland C寫的B-Tree算法
上傳時間: 2014-12-05
上傳用戶:xzt
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1