标题:
这是一个按键控制四种波形图的程序,但是运行的时候一直卡在锯齿波是为什么呀,求解答
[打印本页]
作者:
小了白了菜
时间:
2019-12-28 15:23
标题:
这是一个按键控制四种波形图的程序,但是运行的时候一直卡在锯齿波是为什么呀,求解答
#include<reg51.h>
#include <math.h>
#define PI 3.1415
unsigned int num;
unsigned char count;
int countbeifen;
char i;
sbit key=P1^0;
void delay(unsigned int time)
{ unsigned int j=0;
for(;time>0;time--) for(j=0;j<125;j++);
}
void main()
{
count=0;
countbeifen=0;
while (1)
{
countbeifen=count;
if(key==0)
{
delay(10);
if(key==0)
{
count++;
if(count==5)
count=0;
}
}
//以上程序,会得到一个按键次数 0.1.2.3.4
//count=3;
if(count==1 )
{
for(i=0;i<=255;i++)
P2=i;
count=countbeifen;
count=0;
} //锯齿波
if(count==2)
{
for(i=0;i<255;i++)
P2=i;
for(i=255;i>0;i--)
P2=i;
count=countbeifen;
count=0;
}
//三角波
if(count==3)
{
P2=0;
P2=!P2;
count=countbeifen;
count=0;
}
if(count==4)
{
for (num = 0 ; num < 360 ; num++)
P2= 127 +127 * sin((float)num / 180 * PI);
count=countbeifen;
count=0;
} //正弦波
}
}
作者:
angmall
时间:
2019-12-28 23:56
不知道你的电路图是怎样的,发一下线路图
#include <reg51.h>
#include <math.h>
#define PI 3.1415
unsigned int num;
unsigned char count;
int countbeifen;
char i;
sbit key=P1^0;
void delay(unsigned int time)
{
unsigned int j=0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
void main()
{
count=0;
countbeifen=0;
while (1)
{
countbeifen=count;
if(key==0)
{
delay(10);
if(key==0)
{
count++;
//程序里按键没有松手检测,按下去等于是count一直在+,速度很快
//按钮程序没写等待释放语句,因此,按键值会不停增大,
while(!key);//等待按键释放
if(count==5)
count=0;
}
}
//以上程序,会得到一个按键次数 0.1.2.3.4
//count=3;
if(count==1)
{
for(i=0;i<=255;i++)
P2=i;
count=countbeifen; //<---???? 有问题
count=0;
} //锯齿波
if(count==2)
{
for(i=0;i<255;i++)
P2=i;
for(i=255;i>0;i--)
P2=i;
count=countbeifen; //<---???? 有问题
count=0;
}
//三角波
if(count==3)
{
P2=0;
P2=!P2;
count=countbeifen; //<---???? 有问题
count=0;
}
if(count==4)
{
for (num = 0 ; num < 360 ; num++)
P2= 127 +127 * sin((float)num / 180 * PI);
count=countbeifen; //<---???? 有问题
count=0;
} //正弦波
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1