实验五、 D/A 转换实验
1、实验目的
- 学习数/模转换芯片DAC0832 的硬件连接和编程方法;
- 掌握将一组数据通过数/模转换为各种波形的方法;
- 学习软件模拟示波器的使用方法。
2、实验内容
编写程序,产生周期的锯齿波、矩形波、三角波和阶梯波,经D/A转换,显示在软件模拟示波器上。
要求:每种波形的周期数、阶梯波的阶梯数可通过参数设置。
3、实验原理
D/A转换器是一种将数字量转换成模拟量的器件,其特点是:接收、保持和转换的数字信息,不存在随温度、时间漂移的问题,其电路抗干扰性较好。大多数的 D/A 转换器接口设计主要围绕 D/A 集成芯片的使用及配臵响应的外围电路。DAC0832是 8位芯片,采用CMOS 工艺和R-2RT形电阻解码网络,转换结果为一对差动电流Iout1和Iout2输出。
4、实验记录
- 矩形波:一会低一会高
MOV CL, 0AH ;设置周期数,这里设置10个周期
RECT:
MOV DX, MY0832 ;DAC0832的接口地址
MOV AL, 00H ;低波形
OUT DX, AL
CALL LONG_DELAY
MOV AL, 0FFH ;高波形
OUT DX, AL
CALL LONG_DELAY
LOOP RECT
- 锯齿波:反复上斜坡
MOV CL, 0AH ;设置周期数,这里设置10个周期
TEECH:
MOV DX, MY0832 ;DAC0832的接口地址
MOV AL, 00H ;重置为低波形
T1:
OUT DX, AL
CALL SHORT_DELAY
INC AL ;上斜坡波形
CMP AL, 0FFH ;上斜坡是否到顶
JNE T1
LOOP TEECH
- 三角波:上斜坡下斜坡
MOV CL, 05H ;设置周期数,这里设置5个周期
TRA:
MOV DX, MY0832 ;DAC0832的接口地址
MOV AL, 00H
TR_UP:
OUT DX, AL
CALL SHORT_DELAY
INC AL ;上斜坡波形
CMP AL, 0FFH ;上斜坡是否到顶
JNE TR_UP
TR_DOWN:
OUT DX, AL
CALL SHORT_DELAY
DEC AL ;下斜坡波形
CMP AL, 0H ;下斜坡是否到底
JNE TR_DOWN
LOOP TRA
- 阶梯波:走大步停一会
MOV CL, 05H ;设置周期数,这里设置5个周期
LAD:
MOV DX, MY0832 ;DAC0832的接口地址
MOV AL, 00H
L1:
OUT DX, AL
CALL LONG_DELAY
CMP AL, 0FFH ;走到顶了,跳出循环
JE L2
ADD AL, 033H ;一步33H,五步FFH
JMP L1
L2:
LOOP LAD
5、拓展实验(非完整代码)
在基础实验的电路图基础上,KK1+接线到系统总线的MIR6。当KK1+按下时,中断服务程序能在4种波形中切换。只需要增设一个FLAG变量记录当前该显示哪种波形即可。
MY0832 EQU 0600H ;0832的端口地址(IOY0)
DATA SEGMENT
FLAG DB 00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,OFFSET MIR6 ;设置中断向量MIR6
MOV SI,0038H
MOV [SI],AX
MOV AX,CS
MOV SI,003AH
MOV [SI],AX
CLI ;关中断
MOV AL, 11H ;设置ICW1
OUT 20H, AL
MOV AL, 08H ;设置ICW2
OUT 21H, AL
MOV AL, 04H ;设置ICW3
OUT 21H, AL
MOV AL, 07H ;设置ICW4,自动结束中断
OUT 21H, AL
MOV AL, 2FH ;设置OCW1
OUT 21H, AL
STI ;开中断
MAIN:
CMP FLAG,00H ;根据FLAG选择波形
JE RECT ;Jump if Euqal
CMP FLAG,01H
JE TEECH
CMP FLAG,02H
JE TRA
CMP FLAG,03H
JE LAD
RECT:
;产生一次矩形波
JMP FI
TEECH:
;产生一次锯齿波
JMP FI
TRA:
;产生一次三角波
JMP FI
LAD:
;产生一次阶梯波
JMP FI
FI:
JMP MAIN
SHORT_DELAY: ;短延迟
MOV BX, 01FFH
DEL:
DEC BX
JNZ DEL ;Jump if Not Zero
RET
LONG_DELAY: ;长延迟
MOV BX, 0FFFFH
DEL2:
DEC BX
JNZ DEL2
RET
MIR6:
STI
PUSH AX
INC FLAG ;中断服务程序切换波形
CMP FLAG,04H
JNE MFI ;模4
MOV FLAG,00H
MFI:
POP AX
IRET
CODE ENDS
END START