实验ADC0809-0832模数转换实验
实验十三 ADC0809模数转换实验
一、实验目的
1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用。
2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。
二、实验说明
本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。下图为该芯片的引脚图。
各引脚功能如下:
IN0~IN7ADD-A、ADD-B、ADD-C:三位地址码输入端。八路模拟信号转换选择由这三个端口控制。
CLOCK:外部时钟输入端(小于1MHz)。
D0~D7:数字量输出端。
OE:A/D转换结果输出允许控制端。当OE为高电平时,允许A/D转换结果从D0~D7端输出。
ALE:地址锁存允许信号输入端。八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。
START:启动A/D转换信号输入端。当START端输入一个正脉冲时,将进行A/D转换。
EOC:A/D转换结束信号输出端。当 A/D转换结束后,EOC输出高电平。
Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。
VCC和GND:芯片的电源端和地端。
三、实验步骤
1、单片机最小应用系统1的 P0口接A/D转换的D0~D7口,单片机最小应用系统1的Q0~Q7口接0809的A0~A7口,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、P2.0、CLOCK、INT1,A/D转换的IN接入+5V,单片机最小应用系统1的P1.0、P1.1连接到串行静态显示实验模块的DIN、CLK。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 AD转换.ASM源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。5LED静态显示“AD XX”,“XX”为AD转换后的值,8位发光二极管显示“XX”的二进制值,调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,AD转换值的范围是0~FFH。
四、流程图及源程序
1.源程序
DBUF EQU 30H
TEMP EQU 40H
DIN BIT P1.0
CLK BIT P1.1
ORG 0000H
LJMP START
ORG 50H
START: MOV R0,#DBUF ;显示缓冲器存放0AH,0DH,-,0XH,0XH
MOV @R0,#0AH ;串行静态显示“AD XX”XX表示0~F
INC R0
MOV @R0,#0DH
INC R0
MOV @R0, #10H
INC R0
MOV DPTR,#0FEF3H ;A/D地址
MOV A,#0 ;清零
MOVX @DPTR,A ;启动A/D
JNB P3.3,$ ;等待转换结束
MOVX A,@DPTR ;读入结果
MOV P1,A ;转换结果送入发光二极管显示
MOV B,A ;累加器内容存入B中
SWAP A ;A的内容高四位与低四位交换
ANL A,#0FH ;A的内容高四位清零
XCHD A,@R0 ;A/D转换结果高位送入DBUF3中
INC R0
MOV A,B ;取出A/D转换后的结果
ANL A,#0FH ;A的内容高四位清零
XCHD A,@R0 ;结果低位送入DBF4中
ACALL DISP1 ;