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
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
好的,让我来为你详细解答一下。 要通过Proteus软件仿真单片机msp430,产生方波三角波,需要按照以下步骤进行操作: 1. 打开Proteus软件,并创建一个新的仿真项目。 2. 在工具栏中找到“库浏览器”图标,点击打开。 3. 在库浏览器中找到msp430的仿真模型,并将其拖拽到仿真界面中。 4. 连接必要的电路元件,例如电源和晶振。 5. 在工具栏中找到“编辑器”图标,点击打开。 6. 在编辑器中编写msp430的代码,实现产生方波三角波的功能。下面是一个示例代码: ```c #include <msp430g2553.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // 停用看门狗定时器 P1DIR |= BIT0; // P1.0引脚设为输出 P1OUT &= ~BIT0; // P1.0引脚输出低电平 while(1) { int i; for(i = 0; i < 1000; i++) // 产生方波 { P1OUT ^= BIT0; // P1.0引脚输出高低电平交替 __delay_cycles(1000); // 延时 } for(i = 0; i < 1000; i++) // 产生三角波 { if(i < 500) P1OUT += BIT0; // P1.0引脚输出逐渐增高 else P1OUT -= BIT0; // P1.0引脚输出逐渐降低 __delay_cycles(1000); // 延时 } } } ``` 7. 将编写好的代码保存,并回到仿真界面。 8. 在仿真界面中找到“虚拟示器”图标,点击打开。 9. 在虚拟示器中设置相关参数,例如采样率和显示时间。 10. 启动仿真,观察示器中产生方波三角波信号。 以上就是通过Proteus软件仿真单片机msp430,产生方波三角波的步骤和示例代码。希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值