#include "reg51.h"
#include<intrins.h>
void LedXunHuan()
{
unsigned char i = 0, t = 0, Cnt = 0;
while(1)
{
if(!i) P1 = 0xff;
else if(i==9)P1 = 254;
else if(i>8) P1 = _crol_(P1,1); else P1<<=1;//逐个递亮,_crol_(P1,1);单个亮,点亮16个的把其中一个P1改为P2即可.
Cnt=89;
while(Cnt) if(!++t) --Cnt;
if(++i>16)i=0;//if(i++>=8)i=0;if(++i>=9)i=0;等价3式
}
}
void main()
{
LedXunHuan();
}
流水灯-数组型:
函数型
计算型
void main()
{
unsigned int a;
while(1){P1=P1<<1;a=55555;while(a--);if(!P1)P1=255;}
}
由上演变三效果
void main()
{
unsigned int a;
bit k;
while(1){if(k)P1=P1<<1;a=55555;while(a--);if(!k)k=~k;if(!P1){k=~k;P1=255;}}
}
void main()
{
unsigned int a;
bit k;
while(1){P1=(k?P1>>1:P1<<1);a=55555;while(a--);if(!P1){k=~k;P1=255;}}
}
void main()
{
unsigned int a;
unsigned char b=P1;
bit k;
while(1){P1=(k?P1>>1:P1<<1);a=55555;while(a--);if(!P1){k=~k;P1=(k?255:(b=(b?b<<1:255)));}}
}
这些是在群回答提问时创作的示例。