Proteus虚拟仿真。AT89C51单片机P1口接有1个7段LED数码管,初始显示为0。外部中断输入引脚INT0反 接有1个按钮开关,该引脚平时为高电平。每当按钮开关按下1次时,则产生一个负跳变的外中断请求,并使数码管显示增1,当按下第10次时,数码管从9再变为0。外部中断输入引脚INT1反 接有1个按钮开关,该引脚平时为高电平。每当按钮开关按下1次时,则产生一个负跳变的外中断请求,并使数码管显示减1,当按下第10次时,数码管从0再变为9。
#include<reg51.h>
#define uchar unsigned char
uchar sz[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char i;
void main()
{
IT0=1;
IT1=1;
EA=1;
EX0=1;
EX1=1;
PX0=0;
PX1=1;
i=0;
while(1)
{
P1=sz[i];
}
}
void int0() interrupt 0
{
i++;
if(i>9)
i=0;
}
void int1() interrupt 2
{
i--;
if(i>9)
i=9;
}