|
代码:
#include<reg51.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
sbit p0 = P1^0;
sbit p1 = P1^1;
sbit p2 = P1^2;
uchar a;
uint c;
float b;
bit flag;
void delay(uint x) //延时
{
uint i, j;
for(i = x; i > 0; i--)
for(j = 110; j > 0; j--);
}
void Rectangular_wave() //方波
{
// while(!p0);
while(p1 == 1 && p2 == 1)
{
P2 = 255;
delay(150);
P2 = 0;
delay(150);
}
}
void delta() //三角波
{
// while(!p1);
while(p0 == 1 && p2 == 1)
{
for(a = 1; a <= 128; a++)
P2 = a;
for(a = 128; a >= 1; a--)
P2 = a;
}
a = 0;
}
void sinusoical() //正弦波
{
// while(!p2);
flag = 0;
while(p0 == 1 && p1 == 1)
{
for(c = 0; c < 10000 && flag == 0; c++)
{
b = 64 + 63 * sin(2 * 3.1415926 * c * 500 / 40000);
P2 = b;
if(p0 == 0 || p1 == 0)
flag = 1;
}
}
}
void scan()
{
if(p0 == 0) Rectangular_wave();
if(p1 == 0) delta();
if(p2 == 0) sinusoical();
}
void main()
{
while(1)
{
scan();
}
}
|
-
-
-
DA转换.zip
113.26 KB, 下载次数: 17, 下载积分: 黑币 -5
|