void main() { //T1CONL=0x30; //T1CONH=0xA0; setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_16); set_timer0(0); led_io=0; enable_interrupts(INT_TIMER0); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); setup_io_dieukhien(); Speaker_io=0; setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard lcd_init(); delay_ms(10); init_DS1307(); delay_ms(10); init_ext_eeprom(); delay_ms(10); LED_LCD_IO=0; LED_LCD=1; Init_595(); menu_system=0; load_eeprom(); off_all_van(); while(true) { switch_menu(); } }
//ham su ly du lieu nhan tu uart // ban tin co dinh dang "TEMP,HUFF" // ban tin gom 2 byte // ham nay duoc goi trong ngat uart void mode3_uart_rev() { unsigned char buff_rx[3]; unsigned char rx_count; //lay gia tri nhiet do temp=buff_rx[0]; huff=buff_rx[1]; // check xem neu nhu nhu gia tri nhiet do hoac do am nho hon nguong thi bat van. neu khong thi tat van if(temp>temp_max || huff< huff_max) on_all_van(); else off_all_van(); }
// ham nay duoc su dung trong ngat uart khi nhan ban tin dieu khien // tu gateway // bien rx_data la bien luu gia tri data nhan tu uart void dieukhien_van() { unsigned long i; rx_data = RCREG; //nhan du lieu va dua vao du lieu nhan dc vao bien data // check xem ban tin du lieu la gi switch(rx_data) { // nhan duoc ban tin bat van 1 case 0x81: { Van1=1; // bat van 1 //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x81); // check xem may bom co duoc bat khong? // neu may bom dang tat thi bat may bom len if(MAYBOM!=1) Maybom=1; } break; // nhan duoc ban tin dieu khien van 2 case 0x82: { Van2=1; // bat van 2 //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x82); // check xem may bom co duoc bat khong? // neu may bom dang tat thi bat may bom len if(MAYBOM!=1) Maybom=1 ; } break; // nhan duoc ban tin dieu khien van 3 case 0x83: { Van3=1; // bat van 3 //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x83); // check xem may bom co duoc bat khong? // neu may bom dang tat thi bat may bom len if(MAYBOM!=1) Maybom=1 ; } break; // nhan duoc ban tin dieu khien van 4 case 0x84: { Van4=1; // bat van 4 //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x84); // check xem may bom co duoc bat khong? // neu may bom dang tat thi bat may bom len if(MAYBOM!=1) Maybom=1 ; } break; // nhan duoc ban tin dieu khien van 5 case 0x85: { Van5=1; // bat van 5 //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x85); // check xem may bom co duoc bat khong? // neu may bom dang tat thi bat may bom len if(MAYBOM!=1) Maybom=1 ; } break; // nhan duoc ban tin dieu khien van 6 // van 6 dung cho vuon tue case 0x86: { Van6=1; // bat van 6 //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x86); // check xem may bom co duoc bat khong? // neu may bom dang tat thi bat may bom len if(MAYBOM!=1) Maybom=1 ; } break; // nhan duoc ban tin bat tat ca cac van case 0x8F: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x8F); on_all_van(); } break; // nhan duoc ban tin dieu khien tat van 1 case 0x01: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x01); // check xem co con van nao duoc bat khong? // neu nhu cac van tat het thi tat may bom // sau do moi tat van duoc dieu khien if(Van2==0&&Van3==0&&Van4==0&&Van5==0&&Van6==0) { Maybom=0; // tre 1 khoang thoi gian roi moi tat van dieu khien for(i=0;i<1000;i++); } Van1=0; // tat van 1 } break; // nhan duoc ban tin dieu khien tat van 2 case 0x02: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x02); // check xem co con van nao duoc bat khong? // neu nhu cac van tat het thi tat may bom // sau do moi tat van duoc dieu khien if(Van1==0&&Van3==0&&Van4==0&&Van5==0&&Van6==0) { Maybom=0; // tre 1 khoang thoi gian roi moi tat van dieu khien for(i=0;i<1000;i++); } Van2=0; // tat van 2 } break; // nhan duoc ban tin dieu khien tat van 3 case 0x03: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x03); // check xem co con van nao duoc bat khong? // neu nhu cac van tat het thi tat may bom // sau do moi tat van duoc dieu khien if(Van1==0&&Van2==0&&Van4==0&&Van5==0&&Van6==0) { Maybom=0; // tre 1 khoang thoi gian roi moi tat van dieu khien for(i=0;i<1000;i++); } Van3=0; // tat van 3 } break; // nhan duoc ban tin dieu khien tat van 4 case 0x04: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x04); // check xem co con van nao duoc bat khong? // neu nhu cac van tat het thi tat may bom // sau do moi tat van duoc dieu khien if(Van1==0&&Van2==0&&Van3==0&&Van5==0&&Van6==0) { Maybom=0; // tre 1 khoang thoi gian roi moi tat van dieu khien for(i=0;i<1000;i++); } Van4=0; // tat van 4 } break; // nhan duoc ban tin dieu khien tat van 5 case 0x05: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x05); // check xem co con van nao duoc bat khong? // neu nhu cac van tat het thi tat may bom // sau do moi tat van duoc dieu khien if(Van1==0&&Van2==0&&Van3==0&&Van4==0&&Van6==0) { Maybom=0; // tre 1 khoang thoi gian roi moi tat van dieu khien for(i=0;i<1000;i++); } Van5=0; // tat van 5 } break; // nhan duoc ban tin dieu khien tat van 6 case 0x06: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x06); // check xem co con van nao duoc bat khong? // neu nhu cac van tat het thi tat may bom // sau do moi tat van duoc dieu khien if(Van1==0&&Van2==0&&Van3==0&&Van4==0&&Van5==0) { Maybom=0; // tre 1 khoang thoi gian roi moi tat van dieu khien for(i=0;i<1000;i++); Van6=0; // tat van 1 } } break; // nhan duoc ban tin dieu khien tat het cac van case 0x0F: { //gui lai ban tin phan hoi cho gateway thong qua uart uart_putchar(0x0F); off_all_van(); } default: break; } rx_data=0; }