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

上传人:b****5 文档编号:8073997 上传时间:2023-01-28 格式:DOCX 页数:19 大小:140.14KB
下载 相关 举报
微机课程设计汽车信号灯.docx_第1页
第1页 / 共19页
微机课程设计汽车信号灯.docx_第2页
第2页 / 共19页
微机课程设计汽车信号灯.docx_第3页
第3页 / 共19页
微机课程设计汽车信号灯.docx_第4页
第4页 / 共19页
微机课程设计汽车信号灯.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

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

《微机课程设计汽车信号灯.docx》由会员分享,可在线阅读,更多相关《微机课程设计汽车信号灯.docx(19页珍藏版)》请在冰豆网上搜索。

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

微机课程设计汽车信号灯

内容提要

本设计为汽车信号灯控制系统,其主要分为五章,第一章为设计概述,主要介绍设计的任务、目标,以及设计所用设备器材,第二章为硬件设计方案,主要是介绍本设计的设计思路,所选芯片,以及相关芯片资料的介绍。

并且在此之上画出了原理框图和电路原理图,在原理图的基础上叙述了设计连线和原理说明。

第三章为软件设计,其主要介绍本设计中采用何种软件设计方案及相关的流程图,在流程图的基础上,写出本系统的程序。

第四章为调试及运行结果,它是在完成本系统的硬件、软件设计的基础之上,对本系统进行测试,看是否满足题目要求,最后以表格的方式对测试的结果给予反应,直接明了。

第五章为设计心得总结,主要是介绍在经过本次设计后,自己的一些心得体会。

然后还给出了本设计的一些参考文献。

最后给出软件设计源程序代码。

 

目录

第一章设计内容及要求……………………………………………………………5

1.1设计内容………………………………………………………………………5

1.2设计要求………………………………………………………………………5

1.3实验器材………………………………………………………………………5

第二章硬件设计方案……………………………………………………………6

2.1设计思路……………………………………………………………………6

2.2设计框图………………………………………………………………6

2.3设计线路及说明…………………………………………………………7

第三章软件设计方案……………………………………………………………8

3.1设计思想…………………………………………………………………8

3.2程序流程图……………………………………………………………………9

3.2.1主系统流程图………………………………………………………………9

3.2.1子系统流程图………………………………………………………………10

第四章调试及运行结果…………………………………………………………11

第五章心得体会……………………………………………………………12

参考资料……………………………………………………………………………14

附程序源代码………………………………………………………………………15

第一章设计概述

1.1设计内容

在本课程设计中,其设计任务为设计并制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左/右转弯灯、左/右头灯和左/右尾灯共六类灯,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。

1.2设计要求

(1)编程语言为C语言;

(2)基于单片机的硬件电路设计与调试;

(3)汽车信号灯微机控制系统,所需执行的操作由相应的开关状态反映,所需控制的信号灯有仪表板左/右转弯灯、左右头灯和左右尾灯共六类灯,其驾驶操作与灯光信号对应关系如下:

a).左/右转弯(合上左/右开关):

仪表板左/右转弯灯、左/右头灯、左/

右尾灯闪烁。

b).紧急开关合上:

所有灯闪烁。

c).刹车(合上刹车开关):

左右尾灯亮。

d).左/右转弯刹车:

仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁,

右/左尾灯亮。

e).刹车、合上紧急开关:

尾灯亮、仪表板灯、头灯闪烁。

f).左/右转弯刹车,并合上紧急开关:

右/左尾灯亮,其余灯闪烁。

注意:

灯的闪烁要求使用定时器来实现。

1.3设备器材

在本设计中,所用到的设备器材如下所示:

(1)实验板(提供拨动开关)

(2)在实验箱内选择AT89C52单片机一片,发光二极管6只(单片机开发板上附有);

(3)导线若干。

(4)计算机一台

 

第二章硬件设计方案

2.1设计思路

本系统中要求设计汽车信号灯控制系统,在驾驶汽车时有左转弯、右转弯、刹车、合紧急开关四个操作;所以可以用四个开关来模拟这几个操作,当单片机检测到相关操作后,然后判断属于那一类操作,再通过软件来驱动控制相应的信号灯状态。

当合上左转弯开关后,仪表板左转弯灯、左头灯、左尾灯闪烁;当合上右转弯开关后,仪表板右转弯灯、右头灯、右尾灯闪烁;合上紧急开关后,头灯、尾灯以1Hz的频率闪烁;在紧急开关合上后,所有灯都闪烁等情况(详见设计要求)。

当检测不到相应的开关状态信息,则所有灯灭。

2.2设计框图

系统硬件框图

由上叙述框图,本设计采用AT89C52单片机,在不同操作控制下可驱动对应的灯闪烁或长亮。

在系统中,利用开关在状态的变化来模拟汽车驾驶操作。

单片机检测到相应的开关状态类别,产生与此状态相符合的控制信号,使信号灯闪烁或长亮。

通过合上开关来改变状态,即合上相应的开关后,就代表一种汽车驾驶操作。

然后单片机检测到相应状态,然后判断属于那一类别,再利用软件来产生相应控制信号,从而驱动信号灯的亮灭或者闪烁。

2.3设计线路图及说明

线路图:

本次设计使用的52单片机,由于p1端口已经默认为与LED信号灯相连,故不用再次连接。

系统中所用到的左拐弯,右拐弯,刹车,紧急四个开关由实验箱提供。

分别设置为k1、k2、k3、k4,选取52单片机的p2.0、p2.2、p2.4、p2.6端口作为选通端口。

选取p1.0、p1.1p1.2、p1.3、p1.4、p1.5作为6个相对应状态显示灯。

 

第三章软件设计方案

3.1设计思路

软件部分与硬件部分一起构成一个完整的系统,对整个系统来说起着重要的作用。

本系统软件设计采用c语言设计,根据系统设计要求,适合采用模块化程序设计方法,设置六个不同的子函数模块,对应于设计要求的6种不同信号灯的状态组合方式。

在主函数里,利用switch函数读取开关的状态信息,从而调用不同的子函数功能,实现信号灯的亮灭闪烁,当不存在该开关状态信息时,所有灯处于熄灭状态。

当开关状态信息由对应的子函数模块时,执行相应功能工程中,如果开关状态信息改变,则里面挑出该功能模块,执行相应的子程序。

 

3.2程序流程图

3.2.1主系统程序流程图:

 

系统程序流程图

 

3.2.1子系统程序流程图:

 

第四章调试及运行结果

通过设计和编写程序代码,运行程序后,其结果为当拨动相应的开关后,其对应的汽车信号指示灯状态将发生变化,闪烁或长亮,直到下一个动作为止,刚开始时候,其信号灯的动作与实际的操作不匹配,经过小组成员的协同努力,最终在运行程序后能得到与要求相匹配的结果,其具体的调试结果如下表所示。

驾驶信号操作

调试结果

左转弯灯L1

右转弯灯

L2

左头灯

L3

右头灯

L4

左尾灯

L5

右尾灯

L6

合上左转

开关

闪烁

——

闪烁

——

闪烁

——

合上右转

开关

——

闪烁

——

闪烁

——

闪烁

合紧急开关

闪烁

闪烁

闪烁

闪烁

闪烁

闪烁

合上刹车

开关

——

——

——

——

左转弯时

刹车

闪烁

——

闪烁

——

闪烁

右转弯时刹车

——

闪烁

——

闪烁

闪烁

刹车、并合紧急开关

闪烁

闪烁

闪烁

闪烁

左转弯/刹车/合紧急开关

闪烁

闪烁

闪烁

闪烁

闪烁

右转弯/刹车/合紧急开关

闪烁

闪烁

闪烁

闪烁

闪烁

 

第五章心得体会

本次课程设计的第一天是上午八点,一过去先是陈老师给我们讲解一些单片机的基本知识和试验箱的使用。

然后学姐根据具体课题分别给我们讲解设计需要用的的软件的运用,并且给我们一些建议。

然后学习过软件后我们就自己先学习软件的应用,然后小组一起讨论设计的思路和程序的大致框图,还上网查找有关AT89C52的芯片功能特点,下午我们就开始写程序。

晚上继续道实验室调试,刚开始程序有点问题,我们便一起讨论修改,终于使设计功能通过了。

但是信号灯的闪烁我们是利用软件的空循环来实现的,而实验指导书的要求要用单片机上的定时功能。

这就需要我们的自学讨论了,在我们的努力和学姐的帮助下终于完成了。

虽然在第一天便完成了实验,但是我们寝室的同学选的课题跟我不一样,于是我便向他们学习,学会了画PCB板,绘制印刷电路板的一些基本技巧,还向单片机时钟程序设计的那组学到了如何定时中断的一些方法,这算是额外的收获吧。

同学们也很热心的帮助解答。

通过两周的微机课程设计,在小组成员的协同努力下,最终完成汽车信号灯控制系统的设计;在设计中综合运用所学的知识,理论与实际相结合,提出并论证设计方案,然后进行软、硬件调试,最后获得正确的结果。

以此加深了对所学理论知识的巩固,加强了建立计算机应用系统整体概念,初步掌握了单片机软、硬件开发方法,为以后进行实际的单片机软、硬件应用开发奠定了良好的基础。

与此同时,也加强了我们对问题的分析解决能力,为以后的毕业设计做了充分的准备。

在本次的课程设计中我深刻的体会到了团结合作的重要性。

先是小组一起讨论实验的大体框架,这样全面而且客观。

出现问题的时候大家一起解决比一个人的时候更快的发现问题、解决问题。

在设计的过程中,我们团队小组人员分工合作,各负责相应的模块,如主程序的结构框图、各个模块功能的实现,线图的连接等。

这次的设计,让我们了解到了单片机在平时日常生活中的应用是如此的广泛,在信息技术日益发达的现代社会,学习一门技术是多么的重要。

在今后的学习生活中,我们要更加开阔视野,拓展自己的思路,活跃自己的大脑,锻炼自己的思维能力。

认真学习知识,把学到的知识运用到日常的生活中,为以后的毕业工作打好扎实的基础。

在本次课程设计中受到陈老师和学姐的耐心指导,使我们进一步学习到了对问题的分析及解决方法的能力;在此一并表示衷心的感谢!

 

[参考资料]

[1]贾金玲等.单片机原理及应用.成都:

电子科技大学出版社,2004

[2]胡汉才.单片机原理及其接口技术.北京:

清华大学出版社,2004

[3]张毅刚.MCS-51单片机原理及应用.哈尔滨:

哈尔滨工业大学出版社,1990

[4]潘新民.单片机实用系统.北京:

人民邮政出版社,2001

【附】程序源代码

#include

unsignedchartemp;

sbitlf=P1^0;//左前灯

sbitlb=P1^1;//左尾灯

sbitls=P1^2;//左仪表

sbitrf=P1^3;//右前灯

sbitrb=P1^4;//右尾灯

sbitrs=P1^5;//右仪表

sbitli=P2^0;//左转弯

sbitri=P2^2;//右转弯

sbitst=P2^4;//刹车

sbitem=P2^6;//紧急

 

voidfun_l();//左转弯

voidfun_r();//右转弯

voidfun_em();//紧急

voidfun_st();//刹车

voidfun_lst();//左转弯刹车

voidfun_rst();//右转弯刹车

voidfun_stem();//紧急刹车

voidfun_lstem();//左转弯紧急刹车

voidfun_rstem();//右转弯紧急刹车

 

voidmain()

{

while

(1)

{

temp=P2&0x55;//屏蔽P2中未使用的位

switch(temp)

{case0x00:

P1=0xff;break;

case0x01:

fun_l();break;

case0x04:

fun_r();break;

case0x40:

fun_em();break;

case0x10:

fun_st();break;

case0x11:

fun_lst();break;

case0x14:

fun_rst();break;

case0x50:

fun_stem();break;

case0x51:

fun_lstem();break;

case0x54:

fun_rstem();break;

default:

P1=0xff;//所有灯全部熄灭

}

}

}

voidfun_l()//左转弯

{

rf=1;lf=0;

rb=1;lb=0;//左头,左尾,左仪表亮

rs=1;ls=0;

while((P2&0X55)==0x01)//判断状态是否改变

{

inti=14;

while(i--)

{

TMOD=0x10;//设置为T1定时器

TH1=0x00;//装定时器初值

TL1=0x00;

TR1=1;//启动定时器

while(!

TF1);//判断TF1,为1,继续空操作

TF1=0;

}

lf=!

lf;

ls=!

ls;//连接需要闪烁的灯的P1相应位取反

lb=!

lb;

}

}

voidfun_r()//右转弯

{

rf=0;lf=1;

rb=0;lb=1;//右头,右尾,右仪表亮

rs=0;ls=1;

while((P2&0X55)==0x04)//判断状态是否改变

{

inti=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;

}

}

voidfun_em()//紧急

{

rf=0;lf=0;

rb=0;lb=0;//所有的灯亮

rs=0;ls=0;

while((P2&0X55)==0x40)//判断状态是否改变

{

inti=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;

}

}

voidfun_st()//刹车

{

rf=1;lf=1;

rb=0;lb=0;//尾灯亮

rs=1;ls=1;

}

voidfun_lst()//左转弯刹车

{

rf=1;lf=0;

rb=0;lb=0;//左前,左尾,左仪表,右尾灯亮

rs=1;ls=0;

while((P2&0X55)==0x11)//判断状态是否改变

{

inti=14;

while(i--)

{

TMOD=0x10;//设置为T1定时器

TH1=0x00;//装定时器初值

TL1=0x00;

TR1=1;//启动定时器

while(!

TF1);//判断TF1,为1,继续空操作

TF1=0;

}

lf=!

lf;

ls=!

ls;

lb=!

lb;

}

}

voidfun_rst()//右转弯刹车

{

lf=1;rf=0;

lb=0;rb=0;//右前,右尾,右仪表,左尾灯亮

ls=1;rs=0;

while((P2&0X55)==0x14)//判断状态是否改变

{

inti=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;

}

}

voidfun_stem()//紧急刹车

{

lf=0;rf=0;

lb=0;rb=0;//所有的灯亮

ls=0;rs=0;

while((P2&0X55)==0x50)//判断状态是否改变

{

inti=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;

}

}

voidfun_lstem()//左转弯紧急刹车

{

lf=0;rf=0;

lb=0;rb=0;//所有的灯亮

ls=0;rs=0;

while((P2&0X55)==0x51)//判断状态是否改变

{

inti=14;

while(i--)

{

TMOD=0x10;//设置为T1定时器

TH1=0x00;//装定时器初值

TL1=0x00;

TR1=1;//启动定时器

while(!

TF1);

TF1=0;//判断TF1,为1,继续空操作

}

lf=!

lf;

lb=!

lb;

rf=!

rf;//连接需要闪烁的灯的P1相应位取反

ls=!

ls;

rs=!

rs;

}

}

voidfun_rstem()//右转弯紧急刹车

{

lf=0;rf=0;

lb=0;rb=0;//所有的灯亮

ls=0;rs=0;

while((P2&0X55)==0x54)//判断状态是否改变

{

inti=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