上篇文章介绍了流水灯的三种代码架构,这次来分享一下LED剩下的几种点亮模式。
灯组延时闪烁
闪烁主要考察的就是延时函数的应用,书中一共有三种延时函数的设置方式,分别应用于不同的场景,这里介绍的是第一种,用两个for循环嵌套组成,数量级为万。
#include
//sbit LED=P1^0; //定义LED是P1.0位对应的变量,这是只有一个灯的情况,注意P要大写
//如果是一组led,直接用P1表示
void Delay() //延时函数1
{
unsigned char i, j;
for (i=0;i<255;i++) //两个for循环间是嵌套关系,没有分号
for (j=0;j<255;j++);
}
void main()
{
while(1)
{
//LED = 0; //如果是共阳极接法,点亮LED需要单片机引脚输出低电位,共阴极则相反
P1 = 0; //51单片机一共有四组引脚,每组引脚都可以控制8个LED
Delay(); //调用延时函数
//LED = 1; //熄灭led灯
P1 = 0xff; //八个灯分别对应两个16进制数的二进制数位,84218421
//P1 = ~0x00; //为了更直观的表示灯点亮的控制码,可以采用取反操作赋值1
Delay();
}
}
无论是要实现哪种功能的C51代码,都要具备三条语句,分别是头文件,主函数和永真循环。
而电路里必需的电路有两个,分别是电源电路和晶振电路,在仿真软件中常默认具备以上电路不用另行设置。