资源简介
这是一个简单的爱心流水灯,代码和仿真图都有,有中断按钮,可以控制点亮方式。代码简单,逻辑清晰,供初学者参考。
代码片段和文件信息
#include
#define uchar unsigned char
//sbit button = P3^2;
uchar a b;
void delay(unsigned int z)
{
unsigned int ij;
for(i = z;i>0;i--)
for(j = 150;j>0;j--);
}
void quanliang()
{
P0 = 0X00;
P1 = 0X00;
P2 = 0X00;
P3 = 0X00;
}
void quanmie()
{
P0 = 0Xff;
P1 = 0Xff;
P2 = 0Xff;
P3 = 0Xff;
}
void shunshizhen()
{
P0 = 0Xfe;delay(50);
P0 = 0Xfd;delay(50);
P0 = 0Xfb;delay(50);
P0 = 0Xf7;delay(50);
P0 = 0Xef;delay(50);
P0 = 0Xdf;delay(50);
P0 = 0Xbf;delay(50);
P0 = 0X7f;delay(50);
P0 = 0XFF;delay(50);
P2 = 0Xfe;delay(50);
P2 = 0Xfd;delay(50);
P2 = 0Xfb;delay(50);
P2 = 0Xf7;delay(50);
P2 = 0Xef;delay(50);
P2 = 0Xdf;delay(50);
P2 = 0Xbf;delay(50);
P2 = 0X7f;delay(50);
P2 = 0XFF;delay(50);
P1 = 0Xfe;delay(50);
P1 = 0Xfd;delay(50);
P1 = 0Xfb;delay(50);
P1 = 0Xf7;delay(50);
P1 = 0Xef;delay(50);
P1 = 0Xdf;delay(50);
P1 = 0Xbf;delay(50);
P1 = 0X7f;delay(50);
P1 = 0XFF;delay(50);
}
void nishizhen()
{
P1 = 0X7f;delay(50);
P1 = 0Xbf;delay(50);
P1 = 0Xdf;delay(50);
P1 = 0Xef;delay(50);
P1 = 0Xf7;delay(50);
P1 = 0Xfb;delay(50);
P1 = 0Xfd;delay(50);
P1 = 0Xfe;delay(50);
P1 = 0XFF;delay(50);
P2 = 0X7f;delay(50);
P2 = 0Xbf;delay(50);
P2 = 0Xdf;delay(50);
P2 = 0Xef;delay(50);
P2 = 0Xf7;delay(50);
P2 = 0Xfb;delay(50);
P2 = 0Xfd;delay(50);
P2 = 0Xfe;delay(50);
P2 = 0XFF;delay(50);
P0 = 0X7f;delay(50);
P0 = 0Xbf;delay(50);
P0 = 0Xdf;delay(50);
P0 = 0Xef;delay(50);
P0 = 0Xf7;delay(50);
P0 = 0Xfb;delay(50);
P0 = 0Xfd;delay(50);
P0 = 0Xfe;delay(50);
P0 = 0XFF;delay(50);
}
void shangxia()
{
P0 = 0X00;
P1 = 0X03;
delay(500);
P0 = P1 = 0XFF;
P2 = 0X00;
P1 = 0XFC;
delay(500);
P2 = 0XFF;
}
void zuoyou()
{
P0 = 0X01;
P2 = 0Xe0;
P1 = 0XFF;
delay(500);
P0 = 0XFE;
P1 = 0X00;
P2 = 0X1f;
delay(500);
}
void kaihua()
{
P0 = 0XFC;
P1 = 0XFF;
delay(200);
P0 = 0XFb;
P1 = 0X7F;
delay(200);
P0 = 0XF7;
P1 = 0XBF;
delay(200);
P0 = 0Xef;
P1 = 0XDF;
delay(200);
P0 = 0Xdf;
P1 = 0Xef;
delay(200);
P0 = 0Xbf;
P1 = 0Xf7;
delay(200);
P0 = 0X7F;
P1 = 0XFB;
delay(200);
P0 = 0XFF;
P2 = 0Xfe;
P1 = 0Xfd;
delay(200);
P2 = 0Xfd;
P1 = 0Xfe;
delay(200);
P1 = 0XFF;
P2 = 0X7b;
delay(200);
P2 = 0Xb7;
delay(200);
P2 = 0Xcf;
delay(200);
}
void main()
{
IT0 = 1;
EX0 = 1;
EA = 1;
a = 1;
while(1)
{
switch(a)
{
case 1 : quanliang();delay(500); quanmie();delay(500); break;
case 2 : shunshizhen();quanmie(); break;
case 3 : nishizhen();quanmie(); break;
case 4 : shangxia(); quanmie(); break;
case 5 : zuoyou();quanmie(); break;
case 6 : kaihua();quanmie(); break;
}
}
}
void button()interrupt 0
{
a++;
if(a == 7)
{
a = 1;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 115823 2019-11-30 23:57 Last Loaded 仿真图.DBK
文件 9798 2019-12-04 10:20 代码
文件 2744 2019-12-04 10:27 代码.c
文件 2147 2019-12-04 10:20 代码.hex
文件 25 2019-12-04 10:20 代码.lnp
文件 6719 2019-12-04 10:20 代码.LST
文件 11331 2019-12-04 10:20 代码.M51
文件 11204 2019-12-04 10:20 代码.OBJ
文件 511 2019-12-04 10:27 代码.plg
文件 46435 2019-12-04 10:27 代码.uvopt
文件 13230 2019-12-01 18:30 代码.uvproj
文件 46439 2019-12-03 23:28 代码_uvopt.bak
文件 0 2019-12-01 18:28 代码_uvproj.bak
文件 115823 2019-12-03 23:27 仿真图.DSN
文件 742 2019-12-04 10:27 仿真图.PWI
评论
共有 条评论