任务:单片机扩展一片DAC0832,实现一路三角波发生器。

三角波产生原理:单片机把初始量0送给DAC0832后,不断地增1,增至0xff后,

再把送给 DAC0832的数字量不断减1,减至0后,再重复上述过程。也可以在每

个减1的瞬间采用一个简短延时,所呈现的三角波则不会出现肉眼可见的差距。

#include
typedef unsigned char uchar;
sbit cs=P2^0;
sbit wr=P3^6;


void Triangle()   //三角波函数
{
	P0=0x00;        
	do{
		 P0=P0+1; 
	  }while(P0<0xff);
	
	   P0=0xff;
	do{
     P0=P0-1;
	  }while(P0>0x00);
    P0=0x00	;
}

void init_DA0832()  //DAC0832初始化函数
{ 
	cs=0;
	wr=0;
}
	

void main()
{
	init_DA0832();
	while(1)
	{
		
		Triangle();    //三角波函数
	}
}

 任务:单片机扩展一片DAC0832,实现一路三角波发生器。_第1张图片

注:由于51单片机P0口内部不含上拉电阻,所以应添加上拉电阻,防止P0口处于高阻态

你可能感兴趣的:(AT89C51单片机)