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