#include "reg52.h"
#define uint unsigned int
typedef unsigned int u16;
typedef unsigned char u8;
sbit k1=P3^4;
sbit led=P1^5;
uint i,j;
void delay(u16 i)
{
while(i--);
}
void keypros()
{
if(k1==0)
{
delay(1000); //軟延時,消除按鍵抖動
if(k1==0)
{
for(i=3000;i>0;i--)
for(j=110;j>0;j--);
led=0;
for(i=5000;i>0;i--) //這行的執行沒有加判斷,每次循環都會執行這個5秒延時后,再改變led的狀態
for(j=110;j>0;j--);
led=1;
}
while(!k1);
{
led=1;
}
}
}
void main()
{
while(1)
{
keypros();
}
}
比較欣賞你的學習態度,敢于實踐,從小實驗開始,找樂趣,找動力。 你這個辦法是可以簡單實現你想要的功能,但是問題很多,單片機的功能遠不止如此。 延時和程序結構也不是你這樣弄的。 試著用定時器去實現主功能延時,慢慢實踐,加油。 |