mọi người cho mình hỏi mình đang làm đồ án về mạch điều khiển từ xa. bằng pic 16f84a tất cả ok chạy rồi nhưng giờ mình muốn thêm vào đó. khi nhập mật khẩu thì thiết bị mới hoạt động. mình lại không rành về code lắm. ai có thể giúp mình được không. cảm ơn nhiều. đây là code mình đã làm ok nhưng chưa thêm phần nhập mật khẩu. ae cho thêm ý kiến ạ. mạch dùng mt887 giải mã bcd cấp cho 16f84a
Code:
#include <16F84A.h> #use delay(clock=3.58M) #define loa PIN_B0 int1 tai1,tai2,tai3,tai4; // trang thai phim int1 T1,T2,T3,T4; // trang thai tai void tat(); void mo(); void loa_on(); void loa_off(); void main() { set_tris_a(0xFF); output_low(PIN_B0); output_low(PIN_B3); output_low(PIN_B4);//ngo ra output_low(PIN_B5);output_low(PIN_B6);//ngo ra tai1=0; T1=0;//mac dinh tai2=0; T2=0;//ngo ra tai3=0; T3=0;//luc dau tai4=0; T4=0;//chua mo while(TRUE) { if(input_state(PIN_A4)==1) //chan std cho phep nhap du lieu vao A { // phim 3 if((input_state(PIN_A0)==1) && (input_state(PIN_A1)==1) && (input_state(PIN_A2)==0) && (input_state(PIN_A3)==0)) { tai1=1; tai2=0; tai3=0; tai4=0; if(T1==1) loa_on(); else loa_off(); } // phim 4 if((input_state(PIN_A0)==0) && (input_state(PIN_A1)==0) && (input_state(PIN_A2)==1) && (input_state(PIN_A3)==0)) { tai1=0; tai2=1; tai3=0; tai4=0; if(T2==1) loa_on(); else loa_off(); } // phim 5 if((input_state(PIN_A0)==1) && (input_state(PIN_A1)==0) && (input_state(PIN_A2)==1) && (input_state(PIN_A3)==0)) { tai1=0; tai2=0; tai3=1; tai4=0; if(T3==1) loa_on(); else loa_off(); } // phim 6 if((input_state(PIN_A0)==0) && (input_state(PIN_A1)==1) && (input_state(PIN_A2)==1) && (input_state(PIN_A3)==0)) { tai1=0; tai2=0; tai3=0; tai4=1; if(T4==1) loa_on(); else loa_off(); } // phim 8 if((input_state(PIN_A0)==0) && (input_state(PIN_A1)==0) && (input_state(PIN_A2)==0) && (input_state(PIN_A3)==1)) { tai1=0; tai2=0; tai3=0; tai4=0; T1=T2=T3=T4=0; output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); loa_off(); } // phim 9 if((input_state(PIN_A0)==1) && (input_state(PIN_A1)==0) && (input_state(PIN_A2)==0) && (input_state(PIN_A3)==1)) { tai1=0; tai2=0; tai3=0; tai4=0; T1=T2=T3=T4=1; output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); loa_on(); } // phim2 de tat if((input_state(PIN_A0)==0) && (input_state(PIN_A1)==1) && (input_state(PIN_A2)==0) && (input_state(PIN_A3)==0)) { tat(); } // phim1 de mo if((input_state(PIN_A0)==1) && (input_state(PIN_A1)==0) && (input_state(PIN_A2)==0) && (input_state(PIN_A3)==0)) { mo(); } } } } void mo() { if(tai1==1){ output_high(PIN_B3); tai1=0; T1=1; loa_on();} if(tai2==1){ output_high(PIN_B4); tai2=0; T2=1; loa_on();} if(tai3==1){ output_high(PIN_B5); tai3=0; T3=1; loa_on();} if(tai4==1){ output_high(PIN_B6); tai4=0; T4=1; loa_on();} } void tat() { if(tai1==1){ output_low(PIN_B3); tai1=0; T1=0; loa_off();} if(tai2==1){ output_low(PIN_B4); tai2=0; T2=0; loa_off();} if(tai3==1){ output_low(PIN_B5); tai3=0; T3=0; loa_off();} if(tai4==1){ output_low(PIN_B6); tai4=0; T4=0; loa_off();} } void loa_off() { output_high(loa); delay_ms(150); output_low(loa); delay_ms(150); output_high(loa); delay_ms(150); output_low(loa);// bao tai tat } void loa_on() { output_high(loa); delay_ms(400); output_low(loa);// bao tai dang mo }