资源简介 教 案 首 页授课教师 授课科目 单片机技术 课程性质 专业技能授课班级 授课时间 专 业 电子技术应用计划课时 2课时 实用课时 2课时 所用教材 单片机项目设计与实训课 题 延时小灯控制的设计教学目的 知识目标 1.了解单片机C语言程序的基本结构。2.学会while()语句和for语句及不带参函数的用法。3.学会使用keil软件仿真模拟调试状态,学会相关操作。4.会利用寄存器sec窗口计算相关程序执行的时间。能力目标 1.能根据不同客户的时间要求设计不同的产品执行程序。2.在操作过程中根据不同客户的要求灵活调整生产工艺 。情感目标 1.通过教学培养学生踏实严谨的作风。2.通过学生练习中的竞争培养集体合作意识。3.通过学习让学生树立规范化、程序化、标准化意识。4.通过学生练习培养同学间互相帮助、互相学习的精神,从而取长补短。教学重点 1、While()语句和for循环语句的写法及应用 2、不带参函数的写法及调用教学难点 1、对while()语句for语句的执行过程 的分析2、延时函数的精确计算教学方法 以强调学生自主学习为主的任务驱动教学法。采用多媒体、信息化技术辅助教学,利用PPT将本课次的关键内容归类,并通过QQ空间或其他空间收集相关的资料融入教学内容中,扩大学生的知识面。讲授时注意理论联系实践,及时介绍单片机技术的最新理论、方法和经验。教学教具 单片机开发板、连接导线、电脑、下载器、教案、多媒体课件教学过程 组织教学 创设情景 工作任务描 述 小组合作 探究归纳 展 示 总结评价时间分配 2分钟 3分钟 20分钟 30分钟 15分钟 10分钟 10分钟作 业 怎样设计程序使小灯以1s亮,500ms灭轮流闪烁?while()语句和for语句在及不带参函数在使用中应该注意什么?某客户需要8个小灯同时以亮300ms、灭300ms轮流闪烁,如何解决?教师工作页学习领域 延时小灯控制的技术 第二学年第一学期学习情境 单片机程序设计 学习子情境 单片机闪烁灯程序设计 学时:2目标描述 1、对照电路图搭建电路,用单片机控制一个LED灯不断地闪烁。 2、学会使用Keil C51编写第一个C语言源程序,并编译声场目标文件。3、学会使用STC 下载软件将目标文件下载到单片机中。4、学会使用程序控制单片机引脚的高、低电平。5、通过观察程序执行的结果,理解控制单片机引脚输出高、低电平对外围电路所起到的作用。学习内容 工作任务 知识点1、认识并搭建硬件电路。2、程序的编写、编译与下载3、程序中相关语句与函数的学习4、Keil软件仿真及延时语句的精确计算 单片机最小系统及LED灯的连接keil软件及STC下载软件的操作while()语句及for语句的学习4、keil仿真方法及延时语句计算工作要求 理论要求 1、外围电路搭建正确。2、程序编写正确,能通过编译下载到单片机中。3、能精确计算延时语句。技能要求 1、电路无虚接,短接现象与电脑的连接正常。2、在操作过程中符合安全操作规范和工艺要求。工作重点 1、while()语句和for循环语句的写法及应用 2、不带参函数的写法及调用工作难点 1、对while()语句for语句的执行过程 的分析2、延时函数的精确计算技术要点 固定流水灯模块与主控模块的连接导线时注意用力均匀。裁剪导线要注意长度统一,切记长短不一。输入程序时,端口首字母要用大写“P”。输入大括号时要成对输入“{ }”。编写的程序一定要有层次感,在每组大括号及其内容之间一般空4格。可以使 用“Tab”键空格,使用“shift”+“Tab”退格。注意事项 加强用电安全意识和环保意识2、操作完毕,整理工具用品,清洁实训台及工具、周围的卫生,关闭电源。新课学习内 容 理论基础 要点: ① 电路工作原理 ②while()语句的写法及应用 ③for语句的写法及应用 ④不带参函数的写法及调用1、电路原理解说: 本电路由两部分组成:单片机最小系统和LED组成,在项目二中已经介绍过单片机的最小系统了,这里主要讲LED是怎么工作的,LED正极通过330Ω电阻接到VCC,那么我们只要控制单片机的P1.0端口的高低电平就可以实现LED的亮和灭,当P1.0为0时,由于LED灯形成正向电流而点亮,当P1.0为1时,LED得到的是反向电流,LED灯截止而熄灭。2、示例程序:#include//52系列单片机的头文件sbit LED = P1^0;//声明LED1连接到P1.0void delay( );//声明延时子函数void main( )//主函数{ While(1)//主循环{LED = 0;//点亮LEDdelay( );//调用延时子函数LED = 1;//点亮LEDdelay( );//调用延时子函数}}void delay( );//延时子函数体{ unsigned int i , j;//声明整数变量i和jfor(i=1000;i>0;i--)//进入for循环 for(j=110;j>0;j--);//进入for循环嵌套}3、while ( )语句格式: while(表达式) {内部要执行的语句(内部语句也可为空)} 特点: 先判断表达式,后执行内部语句。 原则: 若表达式不是0,即为真,那么执行语句。否则跳出while语句,执行后面的语句。 这里需要注意三点:(1) 在c语言中我们一般把“0'’认为是“假”,“非0”,认为是“真”也就是说,只要不是0就是真,所以1, 2, 3等都是真。(2) 内部语句可为空,就是说while后面的大括号里什么都不写也是可以的,如"while (1){ };”既然大括号里什么也没有,那么我们就可以直接将大括号也不写,再如“ while(1);”中“;”一定不能少,否则while( )会把跟在它后面第一个分号前的语句认为是它的内部语句。 例如:while(1) P1=123;上面这个例子中,while( )会把“P1=123;”,当做它的语句,即使这条语句并没有加大括号。既然如此,那么我们以后在写程序时,如果while( )内部只有一条语句,我们就可以省去大括号,而直接将这条语句跟在它的后面。 例如:while(1) P1=123; (3)表达式可以是一个常数、一个运算式或一个带返回值的函数。有了上面的介绍,我们在程序最后加上“while(1);”这样一条语句就可以让程序停止。因为该语句表达式值为1,内部语句为空,执行时先判断表达式值,因为为真,所以什么也不执行,然后再判断表达式,仍然为真,又不执行,因为只有当表达式值为0时才可跳出while( )语句,所以程序将不停地执行这条语句,也就是说单片机点亮LED后将永远重复执行这条语句。4、for语句:书写格式:for(表达式1;表达式2;表达式3) { 要执行的语句(内部可为空) } 执行过程:第1步,求解一次表达式1,第2步,求解表达式2,若其值为真(非0即为真),则执行for中语句,然后执行第3步;否则结束for语句,直接跳出,不再执行第3步。第3步,求解表达式3第4步,跳到第2步重复执行。需要注意的是,三个表达式之间必须用分号隔开。利用for语句可以写出简单的延时语句,下面就用for语句来写一个简单的延时语句,并进一步讲解for语句的用法。 unsigned char i; for(i=2;i>0;i--);看上面这两句,首先定义一个无符号字符型变量i,然后执行for语句,表达式1是给i赋一个初值2,表达式2是判断i大于0是真还是假,表达式3是i自减1,我们分析执行过程: 第1步,给i赋初值2,此时i=2。 第2步,因为2>0条件成立,所以其值为真,那么执行一次for中的语句,因为 for内部语句为空,即什么也不执行。 第3步,i自减1,即i=2-1=1。 第4步,跳到第2步,因为1>0条件成立,所以其值为真,那么执行一次for中的语句,因为for内部语句为空,即什么也不执行。 第5步,i自减1,即i=1-1=0. 第6步,跳到第2步,因为0>0条件不成立,所以其值为假,那么结束fo:语句直接跳出。通过以上6步,这个for语句就执行完了,单片机在执行这个for语句的时候是需要时间的,上面i的初值较小,所以执行的步数就少,当我们给i赋的初值越大,它执行所需的时间就越长,因此我们就可以利用单片机执行这个for语句的时间来作为一个简单延时语句。 很多初学者容易犯的错误是,想用for语句写一个延时比较长的语句,那么他可能会这样写: unsigned char i; for(i=2000;i>0;i--); 但是结果却发现这样写并不能达到延长时间的效果,因为在这里i是一个字符型变量,它的最大值为255,当你给它赋一个比最大值都大的数时,编译器自然就出错误了,因此我们尤其要注意,每次给变量赋初值时,都要首先考虑变量类型,然后根据变量类型赋一个合理的值。那么怎样才能写出长时间的延时语句呢 下面讲解for语句的嵌套。 unsigned char i, j; for(i=100;i>0;i--) for(j=200;j>0;j一); 上面这个例子是for语句的两层嵌套,大家注意看,第一个for后面没有分号,那么编译器默认第二个for语句就是第一个for语句的内部语句,而第二个for语句内部语句为空,程序在执行时,第一个fo:语句中的i每减一次,第二个for语句便执行200次,因此上面这个例子便相当于共执行了100 X 200次for语句。通过这种嵌套我们便可以写出比较长时间的延时语句,我们还可以进行3层、4层嵌套来增加时间,或是改变变量类型,将变量初值再增大也可以增加执行时间。5、不带参函数的写法及调用在C语言代码中,如果有一些语句不止一次用到,而且语句内容都相同,我们就可以把这样的一些语句写成一个不带参数的子函数,当在主函数中需要用到这些语句时,直接调用这个子函数就可以了。例如: void delay( )//声明子函数 { for(i=100;i>0; i--) for0=110;j>0; j--) ; } 其中,void表示这个函数执行完后不返回任何数据,即它是一个无返回值的函数。delay是函数名,这个名字我们可以随便起,但是注意不要和C语言中的关键字相同。紧跟函数名后面的是一个括号,这个括号里没有任何数据或符号(即C语言当中的“参数”),因此这个函数是一个无参数的函数。接下来两个大括号中包含着其他要实现的语句。需要注意的是,子函数可以写在主函数的前面或是后面,但是不可以写在主函数里面。当写在后面时,必须要在主函数之前声明子函数,声明方法如下:将返回值特性、函数名及后面的小括号完全复制,若是无参函数,则小括号内为空;若是有参函数,则需要在小括号里依次写上参数类型,只写参数类型,无须写参数,参数类型之间用逗号隔开。最后在小括号的后面必须加上分号“;”。当子函数写在主函数前面时,不需要声明,因为写函数体的同时就已经相当于声明了函数本身。通俗地讲,声明子函数的目的是为了编译器在编译主程序的时候,当它遇到一个子函数时知道有这样一个子函数存在,并且知道它的类型和带参情况等信息,以方便为这个子函数分配必要的存储空间。技能基础 主要任务:连接开发板(对照电路图,选择合适的单片机子模块,把它们正确地连接。)选择单片机主控模块和流水灯模块,将主控模块的P1.0端口与流水灯模块的L1接口之间用导线连接好。将主控模块上的+5V接口与流水灯模块上的+5V接口用导线连接好。质量要求:导线之间连接要牢固,不能有虚接,接错线的情况,连接完毕要仔细对照电路图检查。2、连接下载器将USB下载器的插座与主控上的下载器接口板连接好。注意用力均匀,不要歪斜。需 填 写任务表单 1.工作任务调查咨询单 2.工作任务计划决策单 3.工作任务工作实施单 4.工作任务总结评价单 5.学习情境教学反馈单学生组织 3人一组,查阅资料,协商讨论,代表发言学习方法 《单片机项目设计与实训-项目式教学》 QQ空间 微课视频学习设备 单片机开发板、连接导线、电脑、下载器 、多媒体课件指导词 明确本次需完成的各项工作任务指导词1.分析延时小灯的电路原理。2.了解基本c语言编程格式。3.掌握直while()语句和for语句的用法及执行流程。4.掌握不带参函数的调用方法。5.keil仿真技巧。工作实施建议工作过程 工作内容 教师指导 学生实践 教学方式 学时资讯计划 分析任务书了解延时小灯 的电路连接了解程序编 写、编译、下 载方法及技术 要点掌握两个语句 的写法。掌握软件仿真 提供学习任务书及学生分组名单向学生讲授设计的基本方法指导学生收集任务在日常生活应用相关资料 1,分析任务书学习并掌握任务的相关知识(知识目标)收集该项目应用的相关资料分组讨论 信息化教学引导文 2决策实施 任务功能分析相关知识,掌握---- 指导学生辅导学生完成设计 学生对制品进行分析学习相关知识进行实践操作 巡回指导检查评价 根据操作情况,对学生出现的问题加以分析解答技术文档归档自评、互评教师总评 根据考核要求,指出优缺点对学生的作品质量、设计等作出评价,提出修改意见 根据制作情况修改问题项目技术文档归档自评、互评 演示讨论小结考核方式 实际操作(60分)2.方法能力(15分)3.团队能力(10分)4.个人能力(15分)教学反思 1、分利用了学生的好奇心和求知欲,发挥了学生的主动性和积极性,引导学生自主参与学习过程。2、采用任务驱动的教学模式,学生边学边做,使学习变得丰富有趣不再枯燥乏味。3、今后要在专业范围内展开技能竞赛,以赛促学、以赛促教。 展开更多...... 收起↑ 资源预览