开始按键按下,P1,P2,P3口动作,动作期间可以按下暂停键串口停止动作。再次按下暂停键后继续动作。请问怎么改?
#include <reg51.H>
#include <intrins.H>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P0^0 ;
sbit key2=P0^1 ;
char keyscan();
void key();
uchar i=0;
sbit led=P0^2;
void delay( uint ms) // 延时子程序
{
uint a,b;
for(a=ms;a>0;a--)
for(b=123;b>0;b--);
}
void main(void)
{
P1=0xff;
P2=0xff;
P3=0xff;
while(1){
key();
}
}
char keyscan()
{
if(key1==0){
_nop_();
if(key1==0)
{
return 1;
}
}
if(key2==0){
_nop_();
if(key1==0)
{
return 2;
}
}
}
void key()
{
static unsigned char flagkey=0;
switch(keyscan())
{
case 1:
if(flagkey==0){
for(i=0;i<4;i++){
P1=0xff;
P2=0xff;
P3=0xff;
delay(300);
P1=0x00;
P2=0x00;
P3=0x00;
delay(300);
}
break;
}
case 2:
if(flagkey==0){
while(1){
P1=0xff;
P2=0xff;
P3=0xff;
led=~led;
}
}
break;
}
}
|