chào các bạn.
qua 1 thời gian miệt mài nguyên cứu và thiết kế cuối cùng cũng đã thành phẩm 1 thiết bị hẹn giờ đa năng đơn giản dùng chip PIC16F886
đây là hình của em nó.
mình xin chia sẻ cùng anh chị em.
đây là sơ đồ nguyên lý sch
đây là code
(đây là code hướng dẫn các các bước cho các bạn làm )
và đây là file .hex
hen gio.ziphen gio.zip
và đây là tất cả những gì các bạn cần.
hen gio.zip
chúc các bạn thành công.
À CÁI MÀY MÌNH ĐĂNG KÝ QUYỀN TÁC GIẢ RỒI CÁC BẠN LÀM CHƠI THÔI CHỨ ĐỪNG ĐƯA RA THỊ TRƯỜNG NHA. NẾU ........................
qua 1 thời gian miệt mài nguyên cứu và thiết kế cuối cùng cũng đã thành phẩm 1 thiết bị hẹn giờ đa năng đơn giản dùng chip PIC16F886
đây là hình của em nó.
mình xin chia sẻ cùng anh chị em.
đây là sơ đồ nguyên lý sch
đây là code
(đây là code hướng dẫn các các bước cho các bạn làm )
Code:
/************************************************************************************************/ // TEN CONG TRINH: HEN GIO BAT TAT THIET BI DA NANG // NGUOI THUC HIEN: DINH THANH SANG // DIA CHI : AN MY - CAM CHAU - HOI AN - QUANG NAM - VIET NAM // THOI GIAN: 15 THANG 7 NAM 2011 DEN 9 THANG 3 NAM 2012 // UNG DUNG CUA THIET BI: DIET KHIEN BAT TAT THIET BI CHIEU SANG VA CAC THIET BI KHAC // THONG SO: DIEN AP SU DUNG 220VAC DONG MOI TAI 15A CONG SUAT TIEU THU CUA THIET BI 0.5W // HIEN THI 4 LED 7 DOAN // DIEU CHINH BANG NUT AN CO // THIET BI DA DANG KY QUYEN SO HUU TAC GIA. /************************************************************************************************/ //////////////////////////////bat dau chuong trinh//////////////////////////////////// #include<htc.h> __CONFIG( XT & WDTDIS & BORDIS & IESODIS & FCMDIS & LVPDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT ); #ifndef _XTAL_FREQ #define _XTAL_FREQ 4000000 #endif //////////////////////////////////////////khai bao bien//////////////////////////////////////// int l1,l2,l3, i=0,onset=0, h1=0,h2=0,m1=0,m2=0,s=0, mode=0,save=0,auoff=100, menu=80, ms1=0,ms2=0,hs1=0,hs2=0, timeon=0,timeoff=0, h1p=0,h2p=0,m1p=0,m2p=0; ///////////////////////////////////////////bang ma led/////////////////////////////////////////// char ledht[]={cac b?n nhap vao ma Hex de hien thi}; ////////////////////////////////////////////chuong trinh con hien thi led//////////////////////////////////// void led(int hl1,int hl2,int ml1,int ml2) { cac ban doc ro rang phan cung va xuat du lieu ra post } ///////////////////////////////////////////////////chuong trinh con cai dat time thuc///////////////////////////////////////// void settimeled() { if(RB2!=1) { dung thuat toan de tang gia tri phut tu 0-->60 } if(RB1!=1) { tuong tu phut } } ///////////////////////////////////////////////chuong trinh khai bao eeprom///////////////////////////////////// void khaibaoeeprom() { EEDAT=1; EEADR=1; EEPGD=0; WRERR=1; WREN=1; WR=1; RD=0; } ///////////////////////////////////////////////chuong trinh ghi va doc eeprom////////////////////////////////////////// //Read from EEPROM unsigned char readEEPROM(unsigned char dataR_ADR) { EEADR = dataR_ADR; //data Read AdDRess EEPGD = 0; RD = 1; return(EEDAT); } //Write to EEPROM void writeEEPROM(unsigned char dataW_ADR, unsigned char dataW_DAT) { EEADR = dataW_ADR; //data Write AdDRess EEDAT = dataW_DAT; //data Write DATa EEPGD = 0; WREN = 1; GIE = 0; while(GIE==1){ GIE = 0; } EECON2 = 85; EECON2 = 170; WR = 1; GIE = 1; while(WR==1){ } WREN = 0; __delay_ms(5); } //////////////////////////////////////////////////////////////////////chuong trinh con bat tat tai bang tay//////////////////////////////////// void load1() { if (RB5!=1) { dung thuat toan de bien doi pin o tranh thai nay sang tranh thau khac va save } } void load2() { if (RB6!=1) { tuong tu load1 } } void load3() { if (RB7!=1) { tuong tu load1 } } ////////////////////////////////////////////////chuong trinh ngat////////////////////////////////////////// void interrupt isr() { if((TMR1IF)&&(TMR1IE)) { s++; TMR1H=0x80; TMR1L=0x00; if(s>59) { m2=m2++; s=0; save=0; if (m2>9) { dung thuat toan tuong tu cai dat phut } if(RC7!=0) { dung thuat toan tuong tu cai dat phut } } TMR1IF = 0; } if(INTF&&INTE) { nhan ngat ngoai thay doi che do_ } } /////////////////////////////////////////////////////////khai bao chuc nang ngat///////////////////////////////////////////////// void khaibaongat() { TMR1CS=1; // 0= INTERNAL CLOCK ,1= EXTERNAL CLOCK T1OSCEN=1; TMR1IF=0; TMR1IE = 1; // TIMER1 Interrupt Enable bit ; GIE = 1; // Global Interrupt Enable bit PEIE=1; TMR1ON=1; // ENABLE TIMER 1 // T1CKPS0=0; // T1CKPS1=0; // TMR1GE=0; // T1SYNC=1; TMR1H=0x80; TMR1L=0x00; RBIE=1; INTE=1; INTF=1; T0IF=1; } ////////////////////////////////////////////////////////////////chuong trinh con bat tat che do ////////////////////////////////////////// void time_on() { if(RB3!=1) { tuong tu load1 } } void time_off() { if(RB4!=1) { tuong tu load1 } } /////////////////////////////////////////////////chuong trinh cai dat time cho hen gio///////////////////////////////////////// void settime() { if(RB2!=1) //set min { dung thuat toan tuong tu cai dat phut } if(RB1!=1) //set hour { dung thuat toan tuong tu cai dat phut } } ////////////////////////////////////////////////////////////////////cai dat gia tri va cong viec///////////////////////////////////////////////////////////////////////////////////////// void settimeload(void) { onset=0 ; while((menu==10)||(menu==20)||(menu==30)||(menu==40)||(menu==50)||(menu==60)||(menu==70)) { mode=menu; onset++; timeon=readEEPROM(0x01+mode); timeoff=readEEPROM(0x02+mode); while(timeon==2) { vao che do_ cai dat thoi gian hen gio } while(timeoff==2) { vao che do_ cai dat thoi gian hen gio } hs1=hs2=ms1=ms2=0; for(i=0;i<700;i++) { hien thi cac cong viec che do_ bat hay tat } for(i=0;i<700;i++) { hien thi thoi gian bat } for(i=0;i<700;i++) { hien thi thoi gian tat } if(onset>8) { menu=0; } } } ///////////////////////////////////////////////////////////////////doc gia tri cai dat va xu ly cong viec////////////////////////////////////////////////////////////////////////////////////////// void readload() { for(int j=10;j<90;j=j+10) { int addon=0; int addoff=0; led(h1,h2,m1,m2); if(readEEPROM(0x01+j)==1) addon=j; if(readEEPROM(0x02+j)==1) addoff=j; if(s<3) { if((addon>0)&&(addon<50)&&(readEEPROM(0x03+addon)==h1)&&(readEEPROM(0x04+addon)==h2)&&(readEEPROM(0x05+addon)==m1)&&(readEEPROM(0x06+addon)==m2)) { doc va so sanh cac gia tri da luu voi thoi gian thuc } if((addoff>0)&&(addoff<50)&&(readEEPROM(0x07+addoff)==h1)&&(readEEPROM(0x08+addoff)==h2)&&(readEEPROM(0x09+addoff)==m1)&&(readEEPROM(0x10+addoff)==m2)) //neu setload timeoff=1; { doc va so sanh cac gia tri da luu voi thoi gian thuc } } if(RC7==0) //ban ngay { doc va so sanh cac gia tri da luu voi thoi gian thuc khi ban ngay } else //ban dem { auoff=0; doc va so sanh cac gia tri da luu voi thoi gian thuc khi ban dem } } RC6=l1=readEEPROM(0x01); RC5=l2=readEEPROM(0x02); RC4=l3=readEEPROM(0x03); } ////////////////////////////////////////////////////////////////////////chuong trinh chinh///////////////////////////////////////////////////////////////////////////////////// void main() { TRISA0=TRISA1=TRISA2=TRISA3=TRISA4=TRISA5=0; TRISC2=TRISC3=TRISC4=TRISC5=TRISC6=0; WPUB0=WPUB1=WPUB2=WPUB3=WPUB4=WPUB5=WPUB6=WPUB7=1; ANS0=ANS1=ANS2=ANS3=ANS4=ANS8=ANS9=ANS10=ANS11=ANS12=ANS13=0; TRISB0=TRISB1=TRISB2=TRISB3=TRISB4=TRISB5=TRISB6=TRISB7=1; khaibaongat(); khaibaoeeprom(); l1=RC6= /// doc cac gia tri da luu//////////// l2=RC5= /// doc cac gia tri da luu//////////// l3=RC4= /// doc cac gia tri da luu//////////// h1= /// doc cac gia tri da luu//////////// h2= /// doc cac gia tri da luu//////////// m1= /// doc cac gia tri da luu//////////// m2= /// doc cac gia tri da luu//////////// while(1) { load1(); load2(); load3(); settimeled(); led(h1,h2,m1,m2); readload(); settimeload(); if(RC7==0) { h1p=h2p=m1p=m2p=0; } save++; if(save>10) save=5; if(save==3) { } } ////////////////////////////////////////////////ket thuc chuong trinh code bo mat na hen gio dungf PIC 16f886///////////////////////////////////
hen gio.ziphen gio.zip
và đây là tất cả những gì các bạn cần.
hen gio.zip
chúc các bạn thành công.
À CÁI MÀY MÌNH ĐĂNG KÝ QUYỀN TÁC GIẢ RỒI CÁC BẠN LÀM CHƠI THÔI CHỨ ĐỪNG ĐƯA RA THỊ TRƯỜNG NHA. NẾU ........................
Comment