|
#include <reg52.h>
sbit ADDA=P1^0;//DA ADDB、 ADDC 为AD芯片的模拟信号输入选择引脚
sbit ADDB=P1^1;//ADDC ADDB、ADDA-000 说明模拟信 号从INO引脚进入
sbit ADDC=P1^2;
sbit ALE=P1^3;
sbit EOC=P1^4; //指明模数转换是否结束引脚, =1, 说明转换结束
sbit OE=P1^5; //转换而得的数字信 号输出控制引脚,=1,允许输出
sbit START=P1^6; //模拟信号转为数字信号的启动控制引脚,下降沿启动AD转换
void Delay(unsigned char t)
{ while(t--);
}
void Adc08O9Convert()
{ unsigned char temp;
ADDA=ADDB=ADDC=0; //选择模拟信号进入通道为INO
ALE=1;
START=0; //start的.上升沿清空ADC0809内部寄存器,下降沿启动转换
Delay(10);
START=1; //制造上升沿,清空ADC0809内部的寄存器;同时ALE=1,锁存地址
Delay(10);
START=0; //制造 下降沿,启动AD转换
while(EOC==0);//等待转换结束,当EOC=1时转换结束
OE=1; //转换结束, 打开输出端锁存器,将转换所得数据送上数据总线
P3=0XFF;
temp=P3;//将数据读取到临时变量temp中
}
void main()
{
while(1)
{
Adc0809Convert();
}
}
复位和晶振是我后来检查的时候断开的,一直无法转换出数字信号,但是发现不了问题。也问了一些师兄,还是不知道怎么回事的。
|
|