交通灯C51程序设计作业.doc
- 文档编号:2583842
- 上传时间:2022-11-02
- 格式:DOC
- 页数:21
- 大小:730KB
交通灯C51程序设计作业.doc
《交通灯C51程序设计作业.doc》由会员分享,可在线阅读,更多相关《交通灯C51程序设计作业.doc(21页珍藏版)》请在冰豆网上搜索。
C51程序设计课程报告
——交通灯
学院:
电信学院
班级:
09电子信息工程本1班
学号:
091102010142
姓名:
邵宝川
20
摘要
交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。
随着车辆的日益增多,交通问题将日趋严重。
可通过多修建道路或限制车辆的办法来解决,但道路的增加是有限的,而限制车辆会使汽车及其相关产业受到压制。
目前,发达国家的交通主要是向智能化交通方向发展。
如给汽车装上导航仪等办法,充分利用电子设备提高现有道路交通系统的运输能力。
交通灯是管理城市交通的重要工具,交通灯对道路交通流的影响近年来引起广大学者的广泛注意。
目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变,还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。
而我们设计的交通灯充分考虑了在道路繁忙时,各道口车流量不同,和消防车、警车等车辆通过路口时等紧急情况,给予了交通指挥一定的自由度,设计更加人性化。
目录
一、设计背景 3
二、设计原理 3
三、电路图 4
(一)逻辑图:
4
(二)交通信号模拟控制系统电路原理图 5
四、程序流程图 6
五、编写程序 7
六、仿真结果图 15
(一)东西绿灯,南北红灯:
15
(二)东西黄灯,南北红灯 16
(三)东西红灯,南北绿灯 17
(四)东西黄灯,南北绿灯 18
七、调试 19
八、结论 19
九、参考文献 20
(一)网络参考 20
(二)书本参考 20
一、设计背景
交通灯是一个城市经济的动脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。
所谓“路通财通”就是说明了一个良好的交通环境的重要性。
而交通灯在这个交通环境中起一个重要的角色,智能的交通灯能有效地缓解城市的交通压力,减少交通事故;智能交通灯能为当地人民节省大量的出行时间,创造出更多的社会价值;智能的交通灯为交通顺畅提供了保障,对当地经济起着一个不可估量的作用。
目前研究交通灯的方案有很多,有应用CPLD设计交通信号灯控制器方法,有应用PLC实现对交通灯的控制系统的设计。
有应用单片机实现对交通信号灯设计的方法。
目前国内的交通灯一般设在十字路口,在醒目位置用红黄绿三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:
1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一个车道为副干道,车辆较少,放行时间应该短些。
2.没有考虑到紧急车辆通过时,两车道都应该采取措施。
譬如:
消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。
二、设计原理
用AT89C51单片机控制一个交通灯系统,晶振采用12MHz。
设A车道与B车道交叉组成十字路口,A车道是主干道,B为支道。
设计要求如下:
(一)用发光二极管模拟交通信号灯;
(二)正常情况下,A,B两车道轮流放行,A车道放行50s,另有3s用于警告;东西南北车道放行30s,另有3s用于警告;
(三)在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。
在B车道放行期间,若A车道有车而B车道无车,按下模拟开关K1使A车道放行15s;
(四)有紧急车辆通过时,按下开关K2使A,B车道均为红灯,禁止通行30s。
三、电路图
当一个车道有车而另一个车道没车时、可采用外部中断执行中断服务程序,分别以按钮开关K1,K2模拟A、B车道的车辆检测情况。
当按下K1时、A车道通行;当按下K2时,B车道通行。
由此可得卡诺图如下:
表达式:
(一)逻辑图:
(二)交通信号模拟控制系统电路原理图
北
四、程序流程图
五、编写程序
交通灯信号灯模拟系统程序如下:
#INCLUDE
UNSIGNEDCHARCODESEGDATA[]={0X3F,0X06,0X5B,0X4F,0X66,
0X6D,0X7D,0X07,0X7F,0X6F};
UNSIGNEDCHARLEDCODE[]={0X0C,0X0C,0X0A,0X21,0X21,0X11};
//**********************0X21东西红灯,南北绿灯
//**********************0X11东西红灯,南北黄灯
//**********************0X0C东西绿灯,南北红灯
//**********************0X0A东西黄灯,南北红灯
UNSIGNEDCHARSECOND;
UNSIGNEDCHARRED,GRE,YELL;
//UNSIGNEDCHARKEYCNT;
UNSIGNEDINTTCNT,FLAG;
//UNSIGNEDINTK;
VOIDDEPLAY10MS(VOID)
{
UNSIGNEDINTI,J;
FOR(I=0;I<4;I++)
FOR(J=0;J<250;J++);
}
VOIDS0(VOID)
{
P1=0XFE;
P0=SEGDATA[RED/10];
P3=SEGDATA[GRE/10];
DEPLAY10MS();
P1=0XFD;
P0=SEGDATA[RED%10];
P3=SEGDATA[GRE%10];
DEPLAY10MS();
}
VOIDS1(VOID)
{
P1=0XFE;
P0=SEGDATA[RED/10];
P3=SEGDATA[YELL/10];
DEPLAY10MS();
P1=0XFD;
P0=SEGDATA[RED%10];
P3=SEGDATA[YELL%10];
DEPLAY10MS();
}
VOIDS2(VOID)
{
P1=0XFE;
P3=SEGDATA[RED/10];
P0=SEGDATA[GRE/10];
DEPLAY10MS();
P1=0XFD;
P3=SEGDATA[RED%10];
P0=SEGDATA[GRE%10];
DEPLAY10MS();
}
VOIDS3(VOID)
{
P1=0XFE;
P3=SEGDATA[RED/10];
P0=SEGDATA[YELL/10];
DEPLAY10MS();
P1=0XFD;
P3=SEGDATA[RED%10];
P0=SEGDATA[YELL%10];
DEPLAY10MS();
}
VOIDSEGPLAY(VOID)
{
SWITCH(FLAG)
CASE0:
CASE1:
S0();BREAK;
CASE2:
S1();BREAK;
CASE3:
CASE4:
S2();BREAK;
CASE5:
S3();BREAK;
}
}
VOIDYELLS(VOID)
{
UNSIGNEDCHARI;
P2=LEDCODE[FLAG];
FOR(I=0;I<10;I++)
{
SEGPLAY();
}
P2=LEDCODE[FLAG]&0XED;
FOR(I=0;I<10;I++)
{
SEGPLAY();
}
}
VOIDGRES(VOID)
{
UNSIGNEDCHARI;
P2=LEDCODE[FLAG];
FOR(I=0;I<10;I++)
{
SEGPLAY();
}
P2=LEDCODE[FLAG]&0XDB;
FOR(I=0;I<10;I++)
{
SEGPLAY();
}
}
VOIDMAIN(VOID)
{
TMOD=0X01;
ET0=1;
EA=1;
TH0=0X3C;
TL0=0XB0;
TCNT=0;
TR0=1;
SECOND=30;
FLAG=0;
WHILE
(1)
{
RED=SECOND;
GRE=SECOND-5;
YELL=SECOND;
SEGPLAY();
SWITCH(FLAG)
{
CASE0:
P2=LEDCODE[FLAG];BREAK;
CASE1:
GRES();BREAK;
CASE2:
YELLS();BREAK;
CASE3:
P2=LEDCODE[FLAG];BREAK;
CASE4:
GRES();BREAK;
CASE5:
YELLS();BREAK;
}
}
}
VOIDT0(VOID)INTERRUPT1USING0
{
TCNT++;
TH0=0X3C;
TL0=0XB0;
IF(TCNT==20)
{
TCNT=0;
SECOND--;
IF(SECOND==0)
{
SECOND=30;
FLAG++;
}
IF(SECOND==5)
{FLAG++;}
IF(SECOND==10)
{FLAG++;}
IF(FLAG==6)
{FLAG=0;}
}
}
六、仿真结果图
(一)东西绿灯,南北红灯:
北
(二)东西黄灯,南北红灯
北
(三)东西红灯,南北绿灯
北
(四)东西黄灯,南北绿灯
北
七、调试
单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试过程中被发现和纠正的。
但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。
可见硬件的调试是基础,如果硬件调试不通过,软件设计则无从谈起。
硬件的调试主要是把电路各种参数调整到符合设计要求。
先排除硬件电路故障,包括设计性错误和公益性故障。
一般原则是先静态后动态。
利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。
先要将单片机AT89S51芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,这些都没有问题后,接上仿真机进行联机调试观察各接口线路是否正常。
单片机AT89S51是系统的核心,利用万用表检测单片机电源Vcc是否为(40脚)+5V、晶振是否正常工作(可用示波器测试,也可以用万用表检测,两引脚电压一般为1.8~2.3V)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为+5V(高电平),这样一来单片机就能工作了,再结合电路图,检测故障就很容易了。
八、结论
通过为本次课程设计,使我对这门课有了许多新的了解,弥补了在课堂上学习的不足。
相信这对我以后的学习和工作都会有很大的帮助。
首先,通过实体仿真软件等辅助软件的共同效果,是这次课程设计有了鲜明的活力。
还使我认识到这次实训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。
特别是protues软件的功能是我了解了当今开发系统的新方向,令人大开眼界!
在本次课程设计中我通过一个智能交通灯的设计,使我深深地体会到了在现实生活中的应用,既增强了我们的好奇心,又巩固了我们的理论知识。
更让我们体会到了单片机手动的开始平台的完善与成熟。
只要你有想法,就有可能让他成为现实。
这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。
这对我以后的工作一定会有帮助的。
在这次课程设计中不仅只对C51编程有了新的认识,还对整个C51的开发平台都有了一定的了解,这是一笔不错的收获。
通过这次课程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 C51 程序设计 作业