123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 |
- #include "drive_1602.h"
- #include "dht11.h"
- #include "string.h"
- #include "stdio.h"
- #define uint unsigned int
- #define uchar unsigned char
-
- typedef unsigned char uint8_t;
- typedef unsigned short int uint16_t;
- typedef unsigned int uint32_t;
- typedef uint32_t u32;
- typedef uint16_t u16;
- typedef uint8_t u8;
- char SET=0;
- char SdL=60;
- char SdH=80;
- char SET_Timer=5;
- sbit BG_LED=P2^4;
- sbit Jsq=P2^3;
- sbit buzz=P2^3;
- bit Open=0;
- char SETLBuff[5];
- char SETHBuff[5];
- char blue_buff[16]={0};
- char WdBuff[6];
- char SdBuff[6];
- void sendString(char *p);
- unsigned char temp_val=0,humi_val=70;
- unsigned int set_gz=1000;
- void Get_DHTData(void)
- {
- if(dht11_value(&temp_val,&humi_val,DHT11_UINT8)==0)
- {
- SdBuff[0]=humi_val/10+'0';
- SdBuff[1]=humi_val%10+'0';
- SdBuff[2]='%';
-
- WdBuff[0]=temp_val/10+'0';
- WdBuff[1]=temp_val%10+'0';
- WdBuff[2]=0xdf;WdBuff[3]='C';
-
- sprintf(blue_buff,"X%dH%dD%dZ\r\n",temp_val,humi_val);
- sendString(blue_buff);
- }
- }
- void delay_xms(int xms)
- {
- char ix=0;
- for(;xms>0;xms--)
- for(ix=110;ix>0;ix--);
- }
- bit SET_Mode=0;
- bit CloseIfg=0;
- unsigned char BjCnt=0;
- bit TimeOpen=0;
- static unsigned int DsTimer=0;
- void KeyRead(void)
- {
- static char keyIfg=0;
- unsigned char KeyVal=0;
- KeyVal = P3&0xF8;
- if(KeyVal!=0xF8)
- {
- if(keyIfg==0)
- {
- keyIfg=1;
- switch(KeyVal)
- {
- case 0xF0:
- SET_Mode=~SET_Mode;
- CloseIfg=0;
- SET=0;
- break;
-
- case 0xE8:
- if(SET_Mode==0)
- {
- if(++SET>3)SET=0;
- }
- break;
-
- case 0xD8:
- if(SET_Mode==0)
- {
- if(SET==1)
- {
- if(++SdL>92)SdL=0;
- }
- if(SET==2)
- {
- if(++SdH>92)SdH=0;
- }
- if(SET==3)
- {
- if(set_gz<9990)
- {
- set_gz+=100;
- }
- }
- }
- break;
-
- case 0xB8:
- if(SET_Mode==0)
- {
- if(SET==1)
- {
- if(--SdL<0)SdL=92;
- }
- if(SET==2)
- {
- if(--SdH<0)SdH=92;
- }
- if(SET==3)
- {
- if(set_gz>100)
- {
- set_gz-=100;
- }
- }
-
- }
- break;
-
- case 0x78:
- if(SET_Mode)
- {
- Open^=1;
-
- }
- break;
-
- }
- }
- }else keyIfg=0;
-
-
- }
- void Time0Init(void)
- {
- TMOD &= 0xF0;
- TMOD |= 0x01;
- TL0 = 0x00;
- TH0 = 0x70;
- TF0 = 0;
- TR0 = 1;
- ET0=1;
- EA=1;
- }
- uchar getTime=0;
- void ISR_T0()interrupt 1
- {
-
- TL0 = 0x00;
- TH0 = 0x70;
- getTime++;
- KeyRead();
- if(Open)
- {
- Jsq=0;
- }else
- {
- Jsq=1;
- }
-
- }
- void UartInit(void)
- {
- PCON &= 0x7F;
- SCON = 0x50;
- TMOD &= 0x0F;
- TMOD |= 0x20;
- TL1 = 0xFD;
- TH1 = 0xFD;
- ET1 = 0;
- TR1 = 1;
- EA=1;
- ES=1;
- }
- void sendData(char *p,unsigned char n)
- {
- if( p == 0) return ;
- ES = 0;
- if(n > 0)
- {
- while(n --)
- {
- SBUF = *p++ ;
- while(!TI) ;
- TI = 0 ;
- }
- }
- ES = 1;
- }
- void sendString(char *p)
- {
- if(p == 0) return ;
- sendData(p,strlen(p));
- }
- bit SendIfg=0;
- unsigned char urx_dat=0;
- void usart() interrupt 4
- {
- if(RI == 1)
- {
- urx_dat = SBUF;
- switch(urx_dat)
- {
- case '@':
- SET_Mode=0;
- break;
-
- case '$':
- SET_Mode=1;
- break;
-
- case '&':
- if(SET_Mode)Open=1;
- break;
-
- case '*':
- if(SET_Mode)Open=0;
- break;
- }
- }
- RI = 0;
- TI = 0;
- }
- uint gz_val=0;
- void main(void)
- {
-
- Time0Init();
- lcd1602_init();
- WriteLcd1602_String(0,0," Welcome to use");
- delay_xms(1000);
- Write_1602_com(0x01);
- delay_xms(100);
- Get_DHTData();
- delay_xms(50);
- BG_LED=1;
- UartInit();
- while(1)
- {
-
- if(++getTime>20)
- {
- getTime=0;
- Get_DHTData();
-
- if(SET_Mode==0)
- {
- if(!CloseIfg)
- {
- CloseIfg=1;
- Write_1602_com(0x01);
- delay_1ms(10);
- }
- if(SET==0)
- {
- WriteLcd1602_String(0,0,"Temp:");
- WriteLcd1602_String(5,0,WdBuff);
-
- WriteLcd1602_String(0,1,"Humi:");
- WriteLcd1602_String(5,1,SdBuff);
-
- WriteLcd1602_String(15,1,"A");
-
- if(humi_val<SdL)
- {
- Open=1;
- buzz=0;
- }else if(humi_val>SdL&&humi_val<SdH)
- {
- Open=1;
- buzz=1;
- }else if(humi_val>SdH)
- {
- Open=0;
- buzz=1;
- }
-
- }else
- {
- SETLBuff[0]=SdL/10+'0';
- SETLBuff[1]=SdL%10+'0';
- SETLBuff[2]='%';
- SETLBuff[3]=' ';
- SETHBuff[0]=SdH/10+'0';
- SETHBuff[1]=SdH%10+'0';
- SETHBuff[2]='%';
- SETHBuff[3]=' ';
- WriteLcd1602_String(9,0,"L:");
- WriteLcd1602_String(11,0,SETLBuff);
-
- WriteLcd1602_String(9,1,"H:");
- WriteLcd1602_String(11,1,SETHBuff);
- }
-
- }
- if(SET_Mode==1)
- {
-
- if(!CloseIfg)
- {
- CloseIfg=1;
- Write_1602_com(0x01);
- delay_1ms(10);
- }
- if(SET==0)
- {
- WriteLcd1602_String(0,0,"Temp:");
- WriteLcd1602_String(5,0,WdBuff);
-
- WriteLcd1602_String(0,1,"Humi:");
- WriteLcd1602_String(5,1,SdBuff);
-
- WriteLcd1602_String(15,1,"M");
- }
-
- }
-
- }
- }
- }
|