C51单片机——(A/D转换)使用ADC0809将模拟信号转换为数字信号

实现效果如图:

在这里插入图片描述

当电压为1V时,转换的数字信号为0011 0011
在这里插入图片描述

代码如下:

#include<reg52.h>
sbit ADDA=P3^0;
sbit ADDB=P3^1;
sbit ADDC=P3^2;
sbit START=P3^3;
sbit EOC=P3^4;
sbit OE=P3^5;
void Delay(unsigned char i)
{
    
    
	while(i--);
}

void Adc0809Convert()
{
    
    
	unsigned char temp;
	ADDA=0,ADDB=0,ADDC=0;//IN0

	START=1;//清空ADC0809内部寄存器
	Delay(10);
	START=0;//引出下降沿,启动A/D转换
	
	while(EOC==0);//判断是否转换结束
	OE=1;//转换得到的数据送上数据总线.
	temp=P1;//接收数据
}
int main(void)
{
    
    
		while(1)
		{
    
    
			Adc0809Convert();
		}
}


> 实现过程

1.IN0~IN7(模拟通道输入端)
引脚——ADDA,ADDB,ADDC选择(模拟通道选择地址信号).
2、START(A/D转换启动信号)
a.置1——上升沿清空ADC0809内部寄存器,下降沿开始A/D转换
b.置0——引出下降沿,启动A/D转换
3.EOC(转换结束信号)——高电平有效-结束
通过 while(EOC==0);判断是否转换结束
4.OE(输入允许信号)
OE=1时,输出转换得到的数据.
5.D0~D7(A/D转换后的数据输出端)
定义一个temp接收数据.

猜你喜欢

转载自blog.csdn.net/weixin_53391957/article/details/117335104
今日推荐