8086+DAC0832产生方波、三角波及正弦波波形Proteus仿真

8086+DAC0832产生方波、三角波及正弦波波形Proteus仿真

仿真截图

在这里插入图片描述

代码



CODE SEGMENT

DATA SEGMENT
SQURE DB 0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255
TRIANGLE DB 0,25,50,75,100,125,150,175,200,225,250,225,200,175,150,125,100,75,50,25
SIN DB 128,168,203,232,250,255,250,232,203,168,128,88,53,24,6,0,6,24,53,88
K DB 1 DUP(?)

PORT1 EQU 80H
PORT2 EQU 82H
PORT3 EQU 84H

LEN EQU 20

DATA ENDS


MAIN PROC FAR
ASSUME CS:CODE,DS:DATA;段分配
START:
MOV AX, DATA;段初始化
MOV DS, AX

MOV BX, 00H

BEG:
MOV AL, SQURE[BX]
OUT PORT1, AL

MOV AL, TRIANGLE[BX]
OUT PORT2, AL

MOV AL, SIN[BX]
OUT PORT3, AL


CALL DELAY
INC BX

CMP BX, LEN
JNE BEG
MOV BX, 0
JMP BEG

MAIN ENDP

DELAY PROC NEAR;延时
PUSH SI
PUSH CX
MOV SI, 1
DELAYNEXT1:
MOV CX, 1000H
DELAYNEXT2:
LOOP DELAYNEXT2
DEC SI
JNZ DELAYNEXT1
POP CX
POP SI
RET
DELAY ENDP

CODE ENDS
END MAIN

效果

在这里插入图片描述

思路

将方波、三角波、正弦波幅值随时间变化隔一段采用一次。该源程序中每个信号周期采样了20个点。然后通过循环输出这20个幅值给DAC0832,将其转换成模拟量,每次循环停留一段时间(即每个幅值持续一段时间)。

这个程序信号幅值不可调,频率勉强可调(通过调节DELAY子程序延时时长调节)。如果想要精确调节信号频率可采用DDS方法,调节步长。如果想要精确调节信号幅值,可以采用乘法器或数字电位器。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值