原创 DA0832试用

2009-8-25 15:34 2020 3 3 分类: MCU/ 嵌入式

点击看大图


 


我试用了一次DA0832,怎么我仿真出来的结果和我想象的不一样呢?


程序如下:


#pragma db oe sb
#include<reg51.h>
#include<absacc.h>


#define DAC0832 XBYTE[0xfe55]   /* 定义DAC0832端口地址 1111 1110 0101 0101=fe55 */
#define uchar unsigned char


void delay(uchar t)
{           /* 延时函数 */
   while(t--);
}


void saw(void)
{                /* 锯齿波发生函数 */
  uchar i;
  for (i=0;i<255;i++)
  {
     DAC0832=i;
  }                                            //波形先上升然后下降,
  for(;i>0;i--)
  {
    DAC0832=i;
  }
}


void square(void)
{             /* 方波发生函数 */
  DAC0832=0x00;
  delay(0x10);                               //波形是方波
  DAC0832=0xff;
  delay(0x10);
}


void main(void)
{
  uchar i,j;
  i="j"=0x0a;


  while(i--)
  {
    saw();                      /* 产生一段锯齿波 */
 }


  while(j--)
  {                
    square();                    /* 产生一段方波 */
  }
}


分析结果应该是先产生10个锯齿波,在产生10个方波,然后循环产生


仿真出来的结果是


a316f722-4729-4c5a-98db-9a5fb8c3f7e3.jpg


 


结果却是都是锯齿波,并且波形下降的时候不是想象中的直线下降,为什么啊?


27bfcbbb-4d80-45c6-b68f-42113123124e.jpg


第一条线是放大器输出,第二条 是OUT1

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条