实验五 A/D转换实验
一、实验目的
了解模/数转换基本原理,掌握ADC0809的使用方法; 掌握定时数据采集程序的编制方法。 二、实验内容
1、A/D转换实验
利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。
(1) 实验接线图
ADC0809接线见图6-9
图6-9 ADC0809接线图
(2)编程指南
ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:
MOV DX,ADPORT
; ADC0809端口地址
OUT DX,AL ; 发CS和WR信号并送通道地址
用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。 MOV DX,ADPORT IN AL,DX
循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。 (3)实验程序框图
A/D转换流程见图6-10
; ADC0809端口地址
图6-10 A/D转换流程
(4)实验步骤
① 将0809 CS4插孔连到译码输出FF80H插孔。
② 将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。
③ 运行实验程序,系统上显示“0809 XX”。“XX”表示输入模拟量转换后的数字量。
④ 调节电位器Wl, 显示器上会不断显示新的转换结果。 模拟量和数字量对应关系的典型值为: 0V→00H
+2.5V→80H +5V→FFH
⑤ 按RST键退出。 (5)实验程序清单
CODE SEGMENT ; ASSUME CS:CODE
ADPORT EQU 0FF80h ;8259A偶地址入口 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口
ORG 1000H ;源地址
START: JMP START0 ;跳转到START0
BUF DB ?,?,?,?,?,? ;定义6字节缓冲区
data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h, 0c6h,0a1h ;定义七段码
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CALL BUF1 ;调用BUF1子程序 ADCON: MOV AX,00
MOV DX,ADPORT ; ADC0809端口地址
OUT DX,AL ; 发CS和WR信号并送通道地址
MOV CX,0500H ;置循环数
;DELAY: LOOP DELAY ;空循环,延时
MOV DX,ADPORT ; ADC0809端口地址 IN AL,DX
CONVERS: DISP: MOV DX,PA
DIS1: DIS2: MOV CX,00A0H LX1: BUF1: CODE ENDS
CALL CONVERSCALL DISP ;调用显示子程序;调用子程序CONVERS DISP JMP ADCON ;MOV AH,AL;AND AL,0FH 将跳转到ADCON
;保留 ax中的低字节赋给高字节al中的低四位 MOV BX,OFFSET BUFMOV [BX+5],AL;buf的偏移地址MOV AL,AH ;取;将al中的高四位al中的值给
[Bx+5] AND AL,0F0H
MOV CL,04H SHR AL,CL;右移四位;值移位数
MOV [BX+4],Al RET;;将Al中的值给[BX+4] MOV AL,0FFH 返回
;PA端口全置1,使其灯无显示 OUT DX,AL
MOV CL,0DFH ;将0DFH给CL MOV BX,OFFSET BUF;MOV AL,[BX];取BUF的偏移地址MOV AH,00H
将[BX]中的内容取出给Al
给BX PUSH BX;BXMOV BX,OFFSET DATA1入栈
ADD BX,AX;BX与Ax相加;取
DATA1的偏移地址给BX MOV AL,[BPBX]POP BX;BX;将[BX]的内容取到AL中
MOV DX,PB;出栈Al
中得内容在PB端口输出 OUT DX,AL
MOV AL,CLMOV DX,PA ;显示 OUT DX,AL
PUSH CX;CX入栈;循环
00A0H次,延时 LOOP $
POP CXCMP CL,0FEH;CX出栈;Cl
与0FEH比较 JZ LX1 INC BX ;ROR CL,1;Cl与00A0H相等,则程序跳转到LX1 ;BXCl自加1循环左移
1位 JMP DIS1MOV AL,0FFH;循环显示
MOV DX,PB ;PB端口清零
OUT DX,AL RETMOV BUF,00H ;中断返回 MOV BUF+1,08H MOV BUF+2,00H MOV BUF+3,09H MOV BUF+4,00H MOV BUF+5,00H RET END START
2、数据采集实验
要求:用8253定时器1通道定时,每隔半秒使从ADC0809的0通道IN0采集一个数据,若模拟电压在0-2V范围内(0-102),则使LED显示器L7-L4亮;若模拟电压大于2V,小于3V,则使L5-L2亮;若模拟电压大于等于3V,则使LED显示器L3-L0亮。
(主程序重复所采集的数据)
(1)实验接线图
数据采集实验系统接线图见图6-11
图6-11 数据采集系统接线图
(2)程序流程图 主程序流程见图6-12
图6-12 主程序流程图