标题: 这种单片机led灯按键开关中断程序为什么会混乱 [打印本页]

作者: GeorgeTam    时间: 2020-3-31 23:59
标题: 这种单片机led灯按键开关中断程序为什么会混乱
这个第一种程序使用proteus仿真后按键INT0不能使八个led灯全部亮起来,而是会随机亮其中的几个。

#include <reg52.h>
#define uchar unsigned char
uchar         aa=0x00,bb=0xff;

void LEDON (void) interrupt 0
{
        P1=aa;
}
void LEDON1 (void) interrupt 2
{
        P1=bb;
}
void main (void)
{
        EX0 = 1;
        EX1 = 1;
        PX0 = 1;
        PX1 = 1;
        IT0 = 1;
        IT1 = 1;
        EA = 1;
}


第二种程序加了while(1)之后使用proteus可以使其正常工作

#include <reg52.h>
#define uchar unsigned char
uchar         aa=0x00,bb=0xff;

void LEDON (void) interrupt 0
{
        P1=aa;
}
void LEDON1 (void) interrupt 2
{
        P1=bb;
}
void main (void)
{
while(1)
{
        EX0 = 1;
        EX1 = 1;
        PX0 = 1;
        PX1 = 1;
        IT0 = 1;
        IT1 = 1;
        EA = 1;
}
}



第三种程序不使用aa和bb,直接使用P1口可以正常工作

#include <reg52.h>
#define uchar unsigned char

void LEDON (void) interrupt 0
{
        P1=0x00;
}
void LEDON1 (void) interrupt 2
{
        P1=0xff;
}
void main (void)
{
        EX0 = 1;
        EX1 = 1;
        PX0 = 1;
        PX1 = 1;
        IT0 = 1;
        IT1 = 1;
        EA = 1;
}


本人新学单片机,个中程序略为简陋,各位大佬将就着看,里面有什么错误欢迎指出。谢谢!!!


作者: anubis577    时间: 2020-4-1 03:13
大循环了解下
作者: 4819142    时间: 2020-4-1 14:52
大循环了解下
作者: 4819142    时间: 2020-4-2 21:56
中程序略为简陋
作者: 4819142    时间: 2023-8-26 16:09
大循环了解下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1