程序简单花样齐全的流水灯Word格式.docx
《程序简单花样齐全的流水灯Word格式.docx》由会员分享,可在线阅读,更多相关《程序简单花样齐全的流水灯Word格式.docx(6页珍藏版)》请在冰豆网上搜索。
由于P0口是一个8位漏极开路的的双向I/O口,必需外接上拉电阻才能有高电平输出。
当单片机输出高电平时对应的LED灯熄灭,当输出低电平时则点亮。
2.C语言程序
程序定义了五个数组分别对应五种不同的花样流水灯方式,其中每个数组中的每个元素控制P0口的壮态,从而控制每个LED灯的壮态。
另外,程序将流水灯每个壮态的间隙时间进行了宏定义,这使得修改每个壮态的保持时间十分方便。
#include<
reg51.h>
//包含单片机头文件
#defineuintunsignedint
#defineucharunsignedchar
#defineDataPortP0//定义P0为数据输出端口
#defineTIME30//设定流水灯每个状态的间隙时间
/************us级延时程序*************/
voidDelayus2x(uintn)
{
while(--n);
}
/***********ms级延时程序*************/
voidDelayms(uintn)
while(--n)
{Delayus2x(245);
Delayus2x(245);
}
/********************五个数组分别对应五种不同的流水灯******************/
ucharDB1[15]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
ucharDB2[15]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
ucharDB3[15]={0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7};
ucharDB4[36]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7e,0x7d,0x7b,0x77,0x6f,0x5f,0x3f,0x3e,0x3d,0x3b,0x37,0x2f,0x1f,0x1e,0x1d,0x1b,0x17,0x0f,0x0e,0x0d,0x0b,0x07,0x06,0x05,0x03,0x02,0x01,0x00};
ucharDB5[36]={0x80,0x40,0xc0,0xa0,0x60,0xe0,0xd0,0xb0,0x70,0xf0,0xe8,0xd8,0xb8,0x78,0xf8,
0xf4,0xec,0xdc,0xbc,0x7c,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
/****************************主函数***************************************/
voidmain(void)
{
uinti=0;
while
(1)//死循环,流水灯依次在五种方式中循环
{
DataPort=0xff;
//灯全灭
Delayms(TIME);
for(i=0;
i<
15;
i++)
DataPort=DB1[i];
}//第一种方式
DataPort=DB2[i];
}//第二种方式
DataPort=0xff;
DataPort=DB3[i];
}//第三种方式
36;
DataPort=DB4[i];
}//第四种方式
DataPort=0x00;
DataPort=DB5[i];
}//第五种方式
3.软件仿真图
3.1第一种
3.2第二种
3.3第三种
3.4(略)
3.5(略)