AD转换技术(中断方式)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:微机原理与接口技术
实验名称:8位A/D转换实验(中断方式)
一.实验目的
掌握模/数信号转换的基本原理,掌握ADC0809芯片中断采样编程方法。
二.实验内容
从ADC0809通道0输入+5V可变电压,使用中断方式采集数据,并将转换数据在7段数码管上16进制数显示。
三.实验结果分析
拧电位器后发现数码显示管数字改变,并且两盏灯明亮程度不同。
附上源代码:
.MODEL SMALL
.386
DATA SEGMENT
NUM DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H,
7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
BUF DB 100 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
IN AL, 21H
AND AL, 11011111B ;开放IRQ5
OUT 21H, AL
CLI
CLD
MOV AX,0
MOV ES,AX
MOV DI,4*35H
MOV AX,OFFSET AD
STOSW
MOV AX,SEG AD
STOSW
MOV AX,DATA ;恢复数据段
MOV DS,AX
MOV DX,200H ;启动转换
MOV AL,00H
OUT DX,AL
BEGIN: STI
HLT ;等待中断
JNZ BEGIN
IN AL,21H ; 关闭MIR5
AND AL,20H
OUT 21H,AL
MOV AH, 4CH
INT 21H
DIS PROC NEAR ;显示程序
MOV CX, 0FFH
NEXT: MOV AL, [DI]
MOV AH, AL
PUSH CX
MOV CL, 4
SHR AL, CL
POP CX
MOV BX, 0
MOV BL, AL
MOV AL, NUM[BX]
MOV DX, 210H
OUT DX, AL
MOV DX, 211H
MOV AL, 00100000B
OUT DX, AL
CALL DELAY
AND AH, 00001111B
MOV BX, 0
MOV BL, AH
MOV AL, NUM[BX]
MOV DX, 210H
OUT DX, AL
MOV DX, 211H
MOV AL, 00010000B
OUT DX, AL
CALL DELAY
LOOP NEXT
RET
DIS ENDP
AD PROC NEAR ;中断程序
PUSH AX ;保存寄存器
PUSH DX
PUSH DI
CLI
MOV DX, 201H ;读取转换结果
IN AL, DX
NOP
MOV DI, POINT
MOV [DI], AL ;保存转换结果
CALL DIS ;调用显示程序
INC DI
MOV POINT, DI
MOV AL, 20H ;中断结束命令
OUT 20H, AL
MOV DX, 200H ;开启转换
MOV AL, 00H
OUT DX, AL
POP DI ;恢复寄存器内容
POP DX
POP AX
STI
IRET ;中断返回
AD ENDP
CODE ENDS
END START