chào mọi người! mình có làm cái mạch dùng các ngắt để điều khiển cổng P2_0 của 89c52 để điều khiển bật tắt rơle 5vdc, cụ thể là dùng chân p2_0 xuất ra giá trị 0 đưa vào rơ le, chân còn lại của rơle đấu với + nguồn. mô phỏng thì chạy bình thường nhưng khi làm mạch thật thì thấy tất cả các cổng lại xuất ra giá trị 0, chân P2_0 chưa ấn công tắc mà đã xuất ra 0 rồi. đo điện áp giữa 2 chân rơle thi thấy nó chỉ bằng một nửa của điện áp đưa vào 89c52
đây là mô phỏng:
vị trí con led ở chân P2_1 là rơle
còn đây là code ạ:
mọi người xem giúp mình với. cám ơn mọi người!!!
đây là mô phỏng:
vị trí con led ở chân P2_1 là rơle
còn đây là code ạ:
Code:
#include <REGX51.H> int i; int j; void tre(unsigned int time) { while(time--); } void ngatngoai0(void) interrupt 0 { tre(30000); i=i+1; if(i==2) i=0; } void ngatngoai1(void) interrupt 2 { tre(30000); j=j+1; if(j==2) j=0; } void main() { IE=0x85; TMOD=0x60; TH1=0xfe; TL1=0xfe; TR1=1; while(1) { if(i==0) { P2_1=1; P2_4=0; } else { P2_1=0; P2_4=1; } if(j==0) { P2_2=1; P2_5=0; } else { P2_2=0; P2_5=1; } switch(TL1) { case 0xfe: P2_0=1; P2_3=0; break; case 0xff: P2_0=0; P2_3=1; break; } } }
Comment