ZKX's LAB

DA转换可编程波形发生器 如何用DA转换成正弦波

2020-07-22知识11

信号发生器模块详细介绍 信号发生器模块可分为USB总线模拟量输出模块、PXI总线任意波形发生器、PCI总线任意波形发生器 USB总线模拟量输出模块 1 NDAC-8116: 8通道/块,模拟量输出模块,并行输出,。如何用D/A转换成正弦波 设计原理设计的AWG可以产生多种任意波形模拟信号,包括正弦波、方波、三角波、梯形波、抛物线波、SINC波和伪随机信号等。信号的产生采用直接数字合成的设计思想,所不同的是DDS产生的信号是固化在 ROM中的正弦波,通过波形查询表和数模转换器产生不同频率的正弦波,而AWG中存储波形的存储器是可以随机写入的,这样才可以真正产生任意波形。此外,AWG的工作方式可以分为连续方式和突发方式。连续工作方式是指存储在存储器中的数据在时钟的作用下连续不断的送给数模转换器,以获得周期的模拟信号;突发工作方式则是在特定的触发条件下,信号只输出一次。触发条件包括软件内部触发和外部触发,外部触发又包括外部触发信号的上升沿、下降沿、正电平和负电平触发等。编写一个汇编程序,用DAC0832芯片实现D/A转换产生 锯齿波 PORT EQU 0CFA0H;定义DAC接口地址CSEG AT 4000HLJMP STARTCSEG AT 4100HSTART:MOV DPTR,#PORT+1;DAC输出寄存器端口地址送DPTRMOV A,#00H;给A赋初值LOOP:MOV B,#0FFH;置计数初值与BLOOP1:MOV DPTR,#PORT;DAC输入寄存器端口地址MOVX@DPTR,A;送出数据INC DPTR;地址加一MOVX@DPTR,A;启动转换INC A;数据加一CJNE A,#0FFH,LOOP1;如果没到峰值,循环转换MOV A,#00H;赋A=0DJNE B,LOOP;x显示锯齿波RET这是51单片机的 和8086差不多 可根据这个程序修改 纯手打的 包括注释 希望楼主采纳!O(∩_∩)O单片机波形发生器,用汇编语言编程~!!!!!!!!!!急急急求程序~~~~汇编语言哦,小弟纠结好多天 我用纯硬件做过DDS信号发生器,也就是你现在要做的这个东西-直接数字信号发生器,因为这玩意过于复杂,另外你一定懂编程,所以我只给你个方案。方案1:纯粹用单片机产生,我建议采用查表法,使用MATLAB对正弦波采样,获得离散化的也就是数字化的正弦波,即正弦波表,这里要注意,正弦波峰值不要超过一个字节(当然如果你用的是8位单片机的话),否则,你要通过汇编语言处理的,当然一个字的话波形的幅值调节范围就很大了,另外,采样的点数要适当,以便产生漂亮的平滑漂亮的波波形;编程查询该表,使用DPTR输出(使用P0、P2口)就可以了,这只能输出一种频率的并行数字正弦波,你可以控制相邻两次访问表的时间间隔,这样就改变了正弦波的周期或者说是频率;幅度更容易,在每次访问到表的数值上减去你所想要的幅值步进值就可以改变幅值了。我们要能够用示波器观察的波形,也就是模拟正弦波,现在我们有了数字的正弦波,自然得使用数模转换器,位数越高越好,那得看你的正弦波表是几位的,如果是一个字节(8位),就用8位的就够了,一个字的用16位的,当然位数越高越贵,建议你用8位的(推荐DAC0832,好像是13位的),便宜(10块左右),这样你就得到了模拟的正弦波,。

#工作方式#函数信号发生器#正弦波#三角波#单片机

随机阅读

qrcode
访问手机版