8051单片机和ADC0809 连接的C语言编程

我现在用0809的AD转换器 和 8051单片机相连 需要让AD把一个数据传给8051 并且这个数据是时时变化的,需要不停地传入 这当中需要初始化、中断等等编程 小弟是菜鸟不太会 哪位高手编译下代码 谢谢啦
分数都给了

启动ADC0809,ADC0809将开始将外部电压转换成数字,当转换完成时,转换完成信号引脚会输出一个电平(请查看datasheet).这时单片机就可以直接读取数据了.

如果要不停采集,就继续启动采集,再查询ADC0809完成引脚.

ADC0809芯片的采集速度是几百K吧.记不得了,你自己看下.

也可以将ADC0809的完成引脚接到单片机的外部中断引脚上,这样就可以在中断中读取.
代码自己找下吧,网上很多的.

这个给你参考:
#define voldata P2

sbit adra=P0^0;
sbit adrb=P0^1;
sbit adrc=P0^2;
sbit ale=P0^3;
sbit st=P0^4;
sbit eoc=P0^5;
sbit oe=P0^6;

unsigned char getvol(unsigned char adr)
{
unsigned char volnumber=0;
unsigned int n=1000;
oe=0;
ale=0;
adra=!(!(adr&0x01));
adrb=!(!(adr&0x02));
adrc=!(!(adr&0x04));
ale=1;
st=0;
st=1;
st=0;
while(n--);
while(!eoc);
oe=1;
volnumber=voldata;
oe=0;
return(volnumber);
}

只要向函数传递一个0-7的地址(adra、adrb、adrc是地址线);便会返回相对应地址上的0-255的值;再根据相应的基准电压便可以计算出被测电压的值了!

参考资料:http://zhidao.baidu.com/question/98352175.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-20
上迅雷去下,肯定有,这个是单片机教材中的经典实例!
相似回答