
实验室(房间号):420 实验台号码:16 班级:电英0901 姓名:寇文广
指导教师签字: 成绩:
实验 五 ADC0809实验
1、实验目的和要求
了解ADC0809模数转换器的基本原理,外围电路结构及编程方法;
学习利用中断方法对ADC0809的编程方法。采用中断法编程,通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用LED显示模块以十六进制的方式显示ADC的数据。
2、实验算法
1.芯片的控制信号及引脚定义
ALE: 通道代码锁存控制。高电平锁存ADDA~ADDC代码;
START: ADC芯片转换启动控制。正脉冲的下降沿有效;
EOC: ADC转换完成标志。高电平表明转换完成,再次启动时EOC=0;
OUTPUT ENABLE: 输出数据端口的三态门控制端。高电平三态门导通。
2.ADC模块三个地址的设计、确定方法(设ADC_CS=200H)
启动端口地址200H
状态端口地址202H
数据端口地址201H
3.ADC0809的控制操作完全依靠IN、OUT指令在执行时的相关的总线信号(/IOR、/IOW)实现的。
在执行OUT DX,AL 指令时DX寄存器中的地址信号被送到地址总线,经过译码器产生有效的片选信号,AL内容被送到数据总线上(此时AL数据无效)。该指令执行时产生/IOW操作,这样在U16A芯片的输出产生正脉冲:高电平引发通道代码的锁存、下降沿启动ADC;
同理执行IN AL,DX 指令时:当DX = 202H(A1、A0=10B)时,ADC的状态信号EOC会经过U15A被送到数据总线上的D0(供CPU查询)或者经过U15B送到AD_IRQ提供中断信号,利用中断方式读取转换数据。当DX = 201H(A1、A0=01B)时,U17A的输出是高电平,ADC的数据输出三态门控制OE =1(输出有效),数据被送到数据总线上,这样依靠IN指令ADC数据通过数据总线送到AL中。
一次AD转换的完整过程如下:
MOV DX,ADC_CS ;指向启动口(ADC_CS = 2000H)
OUT DX,AL ;启动转换(START = 1)
ADD DX,02H ;指向状态口
LOOP1: IN AL,DX ;读取状态转换结束标志D0
AND AL,00000001B ;取D0位
JZ LOOP1 ;是1表示转换结束,往下执行
MOV DX,ADC_CS
ADD DX,01H ;指向数据口
IN AL,DX ;获取ADC数据存储在AL中
中断方式下的ADC读取程序过程
主程序: 对MIR5的初始化,中断向量表的设定,开中断和等 待中断。
中断服务程序: 读取ADC数据,调用显示子程序,再次启动ADC转 换,发送EOI
显示子函数: 十六进制LED显示ADC数据。
3、实验电路图
4、程序流程图
5、程序清单
I8255_A EQU 210H
I8255_K EQU 213H
AD_IO EQU 200H
DATA SEGMENT
BUF DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,I8255_K
MOV AL,80H
OUT DX,AL
RPT: MOV DX,AD_IO
OUT DX,AL
MOV DX,AD_IO
ADD DX,2
L1: IN AL,DX
TEST AL,01H
JZ L1
MOV DX,AD_IO
INC DX
IN AL,DX
MOV BUF,AL
CALL DISP
JMP RPT
DISP PROC
MOV DX,I8255_A
MOV AL,BUF
OUT DX,AL
RET
DISP ENDP
CODE ENDS
END START
6、运行截图
实验为硬件电路实验,无软件截图。程序在实验台上成功运行。
7、体会与建议
实验涉及到硬件电路的连接,因此在调试之前一定要注意连接正确,若有错误,则先找线路,再单步运行即可。本实验加深了我对于中断应用的理解。
8、实验设备
Windows XP系统PC机一台
38EX试验台 一台
