流水灯
#include <STC89C5xRC.H>
void Delay1ms(unsigned int n) //@11.0592MHz
{
unsigned char data i, j;
while(n--)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
unsigned char temp = 1;
while(1)
{
P2 = ~temp;
temp<<=1;
Delay1ms(100);
if(temp == 0)
{
temp = 1;
}
}
}
来回流水灯
#include <STC89C5xRC.H>
#include <INTRINS.H>
void Delay1ms(unsigned int n) //@11.0592MHz
{
unsigned char data i, j;
while (n--)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
unsigned int temp;
bit d = 1; // 来与回的标识
temp = 1;
while (1)
{
P2 = ~temp;
if (d == 1)
{
temp <<= 1; // 左移
}
else
{
temp >>= 1; // 右移
}
if (temp == 1 || temp == 128) // 0000 0001 || 1000 0000
{
d = ~d;
}
Delay1ms(100);
}
}