收藏 分销(赏)

交通灯C51程序设计作业.doc

上传人:精*** 文档编号:4136258 上传时间:2024-07-31 格式:DOC 页数:21 大小:704.50KB 下载积分:10 金币
下载 相关 举报
交通灯C51程序设计作业.doc_第1页
第1页 / 共21页
交通灯C51程序设计作业.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
C51程序设计课程报告 ——交通灯 学 院: 电信学院 班 级: 09电子信息工程本1班 学 号: 091102010142 姓 名: 邵宝川 摘要 交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。随着车辆的日益增多,交通问题将日趋严重。 可通过多修建道路或限制车辆的办法来解决,但道路的增加是有限的,而限制车辆会使汽车及其相关产业受到压制。目前,发达国家的交通主要是向智能化交通方向发展。如给汽车装上导航仪等办法,充分利用电子设备提高现有道路交通系统的运输能力。交通灯是管理城市交通的重要工具,交通灯对道路交通流的影响近年来引起广大学者的广泛注意。目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变,还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。而我们设计的交通灯充分考虑了在道路繁忙时,各道口车流量不同,和消防车、警车等车辆通过路口时等紧急情况,给予了交通指挥一定的自由度,设计更加人性化。 目录 一、设计背景 3 二、设计原理 3 三、电路图 4 (一)逻辑图: 4 (二)交通信号模拟控制系统电路原理图 5 四、程序流程图 6 五、编写程序 7 六、仿真结果图 15 (一)东西绿灯,南北红灯: 15 (二)东西黄灯,南北红灯 16 (三)东西红灯,南北绿灯 17 (四)东西黄灯,南北绿灯 18 七、调试 19 八、结论 19 九、参考文献 20 (一) 网络参考 20 (二)书本参考 20 一、设计背景 交通灯是一个城市经济的动脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。所谓“路通财通”就是说明了一个良好的交通环境的重要性。而交通灯在这个交通环境中起一个重要的角色,智能的交通灯能有效地缓解城市的交通压力,减少交通事故;智能交通灯能为当地人民节省大量的出行时间,创造出更多的社会价值;智能的交通灯为交通顺畅提供了保障,对当地经济起着一个不可估量的作用。 目前研究交通灯的方案有很多,有应用CPLD设计交通信号灯控制器方法,有应用PLC实现对交通灯的控制系统的设计。有应用单片机实现对交通信号灯设计的方法。目前国内的交通灯一般设在十字路口,在醒目位置用红黄绿三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一个车道为副干道,车辆较少,放行时间应该短些。2.没有考虑到紧急车辆通过时,两车道都应该采取措施。譬如:消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。 二、设计原理 用AT89C51单片机控制一个交通灯系统,晶振采用12 MHz。设A车道与B车道交叉组成十字路口,A车道是主干道,B为支道。设计要求如下: (一)用发光二极管模拟交通信号灯; (二)正常情况下,A, B两车道轮流放行,A车道放行50 s,另有3s用于警告;东西南北车道放行30 s,另有3s用于警告; (三)在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车,按下模拟开关K1使A车道放行15s; (四)有紧急车辆通过时,按下开关K2使A, B车道均为红灯,禁止通行30s。 三、电路图 当一个车道有车而另一个车道没车时、可采用外部中断执行中断服务程序,分别以按钮开关K1,K2模拟A、B车道的车辆检测情况。当按下K1时、A车道通行;当按下K2时,B车道通行。 由此可得卡诺图如下: 表达式: (一)逻辑图: (二)交通信号模拟控制系统电路原理图 北 四、程序流程图 五、编写程序 交通灯信号灯模拟系统程序如下: #INCLUDE <AT89X51.H> UNSIGNEDCHAR CODE SEGDATA[]={0X3F,0X06,0X5B,0X4F,0X66, 0X6D,0X7D,0X07,0X7F,0X6F}; UNSIGNED CHAR LEDCODE[]={0X0C,0X0C,0X0A,0X21,0X21,0X11}; //**********************0X21东西红灯,南北绿灯 //**********************0X11东西红灯,南北黄灯 //**********************0X0C东西绿灯,南北红灯 //**********************0X0A东西黄灯,南北红灯 UNSIGNED CHAR SECOND; UNSIGNED CHAR RED,GRE,YELL; //UNSIGNED CHAR KEYCNT; UNSIGNED INT TCNT,FLAG; //UNSIGNED INT K; VOID DEPLAY10MS(VOID) { UNSIGNED INT I,J; FOR(I=0;I<4;I++) FOR(J=0;J<250;J++); } VOID S0(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(); } VOID S2(VOID) { P1=0XFE; P3=SEGDATA[RED/10]; P0=SEGDATA[GRE/10]; DEPLAY10MS(); P1=0XFD; P3=SEGDATA[RED%10]; P0=SEGDATA[GRE%10]; DEPLAY10MS(); } VOID S3(VOID) { P1=0XFE; P3=SEGDATA[RED/10]; P0=SEGDATA[YELL/10]; DEPLAY10MS(); P1=0XFD; P3=SEGDATA[RED%10]; P0=SEGDATA[YELL%10]; DEPLAY10MS(); } VOID SEGPLAY(VOID) { SWITCH(FLAG) CASE 0: CASE1: S0();BREAK; CASE 2:S1();BREAK; CASE 3: CASE 4:S2();BREAK; CASE 5:S3();BREAK; } } VOID YELLS(VOID) { UNSIGNED CHAR I; P2=LEDCODE[FLAG]; FOR(I=0;I<10;I++) { SEGPLAY(); } P2=LEDCODE[FLAG]&0XED; FOR(I=0;I<10;I++) { SEGPLAY(); } } VOID GRES(VOID) { UNSIGNED CHAR I; P2=LEDCODE[FLAG]; FOR(I=0;I<10;I++) { SEGPLAY(); } P2=LEDCODE[FLAG]&0XDB; FOR(I=0;I<10;I++) { SEGPLAY(); } } VOID MAIN(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) { CASE 0:P2=LEDCODE[FLAG];BREAK; CASE 1:GRES();BREAK; CASE 2:YELLS();BREAK; CASE 3:P2=LEDCODE[FLAG];BREAK; CASE 4:GRES();BREAK; CASE 5:YELLS();BREAK; } } } VOID T0(VOID) INTERRUPT 1 USING 0 { 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;} } } 六、仿真结果图 (一)东西绿灯,南北红灯: 北 (二)东西黄灯,南北红灯 北 (三)东西红灯,南北绿灯 北 (四)东西黄灯,南北绿灯 北 七、调试 单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试过程中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则无从谈起。 硬件的调试主要是把电路各种参数调整到符合设计要求。先排除硬件电路故障,包括设计性错误和公益性故障。一般原则是先静态后动态。 利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路故障。 先要将单片机AT89 S51芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,这些都没有问题后,接上仿真机进行联机调试观察各接口线路是否正常。 单片机AT89 S51是系统的核心,利用万用表检测单片机电源Vcc是否为(40脚)+5 V、晶振是否正常工作(可用示波器测试,也可以用万用表检测,两引脚电压一般为1.8~2.3V)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为+5V(高电平),这样一来单片机就能工作了,再结合电路图,检测故障就很容易了。 八、结论 通过为本次课程设计,使我对这门课有了许多新的了解,弥补了在课堂上学习的不足。相信这对我以后的学习和工作都会有很大的帮助。 首先,通过实体仿真软件等辅助软件的共同效果,是这次课程设计有了鲜明的活力。还使我认识到这次实训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。特别是protues软件的功能是我了解了当今开发系统的新方向,令人大开眼界! 在本次课程设计中我通过一个智能交通灯的设计,使我深深地体会到了在现实生活中的应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开始平台的完善与成熟。只要你有想法,就有可能让他成为现实。这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。这对我以后的工作一定会有帮助的。在这次课程设计中不仅只对C51编程有了新的认识,还对整个C51的开发平台都有了一定的了解,这是一笔不错的收获。 通过这次课程设计,使我的感触很深,要达到目的,不同的人就有不同的方法。只要你的方法不错!五花八门都可以,而且是各有特色。走出来的结果都有各自的独到之处。在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟C51留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。 最后十分感谢老师对我的帮助和支持! 九、参考文献 (一) 网络参考 1 中国电子网: 2 东哥电子技术网: 3 常用电子元件资料:http://www.xie- 4 常用电子元器件:http://www.hongyan- (二)书本参考 1 苏伟斌,等.51系列单片机应用手册[M].北京:北京希望电子出版社.2003. 2 何立民,等.MCS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版社.1990. 3 胡汉才,等.单片机原理及系统设计[M].北京:清华大学出版社.2002.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服