一、实验目的 |
熟悉A/D转换的基本原理,掌握ADC0809的使用方法。 |
二、实验内容 |
从ADIN0输入一路模拟信号,启动A/D转换,用简单输入口(74LS244)查询EOC信号,转换结束后查看转换结果。同时用万用表测量输入的模拟电压,与转换后的数字量比较。作图,横坐标是模拟电压,纵坐标是转换的数字量,检查A/D转换的线性度。 |
其它通道实验与通道0类似,相应修改地址即可。 |
三、实验原理介绍 |
本实验用到两部分电路:简单I/O口扩展电路、A/D、D/A电路 |
四、实验步骤 |
1、实验连线 |
AN0 ADIN0 CS0 CS0809 CS1 CS244 EOC IN0 |
2、用实验箱左上角的“VERF.ADJ”电位器调节ADC0809 12脚上的参考电压至5V。 |
3、编写程序并全速运行。 |
4、检查显示数据是否与电位器输出的电压相符合。 |
五、实验提示 |
实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为: |
MOV DX ,ADDRESS ;ADDRESS是ADC0809的端口地址 |
OUT AL, DX ;发片选及IOW信号,启动0通道 |
六、实验结果 |
在输入电压AN0分别为0V,1V,2V,3V,4V,5V时显示数据分别为00H,33H,66H,99H,0CCH,0FFH(数据低位略有偏差属正常现象)。 |
七、程序框图(实验程序名:t0809.ASM) |
八、程序源代码清单 |
con8279 equ 0492h dat8279 equ 0490h assume cs:code code segment public org 100h start: jmp start1 segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h start1: mov dx,04a0h mov ax,34h out dx,ax ;启动通道 0 wait1: mov dx,04b0h ;CS244 in ax,dx ;读 EOC and ax,1 cmp ax,1 jne wait1 ;如果EOC=0,waiting.... mov dx,04a0h in ax,dx ;读转换结果 and ax,0ffh mov bx,ax nop ; disp: mov di,offset segcod mov ax,08h ;工作方式,16位,左入 mov dx,con8279 out dx,ax mov ax,90h mov dx,con8279 out dx,ax ;写显示RAM命令,地址自增 mov dx,dat8279 push bx and bx,0f0h ;取高4位 mov cl,4 shr bx,cl add di,bx mov al,cs:[di] mov ah,0 out dx,ax ;写RAM0 nop nop mov di,offset segcod pop bx and bx,0fh ;取低4位 add di,bx mov al,cs:[di] mov ah,0 out dx,ax ;写RAM1 delay: mov cx,0ffffh ;time delay delay1: nop nop loop delay1 jmp start1 code ends end start |