标题:
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)
下载附件
2021-12-12 01:35 上传
作者:
xuyaqi
时间:
2021-12-12 09:26
protus-ALE是没有脉冲输出的,你需要给ADC0808另外加时钟脉冲。
作者:
wulin
时间:
2021-12-12 10:26
数字电压表ADC0808.zip
(88.84 KB, 下载次数: 10)
2021-12-12 10:26 上传
点击文件名下载附件
沙发说的对,给你一个仿真示例参考。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1