高级会员
主题
帖子
积分4319
阅读权限30
注册时间2013-10-16
最后登录1970-1-1
在线时间 小时
|
程序我想按下后执行,程序。但是这个程序烧进去按键按下就执行程序拉。找拉一下午也没找到原因。
外置按键in,我要求是低=0电平为0-100%pwm亮,为1就是100%-0灭。但是现在只能实现亮。菜鸟实在找不到原因拉。
#include<reg51.h>
sbit LED=P3^2;
sbit key=P3^5;
sbit in=P3^4;
bit keybuf = 1;
bit backup = 1;
unsigned char light;//占空比
unsigned char j=0;//步进速度
/* 延时函数 */
void delay(unsigned char d)
{
unsigned char i;
while(--d!=0)
{
for(i=0;i<20;i++);
}
}
void delay130ms(void)
{
unsigned char a,b,c;
for(c=11;c>0;c--)
for(b=16;b>0;b--)
for(a=218;a>0;a--);
}
void pwm(unsigned char a)
{
LED=0;
delay(a);
a=~a;
LED=1;
delay(a);
a=~a;
}
void main()
{
unsigned char keystatus = 1,flag=0;;
delay130ms();
LED=0;//熄灭led
while(1)
{
if(!key) //key check
{
if(!key) //key check
{
if(key==0) //key check
{
keystatus=!keystatus;
flag=1;
}
}
}
if(flag)//启动显示
{
light+=j;
if(keystatus)
{
j=1;
if(light==0xfe)
flag=0;
pwm(light);
LED=0;
}
else{
j=0xff;
if(light==1)
flag=0;
pwm(light);
LED=1;
}
}
//pwm(light); //OUT PWM
if(keystatus)//未点亮
{
if(in==0)
{
if(in==0)
{
keystatus=0;
flag=1;
}
}
}
}
}
|
|