该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#define DAC0832 XBYTE[0x3fff]
#define uchar unsigned char
uchar code sintab[]={0x7f,0x89,0x94,0x9f,0xaa, 0xb4,0xbe,0xc8,0xd1,0xd9,
0xe0,0xe7,0xed,0xf2,0xf7,0xfa,0xfc,0xfe,0xff};
sbit K1=P1^0;
sbit K2=P1^2;
sbit K3=P1^4;
sbit K4=P1^6;
char function=0;
void delay()
{uchar j;
for(j=0;j<250;j++);
}
void jietibo()
{uchar i;
for(i=0;i<255;i++)
{
DAC0832=i;
}
}
void sanjiaobo()
{uchar i;
for(i=0;i<255;i++)
{
DAC0832=i;
}
for(i=255;i>0;i--)
{
DAC0832=i;
}
}
void juxingbo()
{DAC0832=0xff;
delay();
DAC0832=0;
delay();
}
void sin()
{char i;
for(i=0;i<18;i++)
{DAC0832=sintab[i];//第1个1/4周期
}
for(i=18;i>0;i--)
{DAC0832=sintab[i];//第2个1/4周期
}
for(i=0;i<18;i++)
{DAC0832=~sintab[i];//第3个1/4周期
}
for(i=18;i>0;i--)
{DAC0832=~sintab[i];//第4个1/4周期
}
}
void keyscan()
{if(K1==0) function=1;
if(K2==0) function=2;
if(K3==0) function=3;
if(K4==0) function=4;
}
void main()
{while(1)
{ keyscan();
switch(function)
{case 1: jietibo(); break;
case 2: sanjiaobo(); break;
case 3: juxingbo(); break;
case 4: sin(); break;
default: break;
}
}
}