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
}
 
相关推荐
路上有只喵1 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇2
单片机·嵌入式硬件
单片机仿真设计1 小时前
Proteus仿真51单片机的智能温控风扇调速系统设计(仿真图+程序)
单片机·嵌入式硬件·proteus
youcans_3 小时前
【嵌入式软件AI编程】22. STM32 基础实验:GPIO外部中断
stm32·单片机·嵌入式硬件·ai编程·claude
未来_攻城狮3 小时前
STM32F407VGT6 芯片详解:高性能 Cortex-M4 MCU 入门指南
stm32·单片机·嵌入式硬件
xcLeigh3 小时前
FreeRTOS实战:用STM32+SEGGER打造工业级实时嵌入式系统
人工智能·stm32·单片机·嵌入式硬件·ai
路上有只喵3 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇1
单片机·嵌入式硬件
芯岭技术郦4 小时前
XL4460 FSK 无线透传模组
stm32·单片机·嵌入式硬件
半导体憨包4 小时前
共源共栅(Cascode)功率器件:让 SiC / GaN “兼容“你的硅栅驱动
嵌入式硬件·生成对抗网络·硬件工程·半导体·dc-dc·半导体芯片
天空'之城4 小时前
单片机基础核心知识点汇总(五十)
单片机·嵌入式硬件
硅基造物主5 小时前
STM32 从 0 到 1 做智能家居(十):串口与 printf 重定向
stm32·单片机·智能家居·usart·中断