Tôi đang làm bài tập về bảo vệ quá áp và vượt tần, yêu cầu là khi tần số hay điện áp tăng bất thường thì sau khoảng 4s cắt điện. Tôi làm 2phần bv áp với bv tần riêng nhau thì mạch đã chạy nhưng giờ muốn ghép lại thì gặp vấn đề, không biết làm thế nào.
Tôi dùng pp đếm xung để đo tần số, khi ghép 2 phần lại thì phần bv tần không hoạt động, tôi nghĩ do khi timer0 đếm chưa tràn thì đã đến phần ADC gặp delay nên làm sai các giá trị timer. Các bạn có cách nào giải quyết giúp với?
Tôi dùng pp đếm xung để đo tần số, khi ghép 2 phần lại thì phần bv tần không hoạt động, tôi nghĩ do khi timer0 đếm chưa tràn thì đã đến phần ADC gặp delay nên làm sai các giá trị timer. Các bạn có cách nào giải quyết giúp với?
Code:
#include <at89x51.h> char ngat=0,w=0,f=0,ch=0; int vin=1,dem; sbit ADC_RD=P3^0; sbit ADC_WR=P3^1 ; sbit ADC_INTR=P3^2; void delay_ms(unsigned int ms) { unsigned int x,y; for(x=0;x<ms;x++) for(y=0;y<=125;y++); } void main (void) { P1=0x00; TMOD = 0x51;//Timer0 che do 1, Timer1 che do 1, counter EA = 1; //Cho phep ngat Timer0 ET0 = 1; //Cho phep ngat TR0 = 1; //Timer0 dem while(1) { //Bao ve qua tan so============================== if(ngat==21) { TR1 = 0; dem = TH1*256+TL1; TH1=TL1=0; if(dem==50) //Tan so an toan 50Hz { P1_1=1; P1_0=0; w=0; } else{ P1_0=1; P1_1=0;//canh bao w++; if(w==2){ P1_2=1; //ngat relay w=0;} TR0=0; delay_ms(3000); TR0=1; } ngat=0; } //================Bao ve qua ap=================== //ADC_RD=1; ADC_WR=1; ADC_WR=0; //Tao suon thap len cao de bat dau chuyen doi ADC ADC_WR=1; while(ADC_INTR);//Cho cho ADC chuyen doi xong(INTR xuong muc thap) ADC_RD=0; //Doc du lieu ADC vin= P2; vin=vin*19.53125; if((vin<2960)|(vin>3040))// Gia su tin hieu V an toan la 3V { f++; P1_3=1; P1_4=0; if(f==2){ P1_2=1; //ngat relay f=0;} //TR0=0; delay_ms(3000); //TR0=1; } else{ f=0; P1_3=0; P1_4=1; } delay_ms(1000); ADC_RD=1; } } void Interrupt (void) interrupt TF0_VECTOR { TR0 = 0; //Dung Timer0 TH0 = 0x3C; //Nap -50000 vao TH0TL0 TL0 = 0xB0; ngat++; //Tang ngat cho lap 20lan*50000 = 1s TR0 = 1; //Start Timer TR1 = 1; } //-----------------Bao ve qua ap---------------------
Comment