我试用了一次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个方波,然后循环产生
仿真出来的结果是
结果却是都是锯齿波,并且波形下降的时候不是想象中的直线下降,为什么啊?
第一条线是放大器输出,第二条 是OUT1
文章评论(0条评论)
登录后参与讨论