#include <reg51.h>
// PNP 9012 0°Ê§@
/**********************************************************************************/
sbit LED_1 = P1^0;
sbit LED_2 = P1^1;
sbit LED_3 = P1^2;
void Heater(unsigned int);
void Fan(unsigned int);
void All_lights(unsigned int);
void delay_1ms(int);
// LED delay
void delay_1ms(int x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<60;j++);
}
/**********************************************************************************/
// ¤â±±°Æµ{¦¡
void Heater(unsigned int x)
{
if(x==1)
{
LED_1 = 1; //close
}
else
{
LED_1 = 0; //open
}
}
void Fan(unsigned int y)
{
if(y==1)
{
LED_2 = 1; //close
LED_3 = 1;
}
else
{
LED_2 = 0; //open
LED_3 = 0;
}
}
void All_lights(unsigned int z)
{
if(z==1)
{
LED_1 = LED_2 = LED_3 = 1; //close
}
else
{
LED_1 = LED_2 = LED_3 = 0; //open
}
}
/**********************************************************************************/
void main(void) //ver.3 正常動作
{
unsigned char B,cmd;
unsigned char dht[5]={0,1,2,3,4}; //無法以此方式傳送
unsigned char ddht[3]={0x61,0x31,0x32}; //ASCII,可用此方式傳送
TMOD=0x20; //UART正常
TH1=0xFD;
SCON=0x50;
TR1=1;
LED_1=LED_2=LED_3=1; //啟動時燈號
while(1)
{
while(RI==0);
B=SBUF;
cmd=B;
switch(cmd)
{
case 0x41: // ASCII=A 'heater_open'
Heater(1);
delay_1ms(1000);
RI=0;
SBUF=0x57; // ASCII 0x57=W, 可運行
while(TI==0);
TI=0;
break;
case 0x42: // ASCII=B 'heater_close'
Heater(0);
delay_1ms(1000);
RI=0;
SBUF=dht[0]; // 無法運行
while(TI==0);
TI=0;
break;
case 0x43: // ASCII=C 'Fan_open'
Fan(1);
delay_1ms(1000);
RI=0;
SBUF=ddht[2]; // ASCII 0x32=2, 可運行
while(TI==0);
TI=0;
break;
}
}
}
I2luY2x1ZGUgPHJlZzUxLmg+Ci8vIFBOUCA5MDEyIDDCsMOKwqdACi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpzYml0IExFRF8xID0gUDFeMDsKc2JpdCBMRURfMiA9IFAxXjE7CnNiaXQgTEVEXzMgPSBQMV4yOwoKdm9pZCBIZWF0ZXIodW5zaWduZWQgaW50KTsKdm9pZCBGYW4odW5zaWduZWQgaW50KTsKdm9pZCBBbGxfbGlnaHRzKHVuc2lnbmVkIGludCk7CnZvaWQgZGVsYXlfMW1zKGludCk7CgovLyBMRUQgZGVsYXkKdm9pZCBkZWxheV8xbXMoaW50IHgpCnsKCWludCBpLGo7Cglmb3IoaT0wO2k8eDtpKyspCgkJZm9yKGo9MDtqPDYwO2orKyk7Cn0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8vIMKkw6LCscKxwrDDhsK1e8KmwqEKdm9pZCBIZWF0ZXIodW5zaWduZWQgaW50IHgpCnsKCWlmKHg9PTEpCgl7CgkJTEVEXzEgPSAxOyAvL2Nsb3NlCgl9CiAgZWxzZQkKCXsKCQlMRURfMSA9IDA7IC8vb3BlbgoJfQp9Cgp2b2lkIEZhbih1bnNpZ25lZCBpbnQgeSkKewoJaWYoeT09MSkKCXsKCQlMRURfMiA9IDE7IC8vY2xvc2UKCQlMRURfMyA9IDE7Cgl9CiAgZWxzZQkKCXsKCQlMRURfMiA9IDA7IC8vb3BlbgoJCUxFRF8zID0gMDsKCX0KfQoKdm9pZCBBbGxfbGlnaHRzKHVuc2lnbmVkIGludCB6KQp7CglpZih6PT0xKQoJewoJCUxFRF8xID0gTEVEXzIgPSBMRURfMyA9IDE7IC8vY2xvc2UKCX0KCWVsc2UgCgl7CgkJTEVEXzEgPSBMRURfMiA9IExFRF8zID0gMDsgLy9vcGVuCgl9Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp2b2lkIG1haW4odm9pZCkgLy92ZXIuMyDmraPluLjli5XkvZwKewoJdW5zaWduZWQgY2hhciBCLGNtZDsJCgl1bnNpZ25lZCBjaGFyIGRodFs1XT17MCwxLDIsMyw0fTsgCQkJLy/nhKHms5Xku6XmraTmlrnlvI/lgrPpgIEKCXVuc2lnbmVkIGNoYXIgZGRodFszXT17MHg2MSwweDMxLDB4MzJ9OyAvL0FTQ0lJ77yM5Y+v55So5q2k5pa55byP5YKz6YCBCgoJVE1PRD0weDIwOwkJIAkgICAgICAvL1VBUlTmraPluLgKCVRIMT0weEZEOwoJU0NPTj0weDUwOwoJVFIxPTE7CgkKCUxFRF8xPUxFRF8yPUxFRF8zPTE7IC8v5ZWf5YuV5pmC54eI6JmfCgkJCQkKd2hpbGUoMSkKICB7CQoJCQl3aGlsZShSST09MCk7CgkJCUI9U0JVRjsKCQkJY21kPUI7CgkJCQoJCQlzd2l0Y2goY21kKQoJCQl7CgkJCQljYXNlIDB4NDE6ICAgICAgICAvLyBBU0NJST1BICdoZWF0ZXJfb3BlbicKCQkJCQkJCUhlYXRlcigxKTsKCQkJCQkJCWRlbGF5XzFtcygxMDAwKTsKCQkJCQkJCVJJPTA7CgkJCQkgICAgICAKCQkJCSAgICAgIFNCVUY9MHg1NzsgLy8gIEFTQ0lJIDB4NTc9Vywg5Y+v6YGL6KGMCgkJCQkJCQl3aGlsZShUST09MCk7CgkJCQkJCQlUST0wOyAgCgkJCQkJCQlicmVhazsKCQkJCWNhc2UgMHg0MjogICAgICAgLy8gIEFTQ0lJPUIgJ2hlYXRlcl9jbG9zZScKCQkJCQkJCUhlYXRlcigwKTsKCQkJCQkJCWRlbGF5XzFtcygxMDAwKTsKCQkJCQkJCVJJPTA7CgkJCQkgICAgICAKCQkJCSAgICAgIFNCVUY9ZGh0WzBdOyAvLyDnhKHms5XpgYvooYwgCgkJCQkJCQl3aGlsZShUST09MCk7CgkJCQkJCQlUST0wOwkJCQkKCQkJCQkJCWJyZWFrOwkJCgkJCQljYXNlIDB4NDM6CQkgLy8gIEFTQ0lJPUMgJ0Zhbl9vcGVuJwoJCQkgICAgICAgIEZhbigxKTsKCQkJCQkJCWRlbGF5XzFtcygxMDAwKTsKCQkJICAgICAgICBSST0wOwoJCQkJICAgICAgCgkJCQkgICAgICBTQlVGPWRkaHRbMl07IC8vICBBU0NJSSAweDMyPTIsIOWPr+mBi+ihjAoJCQkJCQkJd2hpbGUoVEk9PTApOwoJCQkJCQkJVEk9MDsJCQkJCgkJCQkgICAgICBicmVhazsJCQoJCQl9CiAgfQkKfQ==