|
#include <reg52.h>
#define uchar unsigned char
sfr DOG=0xe1;
sbit START=P1^0;
sbit CLOCK=P1^1;
sbit KG=P1^2; //3
sbit LED=P1^3; //LED閃爍,不正常,LED常亮,正常
int b;
//int c=100;
void delay();
void main()
{ int a;
TMOD=0x11;
EA=1; //開總中斷
//OE=1; //輸出數據
ET0=1; //開T0中斷
TH0=(65535-10)/256;
TL0=(65535-10)%256;
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
KG=0; //當KG低電位時接通,高電位時斷開
P2=0xff;
CLOCK=0;
TR0=1;
DOG=0x36;
while(1)
{
START=0;
delay();
START=1;
delay();
START=0; //開始轉換
delay();
a=P2;
if(a<0x95) //輸出小于3V,則關閉
{
KG=1;
ET1=1;
TR1=1;
}
else
{ET1=0;
TR1=0;
LED=1;
KG=0;
DOG=0x36;}
}
}
void T0_time()interrupt 1
{CLOCK=~CLOCK;
TH0=(65535-10)/256;
TL0=(65535-10)%256;
}
void T1_time()interrupt 3
{TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
b=b++;
if(b==20) //一秒鐘閃爍一次
{LED=~LED;
b=0;
}
/*c--;
if(c==0) //5秒嘗試連接一次
{KG=0;
delay();
delay();
c=0;} */
}
\
void delay()
{ int x;
for(x=0;x<200;x++);
}
|
|