实验五、 D/A 转换实验

实验五、 D/A 转换实验

1、实验目的
  1. 学习数/模转换芯片DAC0832 的硬件连接和编程方法;
  2. 掌握将一组数据通过数/模转换为各种波形的方法;
  3. 学习软件模拟示波器的使用方法。
2、实验内容

编写程序,产生周期的锯齿波、矩形波、三角波和阶梯波,经D/A转换,显示在软件模拟示波器上。
要求:每种波形的周期数、阶梯波的阶梯数可通过参数设置。

3、实验原理

D/A转换器是一种将数字量转换成模拟量的器件,其特点是:接收、保持和转换的数字信息,不存在随温度、时间漂移的问题,其电路抗干扰性较好。大多数的 D/A 转换器接口设计主要围绕 D/A 集成芯片的使用及配臵响应的外围电路。DAC0832是 8位芯片,采用CMOS 工艺和R-2RT形电阻解码网络,转换结果为一对差动电流Iout1和Iout2输出。

4、实验记录

  1. 矩形波:一会低一会高
	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
  1. 锯齿波:反复上斜坡
	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
  1. 三角波:上斜坡下斜坡
	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
  1. 阶梯波:走大步停一会
	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
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值