此表需要熟记
1.LED流水灯
#include <INTRINS.H>
#include <STC90C5xAD.H>
// 首先定义delay函数
void Delay500ms(void) //@12.000MHz
{
unsigned char data i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k)
;
} while (--j);
} while (--i);
}
void main()
{
while (1) // 循环运行
{
P2 = 0x1;
Delay500ms(); // 0000 0001
// 第一个灯亮
P2 = 0x0; // 0000 0000 第一个灯灭
P2 = 0x2; // 0000 0010 第二个灯亮
Delay500ms();
P2 = 0x0; // 0000 0000 第二个灯灭
P2 = 0x4; // 0000 0100 第三个灯亮
Delay500ms();
P2 = 0x0; // 0000 0000 第三个灯灭
P2 = 0x8; // 0000 1000 第四个灯亮
Delay500ms();
P2 = 0x0; // 0000 0000 第四个灯灭
P2 = 0x10; // 0001 0000 第五个灯亮
Delay500ms();
P2 = 0x0; // 0000 0000 第五个灯灭
P2 = 0x20; // 0010 0000 第六个灯亮
Delay500ms();
P2 = 0x0; // 0000 0000 第六个灯灭
P2 = 0x40; // 0100 0000 第七个灯亮
Delay500ms();
P2 = 0x0; // 0000 0000 第七个灯灭
P2 = 0x80; // 1000 0000 第八个灯亮
Delay500ms();
P2=0x0;//第八个灯灭
Delay500ms();
}
}
精简后
#include <INTRINS.H>
#include <STC90C5xAD.H>
// 首先定义delay函数
void Delay500ms(void) //@12.000MHz
{
unsigned char data i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k)
;
} while (--j);
} while (--i);
}
void main()
{
while (1) // 循环运行
{
P2 = 0x1;
Delay500ms(); // 0000 0001
// 第一个灯亮
P2 = 0x2; // 0000 0010 第二个灯亮
Delay500ms();
P2 = 0x4; // 0000 0100 第三个灯亮
Delay500ms();
P2 = 0x8; // 0000 1000 第四个灯亮
Delay500ms();
P2 = 0x10; // 0001 0000 第五个灯亮
Delay500ms();
P2 = 0x20; // 0010 0000 第六个灯亮
Delay500ms();
P2 = 0x40; // 0100 0000 第七个灯亮
Delay500ms();
P2 = 0x80; // 1000 0000 第八个灯亮
Delay500ms();
}
}
再精简
#include <INTRINS.H>
#include <STC90C5xAD.H>
// 首先定义delay函数
void delay(unsigned int xms) //@12.000MHz
{
unsigned char data i, j;
while (xms)
{
i = 2;
j = 239;
do
{
while (--j)
;
} while (--i);
xms--;
}
}
//新定义delay函数,可延时任意毫秒
void main()
{
int s=5000; //定义时间
while (1) // 循环运行
{
P2 = 0x1;
delay(s); // 0000 0001
// 第一个灯亮
P2 = 0x2; // 0000 0010 第二个灯亮
delay(s);
P2 = 0x4; // 0000 0100 第三个灯亮
delay(s);
P2 = 0x8; // 0000 1000 第四个灯亮
delay(s);
P2 = 0x10; // 0001 0000 第五个灯亮
delay(s);
P2 = 0x20; // 0010 0000 第六个灯亮
delay(s);
P2 = 0x40; // 0100 0000 第七个灯亮
delay(s);
P2 = 0x80; // 1000 0000 第八个灯亮
delay(s);
}
}