单片机教案21,22 课题7 汽车数码管的控制编程(4课时)_第1页
单片机教案21,22 课题7 汽车数码管的控制编程(4课时)_第2页
单片机教案21,22 课题7 汽车数码管的控制编程(4课时)_第3页
单片机教案21,22 课题7 汽车数码管的控制编程(4课时)_第4页
单片机教案21,22 课题7 汽车数码管的控制编程(4课时)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教案课题课题7汽车数码管的控制编程(4课时)课程单片机授课教师专业汽车课型新授教案序号21,22授课时间第十一周教学方法讲授教学目标1.掌握软件程序的含义2.掌握实现目标功能的办法教学重点难点及解决办法掌握实现目标功能的办法通过PPT以及视频演示的方法展示每条命令的具体含义,以及命令呈现的效果。作业布置抄写软件程序以及各个命令的含义教学后记学生听课情况学生掌握情况存在的问题审查签字年月日教学过程教师活动教学内容学生活动组织教学询问上节课掌握情况复习提问讲授本节内容总结布置作业清点人数记录询问上节课掌握情况在上个样例任务中,我们初步掌握了四位八段数码管的使用方法,能让四位八段数码管简单的显示指定的四位数,但是汽车转速表在显示数字时不是这样简单的显示指定数字,而是显示传感器随机给的数字。下面,我们将继续使用之前项目搭建的电路,但这里需要改变一下代码,来制作汽车数字转速表模型。//汽车数字转速表intn=4356;//定义n为4356,更改四位数n的值就会在数码管上显示对应的四位数intt=2;//定义时间t为2inta=2;//定义数字接口2intb=3;//定义数字接口3intc=4;//定义数字接口4intd=5;//定义数字接口5inte=6;//定义数字接口6intf=7;//定义数字接口7intg=8;//定义数字接口8intdp=9;//定义数字接口9intcom1=10;//定义数字接口10intcom2=11;//定义数字接口11intcom3=12;//定义数字接口12intcom4=13;//定义数字接口13voidxianshi(inti);voidsetup(){for(intn=2;n<=13;n++)//依次设置数字2口到数字13口为输出接口{pinMode(n,OUTPUT);//设置数字n口为输出接口}}voidloop(){digitalWrite(com1,HIGH);digitalWrite(com2,LOW);digitalWrite(com3,LOW);digitalWrite(com4,LOW);//给第一位数码管供电,让第一位数码管工作xianshi(n/1000);//n整除1000得到千位(余数省略),并进入调用函数xianshi(),执行调用函数大括号里面的语句delay(t);//延时tmsdigitalWrite(com1,LOW);digitalWrite(com2,HIGH);digitalWrite(com3,LOW);digitalWrite(com4,LOW);//给第二位数码管供电,让第二位数码管工作xianshi(n/100%10);//n整除100再取余10得到百位(取余只留余数),并进入调用函数xianshi(),执行调用函数大括号里面的语句delay(t);//延时tmsdigitalWrite(com1,LOW);digitalWrite(com2,LOW);digitalWrite(com3,HIGH);digitalWrite(com4,LOW);//给第三位数码管供电,让第三位数码管工作xianshi(n/10%10);//n整除10再取余10得到十位,并进入调用函数xianshi(),执行调用函数大括号里面的语句delay(t);//延时tmsdigitalWrite(com1,LOW);digitalWrite(com2,LOW);digitalWrite(com3,LOW);digitalWrite(com4,HIGH);//给第四位数码管供电,让第四位数码管工作xianshi(n%10);//n取余10得到个位,并进入调用函数xianshi(),执行调用函数大括号里面的语句delay(t);//延时tms}voidxianshi(inti)//带参数的调用函数{switch(i)//切换函数{case0://情况0,执行代码块0//数码管显示0digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,HIGH);digitalWrite(h,HIGH);break;//跳出switch切换函数case1://情况1,执行代码块1//数码管显示1digitalWrite(a,HIGH);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,HIGH);break;//跳出switch切换函数case2://情况2,执行代码块2//数码管显示2digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,HIGH);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,HIGH);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数case3://情况3,执行代码块3//数码管显示3digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数case4://情况4,执行代码块4//数码管显示4digitalWrite(a,HIGH);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数case5://情况5,执行代码块5//数码管显示5digitalWrite(a,LOW);digitalWrite(b,HIGH);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数case6://情况6,执行代码块6//数码管显示6digitalWrite(a,LOW);digitalWrite(b,HIGH);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数case7://情况7,执行代码块7//数码管显示7digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,HIGH);break;//跳出switch切换函数case8://情况8,执行代码块8//数码管显示8digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数case9://情况9,执行代码块9//数码管显示9digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);break;//跳出switch切换函数}}输入完毕后,点击IDE的“校验(Verify)”,查看输入代码是否通过编译。如果显示没有错误,单击“下载(UpLoad)”,给Arduino下载代码。之后我们就可以看到四位八段数码管显示出4356四位数字。当传感器采集不同的数值时,n的值随之变化,四位数码管的值也会随之变化。四、代码回顾程序代码中的xianshi(inti)函数是一个调用函数。该函数单独写在了loop()函数之外。在需要使用该函数时,只需要直接写出函数名就可以实现调用了。该函数是void型,所以是无返回值、无传递参数的函数。当函数被调用时,程序也就自动跳到它的函数中运行。运行完之后,再跳回主函数。需要特别注意的:函数调用时,函数名后面的括号不能省,要和所写的函数保持一致。在调用函数xianshi(inti)中,还涉及一个新的函数,即switch函数,他的一般表达式如下:switch(表达式){case值1:语句1break;case值2:语句2break;...default:语句nbreak;}如果该函数表达式的值等于某个case语句后的值,那么就从该case语句开始执行,直到遇到一个break为止,switch语句才会结束,程序将跳出switch语句,执行switch大括号之后的第一个语句,并忽略其他case。假如任何一个case语句的值都不等于表达式的值,就运行default之下的语句。假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签(default可以省略),程序将跳过整个switch语句,执行switch大括号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论