单片机之落幕灯_数据类型


这次给大家分享一个LED落幕灯电路图跟上篇流水灯电路相同,忘记的话翻看我上篇博客,废话不多说,直接上代码:

单片机之落幕灯_#define_02

#include<reg52.h>  //此文件中定义了单片机的一些特殊功能寄存器
#define LED P1 //定义单片机P1端口
typedef unsigned int u16;//对数据类型进行声明定义
typedef unsigned char u8;//对数据类型进行声明定义
unsigned int j;

unsigned char code tabel[37]= //定义落幕灯数组
{
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
};

void delay(u16 i) //延时函数
{
while(i--);
}

void main() //主函数
{
while(1)
{
for(j=0;j<37;j++)
{
P1=tabel[j];
delay(50000);
}
}
}

这个程序的效果是像珠子一样逐渐下落,越积越多,灯8颗灯全亮起时重新开始。
还有下面这个,效果像是帷幕从两边打开然后再合上,代码如下:

#include<reg52.h>   //此文件中定义了单片机的一些特殊功能寄存器
#define LED P1 //定义单片机P1端口

typedef unsigned int u16;//对数据类型进行声明定义
typedef unsigned char u8;//对数据类型进行声明定义
unsigned int z;

unsigned char code tabel[9]=
{
0X7E,0X3C,0X18,0X00,0X18,0X3C,0X7E,0xFF
};

void delay(u16 i)//延时函数
{
while(i--);
}

void main() //主函数
{
while(1) //循环
{
for(z=0;z<8;z++)
{
P1=tabel[z];
delay(50000);
}
}
}