TLC1549串行AD转换实验程序
TLC1549串行A/D转换实验程序
#include #include #include
#define OSC 11059200 #define BAUDRATE 9600
sbit CLK = P1^0;
sbit DATA = P1^1;
sbit CS = P1^2;
unsigned int ADConvert(void)
{
int i;
unsigned int ad;
ad = 0;
DATA = 1;
CS = 0;
for(i=0;i<10;i++)
{
ad <<= 1;
CLK = 0;
_nop_();
_nop_();
_nop_();
CLK = 1;
if(DATA) ad |= 0x01;
else ad &= 0xFFFE;
}
CS = 1;
return ad;
}
void main(void)
{
unsigned int i,j,ad;
float adf;
TMOD = 0x20;
SCON = 0x50;
PCON |= 0x80;
TL1 = 256 - (OSC/12/16/BAUDRATE);
TH1 = 256 - (OSC/12/16/BAUDRATE);
TR1 = 1;
TI = 1;
printf("\r\nTLC1549 test starting ...");
while(1)
{
for(j=0;j<10;j++) for(i=0;i<10000;i++);
ad = ADConvert(); // 取出上次数据,在第三个CLK开始本次取样
ad = ADConvert(); // 取出本次采样数据
adf = (ad*5.0)/1024.0;
printf("\r\tSampled! Data = %04X(X),%u(D) 电压=%4.2fV ",ad,ad,adf);
}
}
本文档为【TLC1549串行AD转换实验程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。