单片机采集信号

我的毕设是多传感器现场采集,我想问单片机是如何采集外界信号的?单片机型号是MCS-51。谢啦!我急用,最好能再推荐几本关于这方面的书籍。... 我的毕设是多传感器现场采集,我想问单片机是如何采集外界信号的?单片机型号是MCS-51。 谢啦!我急用,最好能再推荐几本关于这方面的书籍。 展开
 我来答
百度网友b42963e73
2009-12-13 · TA获得超过529个赞
知道答主
回答量:149
采纳率:0%
帮助的人:152万
展开全部
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);
}

}
}
zqjia_2
2009-12-11 · 超过31用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:0
展开全部
要用AD转换,8位的,12位的,看你要求的精度了。书籍嘛,C51典型模块应用 里面有相关知识,很多书籍都有的,AD转换,祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2009-12-11 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
单片机是使用传感器来采集外界信号的。
传感器,种类很多,应用场合也不同。
先要明确你的设计目的和要求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
72409190
2009-12-11
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
mcs51单片机应该有A/D转换引脚了吧.你把外部的信号经过放大后接到该引脚就行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
efenwu
2009-12-11 · TA获得超过421个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:115万
展开全部
信号采集->信号放大->信号转换ADC->单片机处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式