资源简介

基于单片机的DAC0832正弦波 发生器 源码 +仿真protEUS电路图

资源截图

代码片段和文件信息

#include
#define  uchar unsigned char
#define  uint  unsigned int
#define  DAdata  P0
sbit DA_S1= P2^0; // 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存
sbit DA_S2= P2^1; // 控制DAC0832的8位DAC寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存

/*uchar code tab[128]={
64677073767982858891949699102104106109111113115117118120121123124125126126
12712712712712712712712612612512412312112011811711511311110910610410299969491
88858279767370676460575451484542393633312825232118161412109764321
10000000112346791012141618212325283133363942454851545760};*/

uchar code sine_tab[256]={
//输出电压从0到最大值(正弦波1/4部分)
0x800x830x860x890x8d0x900x930x960x990x9c0x9f0xa20xa50xa80xab0xae0xb10xb40xb70xba0xbc
0xbf0xc20xc50xc70xca0xcc0xcf0xd10xd40xd60xd80xda0xdd0xdf0xe10xe30xe50xe70xe90xea0xec
0xee0xef0xf10xf20xf40xf50xf60xf70xf80xf90xfa0xfb0xfc0xfd0xfd0xfe0xff0xff0xff0xff0xff0xff
//输出电压从最大值到0(正弦波1/4部分)
0xff0xff0xff0xff0xff0xff0xfe0xfd0xfd0xfc0xfb0xfa0xf90xf80xf70xf60xf50xf40xf20xf10xef
0xee0xec0xea0xe90xe70xe50xe30xe10xde0xdd0xda0xd80xd60xd40xd10xcf0xcc0xca0xc70xc50xc2
0xbf0xbc0xba0xb70xb40xb10xae0xab0xa80xa50xa20x9f0x9c0x99 0x960x930x900x8d0x890x860x830x80
//输出电压从0到最小值(正弦波1/4部分)
0x800x7c0x790x760x720x6f0x6c0x690x660x630x600x5d0x5a0x570x550x510x4e0x4c0x480x450x43
0x400x3d0x3a0x380x350x330x300x2e0x2b0x290x270x250x220x200x1e0x1c0x1a0x180x16 0x150x13
0x110x100x0e0x0d0x0b0x0a0x090x080x070x060x050x040x030x020x020x010x000x000x000x000x000x00
//输出电压从最小值到0(正弦波1/4部分)
0x000x000x000x000x000x000x010x02 0x020x030x040x050x060x070x080x090x0a0x0b0x0d0x0e0x10
0x110x130x15 0x160x180x1a0x1c0x1e0x200x220x250x270x290x2b0x2e0x300x330x350x380x3a0x3d
0x400x430x450x480x4c0x4e0x510x550x570x5a0x5d0x600x630x66 0x690x6c0x6f0x720x760x790x7c0x80 }; 

void DAout(uchar temp)
{
    DAdata=temp;
DA_S1=0;  //打开8位输入寄存器
DA_S1=1;  //关闭8位输入寄存器
}

void main()
{
    uchar ik;
i=0;
DAdata=0;
DA_S1=0; //打开8位输入寄存器
DA_S2=0; //使DAC寄存器处于直通状态

while(1)
{
    /*for(i=0;i<255;i++) //产生三角波的上升斜边
{
    DAout(i);
}

    for(i=255;i>0;i--)  //产生三角波的下降斜边
{
    DAout(i);
}*/

//DAout(0xff);    //可输出TTL波形
//DAout(0x80);

  for(i=0;i<256;i++)  //下面四个for循环,可输出正弦波
  {
   k=sine_tab[i];
   P0=k;
  }
  /*for(i=18;i>0;i--)
  {
   k=tab[i];
   P0=k;
  }
  for(i=0;i<18;i++)
  {
   k=~tab[i];
   P0=k;
  }
  for(i=18;i>0;i--)
  {
   k=~tab[i];
   P0=k;
  } */
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     119548  2009-12-15 11:13  正弦波(也有三角程序)\正弦波测试--图\Last Loaded triangle.DBK

     文件     119552  2010-04-08 22:29  正弦波(也有三角程序)\正弦波测试--图\triangle.DSN

     文件        912  2010-04-09 17:19  正弦波(也有三角程序)\正弦波测试--图\triangle.PWI

     文件       2174  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle

     文件       3038  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.c

     文件        896  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.hex

     文件         48  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.lnp

     文件       5639  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.LST

     文件       3823  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.M51

     文件       2260  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.OBJ

     文件        987  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.Opt

     文件       4300  2009-12-15 14:41  正弦波(也有三角程序)\正弦波测试--程序\triangle.plg

     文件       2151  2009-12-15 00:09  正弦波(也有三角程序)\正弦波测试--程序\triangle.Uv2

     文件        988  2009-12-15 01:58  正弦波(也有三角程序)\正弦波测试--程序\triangle_Opt.Bak

     文件          0  2009-12-14 23:02  正弦波(也有三角程序)\正弦波测试--程序\triangle_Uv2.Bak

     目录          0  2010-04-09 17:19  正弦波(也有三角程序)\正弦波测试--图

     目录          0  2010-04-09 15:58  正弦波(也有三角程序)\正弦波测试--程序

     目录          0  2010-04-09 15:58  正弦波(也有三角程序)

----------- ---------  ---------- -----  ----

               266316                    18


评论

共有 条评论