版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工程6:汽车信号灯知识目标:1.掌握独立式键盘的工作原理与应用;2.掌握C语言选择语句的使用;3.掌握选择语句if-else、if-elseif-else的语法特点;掌握典型分支结构程序设计和调试方法。技能训练目标:1.熟悉C51对并行I/O端口作输入口操作的编程方法;2.熟练使用典型分支结构程序设计和调试方法。汽车信号灯控制系统设计要求:
用4个I/O端口接4个按键,分别为左转、右转、刹车、紧急键,发光二极管作灯光信号。驾驶操作输出信号仪表板左转灯仪表板右转灯左前灯右前灯左尾灯右尾灯左转弯(合上左转开关)闪烁——闪烁——闪烁——右转弯(合上右转开关)——闪烁——闪烁——闪烁合紧急开关闪烁闪烁闪烁闪烁闪烁闪烁刹车(合上刹车开关)————————亮亮本系统功能由硬件和软件两大部份协调完成,硬件局部主要完成信息的显示;软件主要完成信号的处理及控制功能等。汽车信号灯控制系统以单片机AT89C52、电源电路、复位电路及时钟电路构成的最小系统模块和外围接口电路组成,外围接口电路主要由LED显示电路、按键输入电路构成。系统通过单片机并行I/O口构成键盘输入和LED显示输出电路,可实现汽车转弯灯中各信号灯的功能操作。汽车信号灯控制系统框图如图6-1所示总体设计方案该系统软件主要由主程序、延时功能函数、按键扫描模块等组成,系统软件结构框图如图6-2所示。。LED电路按键输入电路复位电路时钟电路电源电路单片机图6-1汽车信号灯控制系统组成方框图延时子程序主程序按键扫描程序图6-2汽车信号灯系统软件结构框图键盘知识1、键输入信号判断:通过按键的接通与断开,产生两种相反的逻辑状态低电平“0〞与高电平“1〞。2、键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,转入执行该键的功能程序,执行完后再返回主程序一、键盘工作原理二、按键结构与特点机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如右图所示,抖动时间的长短与开关的机械特性有关,一般为510ms。假设有抖动,按键按下会被错误地认为是屡次操作。按键触点的机械抖动三、防抖动措施为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。键数较少时,采用硬件去抖〔R-S触发器构成的去抖动电路〕键数较多时,采用软件去抖〔延时去抖〕软件上采取的措施是在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,假设仍保持闭合状态电平,那么确认该键处于闭合状态,从而消除抖动的影响。四、键盘与单片机的连接方式1.独立式键盘图6-5独立式按键2.矩阵式键盘图6-6矩阵式按键在单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原那么是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。键盘扫描程序一般应包括以下内容:〔1〕判别有无键按下。〔2〕键盘扫描取得闭合键的行、列值。〔3〕用计算法或查表法得到键值。〔4〕判断闭合键是否释放,如没释放那么继续等待。〔5〕将闭合键键号保存,同时转去执行该闭合键的功能。五、键盘扫描方式1、运算符和表达式2、选择〔分支〕语句C语言知识运算类型运算符优先级结合性括号运算符()1从左至右逻辑非和按位取反!~2从右至左算术运算*/%3从左至右+-4从左至右左移、右移运算<<>>5从左至右关系运算<<=>>=6从左至右==!=7从左至右位运算&8从左至右^9从左至右|10从左至右逻辑与&&11从左至右逻辑或||12从左至右赋值运算与复合赋值运算
=+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=14从右至左运算符及表达式选择〔分支〕语句1、if语句2、if……else语句3、if-elseif-else语句
4、switch/case语句。if选择语句根本if语句的格式如下:if(表达式){ 语句组; }if语句执行过程:当“表达式〞的结果为“真〞时,执行其后的“语句组〞,否那么跳过该语句组,继续执行下面的语句。if语句中的“表达式〞通常为逻辑表达式或关系表达式,在if语句中,“表达式〞必须用括号括起来。在if语句中,花括号“{}〞里面的语句组如果只有一条语句,可以省略花括号。如“if(P3_0==0)P1_0=0;〞语句,但是为了提高程序的可读性和防止程序书写错误,建议读者在任何情况下,都加上花括号。if-else选择语句if-else语句的一般格式如下:if(表达式) { 语句组A; } else{ 语句组B; }if-else语句执行过程:当“表达式〞的结果为“真〞时,执行其后的“语句组1〞,否那么执行“语句组2〞图6-if-else语句执行流程if……elseif……else语句
if-elseif-else是ifelse语句组成的嵌套,用于实现多个条件分支的选择其一般格式如下:if(表达式){语句1;}elseif(表达式){语句2;}elseif(表达式){语句3;}elseif(表达式){语句4;}else{语句N;}
if-elseif-else语句执行流程switch选择语句多分支选择的switch语句,其一般形式如下:
switch(表达式){case常量表达式1:语句组1;break;case常量表达式2:语句组2;break; …… case常量表达式n:语句组n;break;default:语句组n+1;}switchcase判断语句【活动一】硬件电路设计【活动二】软件设计1、算法分析与流程图开始初始化:LED全灭,正常行驶;输入端口初始化;键盘扫描程序Y有键按下N主程序设计流程图
主程序主要完成硬件初始化、键盘扫描与键位功能处理程序、延时功能函数调用等功能。〔1〕判别有无键按下〔延时去抖〕。方法:实时读取I/O口状态,取反后测试,假设有键闭合,那么x≠0;假设无键闭合,那么x=0。当测试有键闭合时,需要进行延时去抖动处理,按键消除抖动仍采用延时函数。即在发现有键盘按下后,延时10ms再进行逐行扫描。因为键被按下时的闭合时间远远大于10ms,所以延时后再扫描再判断。假设某键闭合那么相应单片机引脚输入低电平。if(x==0)continue;//如果无键按下那么认为是按键抖动,重新扫描键盘。〔2〕采用查询方式确定键位,根据键值转去执行该闭合键的功能。方法:如果有键按下,那么根据按键的不同执行相应的按键操作。键值处理程序为选择〔分支〕结构,使用了if-elseif-else语句。2、键盘扫描程序分析键盘扫描子程序设计开始左转信号读取键值是否有键按下?P1.0按下YYP1.4按下P1.2按下P1.6按下YYNNN右转信号刹车信号紧急信号N键盘扫描函数流程NYwhile(1) {/**************键盘扫描*************************************************/P1=0xff; //键盘初始化x=P1;//读键盘状态x=~x;//键盘状态取反if(x==0)continue;//如果无键按下那么认为是按键抖动,重新扫描键盘delay(250);//延时去抖动if(x==0)continue;//如果无键按下那么认为是按键抖动,重新扫描键盘/*****************根据键值相应执行功能*******************************************/if(K1==0)//K1键:左转{P0=tab[0];delay(100);P0=0x00;delay(100);}elseif(K2==0) //K2键:右转{P0=tab[1];delay(100);P0=0x00;delay(100);}elseif(K3==0) //K3键:刹车{P0=tab[2];delay(100);P0=0x00;delay(100);}elseif(K4==0) //K4键:紧急{P0=tab[3];delay(100);P0=0x00;delay(100);}elseP0=0x00;//正常}参考程序1.启动KeiluVision4软件,创立新工程:CH6.UVPROJ,CPU选择Atmel89C52。2.对工程的属性进行设置:目标属性中选择“生成HEX文件〞。3.编写参考源程序ch6.c,以C为扩展名保存在工程文件夹中。4.将参考源程序参加程序组:鼠标右键单击程序组图标,参加文件组。5.调试:进入调试状态,期间可能需要修改参考源程序,直到没有语法错误为止。翻开相应窗口,运行程序,观察运行结果。【活动三】程序仿真与调试
【活动四】实物制作汽车信号灯控制系统实物图考核项目考核内容技术要求评分标准得分备注总体设计①任务分析②方案设计③软件和硬件功能划分①任务明确(5分);②方案设计合理、有新意(10分);③软件和硬件功能划分合理(5分);20分硬件设计①片内器件分配;②电路原理图设计;③电路板制作;①片内器件分配正确、合理(5分);②电路原理图设计正确(10分);③电路板制作:布线正确、整齐、合理(5分);20分软件设计①算法和数据结构设计;②流程图设计;③编程;①算法和数据结构设计正确、合理(5分);②流程图设计正确、简明;(5分);③编程正确、有新意(10分);20分系统仿真与调试①调试顺序;②错误排除;③调试结果;①调试顺序正确(5分);②能熟练排除错误(10分);③调试后运行正确(5分);20分实训报告①书写;②内容;③图形绘制;④结果分析①书写规范整齐(5分);②内容翔实具体(5分);③图形绘制正确、完整、全面(5分);④能正确分析实验结构(5分);20分合计100分1.独立式按键采用每个按键单独占用一根I/O口线结构。当按下和释放按键时,输入到单片机I/O端口的电平是不一样的,因此可以根据不同端口电平的变化判断是否有按键按下以及是哪一个按键按下。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大。2.C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年热动式疏水阀项目投资价值分析报告
- 2024年液压接头项目可行性研究报告
- 2024至2030年中国水晶蝴蝶吊坠行业投资前景及策略咨询研究报告
- 2024至2030年中国反渗纯水机组数据监测研究报告
- 2024年度南通旅游服务合同
- 2024年度大数据中心建设及运营合同
- 2024年度保温材料租赁与买卖合同
- 2024年度智慧城市照明系统建设合同
- 2024年度维修服务合同:吊车维修保养服务协议
- 2024年度技术开发合同样本
- 微景观制作课件
- 2023学年西藏省重点中学英语九上期末考试试题含解析
- 三位数除两位数的除法练习题
- 小学心理健康教育人教六年级下册目录生命只有一次教学设计
- 小学劳动课教案三年级上册5篇
- 2021版特种设备目录
- 五年级上册美术课件-第4课 未来的交通工具丨赣美版
- 最新爆破安全规程
- 主题班会课防盗
- 支委会委员选举计票单
- 近三年无重大违法违规情况的说明
评论
0/150
提交评论