想用51单片机做一个波形发生器,频率幅度可调,最高频率500khz,用C语言编写。

作者&投稿:闽窦 (若有异议请与网页底部的电邮联系)
想用51单片机做一个波形发生器,频率幅度可调,最高频率20khz,用c语言写能实现吗?~

可以,如果只是方波、正弦波和三角波就可以,
先选择波形,设定频率,
然后计算波形周期,和波形上每个点的数值
设定一个十几微妙的中断,
每个定时中断中输出波形上的一个点,通过DAC,加上高频滤波输出比较平滑的模拟量。
如果用C8051系列的高速单片机可以输出更好的波形

不知道你程序写的怎么样,但用普通51单片机驱动DAC输出波形,频率是受到限制的。而且你用的LTC1456是串行通讯模式的话,输出速率会更加慢。单片机晶振用24MHz,如果用的是普通51单片机(12个时钟周期为一个机器周期)理想状况下是执行一条指令需0.5us。发送一次12位数据的大概要40条指令,也就是说输出一个点就需要20us的时间,64点就超过了1ms。在最理想的状态(不考虑DAC转换时间,且每条指令为单机器周期),DAC输出都无法达到1KHz。所以为了达到0~10kHZ,你可以考虑用增强型51,或其他更高速的MCU,DAC采用并行的。

以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、方波、梯形波等)且频率、幅度可变的波形发生器。http://www.eeskill.com/file/id/19068。

给你以电子资料吧




你好!
是什么波形?方波还是什么

51系统频率大概为12MHZ,再高会出问题,一个机器周期耗12个周期,假设你一个周期采样64个点,那就是10^6/64=15625,频率最高到15625,实际上还会小很多。

想用51单片机做一个波形发生器,频率幅度可调,最高频率20khz,用c语言...
答:可以,如果只是方波、正弦波和三角波就可以,先选择波形,设定频率,然后计算波形周期,和波形上每个点的数值 设定一个十几微妙的中断,每个定时中断中输出波形上的一个点,通过DAC,加上高频滤波输出比较平滑的模拟量。如果用C8051系列的高速单片机可以输出更好的波形 ...

利用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波...
答:幅度的调节可以用双DA来做啊,也就是用另外一块DA来控制数据转换DA的基准电压。第二种方案:用单片机控制DDS芯片啊,比如用单片机控制AD9834,可以产生正弦波、方波、三角波,频率的调节就更简单了。幅度的调节也可以用双DA来实现,也可以先用电阻衰减再用运放放大,这样幅度就可以连续可调了。电路图和程...

单片机设计简易正弦波发生器
答:单片机向0832发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则0832输出N个样值点后,样值点形成运动轨迹,即一个周期。重复输出...

帮忙解决下:使用51单片机,产生方波、锯齿波、三角波等波形,频率可调...
答:1、定时器 2、PWM 方波、三角波的实现方法:1、PWM固定占空比1:1,实现对称方波输出 2、方波后连接积分电路,可将方波变为同频率的三角波。实现以上功能较容易,且可实现的频率范围较宽。锯齿波实现方法:锯齿波实现方法稍显麻烦,不过硬件电路原理与三角波类似。区别在于锯齿波在一个周期内输出若干个...

急求!!!在c51单片机上的三角波信号发生器,求原理图与c程序代码._百度知...
答:sbit key1=P1^0; sbit key2=P1^1;//按键的单片机接口 uchar keydat;uchar flag;//波形发生终止信号的标志位 一旦 被置零立马停止发信号 uchar flagsqu; //方波高低电平控制为(运用定时器1 中断控制)uchar m,num; uchar dat=0xff;uchar code tosin[141]={ //正弦波的编码 0x00,...

用51单片机制作简易的波形发生器时,想要控制正弦波和三角波的幅值求汇编...
答:START:MOV SP,#60H MOV A,#00H MOV DPTR,#4000H ;锯齿波缓冲区首址 NEXT:MOVX @DPTR,A ;填锯齿波数据 INC DPTR INC A JZ NEXT1 ;写完256个数据后退出 AJMP NEXT NEXT1:MOV A,#00H MOV R0,#00H MOV DPTR,#4100H ;三角波缓冲区首址 NEXT2:MOVX @DP...

51单片机和LTC1456做一个波形发生器,频率上限?
答:不知道你程序写的怎么样,但用普通51单片机驱动DAC输出波形,频率是受到限制的。而且你用的LTC1456是串行通讯模式的话,输出速率会更加慢。单片机晶振用24MHz,如果用的是普通51单片机(12个时钟周期为一个机器周期)理想状况下是执行一条指令需0.5us。发送一次12位数据的大概要40条指令,也就是说输出...

单片机8051设计简易波形发生器,要求能产生正弦波,方波,三角波,通过...
答:include<reg51.h> unsigned char i,sqar_num=128; //最大值100,默认值50 unsigned char cho=0; //0:正弦波。1:方波。2:三角波。3:锯齿波。unsigned char num=0;unsigned char TIME0_H=0xff,TIME0_L=0xdc; //定时器0的初值设置;全局变量.对应正弦波,锯齿波50HZ sbit chg...

基于STC51系列单片机的SPWM波形实现,程序如何编写?急急急急
答:// T2是产生SPWM波形,并从P1^1输出,用导线连接到P3.4作为测试频率使用。// T1工作在定时方式1,定时1s // T0工作在计数方式,对输入的脉冲进行计数,溢出产生中断。// 16位计数器最大值是65536,1s内可能会产生多次溢出,所以在中断处理程序对中断的次数进行 // 计数。1s到后,将...

请问如何用51单片机生成频率可调的方波?请给出方案或者修改我的方案...
答:P0 口,应该加上上拉电阻。AD 转换的结果,应该是:0~255。使用真实的硬件,结果是多少?可以在 P2 口,接上八个 LED,当场显示出来看看。另外,对于这一批数据,你所期望得到的频率范围,究竟是多少?还有,采用软件定时,并不准确。