4个回答
展开全部
在把PC上 用C语言 编写一个程序 生成 一个周期 正弦信号 的离散值
用一个字节 8位 表示
即 0 ~ 255 表示正弦 信号 -1 到 1之间的值
单片程序 把这组0 ~ 255的 数字 放在一个 数组里
用循环 向 某个 IO口输出 这个数组
IO口接 DAC数模转换 器
用一个字节 8位 表示
即 0 ~ 255 表示正弦 信号 -1 到 1之间的值
单片程序 把这组0 ~ 255的 数字 放在一个 数组里
用循环 向 某个 IO口输出 这个数组
IO口接 DAC数模转换 器
追问
能否具体一点呀 我在做一个数字信号发生器 要产生正弦波 protues仿真没有问题 但是用单片机加DAC仿真器在示波器上却出不来波形 其中有用到键控控制波形类型,如只想仿真一个 如何屏蔽其他程序呢 那个仿真是要用按键触发才能工作的……
展开全部
keil C中 #include<math.h>之后,sin函数是可以用的哦,然后每20ms计时中断一次,计算m=sin(t),t是每次中断加1度的变量,然后将m输出,做DA既可。
追问
不太清楚……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我这是在arm板上实现的,你看看对你有用没
*****************************画正弦波************************/
void sinmain(void)
{
unsigned int x,y;
//double offset=0;//x坐标偏移量
//for(;;)
{
for(x=320;x>0;x--)
{//画正弦波
y=(int)(100*sin(((double)x)/20.0));//+offset
PutPixel (y+120, x,0x07e0); Delay(10);
}
/*offset+=1;
if(offset>=2*3.14)
offset=0;*/
Delay(100);
Lcd_ClearScr( (0x00<<11) | (0x00<<5) | (0x00) );
}
}
*****************************画正弦波************************/
void sinmain(void)
{
unsigned int x,y;
//double offset=0;//x坐标偏移量
//for(;;)
{
for(x=320;x>0;x--)
{//画正弦波
y=(int)(100*sin(((double)x)/20.0));//+offset
PutPixel (y+120, x,0x07e0); Delay(10);
}
/*offset+=1;
if(offset>=2*3.14)
offset=0;*/
Delay(100);
Lcd_ClearScr( (0x00<<11) | (0x00<<5) | (0x00) );
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是用波表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询