欢迎来到天天文库
浏览记录
ID:42738212
大小:2.63 MB
页数:29页
时间:2019-09-21
《单片机应用技术项目教程项目6汽车转向灯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、项目6:汽车信号灯知识目标:1.掌握独立式键盘的工作原理与应用;2.掌握C语言选择语句的使用;3.掌握选择语句if-else、if-elseif-else的语法特点;掌握典型分支结构程序设计和调试方法。技能训练目标:1.熟悉C51对并行I/O端口作输入口操作的编程方法;2.熟练使用典型分支结构程序设计和调试方法。汽车信号灯控制系统设计要求:用4个I/O端口接4个按键,分别为左转、右转、刹车、紧急键,发光二极管作灯光信号。驾驶操作输出信号仪表板左转灯仪表板右转灯左前灯右前灯左尾灯右尾灯左转弯(合上左转开关)闪烁——闪烁——闪烁——右转弯(合上右转开关)——闪烁
2、——闪烁——闪烁合紧急开关闪烁闪烁闪烁闪烁闪烁闪烁刹车(合上刹车开关)————————亮亮本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成信息的显示;软件主要完成信号的处理及控制功能等。汽车信号灯控制系统以单片机AT89C52、电源电路、复位电路及时钟电路构成的最小系统模块和外围接口电路组成,外围接口电路主要由LED显示电路、按键输入电路构成。系统通过单片机并行I/O口构成键盘输入和LED显示输出电路,可实现汽车转弯灯中各信号灯的功能操作。汽车信号灯控制系统框图如图6-1所示总体设计方案该系统软件主要由主程序、延时功能函数、按键扫描模块等组成,系统软
3、件结构框图如图6-2所示。。LED电路按键输入电路复位电路时钟电路电源电路单片机图6-1汽车信号灯控制系统组成方框图延时子程序主程序按键扫描程序图6-2汽车信号灯系统软件结构框图键盘知识1、键输入信号判断:通过按键的接通与断开,产生两种相反的逻辑状态低电平“0”与高电平“1”。2、键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,转入执行该键的功能程序,执行完后再返回主程序一、键盘工作原理二、按键结构与特点机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动
4、,然后其触点才稳定下来。其抖动过程如右图所示,抖动时间的长短与开关的机械特性有关,一般为510ms。若有抖动,按键按下会被错误地认为是多次操作。按键触点的机械抖动三、防抖动措施为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。键数较少时,采用硬件去抖(R-S触发器构成的去抖动电路)键数较多时,采用软件去抖(延时去抖)软件上采取的措施是在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动
5、的影响。四、键盘与单片机的连接方式1.独立式键盘图6-5独立式按键2.矩阵式键盘图6-6矩阵式按键在单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。键盘扫描程序一般应包括以下内容:(1)判别有无键按下。(2)键盘扫描取得闭合键的行、列值。(3)用计算法或查表法得到键值。(4)判断闭合键是否释放,如没释放则继续等待。(5)将
6、闭合键键号保存,同时转去执行该闭合键的功能。五、键盘扫描方式1、运算符和表达式2、选择(分支)语句C语言知识运算类型运算符优先级结合性括号运算符()1从左至右逻辑非和按位取反!~2从右至左算术运算*/%3从左至右+-4从左至右左移、右移运算<<>>5从左至右关系运算<<=>>=6从左至右==!=7从左至右位运算&8从左至右^9从左至右
7、10从左至右逻辑与&&11从左至右逻辑或
8、
9、12从左至右赋值运算与复合赋值运算=+=、-=、*=、/=、%=、&=、^=、
10、=、<<=、>>=14从右至左运算符及表达式选择(分支)语句1、if语句2、if……else语句3、i
11、f-elseif-else语句4、switch/case语句。if选择语句基本if语句的格式如下:if(表达式){语句组;}if语句执行过程:当“表达式”的结果为“真”时,执行其后的“语句组”,否则跳过该语句组,继续执行下面的语句。if语句中的“表达式”通常为逻辑表达式或关系表达式,在if语句中,“表达式”必须用括号括起来。在if语句中,花括号“{}”里面的语句组如果只有一条语句,可以省略花括号。如“if(P3_0==0)P1_0=0;”语句,但是为了提高程序的可读性和防止程序书写错误,建议读者在任何情况下,都加上花括号。if-else选择语句if-else
12、语句的一般格式如下:if(表达式){语句组A;}el
此文档下载收益归作者所有