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
}
 
相关推荐
古译汉书16 分钟前
【IoT死磕系列】Day 9:架构一台“自动驾驶物流车”,看8种协议如何协同作战
网络·arm开发·单片机·物联网·tcp/ip·架构·自动驾驶
FreakStudio3 小时前
小作坊 GitHub 协作闭环:fork-sync-dev-pr-merge 实战指南
python·单片机·嵌入式·面向对象·电子diy
cmpxr_7 小时前
【单片机】位域非原子写的风险
单片机·嵌入式硬件
FPGA-ADDA8 小时前
第二篇:RFSoC芯片架构详解——处理系统(PS)与可编程逻辑(PL)
嵌入式硬件·fpga开发·信号处理·fpga·47dr
summer__77779 小时前
作业2:6位数码管静态显示
51单片机·proteus
恒森宇电子有限公司9 小时前
南麟LN1151 超低静态功耗 CMOS 低压差线性稳压器 多种封装形式
单片机·嵌入式硬件
九鼎创展科技10 小时前
国产高性能 MCU 开发板新标杆:PICO2 主板深度解析
单片机·嵌入式硬件
LCG元11 小时前
STM32实战:基于STM32F103的LCD1602液晶屏(并口/模拟时序)驱动
stm32·单片机·嵌入式硬件
可乐鸡翅好好吃11 小时前
从四个 ble_evt_handler 看 Nordic BLE 架构:模块化解耦与优先级控制
单片机·嵌入式硬件
匿名了匿名了12 小时前
直流无刷与直流有刷电机
stm32·嵌入式硬件·mcu