Description
项目1、1 LED流水灯制作
栏目:公司新闻 发布时间:2024-07-16
 实物演示■  多媒体讲解■  单片机控制i/o口输出是学习单片机的第一步,首先通过LED的方式学习i/o口的控制。层层递进学习  要控制8个LED灯形成流水灯的效果,先得使第一个LED点亮,其他7个LED熄灭,延时一段时间后,再使第2个LED点亮,其他7个LED熄灭,接着第3个、第4个......直到第8个LED,然后如此循环。  1、8个LED灯形成流水灯的效果  2、理解并掌握延时函数的调

  实物演示■

  多媒体讲解■

  单片机控制i/o口输出是学习单片机的第一步,首先通过LED的方式学习i/o口的控制。层层递进学习

  要控制8个LED灯形成流水灯的效果,先得使第一个LED点亮,其他7个LED熄灭,延时一段时间后,再使第2个LED点亮,其他7个LED熄灭,接着第3个、第4个......直到第8个LED,然后如此循环。

  1、8个LED灯形成流水灯的效果

  2、理解并掌握延时函数的调用

  3、采用不同的方法完成流水灯的设计

  1、for循环语句

  (1)for循环语句

  for循环语句的格式如下:

  for(表达式1;表达式2;表达式3)

  {

  程序语句组;

  }

  式中“表达式1”是用来给循环变量赋初始值的,所以这一句为初始化语句。“表达式2”是循环的条件,一般书写逻辑关系或一般关系表达式。“表达式3”可以用来修改循环变量的值,对循环变量进行增或减的操作。

  for语句的具体执行过程如下:首先计算出表达式1的值作为循环控制变量的初值,再检测循环条件表达式2的结果,当满足循环条件时就进入循环体内执行语句。执行循环体一遍之后,接着去执行表达式3,然后根据表达式3修改后的计算结果来再次判断是否满足循环条件2,若满足就再次执行循环体内的语句,一直执行到循环条件表达式2的结果为假(0值)时,退出循环体,程序将会执行这个for语句的下一条语句。

  2、子程序的编写与调用

  在编写程序过程中,有些程序代码完全相同或相似,为了简化程序,可以把这些重复的程序段单独列出,并按一定的格式编写成子程序,从而方便主程序调用。主程序在执行过程中如果需要某一子程序,通过调用指令来调用该子程序,子程序执行完后又返回到主程序,继续执行后面的程序段。

  数据类型说明符   子程序函数名称(输出参数列表)

  {

  函数参数定义;

  函数体;

  }

  对于不需输入变量与返回数值的子程序,主程序中调用只要写入”名称();”,就能够调用了。如:delay();

  3、关于全局变量与局部变量

  在参考程序中,我们可以看到“unsigned int i;”是在延时子函数里面定义的。那么写在函数里面和外面有什么区别呢?在函数体外定义的变量称为全局变量,在函数体内定义的变量称为局部变量,所以参考程序中定义的变量i就是局部变量。全局变量在整个程序中都是有效的,可供程序中所有的函数共同使用,程序编译时会占用固定的数据存储区;而局部变量只能在定义它的函数体内起作用,函数退出循环体,变量的数据存储区将释放。所以我们在编程时要养成节约内存的习惯,能使用局部变量,就不要使用全局变量。

  4、语句P1=0x7f中,是将右边的值送到单片机的P1口,执行了数据从端口输出。

  5、主函数中调用延时函数只要写入delay(   );这里延时的子函数没有参数。

  将P1端口与LED一端进行连接