首页 > 代码库 > DAC0832、led、蜂鸣器

DAC0832、led、蜂鸣器

52控制DAC0832芯片输出电流,让发光二极管D12由灭均匀变到最亮,再有亮变灭,在最亮和最灭的时候蜂鸣器发出报警声,完成整个周期的时间是控制在5s左右。



#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit dawr=P3^6;
sbit dacs=P3^2;
sbit beep=P2^3;    


void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}


void main()
{
uchar val,flag;
dula=0;
wela=0;
dacs=0;
dawr=0;
P0=0;
while(1)
{
if(flag==0)
{
val+=5;
P0=val;
if(val==255)
{
flag=1;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
else
{
val-=5;
P0=val;
if(val==0)
{
flag=0;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
}

}


使能D/A的片选,接着使能写入端。延时50ms,50*51=2551ms,忽略蜂鸣器占用的100ms,约为2.5s,另外半周期同样为2.5s,共计5s。