現我假設K1,K2為兩開關, dector 為脈沖檢沒開關。K1控制一個燈,K2控制一個燈。脈沖開關檢測有脈沖時,無論K1,K2工作在什么狀況,兩燈關閉,另一燈亮
#include <reg52.h>
#define uchar unsigned char
void timer1_initial(void) ;
sbit d1=P1^0;
sbit d2=P1^1;
//sbit d3=P1^2;
sbit dector=P2^7;
sbit sw2=P3^2;
//sbit sw3=P3^3;
bit flag;
uchar key1,key2,a,b;
void main (void)
{
timer1_initial() ;
d1=0;
d2=0;
while(1)
{
while(( sw2==0)&&(flag==0))
{
d1=1;
d2=0;
}
while( sw2==1)
{
d1=0;
d2=0;
}
while((flag==1) &&(sw2==0))
{
d1=1;
d2=1;
}
}
}
void timer1_initial(void)
{
TMOD |=0X20;
TH1=0X38;
TL1=0X38;
TR1=1;
ET1=1;
EA=1;
}
void interrupt_serveice()interrupt 3
{
TH1=0X38;
TL1=0X38;
key1=key2;
key2=dector;
if((key1==1)&&(key2==0))
flag=1;
else
flag=0;
TF1=0;
}
在仿真進,脈沖控制時,那燈不停的閃
|