ZKX's LAB

任意波形发生器单片机汇编语言 单片机波形发生器程序及仿真图

2020-07-20知识4

单片机波形发生器程序及仿真图,51单片机DAC0832产生波形发生器(方波,三角波,锯齿波)完整程序求用单片机设计的PWM波形发生器(C语言写的) 我这里有个PWM调光程序不知道对你有没有用#include<;reg52.h>;sbit LED=P1^2;unsigned char CYCLE;定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms unsigned char。单片机制作波形发生器如何获取波形的数字编码 用正弦波来说吧,就是很多个点组成,每个点都对应一个电压,v=data*参考电压*1/2n,(2n表示2的n次方,n是ad的位数,有8位,12位。16位的)data就是数字编码:1:把一个周期模拟量数据存储在存储器里,用高精度震荡源做中断源中断单片机,单片机单片机在中断里读出数据存储器对应数据,送DA芯片,经过放大送LC谐振电路,得到你想要的电压幅度连续交流信号。2:单片机速度跟不上可用加法计数器累加振荡源脉冲,累加数值作为数据存储器地址,震荡脉冲作为数据存储器读信号,控制数据存储器输出数据,送DA转换,放大,驱动LC谐振电路。如果再用单片机控制对振荡源分频,可以输出任意周期的信号。其它波形如法炮制!(当然方波就没有必要如此了)!任意波形发生器主要技术指标及选择 主要技术指标包括,通道数,最大波形输出频率,采样率,垂直分辨率等选择的话现在很多,国产国外的都一大堆,是德,泰克,罗德,普源,鼎阳等等,这个主要看具体需求才行,就像买车不说钱,那就往好了贵了整呗如何用51单片机设计出一个任意波形信号发生器 这个需要DA转换芯片,将要产生的波形数字化,存入数组中,由单片机按顺序依次送往DA芯片进行转换,例如产生正弦波,频率50HZ,可以用100个点来描述,每隔200uS送1个数据,100个数据花20ms.数字化点越多,波形越完美,但也与你的DA芯片精度有关,8位DA只能输入256个数字量,很难得到很好的波形单片机波形发生器,用汇编语言编程~!!!!!!!!!!急急急求程序~~~~汇编语言哦,小弟纠结好多天 我用纯硬件做过DDS信号发生器,也就是你现在要做的这个东西-直接数字信号发生器,因为这玩意过于复杂,另外你一定懂编程,所以我只给你个方案。方案1:纯粹用单片机产生,我建议采用查表法,使用MATLAB对正弦波采样,获得离散化的也就是数字化的正弦波,即正弦波表,这里要注意,正弦波峰值不要超过一个字节(当然如果你用的是8位单片机的话),否则,你要通过汇编语言处理的,当然一个字的话波形的幅值调节范围就很大了,另外,采样的点数要适当,以便产生漂亮的平滑漂亮的波波形;编程查询该表,使用DPTR输出(使用P0、P2口)就可以了,这只能输出一种频率的并行数字正弦波,你可以控制相邻两次访问表的时间间隔,这样就改变了正弦波的周期或者说是频率;幅度更容易,在每次访问到表的数值上减去你所想要的幅值步进值就可以改变幅值了。我们要能够用示波器观察的波形,也就是模拟正弦波,现在我们有了数字的正弦波,自然得使用数模转换器,位数越高越好,那得看你的正弦波表是几位的,如果是一个字节(8位),就用8位的就够了,一个字的用16位的,当然位数越高越贵,建议你用8位的(推荐DAC0832,好像是13位的),便宜(10块左右),这样你就得到了模拟的正弦波,。用51单片机制作简易的波形发生器时,想要控制正弦波和三角波的幅值求汇编语言程序 D_APORT EQU 8000H;0832 口地址ORG 0000HAJMP STARTORG 0040HSTART:MOV SP,#60HMOVA,#00HMOV DPTR,#4000H;锯齿波缓冲区首址NEXT:MOVX@DPTR,A填锯齿波数据INC DPTRINC AJZ NEXT1写完256个数据后退出AJMP NEXTNEXT1:MOV A,#00HMOVR0,#00HMOV DPTR,#4100H;三角波缓冲区首址NEXT2:MOVX@DPTR,A填三角波数据(上升部分)INC DPTRADD A,#02HINC R0CJNER0,#80H,NEXT2SUBB A,#02HCLR CNEXT3:MOVXDPTR,A;填三角波数据(下升部分)INC DPTRSUBB A,#02HINCR0CJNE R0,#00H,NEXT3;写完256个数据后退出SINWAVE-MOV R0,#10HMOV R1,#00HMOVDPTR,#STEP;步长的浮点ASCII起始地址READ:MOV A,R1MOVCA,@A+DPTRMOV@R0,AINC R1INC R0CJNER1,#0AH,READ;将程序区的数据移到内部RAM区MOV R0,#10H;十进制浮点数的首址MOVR1,#30H;三字节浮点数的首址(步长)LCALL%FDTB3带符号十进制数ASCII码浮点数转换成三字节浮点数MOV R2,#00HMOV R3,#80H电压的最大值MOV R0,#18H;三字节浮点数的首址(最大电压)LCALL%WTF31双字节无符号数转换成三字节浮点数MOV R3,#00H;STEP LENGTHMOVDPTR,#4200H;正弦波数据表首址CALCSIN:PUSH 3PUSH DPH。想用51单片机做一个波形发生器,频率幅度可调,最高频率20khz,用c语言写能实现吗?可以,如果只是方波、正弦波和三角波就可以,先选择波形,设定频率,然后计算波形周期,。基于AT89C51单片机波形发生器(汇编) 电路图在这里有点麻烦,我给你波形发生的程序,具体地址分析得你自己完成。正选波:SINSG:MOV R5,#00HSIN:MOV A,R5MOV DPTR,#CTABHMOV R5,#00HSIN:MOV A,R5MOV DPTR,#CTABHMOVC A,@A+DPTRMOV DPTR,#0DFFFHMOVX@DPTR,AINC R5AJMP SINCTAB:DB:80,83,86,89,8D,90,93,96,99,9C,9F,A2,A5,A8,AB,AE,DB:B1,B4,B7,BA,BC,BF,C2,C5,C7,CA,CC,CF,D1,D4,D6,D8,DB:DA,DD,DF,E1,E3,E5,E7,E9,EA,EC,EE,EF,F1,F2,F4,F5,DB:F6,F7,F8,F9,FA,FB,FC,FD,FD,FE,FF,FF,FF,FF,FF,FF,DB:FF,FF,FF,FF,FF,FF,FE,FD,FD,FC,FB,FA,F9,F8,F7,F6,DB:F5,F4,F2,F1,EF,EE,EC,EA,E9,E7,E5,E3,E1,DF,DD,DA,DB:D8,D6,D4,Dl,CF,CC,CA,C7,C5,C2,BF,BC,BA,B7,B4,B1,DB:AE,AB,A8,A5,A2,9F,9C,99,96,93,90,8D,89,86,83,80,DB:80,7C,79,76,72,6F,6C,69,66,63,60,5D,5A,57,55,51,DB:4E,4C,48,45,43,40,3 D,3A,38,35,33,30,2E,2B,29,27,DB:25,22,20,1E,1C,1A,18,16,15,13,11,10,0E,0D,0B,0A,DB:09,08,07,06,05,04,03,0202,01,00,00,00,00,00,00,DB:00,00,00,00,00,00,01,02,02,03,04,05,06,07,08,09,DB:0A,0B,0D,0E,10,11,13,15三角波SWTTHWVG:MOV DPTR,#0DFFFHDA0MOV R6,#80HDA。

#正弦波#存储器#单片机

随机阅读

qrcode
访问手机版