|
1金钱
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit PWM=P2^1;
sbit k1=P3^1;
bit DIR;
u16 count,value,timer1;
void delay(u16 i)
{
while(i--);
}
void Timer1Init()
{
TMOD|=0X10;
TH1 = 0xFF;
TL1 = 0xff;
ET1=1;
EA=1;
TR1=1;
void main()
{
Timer1Init();
while(1)
{
if(k1==0)
{
delay(5);
if(k1==0)
{
PWM=1;
}
while(!k1);
}
if(count>100)
{
count=0;
if(DIR==1)
{
value++;
}
if(DIR==0)
{
value--;
}
}
if(value==1000)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}
if(timer1>1000)
{
timer1=0;
}
if(timer1 <value)
{
PWM=1;
}
else
{
PWM=0;
}
}
}
void Time1(void) interrupt 3
TH1 = 0xFF;
TL1 = 0xff; //1us
timer1++;
count++;
}
我目前程序只要按键K1一直按着呼吸灯就会灭,松开按键呼吸灯就开启了。我要的效果是按键K1按一下呼吸灯灭。再按一下呼吸灯开
我知道答案
本帖寻求最佳答案回答被采纳后将获得系统奖励 10 金钱 , 目前已有 3人回答
|
|