产品选型

51单片机ad0809 学习笔记单片机的40个经典实验之32:ADC0809AD 转换器基本应用技术

小编 2024-11-25 产品选型 23 0

学习笔记单片机的40个经典实验之32:ADC0809AD 转换器基本应用技术

1. 基本知识

ADC0809 是带有 8 位 A/D 转换器、8 路多路开关以及微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼近式 A/D 转换器,可以和单片机直接接口。

(1). ADC0809 的内部逻辑结构

由上图可知,ADC0809 由一个 8 路模拟开关、一个地址锁存与译码器、一个 A/D转换器和一个三态输出锁存器组成。多路开关可选通 8 个模拟通道,允许 8 路模拟量分时输入,共用 A/D 转换器进行转换。三态输出锁器用于锁存 A/D 转换完的数字量,当 OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。

(2). 引脚结构

IN0-IN7:8 条模拟量输入通道ADC0809 对输入模拟量要求:信号单极性,电压范围是 0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4 条ALE 为地址锁存允许输入线,高电平有效。当 ALE 线为高电平时,地址锁存与译码器将 A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和 C 为地址输入线,用于选通 IN0-IN7 上的一路模拟量输入。通道选择表如下表所示。

数字量输出及控制线:11 条

ST 为转换启动信号。当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当 EOC 为高电平时,表明转换结束;否则,表明正在进行 A/D 转换。OE 为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0 为数字量输出线。CLK 为时钟输入信号线。因 ADC0809 的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为 500KHZ,VREF(+),VREF(-)为参考电压输入。

2. ADC0809 应用说明

(1). ADC0809 内部带有输出锁存器,可以与 AT89S51 单片机直接相连。

(2). 初始化时,使 ST 和 OE 信号全为低电平。

(3). 送要转换的哪一通道的地址到 A,B,C 端口上。

(4). 在 ST 端给出一个至少有 100ns 宽的正脉冲信号。

(5). 是否转换完毕,我们根据 EOC 信号来判断。

(6). 当 EOC 变为高电平时,这时给 OE 为高电平,转换的数据就输出给单片机了。

3. 实验任务

如下图所示,从 ADC0809 的通道 IN3 输入 0-5V 之间的模拟量,通过 ADC0809转换成数字量在数码管上以十进制形成显示出来。ADC0809 的 VREF 接+5V电压。

4. 电路原理图

5. 系统板上硬件连线

(1). 把“单片机系统板”区域中的 P1 端口的 P1.0-P1.7 用 8 芯排线连接到“动态数码显示”区域中的 A B C D E F G H 端口上,作为数码管的笔段驱动。

(2). 把“单片机系统板”区域中的 P2 端口的 P2.0-P2.7 用 8 芯排线连接到“动态数码显示”区域中的 S1 S2 S3 S4 S5 S6 S7 S8 端 口 上 ,作为数码管的位段选择。

(3). 把“单片机系统板”区域中的 P0 端口的 P0.0-P0.7 用 8 芯排线连接到“模数转换模块”区域中的 D0D1D2D3D4D5D6D7 端口上,A/D 转换完毕的数据输入到单片机的 P0 端口

(4). 把“模数转换模块”区域中的 VREF 端子用导线连接到“电源模块”区域中的 VCC 端子上;

(5). 把“模数转换模块”区域中的 A2A1A0 端子用导线连接到“单片机系统”区域中的 P3.4 P3.5 P3.6 端子上;

(6). 把“模数转换模块”区域中的 ST 端子用导线连接到“单片机系统”区域中的 P3.0 端子上;

(7). 把“模数转换模块”区域中的 OE 端子用导线连接到“单片机系统”区域中的 P3.1 端子上;

(8). 把“模数转换模块”区域中的 EOC 端子用导线连接到“单片机系统”区域中的 P3.2 端子上;

(9). 把“模数转换模块”区域中的 CLK 端子用导线连接到“分频模块”区域中的 /4 端子上;

(10). 把“分频模块”区域中的 CK IN 端子用导线连接到“单片机系统”区域中的 ALE 端子上;

(11). 把“模数转换模块”区域中的 IN3 端子用导线连接到“三路可调压模块”区域中的 VR1 端子上;

6. 程序设计内容

(1). 进行 A/D 转换时,采用查询 EOC 的标志信号来检测 A/D 转换是否完毕,若完毕则把数据通过 P0 端口读入,经过数据处理之后在数码管上显示。

(2). 进行 A/D 转换之前,要启动转换的方法:ABC=110 选择第三通道ST=0,ST=1,ST=0 产生启动转换的正脉冲信号

7. 汇编源程序

CH EQU 30H

DPCNT EQU 31H

DPBUF EQU 33H

GDATA EQU 32H

ST BIT P3.0

OE BIT P3.1

EOC BIT P3.2

ORG 00H

LJMP START

ORG 0BH

LJMP T0X

ORG 30H

START: MOV CH,#0BCH

MOV DPCNT,#00H

MOV R1,#DPCNT

MOV R7,#5

MOV A,#10

MOV R0,#DPBUF

LOP: MOV @R0,A

INC R0

DJNZ R7,LOP

MOV @R0,#00H

MOV TMOD,#01H

MOV TH0,#(65536-4000)/256

MOV TL0,#(65536-4000) MOD 256

SETB TR0

SETB ET0

SETB EA

WT: CLR ST

SETB ST

CLR ST

WAIT: JNB EOC,WAIT

SETB OE

MOV GDATA,P0

CLR OE

MOV A,GDATA

MOV B,#100

DIV AB

MOV 33H,A

MOV A,B

MOV B,#10

DIV AB

MOV 34H,A

MOV 35H,B

SJMP WT

T0X: NOP

MOV DPTR,#DPCD

MOV A,DPCNT

ADD A,#DPBUF

MOV R0,A

MOV A,@R0

MOVC A,@A+DPTR

MOV P1,A

MOV DPTR,#DPBT

MOV P2,A

INC DPCNT

MOV A,DPCNT

CJNE A,#8,NEXT

MOV DPCNT,#00H

NEXT: RETI

DPCD: DB 3FH,06H,5BH,4FH,66H

DB 6DH,7DH,07H,7FH,6FH,00H

DPBT: DB 0FEH,0FDH,0FBH,0F7H

DB 0EFH,0DFH,0BFH,07FH

END

8. C 语言源程序

#include <AT89X52.H>

unsigned char code dispbitcode={0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};

unsigned char dispcount;

sbit ST=P3^0;

sbit OE=P3^1;

sbit EOC=P3^2;

unsigned char channel=0xbc;//IN3

unsigned char getdata;

void main(void)

{

TMOD=0x01;

TH0=(65536-4000)/256;

TL0=(65536-4000)%256;

TR0=1;

ET0=1;

EA=1;

P3=channel;

while(1)

{

ST=0;

ST=1;

ST=0;

while(EOC==0);

OE=1;

getdata=P0;

OE=0;

dispbuf[2]=getdata/100;

getdata=getdata%10;

dispbuf[1]=getdata/10;

dispbuf[0]=getdata%10;

}

}

void t0(void) interrupt 1 using 0

P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

dispcount++;

if(dispcount==8)

{

dispcount=0;

阅读本文用了: 秒,转发只需1秒

转载是一种智慧 分享是一种美德❀

用单片机设计自由摆的平板控制系统

本文采用角度传感器,运算放大器,AD转换器采集平板变化信息,通过单片机,产生脉冲信号,控制电机模块驱动步进电机带动平板转动,摆杆角度越大步进电机转过的角度越大,从而控制平板状态基本保持水平,实现自由摆得平板控制。

1 自由摆的平板系统基本组成原理

根据自由摆的平板控制系统的设计要求,电机控制平板,当摆杆移动时要保持平板的平衡,因此需要采用传感器获得摆杆移动的角度值,再通过电机控制平板旋转相应的角度,从而保持平板的水平位置。其基本组成框图原理如下:

采用日本村田公司的ENV05G陀螺传感器,安装于平板,以获得平板的位置和姿态信息。

当摆杆移动时,平板的水平位置会发生变化,此信号通过调理电路输入到AD0809转换器,单片机获得摆杆的变化信息,控制TA8435芯片,使摆杆上的电机也作相应的旋转,及时调整平板变化位置,从而使平板基本保持水平的位置。

2 硬件电路的设计

硬件电路设计包括:传感器与信号采集电路,单片机控制电机电路。

1 传感器采用日本村田公司的ENV05G陀螺传感器,通过检测,测量角度,实现运动物体的位置控制和姿态控制,它具备高可靠性,高精度,快响应,低噪音特点。

其输出到传感器外围调理电路,是一个由LM324运放组成的二阶压控源RC低通滤波器,信号从同相端输入,具有较高的输入阻抗,放大器的增益为:Auf=1+Rf/R1=1+33k/56k=1.589。输出信号首先经R1,R3分压,分压比为:56/(33+56)=0.629调理电路放大倍数为:0.629*1.589=1,传感器信号调理电路输出即为角度传感器能够输出的角度范围值。设计中将角度传感器放在摆杆上,从静止开始来回旋转,即可得到摆杆的实时角速度值,再通过软件处理输出角度值。

由于陀螺仪传感器输出为模拟信号,处理器单片机要想使用其提供的信息,必须进行A/D转换,把模拟信号转变为数字信号,从而实时得到角速度值。将运算放大器Vout输入给0809的IN0,将电压模拟信号转变为与之对应相等的数字信号,输入给单片机进行数据处理。OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

AD0809的数据输出公式为:Vout=Vin*255/5=Vin*51,其中Vin为输入模拟电压,Vout为输出数据。ALE为地址锁存允许输入线,高电平有效。CLK为时钟输入信号线。ADC0809内部无时钟电路,本设计中用单片机给ADC0809提供时钟信号,减少硬件电路。将A/D转换输出OUT口与单片机P2口相连,单片机接收的输入数字角速度量。

A/D转换,单片机电路

2 单片机控制步进电机电路的设计

电机选择42BYGHW208型步进电机,此电机是两相四线制,体型较小,力矩可以满足要求。步进电机整步工作情况下,距角为1.8°,所以一个脉冲使电机转动1.8°。单片机电路,AD换后的数字信号交由单片机处理。由θ传=θ电机 ,通过控制步进电机输入脉冲频率控制其转动的角度,即可以基本实现要求,使平板在摆杆一个周期内转一圈,五个周期转五圈,也可以保持电机角度与摆杆角度相等,以此实现基本要求,使平板保持水平,实现硬币不能掉下的任务。

自由摆得平板控制软件设计

1 使平板随着摆杆的摆动而旋转:预计摆杆摆动一个周期所需的时间t,以此作为平板旋转一周的时间,则电机的角速度为360/t deg/s,因为电机步进角为1.8度,故所需脉冲频率360/(t*1.8)。以此计算出定时器的中断次数N,即可控制平板随着摆杆的摆动而旋转,摆杆摆一个周期,平板旋转一周。

2 使平板保持水平:开始——传感器电压增加——单片机控制电机左转,根据传感器输出电压幅值大小确定定时器定时时间,从而确定频率,从而控制步进电机的转速。

3 用手推摆杆至50度,激光笔照射程序:推动摆杆至某一固定位置,由三角形角度关系及正余弦定理确定电机所需旋转角度,从而确定电机所需脉冲数目。由单片机产生100HZ的定时中断,由程序设置中断的数目,从而控制步进电机转过的角度。

实际测试结果与分析

1 测试器材

量角器、硬币、激光笔、卷尺、靶纸(A4打印纸)

2 测试方法

测试方法:将摆杆拉至某一规定位置,观察平板运动,观察平板上的硬币数目,观察激光灯打在靶纸上的位置,逐渐调整程序,减小误差。

基本要求测试:先通过简单的目测大致判断出自由摆与平台的转动一周的周期是否相等。对程序进行初步的调整然后使用秒表分别测出自由摆与平台转动一周的时间是否相等。再次对程序进行仔细的调整,使得自由摆转动一周时平台也恰巧转动一周。

结果:初步调整时,对电机的控制不精确使得转动误差较大,经过仔细调整平台与自由摆基本上同步。

接通电源,摇晃自由摆,并观察角度传感器读数是否正确,若正确则接上电机,用手推动摆杆至30到45度,调整平板角度,在平板稳定中心放置一枚1元硬币,启动后放开摆杆让其自由摆动。在摆杆滑动过程中,要求控制平板状态,使硬币在5个摆动周期中不从平板上滑落。观察是否会滑离平板的中心位置。

步进电机反应太慢导致硬币滑落,经仔细研究摆动原理并更改程序终于使一枚硬币平稳的放在平台中央未见滑落。完成了要求二。

接通电源,先检测角度传感器是否正常,若正确则接上电机,用手推动摆杆至45到60度,调整平板角度,在平板中心稳定叠放8枚1元硬币。启动后放开摆杆让其自由摆动。在摆杆摆动过程中,要求控制平板状态使硬币在摆杆的5个摆动周期中不从平板滑落,观察是否有硬币掉落以及是否保持叠放状态。

由于硬币增多导致平板负重增加,并且硬币间容易滑落导致失败。经过长时间反复思考并修改程序终于能够基本实现要求三。

结语

使用51单片机结合相应的传感器,数据采集和电机控制实现自由摆的平板控制,电路实现简单可靠,传感器数据采集与处理方法实用,是解决自由摆的平板控制一种方法,取得较好效果。

(编自《电气技术》,原文标题为“基于自由摆的平板控制系统”,作者为王宁、段卓琳。)

相关问答

adc 0809 单片机 连接的三种方式?

51单片机与0809连接时,实际上有两类接法。一是将0809连接为51的一个外扩存储器。执行MOVX指令时端口时序恰好能够满足0809要求。启动A/D转换,以及模拟通道实...

dac 0809 是什么芯片?

楼主要问的是ADC0809芯片吧,没有DAC0809芯片。ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它...

采用ADC 0809 设计一个多通道模拟电压采集接口电路?

ADC0809只能采集电压信号,对于电流信号需要转化为电压信号后采集。即不能直接用ADC0809采集电流信号。ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐...

单片机 请问ADC的基准指的是什么?

ADC的基准电压是ADC转换电路里用于确定目标测量电压的最高范围。因此基准电压的选取对ADC转换的精度有所影响。例如:ADC0809的电源电压范围是4.75v-5.25v。...

getdata*1.0/255*500,getdata是ADC 0809 输出 单片机 的_作业帮

[最佳回答]ADC0809,是模数转换器件.它把光敏电阻上的实际电压值(多少V~多少多少V),转换成了数字量(0~255).一般来说,ADC0809输出的二进制数据,正比于,光敏电阻...

单片机 是否一般自带采样保持器?

不管是ADC0809或是单片机自带,只要是在发出第二次采样指令之前,前一次采样值是始终保持在AD输出的,只要单片机去读引脚或读AD寄存器不管是ADC0809或是单片机...

热水器温度 控制器多少钱

空气源热泵热水器控制器一般在300元左右,它的设计主要采用简单的器件:如51单片机,液晶屏显示12864,ADC0809等配件构成,与C语言编程相结合;充分利用内外围功能...

在线的老表哪位了解 南昌口碑好的ADC发泡剂原料,ADC发泡剂...

[回答]ADC0809输出给单片机的数据类型是二进制的。ADC是8位模数转换器,以5V作参考电压(8位数字量表示0~255),则:5/255≈0.0196,这就是分辨率(即数字量没加...

诸位大佬 我想知道:长春ADC发泡剂原料多少钱一桶,ADC发泡剂...

[回答]ADC0809概述ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只...

什么是接口技术? - 135****1022 的回答 - 懂得

SCSI就是指SmallComputerSystemInterface(小型计算机系统接口),它最早研制于1979年,原是为小型机的研制出的一种接口技术,但随着电脑技术的发展,...

猜你喜欢