怎么把按鍵控制兩路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;
}
}
}
}
|