51单片机AD转换(ADC0808)

ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。

将参考电压输出成0~255

引脚

ADC0808芯片有28条引脚,采用双列直插式封装。各引脚功能如下:

1~5和26~28(IN0~IN7):8路模拟量输入端。

8、14、15和17~21(out1~out8):8位数字量输出端。高位在前

22(ALE ):地址锁存允许信号,输入,高电平有效。

6(START ): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。

7(EOC ): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

9(OE ):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

10(CLK ):时钟脉冲输入端。要求时钟频率不高于640KHZ。

12(VREF(+) )和16(VREF(-) ):参考电压 输入端

11(Vcc ):主电源输入端。

13(GND ):地。

23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路

时序图

给START和ALE脉冲,这时芯片会将ADD(A~C)地址写入,启动AD转换,转换过程中EOC为低电平,转换成功后EOC为高电平,这时向OE写入1即可读出out的数据(0~255)。

参考接线

仿真图

代码

cpp 复制代码
#include <REGX52.H>
sbit ADDA=P1^4;
sbit ADDB=P1^5;
sbit ADDC=P1^6;
sbit START_ALE=P1^2;
sbit EOC=P1^1;
sbit CLOCK=P1^3;
sbit OE=P1^0;

unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char i=0;
//void delay_ms(unsigned int ms)//ms延时函数
//{
//	unsigned int i,j;
//	for(i=ms;i>0;i--)
//		for(j=110;j>0;j--);
// 
//}
// 
void Timer_Init()//定时器初始化
{
	TMOD=0x01; //设置为定时器0工作模式1
	TL0=(65536-100)%256;//低八位
	TH0=(65536-100)/256;//高八位
	TR0 = 1; //定时器0开始计时
	EA=1;//开启总中断
	ET0=1;//开启定时器0中断
}


unsigned char ADC0808_Out()//ad转换,将电压八位输出
{
	unsigned char out=0;
	ADDA=1;//ADC地址端,通过A~C可选0~7
	ADDB=1;
	ADDC=0;
	START_ALE=0;//START和ALE先给低电平再给高电平,写入地址,启动adc
	START_ALE=1;
	START_ALE=0;
	while(EOC==0);//等待ad转换结束
	OE=1;//向OE端写入1,三态门输出数据
	out=P3;
	OE=0;
	return out;
} 

void main()
{
	P2=0xfe;
	Timer_Init();//初始化定时器
  while(1)	
  { 
		i=ADC0808_Out()/50;//将256大致区分到5级
		P0=tab[i];
  }
}

void Timer0() interrupt 1
{
	TL0=(65536-100)%256;//低八位
	TH0=(65536-100)/256;//高八位
	CLOCK=~CLOCK;//给ADC时钟10khz
}
 
相关推荐
芯岭技术郦39 分钟前
集成 2.4G 射频收发器、MCU 及丰富外设的XL2417D透传模组
单片机·嵌入式硬件
进击的小头1 小时前
第7篇:MOS 管最全入门:原理、关键参数、选型、驱动与典型应用
经验分享·科技·嵌入式硬件·学习
zlinear数据采集卡1 小时前
定时器电路深度解析:从经典555到STM32定时器,从ZLinear采集卡的工程化设计实战
stm32·单片机·嵌入式硬件·fpga开发·自动化
y.Ghost1 小时前
FreeRTOS-基础知识
嵌入式硬件
m0_377108142 小时前
stm32-USART
stm32·单片机·嵌入式硬件
szxinmai主板定制专家3 小时前
基于 ARM+FPGA精密多轴实时运动控制卡设计方案,适用于半导体设备等高精度领域(一)
arm开发·人工智能·嵌入式硬件·fpga开发·架构·语音识别
不做无法实现的梦~5 小时前
常见工程分析软件
stm32·嵌入式硬件·算法
国产电子元器件6 小时前
电流检测信号漂移问题分析
单片机·嵌入式硬件
YangWeiminPHD6 小时前
单片机AI边缘计算发展之路:从M0的开局到三足鼎立的智能革命
人工智能·单片机·边缘计算
梁朝辉6 小时前
筛选运算放大器时对于开环增益这一项参数怎么看?
嵌入式硬件·硬件工程