日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言编程TLC2543AD采集,AD转换器TLC2543编程

發布時間:2024/10/12 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言编程TLC2543AD采集,AD转换器TLC2543编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、特性

(1)12位分辨率A/D轉換器;

(2)在工作溫度范圍內10μs轉換時間;

(3)11個模擬輸入通道;

(4)3路內置自測試方式;

(5)采樣率為66kbps;

(6)線性誤差+1LSB(max)

(7)有轉換結束(EOC)輸出;

(8)具有單、雙極性輸出;

(9)可編程的MSB或LSB前導;

(10)可編程的輸出數據長度。

二、引腳圖

TLC2543的引腳排列如圖所示。其中:

AIN0~AIN10:模擬輸入端;

CS:片選端;

DIN :串行數據輸入端;

DOUT:A/D轉換結果的三態串行輸出端;

EOC:轉換結束端;

CLK:I/O時鐘;

REF+:正基準電壓端;

REF-:負基準電壓端;

VCC:電源;

GND:地。

三、程序

本程序使用C51編程,每隔250ms采集一次數據,并通過串口發送出去,程序如下:

#i nclude

#i nclude

#i nclude

#define uchar unsigned char

#define uint unsigned int

sbit TCL2543_CLK ?=?P3^2;

sbit TCL2543_ADIN ?=?P3^3;

sbit TCL2543_DOUT?=?P3^4;

sbit TCL2543_CS??=?P3^5;

sbit EOC?=?P1^6;

// 其中 port 為通道:?通道0:port = 0x01?通道1:port = 0x02?通道2:port = 0x04 ...

uint read2543(unsigned char port)

{

unsigned int i;

uint ad_value=0;

TCL2543_CLK=0;

TCL2543_CS=0;

EOC=1;

port<<=4;

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

{

if(TCL2543_DOUT)?ad_value|=0x01;

TCL2543_ADIN=(bit)(port&0x80);

TCL2543_CLK=1;

_nop_();

_nop_();

_nop_();

TCL2543_CLK=0;

_nop_();

_nop_();

_nop_();

port=port<<1;

ad_value=ad_value<<1;

}

TCL2543_CS=1;

ad_value=ad_value>>1;

return ad_value;

}

void main(void)

{

unsigned int i = 0, a=0, result=0, j=0;

unsigned char tm_tm = 5;

float tmp;

tm_tm = 40;

SCON = 0x50; //串口方式1,允許接收

TMOD = 0x20; //定時器1 定時方式2

TCON = 0x40; //設定時器1 開始計數

TH1 = 0xFD; //11.0592MHz 9600 波特率

// TH1=0xF8;?//30MHz, 9600Bps = 248 = 0xF8

TL1 = 0xE8;

TI = 1;

TR1 = 1; //啟動定時器

// 使用定時器。30MHz晶振,0.4us周期,預置50000 = 20ms,計數50次=1秒

// 使用定時器0。11.0592MHz晶振,1.0us周期,預置50000 = 50ms,計數20次=1秒

TH0 = 60;?// (65536-50000)/256;

TL0 = 176;?// (65536-50000)%256;

TMOD = 0x20 + 0x01;// T1+T0, 工作方式1

TR0 = 1;?// START T0

while(1)

{

if (TF0 == 1)

{

a++;

if(a==tm_tm)?// 250ms

{

a = 0;

result =? read2543(1);

tmp = (result*60.0/4096.0);

printf ("%d, %4.2f\n", result, tmp);

}

TF0=0;

TH0=60;

TL0=176;

}

}

}

總結

以上是生活随笔為你收集整理的c语言编程TLC2543AD采集,AD转换器TLC2543编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。