導航:首頁 > 操作系統 > 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轉換實驗單片機相關的資料

熱點內容
批量生產日期的文件夾 瀏覽:278
stl通用演算法 瀏覽:908
建築資料軟體加密狗如何復制 瀏覽:345
華為手機怎麼換文件夾的圖標 瀏覽:845
pdf轉換png格式的圖片 瀏覽:518
桌面新文件夾打不開 瀏覽:479
生存邊緣建造是哪個文件夾 瀏覽:530
仙島湖王英碼頭到東源碼頭 瀏覽:975
nfc對加密鎖毫無反應嗎 瀏覽:222
android文件分區 瀏覽:368
南京開通數控螺紋編程 瀏覽:290
伺服器與ups用什麼線 瀏覽:967
unix網路命令 瀏覽:48
程序員表白代碼大全可復制 瀏覽:365
手機如何共享web伺服器 瀏覽:956
php介面有什麼用 瀏覽:382
iis如何安裝php 瀏覽:791
k5嗜血魔鍵安卓怎麼調好用 瀏覽:834
建行app中如何添加銀行卡 瀏覽:281
簡便演算法100點 瀏覽:161