标题: 51单片机AD转化不出来,求解答 [打印本页]

作者: jade-lluo    时间: 2021-12-12 01:36
标题: 51单片机AD转化不出来,求解答
#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();
}
}



复位和晶振是我后来检查的时候断开的,一直无法转换出数字信号,但是发现不了问题。也问了一些师兄,还是不知道怎么回事的。

51hei图片20211212013509.png (31.11 KB, 下载次数: 32)

51hei图片20211212013509.png

作者: xuyaqi    时间: 2021-12-12 09:26
protus-ALE是没有脉冲输出的,你需要给ADC0808另外加时钟脉冲。
作者: wulin    时间: 2021-12-12 10:26
数字电压表ADC0808.zip (88.84 KB, 下载次数: 10) 沙发说的对,给你一个仿真示例参考。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1