单片机采集信号
我的毕设是多传感器现场采集,我想问单片机是如何采集外界信号的?单片机型号是MCS-51。谢啦!我急用,最好能再推荐几本关于这方面的书籍。...
我的毕设是多传感器现场采集,我想问单片机是如何采集外界信号的?单片机型号是MCS-51。 谢啦!我急用,最好能再推荐几本关于这方面的书籍。
展开
5个回答
展开全部
MCS-51单片机内部没有AD转换器,需要外接AD转换器。比较常用的有ADC0809,这是款8位的AD转换芯片。不知道你要采集的信号是什么信号?如果变化比较缓慢的话就不用加采样保持电路,如果信号变化比较快的话就要加采样保持电路。芯片的编程也比较简单。
下面是ADC0809的程序:
//ADC0809采样程序
#include<reg51.h>
sbit a1=P1^0;
sbit b1=P1^1;
sbit c1=P1^2;
sbit eoc=P1^3;
sbit st=P1^4;
sbit oe=P1^6;
unsigned long dat;
unsigned char show_char[]={0xc0,0xf9,0xa4,0xb0,0X99,
0X92,0x82,0xf8,0x80,0x90,
0x40,0x79,0x24,0x30,0x19,
0x12};
unsigned char buf[4]={3,4,5,0};
unsigned char bit_sel[3]={0xfd,0xfe};
int i,j;
void delay(us)
{ while(us--)
{for(i=0;i<100;i++);}
}
main()
{ //初始化adc0809
st=0;
oe=0;
a1=0;
b1=0;
c1=0;
while(1)
{ //启动AD转换获得数据
//
st=0;
st=1;
delay(1);
st=0;
while(eoc==0) ;
oe=1;
dat=P3;
delay(1);
oe=0;
//处理数据
//dat=0xf0;
dat=(int)dat*5.0/255.0*100.0;
buf[0]=dat/100;
buf[0]=buf[0]+10;
dat=dat%100;
buf[1]=dat/10;
buf[2]=dat%10;
//数据显示
for(j=0;j<2;j++)
{ P2=bit_sel[j];
P0=show_char[buf[j]];
delay(1);
}
}
}
下面是ADC0809的程序:
//ADC0809采样程序
#include<reg51.h>
sbit a1=P1^0;
sbit b1=P1^1;
sbit c1=P1^2;
sbit eoc=P1^3;
sbit st=P1^4;
sbit oe=P1^6;
unsigned long dat;
unsigned char show_char[]={0xc0,0xf9,0xa4,0xb0,0X99,
0X92,0x82,0xf8,0x80,0x90,
0x40,0x79,0x24,0x30,0x19,
0x12};
unsigned char buf[4]={3,4,5,0};
unsigned char bit_sel[3]={0xfd,0xfe};
int i,j;
void delay(us)
{ while(us--)
{for(i=0;i<100;i++);}
}
main()
{ //初始化adc0809
st=0;
oe=0;
a1=0;
b1=0;
c1=0;
while(1)
{ //启动AD转换获得数据
//
st=0;
st=1;
delay(1);
st=0;
while(eoc==0) ;
oe=1;
dat=P3;
delay(1);
oe=0;
//处理数据
//dat=0xf0;
dat=(int)dat*5.0/255.0*100.0;
buf[0]=dat/100;
buf[0]=buf[0]+10;
dat=dat%100;
buf[1]=dat/10;
buf[2]=dat%10;
//数据显示
for(j=0;j<2;j++)
{ P2=bit_sel[j];
P0=show_char[buf[j]];
delay(1);
}
}
}
展开全部
要用AD转换,8位的,12位的,看你要求的精度了。书籍嘛,C51典型模块应用 里面有相关知识,很多书籍都有的,AD转换,祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单片机是使用传感器来采集外界信号的。
传感器,种类很多,应用场合也不同。
先要明确你的设计目的和要求。
传感器,种类很多,应用场合也不同。
先要明确你的设计目的和要求。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mcs51单片机应该有A/D转换引脚了吧.你把外部的信号经过放大后接到该引脚就行.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
信号采集->信号放大->信号转换ADC->单片机处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询