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

熱點內容
程序員那麼可愛男主喝醉 瀏覽:35
安卓吃雞國際服怎麼更改國籍 瀏覽:325
安卓的耳機蘋果7怎麼用 瀏覽:446
怎麼判斷安卓是不是山寨機 瀏覽:763
android虛擬按鍵監聽 瀏覽:233
蘋果怎麼建文件夾擺放 瀏覽:740
在記事本里編譯java大綱 瀏覽:605
圖形化編程編譯器 瀏覽:791
用什麼app能打開word 瀏覽:303
室內裝修牆面演算法 瀏覽:229
太極十三勢pdf 瀏覽:888
程序員轉行學日語 瀏覽:310
pythonnltk分詞 瀏覽:211
51單片機液晶顯示原理 瀏覽:227
ppt下載後怎麼解壓 瀏覽:178
編譯人工代碼 瀏覽:273
k線形態pdf 瀏覽:508
解壓棒有什麼用 瀏覽:414
python剪切文件夾 瀏覽:502
海賊王pdf下載 瀏覽:199