我不会玩P4口,就是没有功能?
中断0可以控制,为什么中断1不能控制?该怎么改啊?
#include <reg51.h>
#include<stdio.h>
#include<INTRINS.H>
#define Uchar unsigned char
#define Uint unsigned int
//sfr P4= 0xc0;
P4SW=0X01;
sbit GuangJianCe=P1^0; //光敏检测白天1黑夜0
//sbit LedXianShi=P4^0; //LED指示 晚上亮, 白天不亮,亮时候要闪几下
sbit U4Switch=P1^3; //为1是工作
sbit U6Switch=P1^2; // 为1是工作
sbit JianCeU4=P3^2; // 为0时 已经工作
sbit JianCeU6=P3^3; // 为0时 已经工作
sbit LED_ON=P1^5; //为1 灭灯 为0 点24V灯
Uchar Mum=2;
void Delay(Uchar Num)
{
Uchar i,j;
while(--Num)
for(j=0;j<210;j++)
for(i=0;i<255;i++);
}
void int1_init(void)
{
EX1 = 1; //外部中断0使能
IT1 = 0; //外部中断0跳变中断 为1时电平中断
}
void int0_init(void)
{
EX0 = 1; //外部中断0使能
IT0 = 0; //外部中断0跳变中断 为1时电平中断
}
void LED_S(void)
{
P4SW=0X00;
Delay(2);
 4SW=0X01;
Delay(2);
 4SW=0X00;
Delay(2);
 4SW=0X01;
Delay(2);
}
void Guang(void)
{
if(GuangJianCe==0)
{
LED_S();
 4SW=0X00;
}
else
{
P4SW=0X01;
}
}
void main()
{
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
int1_init(); //外部中断1初始化
int0_init(); //外部中断0初始化
//U4Switch=1; //为1是工作 为0不工作
//U6Switch=1; //为1是工作 为0不工作
Guang();
LED_S();
EA=1; //开总中断
while(1)
{
LED_ON=1;
// P1=0xfe;
// Delay(Mum);
// P1=0xff;
// Delay(Mum);
}
}
void int1(void) interrupt 1 //外部中断1中断入口 明天准备用下降沿触发 试试看看
{
EX1 = 0;
LED_ON=0;
Delay(Mum); //Mum由485提供
LED_ON=1;
EX1 = 1;
}
void int0(void) interrupt 0 //外部中断0中断入口
{
EX0 = 0;
LED_ON=0;
Delay(Mum); //0.5S
LED_ON=1;
EX0 = 1;
} |