|
程序燒進(jìn)單片機(jī)后k2(暫停鍵)按下無效 反而k3(切換流水燈)按下會(huì)暫停在最后一個(gè)燈 這是為什么呢
#include "stdio.h"
#include "reg51.h"
#include "intrins.h"
#define led P2
typedef unsigned int u16;
typedef unsigned char u8;
sbit k1=P3^1;
sbit k2=P3^2;
sbit k3=P3^3;
sbit k4=P3^4;
bit SF=1;
bit UF=0;
void delay(u16 i)
{
while(i--);
}
unsigned char Key_Scan()
{
unsigned char KeyNum = 0;
k1=1;
k2=1;
k3=1;
k4=1;
if(!k1||!k2||!k3||!k4)
{
delay(1000);
if(!k1||!k2||!k3||!k4)
{
if(!k1)
{
KeyNum=1 ;
}
if(!k2)
{
KeyNum=2 ;
}
if(!k3)
{
KeyNum=3;
}
if(!k4)
{
KeyNum=4;
}
}
while(!k1||!k2||!k3||!k4);
}
return KeyNum;
}
void Key_Service()
{
u8 i;
switch(Key_Scan())
{
case 1:SF = 1;break;//啟動(dòng)
case 2:SF = 0;break;//停止
case 3:UF = 1;break;//流水燈1
case 4:UF = 0;break;//流水燈2
default:break;
}
if(SF)
{
P2=0xfe;
if(UF)
{
for(i=0;i<7;i++)
{
led=_cror_(led,1);
}
}
else
{
for(i=0;i<7;i++)
{
led=_crol_(led,1);
delay(5000);
}
}
delay(50000);
}
}
void main()
{
while(1)
{
Key_Service();
}
}
|
|