資源簡介
這是一個簡單的愛心流水燈,代碼和仿真圖都有,有中斷按鈕,可以控制點亮方式。代碼簡單,邏輯清晰,供初學者參考。

代碼片段和文件信息
#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
評論
共有 條評論