51单片机设计频率可调的正弦信号发生器,难点在于要求100HZ到10KHZ频率可调,步进10HZ,麻烦给个步进思路

作者&投稿:貊袁 (若有异议请与网页底部的电邮联系)
能不能用51单片机做出输出频率100-100kHz可调的正弦波 方波 三角波的信号发生器?~

能啊,加个数模转换器就行。

#include“reg2.h”
#define FOSC 12000000L //晶振12MHz
#define uchar unsigned char
#define uint unsigned int

uint tempHz = 0;

uchar TH1H = tempHz / 256;//默认的是100Hz
uchar TH1L = tempHz % 256;

sbit LED = P1^0; //输出波形,也是闪烁灯
sbit key_up = P2^0;//按键IO口
sbit key_down = P2^1;

void Init_Timer1(void)
{
TMOD |= 0x10; //模式1
TH1=TH1H; //给初值,65535溢出
TL1=TH1L;
EA=1; //总中断打开
ET1=1; //定时器中断打开
TR1=1; //定时器开关打开
}

void main()
{
uint j;
Init_Timer1();
while(1)
{
if(key_up == 0 || key_down == 0)
{
j = 1000;
while(j--);
if(key_up == 0)tempHz ++;
if(tempHz >= 65515)tempHz = 65515;
if(key_down == 0)tempHz --;
if(tempHz <= 0)tempHz = 0;
}
}
}

void Timer1_isr(void) interrupt 3
{
TH1=TH1H;
TL1=TH1L;

LED=~LED; //输出波形,也是闪烁灯

}

10K??????,哥们不用想了,我最近就在做这个 ,不过我要产生多个波形,用单片机产生波形虽然原理很简单,但是频率却很难达到精准的,我调试得到的结果 12M 晶振的情况下 ,用C写的才能达到300多个HZ正弦波,而且波形频率很难控制 每点之间的延时虽然计算就能得到,但是调试得到的频率却跟你想的有很大差别,这一点如果你做下去的话 会体会到,希望对你用帮助,另外如果 你用51和波形发生器的话 可以达到10K的,用DA根本不行,也可以采用AVR单片机和DA也行

很多书上都的,的,可以用调用sin()函数就行了,直接改参数。


单片机的机器周期是多久?
这对于需要精确控制时间的应用来说是非常重要的。需要注意的是,这里所说的机器周期是一个理论值。在实际应用中,由于单片机的内部结构和指令的复杂性,执行一条指令可能需要多个机器周期。因此,在设计单片机系统时,需要仔细考虑指令的执行时间和系统的时钟频率,以确保系统的稳定性和可靠性。

已知单片机的几。=12mhz,分别设计延时0·1 s 、13、 t !的子程序...
2011-11-21 单片机:系统时钟12MHz,设计1个10ms延时子程序。 13 2015-05-24 51单片机用汇编语言设计0.2S延时子程序,晶振12MHz变... 4 2013-12-06 在AT89S51单片机中,已知时钟频率为12MHZ请编程使p... 3 2014-02-23 51单片机用汇编语言设计1S延时子程序,晶振为12MHz。 ... 16 2012-03-23 ...

急!!基于单片机设计一个任意波形发生器要求能产生任意波、频率,幅值...
1、可采用单片机定时器的PWM加积分器的方式输出任意波形,其优点是可输出任意形状的波形,缺点是受单片机主频的影响,输出信号带宽较窄。2、高频方波可直接输出,方波输出接积分器即可输出三角波。3、高频正弦波可采用方波加锁相环选频获取。4、输出频率误差可达0.1%没有问题,只要频率够低,PWM分辨率够高...

单片机输出的频率计算
去网上下载一个<单片机小精灵>的软件,可以自动计算这些参数,并生成源代码 如果下载不到,你可以采纳我后留个邮箱,我发给你.

单片机一个机器周期多少指令?
也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。■(4)指令周期:它是指CPU完成一条操作的所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51系统中,有单周期指令、双周期指令和四周期指令。所以 具体要看单片机的型号 你可以根据他的数据手册去查询 ...

用C51单片机和内部定时器来产生矩形波,要求频率为100HZ,占空比为2:1...
100HZ的矩形波,周期就是10ms,占空比2:1,就是高的部分占10ms的2\/3,低的部分占10ms的1\/3。理解了吗?

单片机8051设计简易波形发生器,要求能产生正弦波,方波,三角波,通过...
unsigned char TIME0_H=0xff,TIME0_L=0xdc; \/\/定时器0的初值设置;全局变量.对应正弦波,锯齿波50HZ sbit chg= P1^0;sbit freq_u=P1^1;sbit freq_d=P1^2;sbit duty_u=P1^3;sbit duty_d=P1^4;sbit cs =P3^7;bit flag=0;unsigned int FREQ=50;\/\/初始化频率,30HZ unsigne...

一个单片机晶振频率为6MHZ,那么,一个机器周期是多少
12*时钟周期=12*(1\/6)us。振荡周期:石英振荡器的振荡周期,为频率的导数,如石英频率为12MHz12MHz,在振荡周期为1\/12us1\/12us。状态周期:单片机完成一个最基本动作需要的时间周期,1个状态周期=2个振荡周期,单片机完成一次完整的具有一定功能的动作所需要的时间周期,1个机器周期=6个状态周期=...

单片机的1MHz等于几秒(ms)?
回答:1MHZ=1000000HZ ,Hz 是指频率单位。频率是指电脉冲,交流电波形,电磁波,声波和机械的振动周期循环时,1秒钟重复的次数。1Hz代表每秒钟周期震动1次。1、单片机是嵌入式微控制器,它是由运算器,控制器,存储器,输入输出等设备构成,就相当于一个微型计算机。2、它包括了CPU、随机存储器RAM、...

用单片机做AD转换并存储数据,可以做到采样频率>=1MHz吗?
1MHz的采样频率是大了些,一般常用的AD转换芯片如ADC0804、ADC0808、ADC0809等,它们的采样频率一般都在500~600kHz,已经可以满足我们一般的需求了。如果你做的设备对转换速率要求不是很高的话,建议就用这几种转换器就可以了;如果要求转换速度很快的话,那么还是找找看其他采样频率高一些的转换器吧,不过...

蚌山区18864827639: 51单片机设计频率可调的正弦信号发生器,难点在于要求100HZ到10KHZ频率可调,步进10HZ,麻烦给个步进思路 -
并茂乐松: 10K??????,哥们不用想了,我最近就在做这个 ,不过我要产生多个波形,用单片机产生波形虽然原理很简单,但是频率却很难达到精准的,我调试得到的结果 12M 晶振的情况下 ,用C写的才能达到300多个HZ正弦波,而且波形频率很难控制 每点之间的延时虽然计算就能得到,但是调试得到的频率却跟你想的有很大差别,这一点如果你做下去的话 会体会到,希望对你用帮助,另外如果 你用51和波形发生器的话 可以达到10K的,用DA根本不行,也可以采用AVR单片机和DA也行

蚌山区18864827639: 单片机正弦信号发生器的设计 -
并茂乐松: 设计一个正弦信号发生器.要求:(1)正弦波输出频率范围:1kHz~2MHz; (2)具有频率调节功能(频率可调);(3)输出信号频率稳定度:优于10-2;(4)输出电压幅度:在 负载电阻上的电压峰-峰值Vopp≥1V

蚌山区18864827639: 大神求助,怎么用51单片机产生正弦信号,要求是20kHz以下的连续可调的频率.且不能用集成度高的专用芯片 -
并茂乐松: 要连续可调的频率……这就是最大的难度了,比如20KHz,19.999KHz,19.998KHz.......如果这样的连续,除了DDS之外,估计想用单片机的定时器模拟SPWM基本不可能.就算是用方波进行低通滤波得到正弦波,但是连续频率的方波产生难度也是很大的,需要使用PLL……嗯,估计只有这个办法了.

蚌山区18864827639: 求助:用单片机如何产生一个频率、相位、幅度可调的正弦波? -
并茂乐松: 设计思路:采用SPWM技术,正弦计算采用查表法,幅度调节需要在查表基础上进行线性运算.相位调节只要调节两个输出波形的输出点起始序号即可.要输出质量较好的正弦波的话,16MHz单片机(指系统时钟,传统51的话,12MHz晶振系统时钟只有1MHz)的单片机,正弦波上限频率不宜超过400Hz.例如,若输出分辨率控制在1000,可采用16k的开关频率,开关频率为基波频率的40倍,采用截止频率为2k的积分器可使输出波形畸变率小于1%.

蚌山区18864827639: 求大神 怎么用单片机设计一个频率可调的正弦波 -
并茂乐松: 一般是将正弦函数做成一个表,DA芯片根据这个表输出.频率调整一般通过改变定时器初值实现.

蚌山区18864827639: 用MSC - 51系列单片机怎么输出频率可调的正弦波
并茂乐松: 得有外围电路才可以的,常用D/A转换器.程序中可以用查表法.方法挺多,关键得看你干什么用.

蚌山区18864827639: 求助:51单片机如何产生频率正弦变化的脉冲? -
并茂乐松: 单片机最小系统,输出矩形脉冲的波形,是很方便的,楼主的程序,就可以办到.要想输出正弦波形,则需要有 DA 转换,这就需要硬件的支持.最小系统,就不够用了.

蚌山区18864827639: 想用51单片机做一个波形发生器,频率幅度可调,最高频率500khz,用C语言编写. -
并茂乐松: 以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、方波、梯形波等)且频率、幅度可变的波形发生器.http://www.eeskill.com/file/id/19068.

蚌山区18864827639: 求一个输出频率在30HZ到500KHZ的正弦波电路?(除功放外,?
并茂乐松: 低频率是30Hz,一般得用文氏电桥振荡电路,比较稳定,也能得到较大频率变化范围. 附图是两个用分立元件的文氏振荡电路.将电路中的R1、R2用同轴电位器,可以连续改变频率;C1、C2用不同的电容接入,可以进行频率的换档.

蚌山区18864827639: 基于单片机的信号发生器的设计,输出方波,正弦波,三角波,锯齿波,频率可调.原理是如何哒?怎么取点 -
并茂乐松: 51单片机硬件有PCA模块的,或者是PWM发生器的型号,也有没有的,你采用的芯片有没有这些硬件?正弦波:如果有,以PCA模块为例,可以作为DA使用,使用前根据datasheet配置好PCA.在51头文件中有math.h,里面有sin(X)函数,可...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网