这是仿真图程序如下:
#include<reg51.h>
#define uint unsigned int
uint count,i,j;
#define DataPort P1//定义数据端口 程序中遇到DataPort 则用P1 替换
sbit LE1=P2^0;//定义锁存使能端口 第一列的字节锁存,共阴
sbit LE2=P2^1;//定义锁存使能端口 第二列的字节锁存,共阴
sbit CHENG1=P0^0;//定义锁存使能端口 第一层的字节锁存,共阳
sbit CHENG2=P0^1;//定义锁存使能端口 第二层的字节锁存,共阳
sbit CHENG3=P0^2;//定义锁存使能端口 第三层的字节锁存,共阳
sbit CHENG4=P0^3;//定义锁存使能端口 第四层的字节锁存,共阳
void delay_ms(unsigned int z)//延时函数,单位毫秒
{
unsigned int j,k;
for(j=z;j>0;j--)
for(k=110;k>0;k--);
}
//点亮所有灯
void light()
{
CHENG1=1;
CHENG2=1;
CHENG3=1;
CHENG4=1;
DataPort=0x00; //把0xff送进锁存器1~8中,使它们的输出引脚都输出高电平,与行锁存器的0x00相对,点亮所有的灯
LE1=1;
LE1=0;
LE2=1;
LE2=0;
}
//熄灭所有灯
void dark()
{
CHENG1=1;
CHENG2=1;
CHENG3=1;
CHENG4=1;
DataPort=0xff;
LE1=1;
LE1=0;
LE2=1;
LE2=0;
}
void main()
{
while(1)
{
light();
delay_ms(100);
dark();
delay_ms(100);
}
}
|