学习笔记单片机的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秒
❀ 转载是一种智慧❀ 分享是一种美德❀
单片机入门-数字电压表和模数转换(ADC)知识基础解说
单片机入门-数字电压表和模数转换(ADC)知识基础视频教程:
视频教程
一、模拟信号和数字信号
模拟信号指幅度的取值是连续的(幅值可由无限个数值表示)。时间上连续的模拟信号连续变化的图像(电视、传真)信号等。时间上离散的模拟信号是一种抽样信号,它是模拟信号每隔时间T抽样一次所得到的信号,虽然其波形在时间上是不连续的,但其幅度取值是连续的,所以仍是模拟信号,称之为脉冲幅度调制(PAM,简称脉幅调制)信号。
数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。
AD转换器(Analog-Digital Converter)是模数转换器的别称,其功能是将模拟量转换成对应的数字量。A/D转换器作为模拟量与数字量的桥梁,在数据采集、模拟量测量等领域获得了广泛应用
二、AD转换器参数指标
(1)分辨率:指对输入模拟量变化的灵敏度,习惯上用输出二进制的位数或BCD码位数表示。
(2) 转换误差:指与数字输出量所对应的模拟输入量的实际值与理论值之间的差值。常用最低有效位的倍数表示。
(3)转换速率:指能够重复进行数据转换的速度,即每秒转换的次数,而完成一次A/D转换所需的时间(包括稳定时间),为转换速率的倒数。
三、 ADC0809的使用
ADC0809时序中,CLK为转换时钟,要一直产生。转换过程为,ADC先在ALE引脚上产生上升沿进行通道地址锁存,将要转换的通道选中;接着在START引脚产生上升沿,启动转换进程;ADC转换开始后,EOC变低,表示正在转换过程中;当EOC变高时,表示转换结束,这时可以将OE引脚拉高,允许数据从AD中输出,最后通过D0~D7读取数据即可。
电路图如下:
电压表
相关问答
adc0809 与 单片机 连接的三种方式?51单片机与0809连接时,实际上有两类接法。一是将0809连接为51的一个外扩存储器。执行MOVX指令时端口时序恰好能够满足0809要求。启动A/D转换,以及模拟通道实...
考计算机专业需要买什么价位的笔记本电脑?计算机专业分硬件和软件两种。如果你的兴趣在软件,例如编程,设计,预算又足够的话建议买台macbook,原因如下:1.系统性能强大,无论是用来编译软件还是渲染图...