打印

急~求单片机的DA转换输出波形程序问题

[复制链接]
4422|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
over_chain|  楼主 | 2011-4-14 00:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人初学单片机,要求做一个DA转换实现锯齿、三角、方波、梯形波的输出,通过串口控制波形的选择和频率的设定,下面是我写的一个程序,波形没有出来,也不知道怎么写通过串口选择波形的程序。求各位高手帮帮忙!
#include<reg51.h>
#include<stdio.h>
unsigned int b;
sbit En_clk=P3^6;
sbit P2_7=P2^7;
void juchi();
void sanjiao();
void fangbo();
void tixing();
void delay(unsigned int ms);
unsigned char i;
void delay(unsigned int ms)
{ unsigned int t;
while(ms--)
{
  for(t=0;t<112;t++);//112
}
}
void main(void)
{  TMOD=0x01;
   TR0=1;
   EA=1;TR0=1;ET0=1; EX0=1;IT0=0;
   
//   while(1)
//   {
//    b=SBUF;
//    switch(b)
// {
//  case 1:juchi();
//  break;
//  case 2:sanjiao();
//  break;
//  case 3:fangbo();
//  break;
//  case 4:tixing();
//  break;
// }
//   }
}
void juchi() //锯齿波.
{
unsigned char i;
P2_7=1;
while(1)
{
  for(i=0;i<255;i++)
  P0=i;
   }
}
void sanjiao() //三角波
{
unsigned char i;
P2_7=1;
while(1)
{
  for(i=0;i<255;i++)
  P0=i;
  for(i=255;i>0;i--)
  P0=i;
   }
}
void fangbo() //方波
{ P2_7=1;
  while(1)
  {
  P0=0x00;
  delay(10);
  P0=0xFF;
  delay(10);
    }
}
void tixing()//梯形波
{
  unsigned char i;
  P2_7=1;
  while(1)
{
  for(i=0;i<255;i++)
  P0=i;
  if(i==254) delay(10);
  for(i=255;i>0;i--)
  P0=i;
  if(i==1) delay(10);
}
   
}

相关帖子

沙发
ye460398672| | 2011-4-14 15:33 | 只看该作者
大概思路也这个样子的。要利用到单片机的AD模块或是外接AD模块,要用终端接收来自串口的数据,然后根据判断选择输出波形,这些需要自己查资料写哦!

使用特权

评论回复
板凳
356098324| | 2011-4-14 18:29 | 只看该作者
最好是附上电路图!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

24

帖子

1

粉丝