怎么把按键控制两路LED灯输出改为断电后上电(即高电平后低电平在高电平)撤换控制两路LED输出,我在VCC端已经连接了个大电容,但是控制不了,求大神帮忙!!
单片机源程序如下:
#include <STC8F2K08S2.h>
#include<intrins.h>
#include<math.h> //计算小数点的头文件
#define uint unsigned int
#define uchar unsigned char
#define WT_12M 0x83
#define WT_24M 0x81
/********************************************************************
延时函数
*********************************************************************/
void delay(uchar dat)//延时程序
{
uchar m,n,s;
for(m=dat;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
uchar scale=61; //定义占空比比例,初始是100%
uchar num2,num, n,n1;
uchar Key_num=0; //计时变量
uchar n;
bit bdata flag_add_dec1=1; //长按时是减取决于此变量
bit bdata flag_add_dec=0; //长按时是加取决于此变量
bit bdata flag_add_dec2=0; //长按时是加取决于此变量
//管脚声明
sbit LED = P1^0; //灯光控制输出 1
sbit LED1= P1^1; //灯光控制输出 2
sbit shang= P3^7; //上电输出脚
/****************主函数**********************/
void main()
{
P1=0X01;
while(1) //循环
{
if(shang==1)
{
shang=1;
delay(8);
while(!shang)
{
if(flag_add_dec==0)
{
LED=0; LED1=1;
}
else if(flag_add_dec1==1)
{
LED=0; LED1=0;
}
else if(flag_add_dec2==0)
{
LED=1; LED1=0;
}
delay(20);
}
num=LED;
if((LED==0)&&(LED1==1))
{
flag_add_dec=1;
flag_add_dec1=1;
}
else if((LED==0)&&(LED1==0))
{
flag_add_dec1=0;
flag_add_dec2=0;
}
else if((LED==1)&&(LED1==0))
{
flag_add_dec2=1;
flag_add_dec=0;
}
}
}
}
|