6.Proteus虚拟仿真。AT89S51单片机P0口接有1个7段(无DP)LED数码管,初始显示为0。外部中断0输入引脚INT0接有1个按键开关,该引脚平时为高电平。按键开关按下1次,将产生1个负跳变的外部中断请求,并使数码管显示增1:当按下第10次时,数码管显示从9再变为0.要求画出电路图,写出参考程序。
参考程序如下:
#include
unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极数码管显示数组
unsigned char n=0;
void main()
{
EA=1;//总中断允许
EX0=1;//外部中断0
IT0=1;//外部中断0为跳沿触发方式
while(1)
{P0=a[n];}//数码管接在P0口
}
void int0() interrupt 0//外部中断服务程序
{
n++;
if(n==10)
{n=0;}//如果到第十次则清零
}
实验现象: