微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日
微机原理与接口技术 实验八 D/A和A/D转换实验 朱华贵 2015年12月17日
实验任务1:D/A转换实验 一、D/A转换0832应用目的 1、熟悉DAC0832数模转换器的特性和接口方法,掌握D/A 转化输出程序的设计和调试方法。 2、进一步掌握数/模转换的基本原理。
实验六 D/A转换实验(一) 二、实验内容 1、实验原理 实验原理如图所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与 8088CPU 总线直接接口。/CS和/XFER相接后作为0832芯片的片选CS。这样, 对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器,模拟量输出随之而变化。
2 、 仿真实验线路的连接-CPU的连接
2、仿真实验线路的连接- DAC0832的连接
3 、 实验软件编程提示 (1)8位D/A转换器DAC0832的口地址为800H,输入数据与输出电压的关系为: Vref表示参考电压;N表示输入数字量;这里参考电压Vref=+5V。 (2)产生方波只需将数字量00H、FFH交替输出到DAC0832。产生锯齿波只需将数字量0逐渐递增输出到DAC0832。 本实验要求在OUT端输出方波信号,方波信号的周期由延时时间常数确定。 由于本电路为单极型输出,因此输出端AOUT信号值为0~+5V.当数字量为0时,AOUT= 0V;当数值量为80H时,Aout=2.5V; 当数值量为FFH时,Aout= +5V。
三、实验任务 1 、根据原理图正确连接好实验线路 2 、编写程序使输出端输出1ms的方波并用用示波器进行观察。 3、编写程序在输出端输出锯齿波。
方波参考程序 io4=800h code segment assume cs:code start: mov cx,256 mov al,0 mov dx,io4 loop1: out dx,al loop $ mov cx, 256 mov al,255 ;mov dx,io4 loop2: out dx,al jmp start code ends end start
实验任务2:A/D转换实验 一、A/D转换0809应用目的 加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D输入程序的设计和调试方法。
二、实验内容 1 、仿真实验线路的连接:采用/IO2做0809的片选地址
2、ADC0809转换的电压显示电路连接图:
3、IO地址连接图
三、实验步骤 1、按图正确连接好实验线路 2、理解实验原理 3、仔细阅读,弄懂实验程序 4、运行实验程序 运行实验程序,并观察实验结果。调节电位器RV1改变模拟量输入的值,在数码管上应显示转换好的相应的电压量。调节电位器RV1,显示器上会不断显示新的转换结果。模拟量和数字量对应关系的典型值为: 0-00H +2.5V-80H +5V-FFH
参考程序: A8255 equ 40H ;设置8255各端口和控制字地址 B8255 equ 42H C8255 equ 44H Q8255 equ 46H ADC0808 equ 20H ;设置0809的片选地址 DATA SEGMENT ;定义0~9的共阴显示段码 SEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H TEMPDATA DB 0 ;定义存放A/D转换数据的地址 DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX
MOV AL, 90H ;设置8255A的工作方式控制字 MOV DX,Q8255 OUT DX,AL MOV DX,C8255 MOV AL, 0FFH MOV SI,OFFSET TEMPDATA HERE: MOV DX, ADC0808 MOV AL, 0 MOV CX,5 MON: MOV AL,[SI]
MOV AH,0 MOV BL,51 DIV BL MOV BX,OFFSET SEGDATA ;获得共阴显示段码的起始地址 XLAT OR AL,80H ;带小数点显示转换输出的个位电压值 MOV DX,b8255 OUT DX,AL MOV AL,11101111B ;显示转换输出的电压值个位 MOV DX,c8255 ; call DELAY_1S MOV AL,0FFH ;关显示
MOV AL,AH ;显示转换输出的电压值小数点后一位数 MOV AH,0 MOV BL,5 DIV BL MOV BX,OFFSET SEGDATA XLAT MOV DX,B8255 OUT DX,AL MOV AL, 11011111B MOV DX,C8255 ; call DELAY_1S MOV AL,0ffH ;清屏,关显示
MOV AL,AH;显示转换输出的电压值小数点后两位数 MOV AH,0 MOV BL,5 DIV BL MOV BX,OFFSET SEGDATA XLAT MOV DX,B8255 OUT DX,AL MOV AL,10111111B MOV DX,C8255 ; call DELAY_1S MOV AL,0FFH ;清屏,关显示
MOV AL,00011100B ;显示单位V MOV DX,B8255 OUT DX,AL ;call DELAY_1S MOV DX,C8255 MOV AL,01111111B MOV AL,0ffH ;清屏,关显示 OUT dx,AL LOOP MON MOV DX,ADC0808 ;读A/D转换器转换的数据 IN AL,DX MOV [SI],AL ;存A/D转换的数据到指定地址中 JMP HERE
DELAY_1S proc PUSH BX PUSH CX MOV BX, 1 LP2: MOV CX, 10 LP1: LOOP LP1 DEC BX JNZ LP2 POP CX POP BX RET DELAY_1S endp CODE ENDS END START