以上的程序在上電復位時總是LED燈閃一下,初始化為低電平,但上電復位時總有高電平輸出。請大神幫看看是不是程序初始化有問題呀?謝謝
#include <STC8.H>
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
typedef unsigned long uint32_t;
/********端口引腳定義*****/
sbit LED1=P3^0;
sbit LED2=P3^1;
sbit LED3=P3^2;
sbit LED4=P3^3;
sbit KEY=P5^4;
sbit LED5=P5^5;
/******延時函數聲明******/
void delay(u16 Count);
/******主函數區******/
void main(void)
{
u8 num=0;
P3M0=0xff; //設P3口為推挽輸出
P3M1=0x00;
RSTCFG=0xef; //設P5.4為IO口
P5M0=0xef; //設P5.4為準雙向口
P5M1=0xef;
P5M0=0x20; //設P5.5為推挽輸出
P5M1=0xdf;
P3=0x00; //初始化P3口為低電平
//LED1=0,LED2=0,LED3=0,LED4=0;
LED5=1; //P5.5為高電平
//KEY=0;
while(1)
{
if(KEY==1) //如P5.4為高電平
{
LED5=0; //P5.5輸出低電平
delay(200);
P3=0x00;
//LED1=LED2=LED3=LED4=0;
delay(200);
LED1=1,LED2=0,LED3=0,LED4=0; //LED燈流水點亮
delay(200);
LED1=1,LED2=1,LED3=0,LED4=0;
delay(200);
LED1=1,LED2=1,LED3=1,LED4=0;
delay(200);
LED1=1,LED2=1,LED3=1,LED4=1;
delay(200);
}
{
if(KEY==0)
{
P3=0x00;
delay(2000);
LED5=1;
}
}
}
}
/************延時3秒****/
void delay(u16 Count)
{
u8 i,j;
while(Count--)
{
for(i=0;i<50;i++)
for(j=0;j<20;j++);
}
}
|