找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 722|回复: 2
收起左侧

51单片机AD转化不出来,求解答

[复制链接]
ID:991042 发表于 2021-12-12 01:36 | 显示全部楼层 |阅读模式
#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
回复

使用道具 举报

ID:94031 发表于 2021-12-12 09:26 | 显示全部楼层
protus-ALE是没有脉冲输出的,你需要给ADC0808另外加时钟脉冲。
回复

使用道具 举报

ID:213173 发表于 2021-12-12 10:26 | 显示全部楼层
数字电压表ADC0808.zip (88.84 KB, 下载次数: 9)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表