单片机应用技术-项目45.中职课件电子教案.ppt
《单片机应用技术-项目45.中职课件电子教案.ppt》由会员分享,可在线阅读,更多相关《单片机应用技术-项目45.中职课件电子教案.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、任务二任务二 交通灯控制交通灯控制 项目项目4 简易交通灯控制简易交通灯控制 v项目描述:项目描述:在夜间十字路口的南北、东西向均以黄灯闪烁提醒来往车辆小心通过;在白天主干道南北向和支道东西向的车辆则以一定的时间间隔分时通过,描述如下。主道(南北方向)主道(南北方向)支道(东西方向)支道(东西方向)说明说明状态状态红灯红灯黄灯黄灯绿灯绿灯红灯红灯黄灯黄灯绿灯绿灯状态状态1灭灭灭灭亮亮亮亮灭灭灭灭主道通行,支道禁行,维持约主道通行,支道禁行,维持约30秒秒状态状态2灭灭亮亮灭灭亮亮灭灭灭灭主道警告,支道禁行,维持约主道警告,支道禁行,维持约4秒秒状态状态3亮亮灭灭灭灭灭灭灭灭亮亮主道禁行,支道通
2、行,维持约主道禁行,支道通行,维持约15秒秒状态状态4亮亮灭灭灭灭灭灭亮亮灭灭主道禁行,支道警告,维持约主道禁行,支道警告,维持约4秒秒一一 能力培养目标能力培养目标 1.会设计交通灯控制电路2.会编写简易交通灯控制程序3.掌握C51函数的编写及调用4.能领会C51变量的作用范围二二 学习组织形式学习组织形式 采取以小组为单位互助学习,有条件的每人一台电脑,条件有限的可以两人合用一台电脑。用仿真实现所需的功能后如果有实物板(或自制硬件电路)可把程序下载到实物上再运行、调试,学习过程鼓励小组成员积极参与讨论。三三 项目实施过程项目实施过程(一)创建硬件电路(二)程序编写1程序流程 开始状态1:主
3、道绿灯,支道红灯延时约30秒状态1:主道黄灯,支道红灯延时约4秒状态1:主道红灯,支道绿灯延时约15秒状态1:主道红灯,支道黄灯延时约4秒图4-2 常规交通灯控制主道黄灯闪烁支道黄灯闪烁sw=0?白天状态夜间状态2编写程序编写程序v#include v#include v#define uchar unsigned charv#define uint unsigned intvsbit SNred=P00;/南北向红灯vsbit SNyellow=P01;/南北向黄灯vsbit SNgreen=P02;/南北向绿灯vsbit EWred=P03;/东西向红灯vsbit EWyellow=P04
4、;/东西向黄灯vsbit EWgreen=P05;/东西向绿灯vsbit sw=P20;/开关vvoid daytime();/白天模式函数说明vvoid eveing();/夜间模式函数说明vvoid ys(uint k)/延时约为(0.1*k)秒v v unsigned int i;vwhile(k-)v for(i=0;ib)temp1=a;else temp1=b;return temp1;二函数的声明和调用 为了调用一个函数,必须事先声明该函数的返回值类型和参数类型,这和使用变量的道理是一样 v温馨提示:如果函数的定义在调用之前,则可以不作函数声明。(如之前各项目中的延时函数)vC5
5、1中函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或表达式。各实参之间用逗号分隔。在C语言中,可以用以下几种方式调用函数 1.函数表达式 函数作表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。2函数语句 函数调用的一般形式加上分号即构成函数语句。(如之前各项目中延时函数的调用就是以函数语句的方式调用的)3函数实参 函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回
6、值的。例如:t=max(x,max(y,z);即是把max调用的返回值又作为max函数的实参来使用的。创建一个源程序,能够通过函数调用求两个数中的创建一个源程序,能够通过函数调用求两个数中的大数大数 vint max(int a,int b);vvoid main()vv int x=10,y=20,z;v z=max(x,y);vwhile(1);v vint max(int a,int b)vvint temp1;vif(ab)temp1=a;v else temp1=b;v return temp1;v C51函数的参数和函数的值函数的参数和函数的值 一函数的参数v函数的形参和实参具有以
7、下特点:1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。3.实参和形参在数量上,类型上,顺序上应严格一致,否则会发生“类型不匹配”的错误。4.函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。二、函数的
8、值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。1.函数的值只能通过return语句返回主调函数。return 语句的一般形式为:return 表达式;或者为:return(表达式);2.函数值的类型和函数定义中函数的类型应保持一致。3.如函数值为整型,在函数定义时可以省去类型说明。4.不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。v函数说明一般形式为:类型说明符类型说明符 被调函数名被调函数名(类型类型 形参,类型形参,类型 形参形参)变量的作用域变量的作用域 一、局部变量 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其
9、作用域仅限于函数内,离开该函数后再使用这种变量是非法的。1.主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。2.形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。3.允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。4.在复合语句中也可定义变量,其作用域只在复合语句范围内。二、全局变量 全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。v下面是有关全局变量的几点说明:1.外部变量定义必须在所有的函数之外,且只
10、能定义一次。其一般形式为:extern 类型说明符类型说明符 变量名,变量名变量名,变量名(其(其中方括号内的中方括号内的extern可以省去不写)可以省去不写)例如:例如:int a,b;等效于:等效于:extern int a,b;2.外部变量可加强函数模块之间的数据联系,但是又使函数要依赖这些变量,因而使得函数的独立性降低。3.在同一源文件中,允许全局变量和局部变量同名。此时在局部变量的作用域内,全局变量不起作用 变量的存储类型变量的存储类型 v各种变量的作用域不同,就其本质来说是因变量的存储类型相同。所谓存储类型是指变量占用内存空间的方式,也称为存储方式。变量的存储方式可分为变量的存储
11、方式可分为“静态存储静态存储”和和“动态存储动态存储”两种两种 v 静态存储变量通常是在变量定义时就分配存储单元并一直保持不变,直至整个程序结束。而动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。v在C51中,对变量的存储类型说明有以下四种:1.auto 自动变量2.register 寄存器变量3.extern 外部变量4.static 静态变量 v自动变量和寄存器变量属于动态存储方式,外部自动变量和寄存器变量属于动态存储方式,外部变量和静态变量属于静态存储方式。变量和静态变量属于静态存储方式。v 存储类型说明符存储类型说明符 数据类型说明符数据类型说明符 变量名,变
12、量名变量名,变量名;交通灯综合控制交通灯综合控制 v项目描述:项目描述:以项目4为基础,增加一种紧急状态,即正常情况下在夜间十字路口的南北、东西向均以黄灯闪烁提醒来往车辆小心通过;在白天主干道南北向和支道东西向的车辆则以一定的时间间隔分时通过,但如果遇有紧急情况需要南北和东西向都亮红灯一定的时间,过后再恢复到原先的状态。主道(南北方向)支道(东西方向)说明状态红灯黄灯绿灯红灯黄灯绿灯白天状态1灭灭亮亮灭灭主道通行,支道禁行,维持约30秒状态2灭亮灭亮灭灭主道警告,支道禁行,维持约4秒状态3亮灭灭灭灭亮主道禁行,支道通行,维持约15秒状态4亮灭灭灭亮灭主道禁行,支道警告,维持约4秒夜间灭闪灭灭闪
13、灭开关S1闭合紧急状态亮灭灭亮灭灭遇有紧急情况时进入此状态,假设此状态保持20秒后恢复原状态一一 能力培养目标能力培养目标 会编写综合交通灯控制程序能掌握51单片机外部中断的使用二二 学习组织形式学习组织形式 采取以小组为单位互助学习,有条件的每人一台电脑,条件有限的可以两人合用一台电脑。用仿真实现所需的功能后如果有实物板(或自制硬件电路)可把程序下载到实物上再运行、调试,学习过程鼓励小组成员积极参与讨论。三三 项目实施过程项目实施过程 (一)创建硬件电路(二)(二)程序编写程序编写1程序流程 开始图5-2交通灯综合控制调用夜间模式函数sw=0?白天状态夜间状态保护现场:主道红、黄、绿灯状态暂
14、存于tSNr、tSNy、tSNg支道红、黄、绿灯状态暂存于tEWr、tEWy、tEWg主道、支道均亮红灯延时约30秒恢复现场:主道红、黄、绿灯状态恢复原先状态;支道红、黄、绿灯状态恢复原先状态;中断响应返回紧急状态处理调用白天模式函数2编写程序如下编写程序如下 v#include v#include v#define uchar unsigned charv#define uint unsigned intv/定义6个临时变量以便紧急状态下暂存6个灯的状态vbit tSNr,tSNy,tSNg,tEWr,tEWy,tEWg;vsbit sw2=P32;/紧急按钮vsbit SNred=P00;
15、/南北向红灯vsbit SNyellow=P01;/南北向黄灯vsbit SNgreen=P02;/南北向绿灯vsbit EWred=P03;/东西向红灯vsbit EWyellow=P04;/东西向黄灯vsbit EWgreen=P05;/东西向绿灯vsbit sw=P20;/开关vvoid daytime();/白天模式函数说明vvoid eveing();/夜间模式函数说明(此两函数的定义请参见项目4)vvoid ys(uint k)/延时约为(0.1*k)秒v v unsigned int i;vwhile(k-)v for(i=0;i8500;i+);/延时约0.1秒vvmain()
16、/主函数vvIT0=1;/INT0负跳变触发vEA=EX0=1;/开中断vwhile(1)v v if(sw)daytime();/开关断开为白天模式v else eveing();/开关闭合为夜间模式 v vvvoid int0()interrupt 0 /外部中断0函数vv /保留现场v tSNr=SNred;tSNy=SNyellow;tSNg=SNgreen;vtEWr=EWred;tEWy=EWyellow;tEWg=EWgreen;v/进入紧急状态v SNred=0;SNyellow=1;SNgreen=1;vEWred=0;EWyellow=1;EWgreen=1;vys(200
17、);/紧急状态保持约20秒v /恢复现场vSNred=tSNr;SNyellow=tSNy;SNgreen=tSNg;vEWred=tEWr;EWyellow=tEWy;EWgreen=tEWg;v(三)创建程序文件并生成.HEX文件 打开MEDWIN,新建项目文件“P5”,创建程序文件“Proj5.C”,输入上述程序,然后按工具栏上的“产生代码并装入”按钮(或按CTRL+F8),如果编译发现错误需对程序进行修改,直到编译成功,此时将在对应项目文件夹的OUTPUT子目录中生成目标文件“P5.HEX”。(四)运行程序观察结果5.1 中断的概念中断的概念5.1.1 5.1.1 中断及中断源中断及中
18、断源 一、中断的概念一、中断的概念 CPUCPU在处理某一事件在处理某一事件A A时,发生了另一事件时,发生了另一事件B B请求请求CPUCPU迅速迅速去处理(去处理(中断发生中断发生););CPUCPU暂时中断当前的工作,转去处理事件暂时中断当前的工作,转去处理事件B B(中断响应和中断响应和中断服务中断服务););待待CPUCPU将事件将事件B B处理完毕后,再回到原来事件处理完毕后,再回到原来事件A A被中断的地被中断的地方继续处理事件方继续处理事件A A(中断返回中断返回),这一过程称为),这一过程称为中断中断 。单片机的中断系统结构执行主程序主程序继续执行主程序断点中断请求中断响应执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 应用技术 项目 45. 课件 电子 教案
限制150内