導航:首頁 > 操作系統 > ad轉換實驗單片機

ad轉換實驗單片機

發布時間:2025-01-24 03:25:00

㈠ 帶12位AD轉換的51單片機

TLC2543是TI的一片12位AD晶元,11通道AD轉換,數據傳輸符合SPI串列方式,是常用的高精度AD晶元,價格有點貴了35一片,不過物有所值,在實驗中讀書還是很穩定的。TLC2543的操作也很簡單,命令格式:通道+精度+數據順序,不過值得注意的:是本次讀取的值是上次轉換的AD值,也就是說本次發送的命令是啟動下一次轉換同時讀取上次轉換的值。

㈡ 基於單片機數字頻率計設計匯編語言程序的設計思路

大學實驗課吧?但是圖呢?圖呢????發圖啊~

㈢ 利用STC89C52單片機以及PCF8591的AD轉換設計一個數字電壓表,求大神給個程序例子,在線等!!!急!!!

這是吳鑒鷹單片機開發板配套的常式。

/*-----------------------------------------------

名稱:IIC協議PCF8591AD/DA轉換

內容:使用4路AD中的4路檢測外部模擬量輸入使用液晶顯示

------------------------------------------------*/

#include<reg52.h>

#include"i2c.h"

#include"delay.h"

#include"1602.h"

#include<stdio.h>


#defineAddWr0x90//寫數據地址

#defineAddRd0x91//讀數據地址


externbitack;

unsignedcharReadADC(unsignedcharChl);

bitWriteDAC(unsignedchardat);

/*------------------------------------------------

主程序

------------------------------------------------*/

main()

{

unsignedcharnum=0,i;

unsignedchartemp[7];//定義顯示區域臨時存儲數組

floatVoltage;//定義浮點變數

LCD_Init();//初始化液晶

DelayMs(20);//延時有助於穩定

LCD_Clear();//清屏

while(1)//主循環

{

for(i=0;i<5;i++)//連續讀5次,取最後一次,以便讀取穩定值

num=ReadADC(0);//讀取第1路電壓值,范圍是0-255

Voltage=(float)num*5/256;//根據參考電源VREF算出時間電壓,float是強制轉換符號,用於將結果轉換成浮點型

sprintf(temp,"V0%3.2f",Voltage);//格式輸出電壓值,%3.2f表示浮點輸出,共3位數,小數點後2位

LCD_Write_String(0,0,temp);


for(i=0;i<5;i++)

num=ReadADC(1);

Voltage=(float)num*5/256;

sprintf(temp,"V1%3.2f",Voltage);

LCD_Write_String(8,0,temp);


for(i=0;i<5;i++)

num=ReadADC(2);

Voltage=(float)num*5/256;

sprintf(temp,"V2%3.2f",Voltage);

LCD_Write_String(0,1,temp);


for(i=0;i<5;i++)

num=ReadADC(3);

Voltage=(float)num*5/256;

sprintf(temp,"V3%3.2f",Voltage);

LCD_Write_String(8,1,temp);

//主循環中添加其他需要一直工作的程序

DelayMs(200);


}

}


/*------------------------------------------------

讀AD轉值程序

輸入參數Chl表示需要轉換的通道,范圍從0-3

返回值范圍0-255

操作分四步:

(1)、發送地址位元組,選擇該器件。

(2)、發送控制位元組,選擇相應通道。

(3)、重新發送地址位元組,選擇該器件的讀寫。

(4)、接收目標通道的數據。

------------------------------------------------*/

unsignedcharReadADC(unsignedcharChl)

{

unsignedcharVal;

Start_I2c();//啟動匯流排

SendByte(AddWr);//發送器件地址

if(ack==0)return(0);

SendByte(0x40|Chl);//發送器件子地址

if(ack==0)return(0);

Start_I2c();

SendByte(AddWr+1);//10010001是讀命令

if(ack==0)return(0);

Val=RcvByte();

NoAck_I2c();//發送非應位

Stop_I2c();//結束匯流排

return(Val);

}

㈣ 關於AD590溫度感測器

AD590是一種電流輸出型溫度感測器,其電流輸出與絕對溫度成線性關系。工作電壓范圍為4V至30V,溫度檢測范圍為-55℃至+150℃。AD590的溫度-電流關系如下表所示:

溫度(℃) 電流(μA)

-55 0

0 1

100 101

150 151

AD590的引腳圖見下圖。實驗任務是利用AD590溫度感測器測量溫度,並將模擬量轉換結果送入ADC0809進行A/D轉換,再將結果顯示在數碼管上。

電路原理圖如圖4.30所示。硬體連線步驟如下:

(1) 將「單片機系統」區域中的P1.0-P1.7與「動態數碼顯示」區域中的ABCDEFGH埠用8芯排線連接。

(2) 將「單片機系統」區域中的P2.0-P2.7與「動態數碼顯示」區域中的S1-S2-S3-S4-S5-S6-S7-S8埠用8芯排線連接。

(3) 將「單片機系統」區域中的P3.0與「模數轉換模塊」區域中的ST端子用導線連接。

(4) 將「單片機系統」區域中的P3.1與「模數轉換模塊」區域中的OE端子用導線連接。

(5) 將「單片機系統」區域中的P3.2與「模數轉換模塊」區域中的EOC端子用導線連接。

(6) 將「單片機系統」區域中的P3.3與「模數轉換模塊」區域中的CLK端子用導線連接。

(7) 將「模數轉換模塊」區域中的A2-A1-A0端子用導線連接到「電源模塊」區域中的GND端子。

(8) 將「模數轉換模塊」區域中的IN0端子用導線連接到自製的AD590電路。

(9) 將「單片機系統」區域中的P0.0-P0.7用8芯排線連接到「模數轉換模塊」區域中的IN0端子。

以上步驟完成後,即可實現AD590溫度感測器的溫度測量和顯示功能。

㈤ 共地情況下,單片機AD采樣如何減少干擾

從理論上來說,2cm的隔離距離完全夠用了,至於還是出現干擾需要找到干擾源及干擾頻率後才能進一步定位。給你一個建議,如果有可能的話,將輸入20V轉5V採用DC/DC隔離電源模塊來實現,或許效果會好點。另外,適當多增加一些濾波電容,組合起來進行濾波。如果有條件,可以做一些EMC實驗,可以准確定位干擾源及其頻率點。

閱讀全文

與ad轉換實驗單片機相關的資料

熱點內容
windowsphp擴展安裝 瀏覽:91
emacslinux配置文件 瀏覽:379
python3在線教程 瀏覽:114
不小心刪文件夾的文件 瀏覽:480
java獲取手機IP 瀏覽:816
手機rar解壓密碼獲取 瀏覽:344
程序員被辭退工資怎麼處理 瀏覽:494
戀活的模型沒加密 瀏覽:159
如何把安卓機的微信轉移蘋果 瀏覽:583
爬山演算法相關題目 瀏覽:724
vc編程大全 瀏覽:118
excel表格單列數據加密 瀏覽:648
給同事的解壓話語 瀏覽:992
linux關閉網卡命令行 瀏覽:454
史上最漂亮程序員 瀏覽:770
java實現excel的導入 瀏覽:760
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668