ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:140.14KB ,
资源ID:8073997      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8073997.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机课程设计汽车信号灯.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机课程设计汽车信号灯.docx

1、微机课程设计汽车信号灯内容提要 本设计为汽车信号灯控制系统,其主要分为五章,第一章为设计概述,主要介绍设计的任务、目标,以及设计所用设备器材,第二章为硬件设计方案,主要是介绍本设计的设计思路,所选芯片,以及相关芯片资料的介绍。并且在此之上画出了原理框图和电路原理图,在原理图的基础上叙述了设计连线和原理说明。第三章为软件设计,其主要介绍本设计中采用何种软件设计方案及相关的流程图,在流程图的基础上,写出本系统的程序。第四章为调试及运行结果,它是在完成本系统的硬件、软件设计的基础之上,对本系统进行测试,看是否满足题目要求,最后以表格的方式对测试的结果给予反应,直接明了。第五章为设计心得总结,主要是介

2、绍在经过本次设计后,自己的一些心得体会。然后还给出了本设计的一些参考文献。最后给出软件设计源程序代码。目 录第一章 设计内容及要求51.1 设计内容51.2 设计要求51.3 实验器材5第二章 硬件设计方案62.1 设计思 路 62.2 设计框图62.3 设计线路及说明7第三章 软件设计方案83.1 设计思想83.2 程序流程图9 3.2.1 主系统流程图9 3.2.1 子系统流程图10第四章 调试及运行结果11第五章 心得体会12参考资料14附 程序源代码15第一章 设计概述1.1 设计内容在本课程设计中,其设计任务为设计并制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左/右转弯灯、左/

3、右头灯和左/右尾灯共六类灯,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。1.2 设计要求(1)编程语言为C语言;(2)基于单片机的硬件电路设计与调试;(3)汽车信号灯微机控制系统,所需执行的操作由相应的开关状态反映,所需控制的信号灯有仪表板左/右转弯灯、左右头灯和左右尾灯共六类灯,其驾驶操作与灯光信号对应关系如下:a).左/右转弯(合上左/右开关):仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁。b).紧急开关合上:所有灯闪烁。c).刹车(合上刹车开关):左右尾灯亮。d).左/右转弯刹车:仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁,右/左尾灯亮。e).刹车、合上紧急开关:尾灯

4、亮、仪表板灯、头灯闪烁。f).左/右转弯刹车,并合上紧急开关:右/左尾灯亮,其余灯闪烁。注意:灯的闪烁要求使用定时器来实现。1.3 设备器材 在本设计中,所用到的设备器材如下所示: (1)实验板(提供拨动开关) (2)在实验箱内选择AT89C52单片机一片,发光二极管6只(单片机开发板上附有); (3)导线若干。 (4)计算机一台第二章 硬件设计方案2.1 设计思路本系统中要求设计汽车信号灯控制系统,在驾驶汽车时有左转弯、右转弯、刹车、合紧急开关四个操作;所以可以用四个开关来模拟这几个操作,当单片机检测到相关操作后,然后判断属于那一类操作,再通过软件来驱动控制相应的信号灯状态。当合上左转弯开关

5、后,仪表板左转弯灯、左头灯、左尾灯闪烁;当合上右转弯开关后,仪表板右转弯灯、右头灯、右尾灯闪烁;合上紧急开关后,头灯、尾灯以1Hz的频率闪烁;在紧急开关合上后,所有灯都闪烁等情况(详见设计要求)。当检测不到相应的开关状态信息,则所有灯灭。2.2 设计框图 系统硬件框图由上叙述框图,本设计采用AT89C52单片机,在不同操作控制下可驱动对应的灯闪烁或长亮。在系统中,利用开关在状态的变化来模拟汽车驾驶操作。单片机检测到相应的开关状态类别,产生与此状态相符合的控制信号,使信号灯闪烁或长亮。通过合上开关来改变状态,即合上相应的开关后,就代表一种汽车驾驶操作。然后单片机检测到相应状态,然后判断属于那一类

6、别,再利用软件来产生相应控制信号,从而驱动信号灯的亮灭或者闪烁。 2.3设计线路图及说明线路图: 本次设计使用的52单片机,由于p1端口已经默认为与LED信号灯相连,故不用再次连接。系统中所用到的左拐弯,右拐弯,刹车,紧急四个开关由实验箱提供。分别设置为k1、k2、k3、k4,选取52单片机的p2.0、p2.2、p2.4、p2.6端口作为选通端口。选取p1.0、 p1.1 p1.2 、p1.3 、p1.4 、p1.5作为6个相对应状态显示灯。第三章 软件设计方案 3.1设计思路软件部分与硬件部分一起构成一个完整的系统,对整个系统来说起着重要的作用。本系统软件设计采用c语言设计,根据系统设计要求

7、,适合采用模块化程序设计方法,设置六个不同的子函数模块,对应于设计要求的6种不同信号灯的状态组合方式。在主函数里,利用switch函数读取开关的状态信息,从而调用不同的子函数功能,实现信号灯的亮灭闪烁,当不存在该开关状态信息时,所有灯处于熄灭状态。当开关状态信息由对应的子函数模块时,执行相应功能工程中,如果开关状态信息改变,则里面挑出该功能模块,执行相应的子程序。3.2程序流程图 3.2.1主系统程序流程图: 系统程序流程图3.2.1子系统程序流程图:第四章 调试及运行结果通过设计和编写程序代码,运行程序后,其结果为当拨动相应的开关后,其对应的汽车信号指示灯状态将发生变化,闪烁或长亮,直到下一

8、个动作为止,刚开始时候,其信号灯的动作与实际的操作不匹配,经过小组成员的协同努力,最终在运行程序后能得到与要求相匹配的结果,其具体的调试结果如下表所示。驾驶信号操作调试结果左转弯灯L1右转弯灯L2左头灯L3右头灯L4左尾灯L5右尾灯L6合上左转开关闪烁闪烁闪烁合上右转开关闪烁闪烁闪烁合紧急开关闪烁闪烁闪烁闪烁闪烁闪烁合上刹车开关亮亮左转弯时刹车闪烁闪烁闪烁亮右转弯时刹车闪烁闪烁亮闪烁刹车、并合紧急开关闪烁闪烁闪烁闪烁亮亮左转弯/刹车/合紧急开关闪烁闪烁闪烁闪烁闪烁亮右转弯/刹车/合紧急开关闪烁闪烁闪烁闪烁亮闪烁第五章 心得体会 本次课程设计的第一天是上午八点,一过去先是陈老师给我们讲解一些单片

9、机的基本知识和试验箱的使用。然后学姐根据具体课题分别给我们讲解设计需要用的的软件的运用,并且给我们一些建议。然后学习过软件后我们就自己先学习软件的应用,然后小组一起讨论设计的思路和程序的大致框图,还上网查找有关AT89C52的芯片功能特点,下午我们就开始写程序。晚上继续道实验室调试,刚开始程序有点问题,我们便一起讨论修改,终于使设计功能通过了。但是信号灯的闪烁我们是利用软件的空循环来实现的,而实验指导书的要求要用单片机上的定时功能。这就需要我们的自学讨论了,在我们的努力和学姐的帮助下终于完成了。虽然在第一天便完成了实验,但是我们寝室的同学选的课题跟我 不一样,于是我便向他们学习,学会了画PCB

10、板,绘制印刷电路板的一些基本技巧,还向单片机时钟程序设计的那组学到了如何定时中断的一些方法,这算是额外的收获吧。同学们也很热心的帮助解答。通过两周的微机课程设计,在小组成员的协同努力下,最终完成汽车信号灯控制系统的设计;在设计中综合运用所学的知识,理论与实际相结合,提出并论证设计方案,然后进行软、硬件调试,最后获得正确的结果。以此加深了对所学理论知识的巩固,加强了建立计算机应用系统整体概念,初步掌握了单片机软、硬件开发方法,为以后进行实际的单片机软、硬件应用开发奠定了良好的基础。与此同时,也加强了我们对问题的分析解决能力,为以后的毕业设计做了充分的准备。在本次的课程设计中我深刻的体会到了团结合

11、作的重要性。先是小组一起讨论实验的大体框架,这样全面而且客观。出现问题的时候大家一起解决比一个人的时候更快的发现问题、解决问题。在设计的过程中,我们团队小组人员分工合作,各负责相应的模块,如主程序的结构框图、各个模块功能的实现,线图的连接等。这次的设计,让我们了解到了单片机在平时日常生活中的应用是如此的广泛,在信息技术日益发达的现代社会,学习一门技术是多么的重要。在今后的学习生活中,我们要更加开阔视野,拓展自己的思路,活跃自己的大脑,锻炼自己的思维能力。认真学习知识,把学到的知识运用到日常的生活中,为以后的毕业工作打好扎实的基础。 在本次课程设计中受到陈老师和学姐的耐心指导,使我们进一步学习到

12、了对问题的分析及解决方法的能力;在此一并表示衷心的感谢!参考资料1 贾金玲等单片机原理及应用成都:电子科技大学出版社,20042 胡汉才单片机原理及其接口技术北京:清华大学出版社,20043 张毅刚MCS-51单片机原理及应用 哈尔滨:哈尔滨工业大学出版社,19904 潘新民单片机实用系统 北京:人民邮政出版社,2001【附】程序源代码#include unsigned char temp; sbit lf=P10; / 左前灯 sbit lb=P11; / 左尾灯 sbit ls=P12; /左仪表 sbit rf=P13; / 右前灯 sbit rb=P14; / 右尾灯 sbit rs=

13、P15; / 右仪表 sbit li=P20; /左转弯 sbit ri=P22; /右转弯 sbit st=P24; /刹车 sbit em=P26; /紧急 void fun_l(); /左转弯 void fun_r(); /右转弯 void fun_em(); /紧急 void fun_st(); /刹车 void fun_lst(); /左转弯刹车 void fun_rst(); /右转弯刹车 void fun_stem(); /紧急刹车 void fun_lstem(); /左转弯紧急刹车 void fun_rstem(); /右转弯紧急刹车 void main() while(1)

14、 temp=P2&0x55; /屏蔽P2中未使用的位 switch(temp) case 0x00: P1=0xff; break; case 0x01: fun_l(); break; case 0x04: fun_r(); break; case 0x40: fun_em(); break; case 0x10: fun_st(); break; case 0x11: fun_lst(); break; case 0x14: fun_rst(); break; case 0x50: fun_stem(); break; case 0x51: fun_lstem(); break; case

15、 0x54: fun_rstem(); break; default : P1=0xff; /所有灯全部熄灭 void fun_l() /左转弯 rf=1;lf=0; rb=1;lb=0; /左头,左尾,左仪表亮 rs=1;ls=0; while(P2&0X55)=0x01) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); /判断TF1,为1,继续空操作 TF1=0; lf=!lf; ls=!ls; /连接需要闪烁的灯的P1相应位取

16、反 lb=!lb; void fun_r() /右转弯 rf=0;lf=1; rb=0;lb=1; /右头,右尾,右仪表亮 rs=0;ls=1; while(P2&0X55)=0x04) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); /判断TF1,为1,继续空操作 TF1=0; rf=!rf; rs=!rs; /连接需要闪烁的灯的P1相应位取反 rb=!rb; void fun_em() /紧急 rf=0;lf=0; rb=0;l

17、b=0; /所有的灯亮 rs=0;ls=0; while(P2&0X55)=0x40) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); /判断TF1,为1,继续空操作 TF1=0; lf=!lf;rf=!rf; ls=!ls;rs=!rs; /连接需要闪烁的灯的P1相应位取反 lb=!lb;rb=!rb; void fun_st() /刹车 rf=1;lf=1; rb=0;lb=0; /尾灯亮 rs=1;ls=1;void fun_

18、lst() /左转弯刹车 rf=1;lf=0; rb=0;lb=0; /左前,左尾,左仪表,右尾灯亮 rs=1;ls=0; while(P2&0X55)=0x11) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); /判断TF1,为1,继续空操作 TF1=0; lf=!lf; ls=!ls; lb=!lb; void fun_rst() /右转弯刹车 lf=1;rf=0; lb=0;rb=0; /右前,右尾,右仪表,左尾灯亮 ls=1

19、;rs=0; while(P2&0X55)=0x14) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); /判断TF1,为1,继续空操作 TF1=0; rf=!rf; rs=!rs; /连接需要闪烁的灯的P1相应位取反 rb=!rb; void fun_stem() /紧急刹车 lf=0;rf=0; lb=0;rb=0; /所有的灯亮 ls=0;rs=0; while(P2&0X55)=0x50) /判断状态是否改变 int i=14

20、; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); /判断TF1,为1,继续空操作 TF1=0; lf=!lf; rf=!rf; ls=!ls; rs=!rs; void fun_lstem() /左转弯紧急刹车 lf=0;rf=0; lb=0;rb=0; /所有的灯亮 ls=0;rs=0; while(P2&0X55)=0x51) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 T

21、L1=0x00; TR1=1; /启动定时器 while(!TF1); TF1=0; /判断TF1,为1,继续空操作 lf=!lf; lb=!lb; rf=!rf; /连接需要闪烁的灯的P1相应位取反 ls=!ls; rs=!rs; void fun_rstem() /右转弯紧急刹车 lf=0;rf=0; lb=0;rb=0; /所有的灯亮 ls=0;rs=0; while(P2&0X55)=0x54) /判断状态是否改变 int i=14; while(i-) TMOD=0x10; /设置为T1定时器 TH1=0x00; /装定时器初值 TL1=0x00; TR1=1; /启动定时器 while(!TF1); TF1=0; /判断TF1,为1,继续空操作 lf=!lf; rb=!rb; rf=!rf; /连接需要闪烁的灯的P1相应位取反 ls=!ls; rs=!rs;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1