项目五 花样小灯控制的设计Word格式文档下载.docx
《项目五 花样小灯控制的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《项目五 花样小灯控制的设计Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
学生活动
一、创设意境,导入新课
导入:
复习-引入新知识-同学们看到这个图片想到什么?
这些灯又是怎么样控制的呢?
怎么样实现的呢?
上一次课同学们学习了控制一个或者多个LED灯点亮,同学们想一下怎么样来控制一个或者多个LED闪烁呢?
那我们今天来学习一下流水灯的控制,让LED灯逐一点亮,不断的闪烁。
二、新课教学
任务一、认识并搭接外围电路(第一节课理论教学)
1、认识电路
图1所示,是除单片机最小系统工作电路外所需要搭接的外围电路,P1端口的8个引脚分别接一个发光二极管。
图1花样小灯控制外围电路
2、搭接实物电路如图2所示:
图2流水灯实物连接图
任务二、程序的设计、编写、编译和下载
1、程序设计思路
开始第一个LED点亮延时500ms第一个LED灯灭延时500ms
第二个LED点亮延时500ms第二个LED灯灭延时500ms以此循环到第八的LED灯控制结束。
2、程序的编写
/******头文件********/
#include<
reg52.h>
#defineucharunsignedchar//宏定义
#defineuintunsignedint
/*****定义********/
voiddelay(ucharutime);
//声明子函数
sbitled1=P1^0;
sbitled2=P1^1;
sbitled3=P1^2;
sbitled4=P1^3;
sbitled5=P1^4;
sbitled6=P1^5;
sbitled7=P1^6;
sbitled8=P1^7;
/******主函数**********/
voidmain()
{
while
(1)
{
led1=0;
delay
(1);
led1=1;
led2=0;
led2=1;
led3=0;
led3=1;
led4=0;
led4=1;
led5=0;
led5=1;
led6=0;
led6=1;
led7=0;
led7=1;
led8=0;
led8=1;
}
}
/*****延时子函数********/
voiddelay(ucharutime)
uinti,j,k;
for(i=utime;
i>
0;
i--)
for(j=500;
j>
j--)
for(k=115;
k>
k--);
3、程序的编译与下载
程序编译成功后通过progisp在线编程软件下载到单片机中,可观察到效果,仿真效果如图3所示:
实物演示效果如图4所示:
图3仿真效果
图4实物演示效果
任务三、花样小灯控制实训(第二节课实训)
1、仿真电路图绘制,并进行仿真。
(实训)
2、单片机开发板实物演示。
***法律知识:
《城市市容和环境卫生管理条例》
第九条城市中的建筑物和设施,应当符合国家规定的城市容貌标准。
对外开放城市、风景旅游城市和有条件的其他城市,可以结合本地具体情况,制定严于国家规定的城市容貌标准;
建制镇可以参照国家规定的城市容貌标准执行。
第十条一切单位和个人都应当保持建筑物的整洁、美观。
在城市人民政府规定的街道的临街建筑物的阳台和窗外,不得堆放、吊挂有碍市容的物品。
搭建或者封闭阳台必须符合城市人民政府市容环境卫生行政主管部门的有关规定。
第十一条在城市中设置户外广告、标语牌、画廊、橱窗等,应当内容健康、外型美观,并定期维修、油饰或者拆除。
大型户外广告的设置必须征得城市人民政府市容环境卫生行政主管部门同意后,按照有关规定办理审批手续。
三、课堂小结
同学们学习了流水灯控制八个LED灯亮灭闪烁,在实训中很多同学没有能很好的控制全部LED灯,只能控制简单的一两个LED灯闪烁。
对于新知识的灵活应用能力不够,程序的编写中经常出现错误。
四、课后作业
编写一个C语言程序,让四个LED灯分别以500ms、1s、2s、3s的时间间隔轮流亮灭闪烁。
五、开拓思维,同时提出新的问题
花样小灯(流水灯)控制我们已经学习了,那同学们想一下流水灯怎么样来控制?
是通过哪些语句实现的?
观察学生反映(对导入是否产生兴趣):
学生听课状态:
学生练习情况:
学生兴趣焦点总结:
课后反思
项目五花样小灯控制的设计(第二次课)
1、花样小灯控制外围电路认识
花样小灯控制外围电路认识和程序设计。
花样小灯Keil软件工程建立
花样小灯程序编译
导入:
复习导入新知识-同学们看一下这幅图中的灯可以分别控制闪烁,这是怎么样实现的呢?
那我们今天来学习一下延时小灯的控制。
图1所示,是除单片机最小系统工作电路外所需要搭接的外围电路,P1.0-P1.3四个引脚分别接一个发光二极管。
图2开发板演示
开始第一个LED点亮第二LED亮灭闪烁5次第一个LED熄灭5次第三个LED点亮第一个LED和第四个LED点亮2s灭2s循环m次
第一个LED灭3s循环四次第三个LED灭3s这样循环6次。
注意:
循环用for循环来进行控制,延时函数用有参函数。
3、程序的编写
ucharl,m,n;
for(l=0;
l<
5;
l++)
{
led1=0;
for(m=0;
m<
m++)
{
led2=0;
delay
(1);
led2=1;
}
led1=1;
delay
(1);
}
=5;
for(m=5;
m>
1;
m--)
led1=0;
for(n=m;
n>
n--)
{
led4=0;
delay
(2);
led4=1;
}
led1=1;
delay(3);
led3=1;
delay(3);
for(j=1000;
图3仿真效果图
图4开发板演示图
3、设计制作一个心形花样彩灯(要求有仿真图演示成功)
第十一条在城市中设置户外广告、标语牌、画廊、橱窗等,应当内容健康、外型美观,并定期维修、油饰或者拆除。
同学们学习了花样小灯控制四个LED灯亮灭闪烁,在实训中很多同学没有能很好的控制全部LED灯,只能控制简单的闪烁,对I/O口的控制理解不是很透彻,只能在以后的实训中多加强。
1、编写一个C语言程序,让四个LED灯分别以500ms、1s、2s、3s的时间间隔轮流亮灭闪烁。
2、设计制作一个心形花样彩灯,变化的花样至少在6种以上(要求有仿真图演示成功)。
项目五花样小灯控制的设计(第三次课)
1、花样小灯for循环控制语句认识
2、Keil软件仿真下I/O口与变量状态的观察
花样小灯for语句学习和Keil软件仿真下I/O口的变化。
学会Keil软件仿真下I/O口的变化、位操作法和总线操作法。
For循环语句的详细分析
总线操作法
上一次课同学们学习了控制多个或者四个LED灯亮灭闪烁,同学们想一下这些是通过哪些语句来控制的呢?
(for循环控制语句)
例如:
}这个for循环到底怎么样来控制LED灯闪烁的次数的呢?
那我们今天一起来学习一下for语句。
任务一、程序中for嵌套语句的详细分析(第一节课理论教学)
1、第一段for嵌套循环语句分析
for(l=0;
以上程序是for语句的两层嵌套,内层for语句的作用是led2灯亮1s灭1s循环5次。
外层for语句也是循环5次,其一次程序执行过程为:
led1灯亮,期间led2灯亮1s灭1s循环5次,led1灯灭1s。
整段程序执行过程为:
led1灯亮,其间led2灯亮1s灭1s循环5次,led1灯灭1s,这样循环5次。
2、第二段for嵌套循环语句分析
以上程序段是for语句的三层嵌套。
最内层for语句一次程序执行过程为:
led4灯亮2s灭2s循环m次,m的变化过程是5-4-3-2。
第二层for语句一次程序执行过程为led1灯亮,其间led4灯亮2s灭2s循环m次,led3灯灭3s,这样的过程循环4次。
最外层for语句一次程序执行过程为led3灯亮,其间led1灯亮,led4灯亮2s灭2s循环m次,led1灯灭3s这样循环4次,led3灯灭3s。
整段程序执行过程为led3灯亮,其间led1灯亮,led4灯亮2s灭2s循环m次,led1灯灭3s循环4次,led3灯灭3s这样循环6次。
3、子函数中for嵌套循环语句分析
以上子函数体也是for语句的三层嵌套。
中间层和最内层的作用是延时1s左右的时间。
若最外层循环2次,则延时2s左右的时间,若最外层循环5次,则延时5s左右的时间。
任务二、Keil软件仿真下I/O口与变量状态的观察
1、进入Keil软件模拟调试模式
进入Keil软件调试模式可参看项目三,进入模式如图1所示:
2、查看单步执行时I/O口与变量的状态变化
查看I/O口与变量的状态变化的具体步骤参考项目四中的相关内容。
知识链接位操作法与总线操作法
1、位操作法
#include<
Sbitled1=P1^0;
Voidmain()
While
(1);
2、总线操作法
#include<
Voidmain()
P1=0xaa;
While
(1);
P1=0xaa,就是对单片机P1口的8个I/O口同时操作,0x后面的数据是十六进制形式的数据,aa转换成二进制是10101010。
(实训)
同学们学习了花样小灯控制四个LED灯亮灭闪烁,在实训中很多同学没有能很好的控制全部LED灯,只能控制简单的闪烁。