........学院《单片机原理及应用》课程设计报告题目:交通灯控制器班级:学生姓名:学号:指导老师:日期:年月日摘要当前,大量的信号灯电路正向着数字化、小功率、多样化、方便人、车、路三者关系的协调,多值化方向发展随着社会经济的发展,城市交通问题越来越引起人们的关注。
设计交通灯来完成这个需求就显的越加迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。
以下就是运用数字电子设计出的交通灯:本设计是十字路口交通灯控制,所以依据实际交通灯的变化情况和规律,给出如下需求:一个十字路口为东西南北走向。
初始状态25s为南北红灯,初始状态20s东西绿灯。
然后转状态1,南北红灯,东西绿灯闪烁3s,黄灯2s。
再转状态2,南北红灯灭,绿灯亮,东西绿灯灭,红灯亮。
再转状态3,东西红灯,南北绿灯闪烁3s,黄灯2s。
再转初始状态。
关键词:信号灯电路交通控制系统EDA技术目录一. 绪论 (4)引言1.1 设计任务 (4)1.1.1设计题目1.1.2设计内容1.2 系统需求 (4)1.2.1基本要求1.2.2发挥部分1.3小组成员及个人完成情况 (4)1.3.1小组成员1.3.2个人完成情况二.方案比较、方案设计与方案论证 (5)2.1电源提供方案2.2显示界面方案三.单元模块设计 (6)3.1单片机及其外接电路3.2 交通灯时间显示模块3.3按键控制模块3.4声音报警系统四.系统调制与分析 (10)五.总结与心得 (14)参考文献 (14)附录一系统原理图 (15)附录二元件清单 (16)附录三系统源程序 (17)一.绪论引言城市修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。
然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。
而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统最重要的组成部分。
伴随着社会的发展以及人类生活水平的提高,汽车的数量在D的DEA技术的发展和应用领域的扩大与深入,EDA技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。
随着技术市场与人才市场对DEA的不断的增加,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了。
为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。
以下就是运用数字电子设计出的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。
1.1设计任务1.1.1设计题目:交通灯控制器1.1.2 设计内容:本设计是十字路口交通灯控制,所以依据实际交通灯的变化情况和规律,给出如下需求:一个十字路口为东西南北走向。
初始状态25s为南北红灯,初始状态20s东西绿灯。
然后转状态1,南北红灯,东西绿灯闪烁3s,黄灯2s。
再转状态2,南北红灯灭,绿灯亮,东西绿灯灭,红灯亮。
再转状态3,东西红灯,南北绿灯闪烁3s,黄灯2s。
再转初始状态。
1.2系统需求1.2.1基本要求:利用STC-89C52单片机作为系统核心控制部分,用外围12个发光二极管(红、绿、蓝各4组)模拟交通灯的显示部分,自己设计电路和程序完成交通灯控制设计。
1.2.2发挥部分:1.用三极管9015对8个数码管进行控制。
2.用for循环完成交通灯转换间的延时,延时误差小于20×10-6s.3. 利用数码管进行东西、南北方向的倒计时显示1.3小组成员及个人完成情况1.3.1小组成员1.3.2个人完成部分部分程序调试,部分实物焊接,制作设计报告书二.方案比较、方案设计与方案论证2.1电源提供方案为使模块稳定工作,须有可靠电源。
我们考虑了两种电源方案:方案一:采点用独立的稳压电源,此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是会使系统复杂,且可能影响电路点平。
方案二:采用单片机控制模块提供电源。
该方案的优点是系统简单扼要节约成本;缺点输出功率不高。
综上所述我们选择第一种方案。
2.2显示界面方案方案一:完全采用数码管显示。
这种方案显示符号和数码字符,系统简单成本低;缺点,功能单一。
方案二:完全采用点阵式LED显示。
这种方案实现复杂,且需要完成大量的软件工作;但功能强大,可方便显示各种英文字符、汉字、图形等。
综上所述我们选择第一种方案。
三.单元模块设计3.1单片机及其外接电路单片微型计算机是随着微型计算机的发展而产生和发展的。
自从1975 年美国德克萨斯仪器公司的第一台单片微型计算机(简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色8k字节Flash,512字节RAM,32 位I/O 口线,定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
它主要由两部分构成,一个是主机控制器,另一个是单片机工作最小系统。
图3.1 STC89C52 管脚图68图3.2stc89c52及其外接电路结构图3.2 交通灯时间显示模块由4个两位一体的数码管(实验室没有,由四位一体代替),和12个红绿黄灯组成十字路口红绿灯的功能显示图3.3显示模块3.3按键控制模块遇到紧急情况,首先P32口接的开关闭合,4个交通灯全部变成红灯并报警(报警器系统),等处理时闭合P33口的开关,报警器关闭。
再闭合P36口的开关东西方向的红灯变成绿灯,闭合P36口开关南北方向的红灯变成绿灯。
注:P33口优先级高于P32口。
图3.4 按键控制模块3.4声音报警模块声音报警模块主要用于紧急情况的报警模式,由3.3的P32口决定开启.主要部件由报警器及其外接电路图3.5 声音报警模块四.系统调制与分析系统硬件组成部分如图4.1所示图4.1 系统实物图按一下电源开关按钮,系统上电后,系统开始正常工作,初始状态下交通灯状态如图4.2 4.3所示图4.2交通灯正常工作图4.2交通灯正常工作(黄灯时)紧急情况下,按P23接口的开关,红灯闪烁,报警器响,图4.4所示:图4.4交通灯紧急情况再按P24端口的开关,报警器停止响,同图4.4再按P2.8端口的开关,南北方向的红灯变绿灯,如图4.5所示:图4.5 交通灯紧急情况后,南北方向灯变绿灯再按P2.9端口的开关,东西方向的红灯变绿灯,如图4.6所示:图4.6交通灯紧急情况后,东西方向灯变绿灯夜间模式时黄灯闪烁,如图4.7所示图4.7 夜间模式黄灯闪烁五.总结与心得通过一个星期的辛勤努力,在指导老师的指导和同学们的帮助下,我终于将此次的作品交通灯控制器制作完成了。
让我感受到了功夫不负有心人这句至理名言的真正涵义,这次设计制作不仅巩固了所学的专业知识,而且还增强了自己的动手能力,在制作的过程中学到了很多有用的东西。
本次设计,我用自己所学的专业知识结合同学意见完成了实物的制作,实物也有了比较满意的功能。
在这次设计中我用到了很多模块,包括各种传感器模块、显示模块、CPU模块、按键控制模块、声音报警模块等等。
通过对这些模块的深入了解,我突然有个感悟:什么东西都不难理解,只要你肯花心思去学,肯花时间去专研,收获肯定会有的。
本次设计遇到的难点是在调试部分,在焊接完毕后以及烧完程序后,接上电源,发现数码管没亮,但是在手动按键的时候LED灯会亮,同时蜂鸣器会响。
其它全部功能正常,唯独数码管就是不亮,本因为是数码管的管脚接触不良,用力按下能看到一些管段微弱的亮了一下。
后来发现数码管是亮着的,用双手挡住光才能看到数码管亮,原来是电压不够,数码管显示很暗。
然后加了个9015三极管后,数码管就亮了,但又变成了乱码……经过深刻的研究分析发现,接了三极管驱动后,因为静态工作点的配置问题,共阳数码管由高电平驱动变成低电平驱动,又经过了好多调试,终于成功显示。
通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。
通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。
而且在这次的课程设计中,我也明白了自己对软件方面比较感兴趣,也明白了自己以后要往哪方面走。
同时,这次设计也发现了自己的一些不足之处,就如在软件设计方面,自己还需要多查看阅读一些数据结构的书籍,多了解一些设计的算法和编程思想才行。
这次的课程总的来说还是完善的,当然有些功能也还是需要完善的,比如交通灯的夜间模式,即在夜间时让所有的黄灯亮。
参考文献[1] 杨居义,《单片机原理及应用项目教程》,清华大学出版社,2007年[2] 胡汉才,《单片机原理与接口技术》,清华大学大学出版社,2004年[3] 王幸之,《单片机应用系统抗干扰技术》,北京航空航天大学出版社,2001年[4] 王为青、程国钢,《单片机Keil C×51应用开发技术》.,人民邮电出版社,2007年[5] 李哲英,《电子技术及其应用基础》,高等教育出版社,2003年[6] 刘菊荣、库锡树主编,《电子技术实验教程》,电子工业出版社,2013年[8] 谢自美,《电子线路设计·实验·测试》,武汉:华中科技大学出版社,2000年[9] 李广弟. 单片机原理及应用[M] 北京航空航天大学出版社,2004年[10] 朱思荣.51单片机实现公历与农历、星期的转换[Z].当当电子网[11] 曹巧媛.单片机原理及应用.北京:电子工业出版社,2002.附录一系统原理图附录二元件清单附录三系统源程序#include <at89x51.h>#define uchar unsigned char#define uint unsigned intuchar h;uint s;uchar code dis[]={0Xc0,/*0*/0Xf9,/*1*/0Xa4,/*2*/0Xb0,/*3*/0X99,/*4*/0X92,/*5*/0X82,/*6*/0Xf8,/*7*/0X80,/*8*/0X90,/*9*/0Xff,/*NULL*/}; //共阳数码管显示void delay(uint c){ /*延迟c毫秒*/uint i,j;for(i=0;i<c;i++)for(j=0;j<125;j++);}void main(void){PX1=1; //外部中断1为高优先级EA=1; //CPU开放中断EX0=1; //外部中断0允许EX1=1; //外部中断1允许while(1){P0=0xf3;/*南北红灯亮,东西绿灯亮20s*/ //P2.4,P2.3低电平亮灯for(h=20;h>0;h--){ //20S倒计时for(s=250;s>0;s--){ //延时速度P1=0xf0; /*关闭数码管*/P2=0xff;P1|= 0xf1; /*开启P1.0*/P2=dis[h/10];/*显示十位*/delay(1);P1=0xf0; /*关闭数码管*/P2=0xff;P1 |=0x02; /*开启P1.1*/P2=dis[h%10];/*显示个位*/delay(1);P1=0xf0;P2=0xff;P1 |=0x04; /*开启P1.2*/P2=dis[(h+5)/10]; /*显示十位*/delay(1);P1=0xf0;P2=0xff;P1|=0x08; /*开启P1.3*/P2=dis[(h+5)%10]; /*显示个位*/delay(1);}}for(h=5;h>2;h--){ //数码管显示5-4-3S倒计时P0=0xf3; /*南北红灯亮3S,东西绿灯闪烁3S*/ // P0.2 P0.3亮delay(200);P0=0xf7; //P0.3亮delay(100);// P1=0xf0;// P2=0xff;P1=0xfa; //P0.0 P0.2东北方向选中P2=dis[h%10];delay(200);P0=0xf3; /*重复1遍上面语句*/ // P0.2 P0.3亮delay(200);P0=0xf7; //P0.3亮delay(100);// P1=0xf0;// P2=0xff;P1=0xfa;P2=dis[h%10];delay(200);}for(h=2;h>0;h--){ //2-1S倒计时P0=0x35; /*南北红灯亮2S,东西黄灯亮2S*/delay(100);P2=0xff;P1=0xfa;P2=dis[h%10];delay(900);}P0=0x1e; /*东西红灯亮,南北绿灯亮25s*/for(h=25;h>0;h--){for(s=250;s>0;s--){P1=0xf0;P2=0xff;P1|=0x04;P2=dis[h/10];delay(1);P1=0xf0;P2=0xff;P1|=0x08;P2=dis[h%10];delay(1);P1=0xf0;P2=0xff;P1|=0x01;P2=dis[(h+5)/10];delay(1);P1=0xf0;P2=0xff;P1|=0x02;P2=dis[(h+5)%10];delay(1);}}for(h=5;h>2;h--){P0=0xde;/*东西红灯亮3s,南北绿灯闪3s*/delay(200);P0=0xfe;delay(100);P1=0xf0;P2=0xff;P1=0xfa;P2=dis[h%10];delay(200);P0=0xde; /*重复1遍上面语句*/delay(200);P0=0xfe;delay(100);P1=0xf0;P2=0xff;P1=0xfa;P2=dis[h%10];delay(200);}for(h=2;h>0;h--){P0=0x2e;/*东西红灯亮2s,南北黄灯亮2s*/delay(100);P2=0xff;P1=0xfa;P2=dis[h%10];delay(900);}}}int0_srv( ) interrupt 0 using 1{ //P3.2外部中断0 char a,b,c;uint i;for(i = 0; i <1000; i++); //控制红绿黄等if(INT0 == 0){b = P1;c = P0;P1 = 0xf0; //数码管位选段都为高电平P2 = 0xff; //数码管全灭P0 = 0xf6; //P0.0 P0.3 低电平红灯亮P1_4 = 0;while(INT0 == 0);P2 = a;东莞理工学院城市学院课程设计P1 = b;P0 = c;P1_4 = 1;}}int1_srv( ) interrupt 2 using 2 //P3.3外部中断1{char x,y,z;uint i;for(i = 0; i <1000; i++); //控制红绿黄灯if(INT1 == 0){x= P2; y = P1; z = P0;P1 = 0xf0; //数码管位选段都为高电平P2 = 0xff;P0 = 0xf6;while(1){if(P3_6 == 0)P0 = 0xf3; /* 东西绿灯,南北红灯*/ //P0.3 P0.2低电平红绿灯亮else if(P3_7 == 0)P0 = 0xde; /* 南北绿灯,东西红灯*/ //P0.5 P0.0低电平红绿灯亮else(P0 = 0xf6); //其它情况都为红灯if(INT1 ==1) break;}P2 = x;P1 = y;P0 = z;}}21。