基于51单片机的简易波形发生器
效果图
该波形可以选择方波 三角波 锯齿波 正弦波
主要是通过DAC0832
我们通过控制P0口的电平进而使DAC0832输出电压变化 再经过LM324运放输出.
下面是波形发生的程序。
/*
* @description : 方波
* @param : 无
* @return : 无
*/
void fb()
{
P0=0x00;
delay_ms(fb_fre);
P0 = fb_amp;
delay_ms(fb_fre);
}
/*
* @description : 锯齿波
* @param : 无
* @return : 无
*/
void jcb()
{
uchar i;
for(i=0; i< jcb_amp;i++)
{
P0 = i;
delay_us(jcb_fre);
}
}
/*
* @description : 三角波
* @param : 无
* @return : 无
*/
void sjb()
{
uchar i = 0;
uchar j=0;
for(j=0;j<sjb_amp;j++)
{
P0=j;
delay_us(sjb_fre);
i++;
}
for(j=i;j>0;j--)
{
P0=j;
delay_us(sjb_fre);
}
}
/*
* @description : 正弦波
* @param : 无
* @return : 无
*/
void sine()
{
float x;
for(x=-3.1415;x<3.1415;x+=0.1)
{
P0=sine_amp*(1+sin(x))/2;
delay_us(sine_fre);
}
}
需要的可以自己去下载哦!
需要该源码的可以关注公众号:智慧小巷
回复:波形发生器
即可!