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

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

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

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

#include<reg51.h>
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();    //三角波函数
	}
}

 

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

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值