单片机与DAC0832设计一个低频信号发生器,能产生正弦波方波锯齿波三角波。波形按键选择,频率幅度可调。

急需,先感谢您啦!... 急需,先感谢您啦! 展开
 我来答
zhxiufan
2014-06-11 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
//0832各种波型输出演示
//P1.1P1.0 = 00时 正弦波
//P1.1P1.0 = 01时 锯齿波
//P1.1P1.0 = 10时 方波
//P1.1P1.0 = 11时 三角波
//需要连接的导线:
//(1)译码器Y0接DAC0832的CS
//(2)P3.6即XWR插孔接DAC0832的WR
//(3)8芯的排线连接8排针的P0口和DAC0832的D7-D0
//(4)串并转换区的+5v接DAC0832的参考电压Vref插孔
#include <reg51.h>
#include <ABSACC.H>//absacc.h是C51中绝对地址访问函数的头文件
#define daport XBYTE[0x8000]//将daport定义为外部I/O口,地址为8000H,则74ls138的Y0有效
sbit P1_1=P1^1;
sbit P1_0=P1^0;
unsigned char i,j,k; bit updown; //三角波的上升/下降
unsigned char code sinn[64]={
198,204,210,216,222,228,233,237,242,245,249,251,253,255,255,255,
255,254,252,250,247,243,239,235,230,224,219,213,207,201,194,188,
181,175,169,163,158,152,147,143,139,136,133,131,129,128,128,128,
129,130,132,135,138,142,146,151,156,162,168,174,180,186,193,199
}; //正弦的数值在128-255之间,所以输出的正弦幅值在0-5v
void main(void)
{
updown=0;
i=128;
j=0;
while(1)
{
if (P1_1==1)
{
if (P1_0==0) //输出占空比为25%的方波
{
if (j<=40) i=255;//i=255时输出的电压为+5v
else if(j<=160) i=0;//i=0时输出的电压为-5v
else j=0;
}
else //输出-5v—+5v的三角波
{
if (updown==0) //上升
{
if (i==255) updown=1;
else i=i+5;//i++;
}
else //下降
{
if (i==0) updown=0;//if(i==128) updown=0;i=128输出的电压为0
else i=i-5;//i--;
}
}
}
else{
if (P1_0==0) //正弦波
{
i=sinn[j];
if (j>=63) j=0;
}
else //锯齿波
{
if (i==255) i=128;
else i++;
}
}
daport=i;
for (k=0;k<2;k++);
j++;
}
}
hck2llj
2014-06-11 · TA获得超过2198个赞
知道小有建树答主
回答量:1196
采纳率:75%
帮助的人:1080万
展开全部
你这个是要仿真还是要做出硬件?
追问
仿真啊!!!你有吗?急需啊!!!
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式