1、3.2.2 显示电路 53.3 程序算法描述 73.3.1 延时算法 73.3.2 相位设计算法 73.3.3 黄灯闪烁算法 83.3.4 数码管显示算法 84运行结果及分析 85体会感想 8参考文献 9任务分工 9附录1 91摘 要在城镇街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。交通灯控制电路自动控制十字路口、丁字路口和环形路口的红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现交通管理的自动化。2
2、课程设计内容和要求课程设计内容:1. 十字路口的四相位控制;2. 丁字路口的三相位控制;3. 环道相位控制。课程设计基本要求:1. 使用proteus和keil两款软件进行模拟设计;2. 每个进口道必须有红、黄、绿三色交通信号灯;3. 在绿灯变绿灯期间黄灯亮,并要求没秒闪亮一次;4. 各个进口道的通行时间和黄灯亮的时间均可在099秒内任意设定;5. 内容任选一个,或者全选做。3系统设计3.1 设计原理本次的交通管理与控制课程设计,我们三个人主要做的是丁字路口三相位的信号灯控制设计,包括西进口、东进口和北进口的信号灯设计。在查阅书上内容和相关资料后,我们设计的三相位包括:第一相位是西进口允许直行
3、禁止左转,东进口允许直行和右转,北进口禁止左转和右转。设计相位图如图1:图1 第一相位图第二相位是西进口允许左转和直行,东进口禁止直行和右转,北进口允许右转禁止左转。设计相位图如图2:图2 第二相位图第三相位是西进口禁止直行和左转,东进口禁止直行允许右转,北进口允许左转和右转。设计相位图如图3:图3 第三相位图我们这样设计可以使每个进口道都不存在冲突点,使得每个进口道设计最合理,同时也满足课程设计要求。3.2 硬件设计部分本次的交通管理与控制课程设计,我们利用AT89C51单片机最小系统作为最主要部分进行电路控制,用LED-GREEN作为绿灯,LED-RED作为红灯,LED-YELLOW作为黄
4、灯,使用7SEG-BCD数码管对各个进口道的通行时间进行控制显示。其中电路连接时为了使得电路图看得清晰明了,我们没有采用传统的线路连接法,而是使用终端模式。下面对每部分进行介绍:3.2.1 单片机最小系统单片机最小系统包括AT89C51单片机芯片,时钟电路和复位电路。其中AT89C51单片机芯片是整个系统的核心,程序烧录到芯片中,通过芯片控制电路;时钟电路由一个晶振和两个电容构成,用于产生系统时钟;复位电路由一个电容、一个电阻和一个开关构成,可以有上电复位、手动复位和看门狗复位。最小系统电路图如图4:图4 单片机最小系统图3.2.2 显示电路我们利用LED和7SEG-BCD数码管对显示电路进行
5、设计。系统总设计图如图7: 图5 LED示意图 图6 7SEG-BCD数码管示意图图5 系统总设计图3.3 程序算法描述3.3.1 延时算法我们利用两函数来设计延时算法,包括微妙函数和毫秒函数,程序如下:void DelayUs2x(uchar t) /微妙函数 while(-t);void DelayMS(uint t) /毫秒函数,延时t毫秒 while(t-) DelayUs2x(245);/时间运算为:2*(2*245+5)=990us,约等于1 ms 3.3.2 相位设计算法在设计交通信号灯函数时,我们使用了switchcase选择分支,并且分6个分支,其中前3个case是用来设计相
6、位,举例说明程序如下:case 1: /第一相位/初始化各端口RED_WEST=1;YELLOW_WEST=1;GREEN_LEFT_WEST=1;GREEN_STRIGHT_WEST=0;RED_EAST=1;YELLOW_EAST=1;GREEN_RIGHT_EAST=0;GREEN_STRIGHT_EAST=0;RED_NORTH=0;YELLOW_NORTH=1;GREEN_RIGHT_NORTH=1;GREEN_LEFT_NORTH=1;for(i=20;i=0;i-) /设计第一相位通行20秒 num_display(i); /调用显示函数,从20显示到0 DelayMS(1000
7、); /延时1秒 if(i=0) /当i的值为0 i=99; break; /退出for循环,避免数的回绕而无法退出for循环 Operation_Type = 4; /转到case4进行黄灯闪烁break;3.3.3 黄灯闪烁算法switchcase选择分支的后3个case是用来设计3次黄灯闪烁,列举其中一个,程序如下:case 4: /进行黄灯闪烁 if(Flash_Count%2=0) /当Flash_Count为偶数是进行闪烁 num_display(3-Flash_Count/2); /调用显示函数,从3显示到0 GREEN_RIGHT_EAST=1;GREEN_STRIGHT_EA
8、ST=1; /初始化各端口 YELLOW_EAST=YELLOW_EAST; /YELLOW_EAST取反 DelayMS(500); /延时0.5秒 if(+Flash_Count!=7) /if判断 return; /如果还未到7则回到case4开头 Flash_Count=0; /将Flash_Count复位 Operation_Type=2; /转到case23.3.4 数码管显示算法因为我们选用的是7SEG-BCD数码管进行显示,其特点是管脚只有4个,可以直接和单片机芯片的管脚相连。又其是BCD数码管,特点是直接给数码管便可直接进行数据显示。程序描述如下:void num_displ
9、ay(uint num) /7SEG-BCD显示函数 uint a,b,c; /定义三个无符号整数 a=num/10; /a存的是十位数 b=num%10; /b存的是个位数 c=b; a=a4; /a左移4位 c=c|a; /进行或运算,得到a和b的组合数 dataport=c; /将c的值给P2端口,高4位的是十位数a的值,低4位的值是个位数b的值4运行结果及分析当把设计好电路,并把程序装载到单片机中,启动电源后可以看到LED灯按照设计的相位开始点亮,并且数码管也在进行数据的递减,完全吻合程序设计。5体会感想通过这次课程设计,我受益匪浅,一方面是对学过的课内知识的温习和巩固,一方面是锻炼了
10、我的动手能力、分析能力、写作能力和团队协作精神,再一方面是学会了使用proteus和keil这两款软件,为今后的学习做好了铺垫。感谢XX老师,谢谢老师的讲课和课设指导!参考文献1 吴兵,李晔等.交通管理与控制M.北京:人民交通出版社,2010.2 袁俊泉单片机设计及其应用西安:西安电子科技大学出版社,2002.任务分工在本次课设中,我们的分工如下:XX负责课设报告的撰写,XX和XX负责程序和电路图的设计。附录1#include#define uchar unsigned char /类型重定义#define uint unsigned int #define dataport P2 /定义P2
11、端口/定义西进口交通灯的端口号sbit RED_WEST=P00;sbit YELLOW_WEST=P01;sbit GREEN_LEFT_WEST=P02;sbit GREEN_STRIGHT_WEST=P03;/定义东进口交通灯的端口号sbit RED_EAST=P04;sbit YELLOW_EAST=P05;sbit GREEN_RIGHT_EAST=P06;sbit GREEN_STRIGHT_EAST=P07;/定义北进口交通灯的端口号sbit RED_NORTH=P10;sbit YELLOW_NORTH=P11;sbit GREEN_RIGHT_NORTH=P12;sbit G
12、REEN_LEFT_NORTH=P13;uchar Flash_Count = 0; /闪烁计数变量Operation_Type = 1; /操作类型变量void num_display(uint num) /7SEG-BCD显示函数 uint a,b,c; /定义三个无符号整数 a=num/10; /a存的是十位数 b=num%10; /b存的是个位数 c=b; a=a /a左移4位 c=c|a; /进行或运算,得到a和b的组合数 dataport=c;void DelayUs2x(uchar t) /延时函数void DelayMS(uint t) /延时t毫秒 DelayUs2x(245); /时间运算为:void Traffic_light() /交通信号灯函数 uint i; switch(Operation_Type) /switch选择 case 1: /第一相位 /初始化各端口 RED_WEST=1; RED_EAST=1; RED_NORTH=0; for(i=20;i-) /设计第一相位通行20秒 num_display(i); DelayMS(1000); if(i=0) /当
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1