這個(gè)第一種程序使用proteus仿真后按鍵INT0不能使八個(gè)led燈全部亮起來(lái),而是會(huì)隨機(jī)亮其中的幾個(gè)。
#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;
}
本人新學(xué)單片機(jī),個(gè)中程序略為簡(jiǎn)陋,各位大佬將就著看,里面有什么錯(cuò)誤歡迎指出。謝謝。!
|