一、proteus仿真图
二、代码实现
代码如下:
#include <reg52.h>
sbit ADDR0=P2^0;
sbit ADDR1=P2^1;
sbit ADDR2=P2^2;
sbit ADDR3=P2^5;
sbit ENLED=P2^7;
unsigned char code LED[]={0xFF, 0x99, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xE7};
void main()
{
TR0=1;
TMOD=0X01;
EA=1;
ET0=1;
TH0=0XFC;
TL0=0X67;
ADDR3=1;
ENLED=0;
while(1);
}
void interrupttime0()interrupt 1
{
static unsigned int i=0;
TH0=0XFC;
TL0=0X67;
P0=0XFF;
switch(i)
{
case 0:ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=LED[0];break;
case 1:ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=LED[1];break;
case 2:ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=LED[2];break;
case 3:ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=LED[3];break;
case 4:ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=LED[4];break;
case 5:ADDR2=1;ADDR1=0;ADDR0=1;i++;P0=LED[5];break;
case 6:ADDR2=1;ADDR1=1;ADDR0=0;i++;P0=LED[6];break;
case 7:ADDR2=1;ADDR1=1;ADDR0=1;i=0;P0=LED[7];break;
default: break;
}
}