1, specific description
STC89C52 microcontroller to paper, as the control, to achieve the detection of temperature, humidity, light intensity is detected, the LCD displays in real time the hardware circuit design of the circuit and real-time monitoring of the phone. In particular by temperature and humidity sensors as DHT11, photoresistors and AD0809 chip, GTM900-B wireless communication module, the ambient temperature, collect humidity, light intensity of the three parameters, storage, display and other functions, and can transmit the corresponding data in real time to the mobile phone, the system is reliable, simple, cost-effective.
2, hardware circuitry
3, part of the code
#include<reg52.h>
#include"delay.h"
#include"lcd1602.h"
#include"ad0809.h"
#include"DHT11.H"
unsigned char wddata,sddata;
unsigned char ad_d;
unsigned char wenlow=10,wenhig=30;
unsigned char shilow=34,shihig=90;
unsigned char adlow=20,adhig=130;
/////////////////////
sbit k1=P1^4;
sbit k2=P1^5;
sbit k3=P1^6;
sbit k4=P1^7;
unsigned char keyscan();
unsigned char keyscanquick();//¿ì½ÝÊäÈëÓÃÓÚµ÷½Ú·¶Î§
#define ajys 200
/////////////////////
void dis();//ÏÔʾ ÎÂʪ¶È ¹âÕÕ
void jcring();//¼ì²âµç»°µ½À´
void xiugaifanweiandother();//Ð޸ı¨¾¯·¶Î§ÒÔ¼°ÆäËû°´¼ü²Ù×÷
#define Buf_Max 120 //»º´æ³¤¶È120
#define Delay_Time 100 //ÑÓʱ³¤¶È
unsigned char xdata hm[]="18677662985_";
void inithm();//³õʼ ÉèÖõ绰ºÅÂë
void initgsm();//³õʼ»¯GSM
unsigned char i = 0; //¶¨Ò建´æÖ¸Õë
unsigned char xdata Rec_Buf[Buf_Max]; //¶¨Ò建´æÊý×é
void Serial_Init(void); //ÉùÃ÷´®¿Ú³õʼ»¯º¯Êý
void Send_ASCII(unsigned char *b); //ÉùÃ÷·¢ËÍ×Ö·û(ASCIIÂë)º¯Êý
void Delay_ms(unsigned int time); //ÉùÃ÷ÑÓʱº¯Êý
void CLR_Buf(void); //ÉùÃ÷Çå³ý»º´æÄÚÈÝ
void Send_Hex(unsigned char b); //ÉùÃ÷·¢ËÍ×Ö·û(Ê®Áù½øÖÆ)º¯Êý
bit Hand(unsigned char *a); //ÉùÃ÷Åжϻº´æÖÐÊÇ·ñº¬ÓÐÖ¸¶¨µÄ×Ö·û´®º¯Êý
void fasong();//ºÅÂë¼ÓÄÚÈÝ
void CMGS(unsigned char *tel);
void neirong(void);
unsigned int js=0;//ÓÃÓÚ¼Æʱ£¬AD²ÉÑù
unsigned char xdata flag=0;//·¢ËͶÌÐűê־λ ¼ì²â±êÖ¾ ÓÃÓڵȴý ÎÂʪ¶È ¹âÕÕ¼ì²âÎȶ¨ºó²Å¿ªÊ¼ ÅÐ¶Ï ÊÇ·ñ³¬ÏÞ
unsigned char aj;//¼ì²â°´¼ü
unsigned char wz=0;//¼Ç¼°´¼üλÖÃ
void main()
{
lcdinit();
initgsm();//³õʼ»¯GSM
inithm();//³õʼ ÉèÖõ绰ºÅÂë
while(1)
{
js++;
if(js>1000)
{
js=0;
dis();
}
jcring();
xiugaifanweiandother();
}
}
void dis()//ÏÔʾ ÎÂʪ¶È ¹âÕÕ
{
ad_d=initad();
writecom(0xcb);
writedata(ad_d%1000/100+0x30);
writedata(ad_d%100/10+0x30);
writedata(ad_d%10+0x30);
writedata('L');
writedata('x');
read_TRH();
writestr(1,5,str1); //ʪ¶È
writestr(1,0,str2); //ζÈ
if(flag==1 && (ad_d<adlow || ad_d>adhig)) {flag=0;fasong();}
if(flag==1 && (wddata<wenlow || wddata>wenhig)) {flag=0;fasong();}
if(flag==1 && (wddata<wenlow || wddata>wenhig)) {flag=0;fasong();}
}
void xiugaifanweiandother()//Ð޸ı¨¾¯·¶Î§ºÍ°´¼üÆäËû²Ù×÷
{
aj=keyscan();
if(aj==1)
{
//writestr(0,0,"LOW 10 60 100 ");
//writestr(1,0,"HIG 20 80 130 ");
writestr(0,0,"LOW ");
writestr(1,0,"HIG ");
writecom(0x80+6);
writedata(wenlow%100/10+0x30);
writedata(wenlow%10+0x30);
writedata(' ');
writedata(shilow%100/10+0x30);
writedata(shilow%10+0x30);
writedata(' ');
writedata(adlow%1000/100+0x30);
writedata(adlow%100/10+0x30);
writedata(adlow%10+0x30);
writecom(0xc0+6);
writedata(wenhig%100/10+0x30);
writedata(wenhig%10+0x30);
writedata(' ');
writedata(shihig%100/10+0x30);
writedata(shihig%10+0x30);
writedata(' ');
writedata(adhig%1000/100+0x30);
writedata(adhig%100/10+0x30);
writedata(adhig%10+0x30);
writecom(0x80+7);
writecom(0x0f);//´ò¿ªÉÁ˸
while(1)
{
aj=keyscanquick();
if(aj==2)
{
wz=0;
flag=1;
writecom(0x0c);//offÉÁ˸
writecom(0x01);
writestr(0,0,hm);
dis();
break;
}
else if(aj==1)
{
wz++;
if(wz>5) wz=0;
if(wz==0) writecom(0x87);
else if(wz==1) writecom(0x8a);
else if(wz==2) writecom(0x8e);
else if(wz==3) writecom(0xc7);
else if(wz==4) writecom(0xca);
else if(wz==5) writecom(0xce);
}
else if(aj==3)
{
if(wz==0){if(wenlow<wenhig-9) wenlow++;}
else if(wz==1){if(shilow<(shihig-9)) shilow++;}
else if(wz==2){if(adlow<(adhig-30)) adlow++;}
else if(wz==3){if((wenhig)<99) wenhig++;}
else if(wz==4){if((shihig)<99) shihig++;}
else if(wz==5){if((adhig)<250) adhig++;}
writecom(0x80+6);
writedata(wenlow%100/10+0x30);
writedata(wenlow%10+0x30);
writedata(' ');
writedata(shilow%100/10+0x30);
writedata(shilow%10+0x30);
writedata(' ');
writedata(adlow%1000/100+0x30);
writedata(adlow%100/10+0x30);
writedata(adlow%10+0x30);
writecom(0xc0+6);
writedata(wenhig%100/10+0x30);
writedata(wenhig%10+0x30);
writedata(' ');
writedata(shihig%100/10+0x30);
writedata(shihig%10+0x30);
writedata(' ');
writedata(adhig%1000/100+0x30);
writedata(adhig%100/10+0x30);
writedata(adhig%10+0x30);
if(wz==0) writecom(0x87);
else if(wz==1) writecom(0x8a);
else if(wz==2) writecom(0x8e);
else if(wz==3) writecom(0xc7);
else if(wz==4) writecom(0xca);
else if(wz==5) writecom(0xce);
}
else if(aj==4)
{
if(wz==0){if(wenlow>1) wenlow--;}
else if(wz==1){if(shilow>1) shilow--;}
else if(wz==2){if(adlow>1) adlow--;}
else if(wz==3){if((wenhig)>(wenlow+9)) wenhig--;}
else if(wz==4){if((shihig)>(shilow+9)) shihig--;}
else if(wz==5){if((adhig)>(adlow+30)) adhig--;}
writecom(0x80+6);
writedata(wenlow%100/10+0x30);
writedata(wenlow%10+0x30);
writedata(' ');
writedata(shilow%100/10+0x30);
writedata(shilow%10+0x30);
writedata(' ');
writedata(adlow%1000/100+0x30);
writedata(adlow%100/10+0x30);
writedata(adlow%10+0x30);
writecom(0xc0+6);
writedata(wenhig%100/10+0x30);
writedata(wenhig%10+0x30);
writedata(' ');
writedata(shihig%100/10+0x30);
writedata(shihig%10+0x30);
writedata(' ');
writedata(adhig%1000/100+0x30);
writedata(adhig%100/10+0x30);
writedata(adhig%10+0x30);
if(wz==0) writecom(0x87);
else if(wz==1) writecom(0x8a);
else if(wz==2) writecom(0x8e);
else if(wz==3) writecom(0xc7);
else if(wz==4) writecom(0xca);
else if(wz==5) writecom(0xce);
}
}
}
}
void jcring()//¼ì²âµç»°µ½À´
{
if(strstr(Rec_Buf,"RING")!=NULL)
{
CLR_Buf();
Delay_ms(Delay_Time);
Send_ASCII("ATH");
while(!Hand("OK"))
{
Send_ASCII("ATH");Delay_ms(Delay_Time);
}
CLR_Buf();
Delay_ms(Delay_Time);
fasong();
writestr(1,0,"fasong OK");
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
Delay_ms(Delay_Time); //ÑÓʱ
writecom(0x01);
writestr(0,0,hm);
dis();
}
}
void CMGS(unsigned char *tel)
{
unsigned char code mode[]= {0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D}; //AT+CMGS=
unsigned int i,j;
ES = 0;
for(i=0;i<8;i++)
{
SBUF=mode[i];
while(TI==0);
TI=0;
}
SBUF=0x22;//ÒýºÅ
while(TI==0);
TI=0;
for(j=0;j<11;j++)
{
SBUF=*tel;
tel++;
while(TI==0);
TI=0;
}
SBUF=0x22;//ÒýºÅ
while(TI==0);
TI=0;
_nop_();
SBUF=0x0D;//»Ø³µ
while(TI==0);
TI=0;
ES = 1;
}
void neirong(void) //·¢Ë͵ÄÄÚÈÝ
{
unsigned char q;
ES=0;
TR0=0;
SBUF=ad_d/100+0x30;
while(TI==0);
TI=0;
SBUF=ad_d%100/10+0x30;
while(TI==0);
TI=0;
SBUF=ad_d%10+0x30;
while(TI==0);
TI=0;
SBUF='L';
while(TI==0);
TI=0;
SBUF='x';
while(TI==0);
TI=0;
SBUF='*';
while(TI==0);
TI=0;
for(q=0;q<5;q++) ///////////////////Êý¾Ý³¤¶È50
{
SBUF=str1[q];
while(TI==0);
TI=0;
}
SBUF='*';
while(TI==0);
TI=0;
for(q=0;q<5;q++) ///////////////////Êý¾Ý³¤¶È50
{
SBUF=str2[q];
while(TI==0);
TI=0;
}
SBUF=0X1A;
while(TI==0);
TI=0;
SBUF=0x0D;//»Ø³µ
while(TI==0);
TI=0;
//SBUF=0x0A;//»»ÐÐ
//while(TI==0);
// TI=0;
ES=1;
TR0=1;
}
void fasong()//ºÅÂë¼ÓÄÚÈÝ
{
writestr(1,0," ");
/*******************************************************************/
CMGS(hm); //·¢Ë͵ĵ绰ºÅÂë
while(!Hand(">"))
{
writecom(0xc0);
writedata(' ');
delay(10000);
writecom(0xc0);
writedata('*');
delay(10000);
}
writecom(0xc0);
writedata('*');
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
delay(1000);
/*******************************************************************/
neirong();
while(!Hand("OK"))
{
writecom(0xc1);
writedata(' ');
delay(10000);
writecom(0xc1);
writedata('*');
delay(10000);
}
writecom(0xc1);
writedata('*');
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
delay(10000);delay(10000);
writestr(0,0,hm);
}
void initgsm()//³õʼ»¯GSM
{
Serial_Init();
writecom(0xc0);
writedata('*');
delay(1000);
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
Delay_ms(Delay_Time); //ÑÓʱ
Send_ASCII("AT"); //·¢ËÍÁª»úÖ¸Áî
while(!Hand("OK")) //ÅжÏÊÇ·ñÎÕÊֳɹ¦,Èç¹û²»³É¹¦ÑÓʱһ»á,ÔÙ·¢ËÍATÎÕÊÖÖ¸Áî
{
Send_ASCII("AT"); //·¢ËÍÁª»úÖ¸Áî
writecom(0xc0);
writedata(' ');
delay(10000);
writecom(0xc0);
writedata('*');
delay(10000);
}
writecom(0xc0);
writedata('*');
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
Delay_ms(Delay_Time); //ÑÓʱ
Send_ASCII("AT+CMGF=1"); //Îı¾(TEXT)ģʽ
Delay_ms(Delay_Time); //ÑÓʱ
while(!Hand("OK")) //µÈ´ýÉèÖóɹ¦
{
Send_ASCII("AT+CMGF=1"); //Îı¾(TEXT)ģʽ
writecom(0xc1);
writedata(' ');
delay(10000);
writecom(0xc1);
writedata('*');
delay(10000);
}
writecom(0xc1);
writedata('*');
CLR_Buf();
Delay_ms(Delay_Time); //ÑÓʱ
Send_ASCII("AT+CPMS=\"SM\",\"SM\",\"SM\"");//ËùÓвÙ×÷¶¼ÔÚMT(Ä£¿éÖÕ¶Ë)ÖнøÐÐ
Delay_ms(Delay_Time); //ÑÓʱ
while(!Hand("OK")) //µÈ´ýÉèÖóɹ¦
{
Send_ASCII("AT+CPMS=\"SM\",\"SM\",\"SM\"");//ËùÓвÙ×÷¶¼ÔÚMT(Ä£¿éÖÕ¶Ë)ÖнøÐÐ
writecom(0xc2);
writedata(' ');
delay(10000);
writecom(0xc2);
writedata('*');
delay(10000);
}
writecom(0xc2);
writedata('*');
delay(1000);
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
Delay_ms(Delay_Time); //ÑÓʱ
while(!Hand("OK")) //µÈ´ýÉèÖóɹ¦
{
Send_ASCII("AT+CNMI=2,1");//ÉèÖõ±ÓÐжÌÐŵ½À´Ê±Ìáʾ
writecom(0xc3);
writedata(' ');
delay(10000);
writecom(0xc3);
writedata('*');
delay(10000);
}
writecom(0xc3);
writedata('*');
delay(1000);
CLR_Buf(); //Çå³ý»º´æÄÚÈÝ
Delay_ms(Delay_Time); //ÑÓʱ
writedata(' ');
writedata('I');
writedata('n');
writedata('i');
writedata('t');
writedata('g');
writedata('s');
writedata('m');
writedata('O');
writedata('K');
}
/***************************´®¿Ú³õʼ»¯º¯Êý*****************************/
/*º¯ÊýÔÐÍ:void Serial_Init(void)
/*º¯Êý¹¦ÄÜ:´®¿Ú³õʼ»¯
/*ÊäÈë²ÎÊý:ÎÞ
/*Êä³ö²ÎÊý:ÎÞ
/**********************************************************************/
void Serial_Init(void)//´®¿Ú³õʼ»¯º¯Êý
{
SCON = 0x50;//´®¿Ú:·½Ê½1,ÔÊÐí·¢ËͺͽÓÊÕ
TMOD = 0x20;//¶¨Ê±Æ÷1:ģʽ2,8λ×Ô¶¯ÖØװģʽ,ÓÃÓÚ²úÉú²¨ÌØÂÊ
TH1 = 0xFD; //11.0592MHZ¾§Õñ£¬²¨ÌØÂÊΪ9600
TL1 = 0xFD;
TR1 = 1; //¿ªÆô¶¨Ê±Æ÷1
ES = 1; //¿ªÆô´®¿ÚÖжÏ
EA = 1; //¿ªÆôÈ«¾ÖÖжÏ
}
/****************************´®¿ÚÖжϴ¦Àíº¯Êý**************************/
/*º¯ÊýÔÐÍ:void Serial_Int(void)
/*º¯Êý¹¦ÄÜ:´®¿ÚÖжϴ¦Àí
/*ÊäÈë²ÎÊý:ÎÞ
/*Êä³ö²ÎÊý:ÎÞ
/**********************************************************************/
void Serial_Int() interrupt 4
{
ES = 0; //¹Ø´®¿ÚÖжϣ¬·ÀÖ¹ÖжÏǶÌ×
if(TI) //Èç¹ûÊÇ·¢ËÍÖжϣ¬Ôò²»×öÈκδ¦Àí
{
TI = 0; //Çå³ý·¢ËÍÖжϱê־λ
}
if(RI) //Èç¹ûÊǽÓËÍÖжϣ¬Ôò½øÐд¦Àí
{
RI = 0; //Çå³ý½ÓÊÕÖжϱê־λ
Rec_Buf[i] = SBUF; //½«½ÓÊÕµ½µÄ×Ö·û´®´æµ½»º´æÖÐ
i++; //»º´æÖ¸ÕëÏòºóÒƶ¯
if(i>200) //Èç¹û»º´æÂú,½«»º´æÖ¸ÕëÖ¸Ïò»º´æµÄÊ×µØÖ·
{
i = 0;
}
}
ES = 1; //¿ªÆô´®¿ÚÖжÏ
}
/****************************·¢ËÍ×Ö·û(ASCII)º¯Êý***********************/
/*º¯ÊýÔÐÍ:void Send_ASCII(unsigned char *b)
/*º¯Êý¹¦ÄÜ:·¢ËÍ×Ö·û(ASCIIÂë)
/*ÊäÈë²ÎÊý:unsigned char *b
/*Êä³ö²ÎÊý:ÎÞ
/**********************************************************************/
void Send_ASCII(unsigned char *b)
{
ES = 0; //¹Ø´®¿ÚÖжÏ
for (b; *b!='\0';b++)
{
SBUF = *b;
while(TI!=1); //µÈ´ý·¢ËÍÍê³É
TI = 0; //Çå³ý·¢ËÍÖжϱê־λ
}
ES = 1; //¿ª´®¿ÚÖжÏ
Send_Hex(0x0d); //·¢Ëͻسµ·û
Send_Hex(0x0a); //·¢ËÍ»»Ðзû
}
/****************************time msÑÓʱº¯Êý***************************/
/*º¯ÊýÔÐÍ:Delay_ms(unsigned int time)
/*º¯Êý¹¦ÄÜ:ÑÓʱTime ms
/*ÊäÈë²ÎÊý:time
/*Êä³ö²ÎÊý:ÎÞ
/**********************************************************************/
void Delay_ms(unsigned int time)
{
unsigned char j;
for(;time>0;time--)
{
j = 1500;
while(j--);
}
}
/**************************Çå³ý»º´æÊý¾Ýº¯Êý****************************/
/*º¯ÊýÔÐÍ:void CLR_Buf(void)
/*º¯Êý¹¦ÄÜ:Çå³ý»º´æÊý¾Ý
/*ÊäÈë²ÎÊý:ÎÞ
/*Êä³ö²ÎÊý:ÎÞ
/*µ÷ÓÃÄ£¿é:ÎÞ
/**********************************************************************/
void CLR_Buf(void)
{
unsigned char k;
for(k=0;k<Buf_Max;k++) //½«»º´æÄÚÈÝÇåÁã
{
Rec_Buf[k] = '\0';
}
i = 0; //½ÓÊÕ×Ö·û´®µÄÆðʼ´æ´¢Î»ÖÃ
}
/*************************·¢ËÍ×Ö·û(Ê®Áù½øÖÆ)º¯Êý********************/
/*º¯ÊýÔÐÍ:void Send_Hex(unsigned char c)
/*º¯Êý¹¦ÄÜ:·¢ËÍ×Ö·û(Ê®Áù½øÖÆ)
/*ÊäÈë²ÎÊý:unsigned char c
/*Êä³ö²ÎÊý:ÎÞ
/*µ÷ÓÃÄ£¿é:ÎÞ
/******************************************************************/
void Send_Hex(unsigned char c)
{
ES = 0; //¹Ø´®¿ÚÖжÏ
SBUF = c;
while(TI!=1); //µÈ´ý·¢ËÍÍê³É
TI = 0; //Çå³ý·¢ËÍÖжϱê־λ
ES = 1; //¿ª´®¿ÚÖжÏ
}
/*****************Åжϻº´æÖÐÊÇ·ñº¬ÓÐÖ¸¶¨µÄ×Ö·û´®º¯Êý******************/
/*º¯ÊýÔÐÍ:bit Hand(unsigned char *a)
/*º¯Êý¹¦ÄÜ:Åжϻº´æÖÐÊÇ·ñº¬ÓÐÖ¸¶¨µÄ×Ö·û´®
/*ÊäÈë²ÎÊý:unsigned char *a Ö¸¶¨µÄ×Ö·û´®
/*Êä³ö²ÎÊý:bit 1---º¬ÓÐ 0---²»º¬ÓÐ
/*µ÷ÓÃÄ£¿é:ÎÞ
/*******************************************************************/
bit Hand(unsigned char *a)
{
if(strstr(Rec_Buf,a)!=NULL)
return 1;
else
return 0;
}
void inithm()//³õʼ ÉèÖõ绰ºÅÂë
{
writestr(0,0,hm);
writecom(0x0f); //´ò¿ª¹â±ê
writecom(0x80); //ÏÔʾ¹â±ê³õʼλÖÃ
while(1)
{
aj=keyscan();
if(aj==2)
{
writecom(0x0c); //Òþ²Ø¹â±ê
writecom(0x01);
wz=0;
writestr(0,0,hm);
break;
}
if(aj==1)
{
wz=wz+1;
if(wz==11) wz=0;
writecom(0x80+wz); //ÏÔʾ¹â±ê³õʼλÖÃ
}
if(aj==3)
{
if(wz==0){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==1){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==2){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==3){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==4){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==5){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==6){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==7){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==8){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==9){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==10){if(hm[wz]<0x39) hm[wz]++;}
else if(wz==11){if(hm[wz]<0x39) hm[wz]++;}
writedata( hm[wz] );
writecom(0x80+wz);
}
if(aj==4)
{
if(wz==0){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==1){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==2){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==3){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==4){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==5){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==6){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==7){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==8){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==9){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==10){if(hm[wz]>0x30) hm[wz]--;}
else if(wz==11){if(hm[wz]>0x30) hm[wz]--;}
writedata( hm[wz] );
writecom(0x80+wz);
}
}
}
unsigned char keyscan()
{
if(k1==0)
{
delay(ajys);
{
if(k1==0)
while(k1==0);
return 1;
}
}
else if(k2==0)
{
delay(ajys);
{
if(k2==0)
while(k2==0);
return 2;
}
}
else if(k3==0)
{
delay(ajys);
{
if(k3==0)
while(k3==0);
return 3;
}
}
else if(k4==0)
{
delay(ajys);
{
if(k4==0)
while(k4==0);
return 4;
}
}
else
return 0;
}
unsigned char keyscanquick()//¿ì½ÝÓÃÓÚµ÷½Ú·¶Î§
{
if(k1==0)
{
delay(ajys);
{
if(k1==0)
while(k1==0);
return 1;
}
}
else if(k2==0)
{
delay(ajys);
{
if(k2==0)
while(k2==0);
return 2;
}
}
else if(k3==0)
{
delay(ajys);
{
if(k3==0)
return 3;
}
}
else if(k4==0)
{
delay(ajys);
{
if(k4==0)
return 4;
}
}
else
return 0;
}