at89c51单片机_交通灯控制系统(含源码及仿真图).

合集下载

课程设计(论文)基于at89c51单片机的交通信号灯控制系统

课程设计(论文)基于at89c51单片机的交通信号灯控制系统

摘要随着中国城镇化速度的较快,交通事故也日趋发生,所以合理的交通控制方法能有效的缓解交通拥挤、法能有效的缓解交通拥挤、减少尾气排放及能源消耗、减少尾气排放及能源消耗、减少尾气排放及能源消耗、缩短出行延时,缩短出行延时,缩短出行延时,改善我国改善我国独有的交通问题。

而平面交叉口是城市交通的关键,它是整个城市道路的瓶颈地带,对其进行交通信号控制方法的研究具有重大意义。

所以交通信号灯是维护城市交通的主要设施,而我们本次复杂的十字路口交通灯控制系统设计主要是利用A T89C51制作并仿真.并且在单片机的选择上,考虑到电路的简单和成本的削减,我们选择性价比最好的A T89C51,而且能够使程序简单。

对紧急车辆通过的处理,采用中断的方法,采用中断的方法,由中断处理程序处理。

由中断处理程序处理。

由中断处理程序处理。

通过单片机控制交通灯不仅能提高通过单片机控制交通灯不仅能提高我们理论联系实际的能力,而且能够熟练掌握汇编语言的编程方法,掌握定时/计数器的使用方法和简单程序的编写,最终提高逻辑抽象能力和动手能力。

关键字:A T89C51 中断交通信号控制目 录1 1 概概 述............................................................. 12 2 原理及说明原理及说明原理及说明........................................................ ........................................................ 23 3 硬件电路设计硬件电路设计硬件电路设计...................................................... ......................................................3 3.1 3.1 单片机复位电路单片机复位电路.............................................. 3 3.2 3.2 交通交通LED 灯外围驱动电路...................................... 3 3.3 3.3 单片机主电路单片机主电路................................................ 4 3.4 3.4 整体电路图设计整体电路图设计.............................................. 5 4 4 软件设计软件设计软件设计.......................................................... ..........................................................6 4.1 4.1 系统程序流程图设计系统程序流程图设计.......................................... 6 4.2 4.2 系统程序设计系统程序设计................................................ 6 总 结结............................................................. 10 感 谢谢.............................................................11 参考文献参考文献........................................................... .. (12)1 概 述目前在世界范围内,目前在世界范围内,一个以微电子技术、一个以微电子技术、一个以微电子技术、计算机和通信技术为先导的,计算机和通信技术为先导的,计算机和通信技术为先导的,以信以信息技术和信息产业为中心的信息革命方兴未艾。

课程设计(论文)基于at89c51单片机的交通信号灯控制系统

课程设计(论文)基于at89c51单片机的交通信号灯控制系统

摘要随着中国城镇化速度的较快,交通事故也日趋发生,所以合理的交通控制方法能有效的缓解交通拥挤、减少尾气排放及能源消耗、缩短出行延时,改善我国独有的交通问题。

而平面交叉口是城市交通的关键,它是整个城市道路的瓶颈地带,对其进行交通信号控制方法的研究具有重大意义。

所以交通信号灯是维护城市交通的主要设施,而我们本次复杂的十字路口交通灯控制系统设计主要是利用AT89C51制作并仿真.并且在单片机的选择上,考虑到电路的简单和成本的削减,我们选择性价比最好的AT89C51,而且能够使程序简单。

对紧急车辆通过的处理,采用中断的方法,由中断处理程序处理。

通过单片机控制交通灯不仅能提高我们理论联系实际的能力,而且能够熟练掌握汇编语言的编程方法,掌握定时/计数器的使用方法和简单程序的编写,最终提高逻辑抽象能力和动手能力。

关键字:AT89C51 中断交通信号控制目录1 概述 (1)2 原理及说明 (2)3 硬件电路设计 (3)3.1 单片机复位电路 (3)3.2 交通LED灯外围驱动电路 (3)3.3 单片机主电路 (4)3.4 整体电路图设计 (5)4 软件设计 (6)4.1 系统程序流程图设计 (6)4.2 系统程序设计 (6)总结 (10)感谢 (11)参考文献 (12)1 概述目前在世界范围内,一个以微电子技术、计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。

为使我国尽快实现经济信息化,赶上发达国家水平,必须加速发展我国的信息技术和信息产业。

而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。

本文主要从单片机的应用上来实现十字路口交通灯的管理,用以控制过往车辆的正常运作。

本设计从定时控制控制着手,解决交叉口信号控制中存在的问题:定时控制信号周期固定,不能根据实际的交通流状况随时调整信号控制参数,因此造成很多不必要的时间等待和资源浪费;对左转车辆较少的单交叉口一般采用有固定左转相位的定时控制方法,此信号控制中的左转车辆通行对直行车辆影响很大;行人过街信号与上游交叉口的不协调导致车辆通过上游交叉口后遇到行人过街而再次停车。

基于AT89C51单片机的交通灯改进控制

基于AT89C51单片机的交通灯改进控制
4.期刊论文 祝燎.何峰山.Zhu Liao.He Feng-shan 单片机AT89C51的设计与开发 -河西学院学报2010,26(5)
利用AT89C51单片机控制产生乐曲音符,利用汇编语言编程,再把乐谱翻译成计算机音乐语言,由单片机进行信号处理,再经过信号放大,由喇叭放出乐 曲声.
5.期刊论文 任建强.张玲娟.RE Jian-qiang.ZHANG Ling-juan 基于AT89C51的单片机综合实验设计 -廊坊师范学院
环境 -煤炭技术2010,29(4)
介绍了一种利用单片机AT89C51为中心的嵌入式系统营造室内和谐温馨的家居环境.在宁静的环境下,控制灯光随音乐逐渐变化,进而影响人们的情绪 .使其趋于平静祥和.以便高效率工作.
8.期刊论文 缪仲翠.张海明.徐保生.MIAO Zhongcui.ZHANG Haiming.XU Baosheng 基于AT89C51单片机的窄轨交流
·科技创新·
基于AT89C51单片机的交通灯改进控制
蔺玉珂 (重庆电子工程职业学院通信工程系
重庆
40l 331)
【摘 要】针对道路交通拥挤、交叉路口经常出现拥堵的情况, 利用AT89C5l单片机控制技术,对交通灯控制系统进行了改进和
模拟,可以实现紧急和特殊情况的管制。
【关键词]AT89C5 l 单片机 交通灯 改进
按键Sl、S2模拟紧急情况和特殊情况 如图l所示。在中断情况下,中断服务程
的发生,当S1、S2为高电平(不按按键) 序流程如图2所示。特殊情况时,采用外
时,
Байду номын сангаас
部中断l方式进入与其相应的中断服务程
表示正常情况。当Sl为低电平(按下 序,并设置该中断为低优先级,有紧急车

at89c51单片机-交通灯控制系统(包括源码and仿真图)

at89c51单片机-交通灯控制系统(包括源码and仿真图)

设计任务书设计要求和技术指标1、技术指标:设计一个十字路口的交通灯控制电路,每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯表示该道路允许通行。

该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。

2、设计要求(1)要求甲车道和乙车道上的车辆交替运行,每秒通行时间为25秒种;(2)要求黄灯先亮5秒种,才能变换车道;(3)黄灯亮时要求每秒闪亮一次;(4)要求绘出原理图,并用Protel画出印制板图;(5)根据设计要求和技术指标设计好电路,选好元件及参数;(6)拟定测试方案和设计步骤;(7)写出设计性报告。

录` 目一、项目名称................................................................................. 错误!未定义书签。

二、选题背景 (2)2.1 课题背景 (2)2.2 交通灯的历史 (2)三、单片机简介 (3)3.1 单片机的发展历程 (3)3.2 单片机的特点: (4)3.3 AT89C51单片机简介 (4)四、设计基本要求和步骤 (6)4.1 基本要求 (6)4.2 设计步骤 (7)五、硬件和软件设计 (7)5.1 硬件电路图 (7)5.2 程序流程图 (9)主程序 (9)运行过程 (10)LED显示程序 (11)T0中断 (12)INT0中断 (13)5.3 P0、P1口显示状态编码表 (13)5.4 程序源代码 (14)5.5 程序运行效果图 (19)六、心得体会 (21)七、参考文献 (22)摘要本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。

系统包括人行道、左转、右转、以及基本的交通灯的功能。

系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间、违规车辆检测以及根据具体情况手动控制等功能。

【免费下载】基于AT89C51的交通灯电路图与程序设计

【免费下载】基于AT89C51的交通灯电路图与程序设计
程序设计与编辑:湖南信息职院 ——信息工程 XXX 编辑
道路交通灯单片机程序设计
思路: 东西直行和左转同控制、南北直行和左转通控制。人行东西同控制、南北通控制,共 4 组 LED 灯组成整个交通灯仿真电路(真实的情况是 8 组)。仿真电路图没有最小系统,实际 的电路请添加最小系统! 人行则对面的车辆禁止直行和左转, 车辆左转则禁止同组的直行和对面车辆的左转和直行, 车辆直行则禁止同组的左转和对面车辆的左转和直行。 使用 74HC164 控制 12 个 LED 交通指示灯 用中断服务减少误差等。 这里数码管区分了东西和南北方向的 电路仿真图:
K1 = 0; P0 = 0xff; K2 = 1; P0 = SEGNUM[seg%10]; delay(10); K2 = 0; P0 = 0xff; } /*南北数码管显示*/ void DisplaySN_SEG(uint seg) { K3 = 1; P2 = SEGNUM[seg/10]; delay(10); K3 = 0; P2 = 0xff; K4 = 1; P2 = SEGNUM[seg%10]; delay(10); K4 = 0; P2 = 0xff; } /*LED 交通指示灯显示*/ void Mode_LED() { if(led_mode == 1) {
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

基于AT89C51单片机的十字路口交通灯设计讲解

基于AT89C51单片机的十字路口交通灯设计讲解

单片机原理及系统课程设计专业:电气工程及其自动化班级:电气1102姓名: vfffff学号:2011反反复复指导教师:汤旻安兰州交通大学自动化与电气工程学院2014年 1月17 日基于AT89C51单片机的十字路口交通灯设计1 设计目的和方案1.1设计目的近年来随着科技的飞速发展,一个以微电子技术、计算机技术和通信技术为先导的信息革命正在蓬勃发展。

计算机技术作为三者之一,怎样与实际应用更有效的结合并发挥其作用。

单片机作为计算机技术的一个分支,正在不断的应用到实际生活中,同时带动传统控制检测的更新。

在实时检测和自动控制的应用系统中,单片机往往是作为一个核心部件使用,针对具体应用对象的特点,配以其它器件来加以完善。

现代社会有越来越多的人开始有了自己的私家车,同时,便有了交通拥挤的问题,如何在车流量巨大的十字路口保证车辆畅行,交通灯便起到了巨大的作用。

实际上,1858年,英国伦敦就有了最早的然煤气交通灯,至今,交通灯已经普及到世界各地,成为社会生活中不可或缺的装置。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1.2设计方案设计方案如表1所示。

表1设计方案25s 5s 25s 5s南北道红灯亮红灯亮绿灯亮黄灯亮.......东西道绿灯亮黄灯亮红灯亮红灯亮.......1.4设计任务东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。

红灯亮禁止通行,绿灯亮允许通行。

红灯的设计时间为30秒,绿灯及左转绿灯各为25秒。

黄灯为闪烁5秒。

1.3时序图本程序的时序图是基于visio画出的,基本图如图1所示。

30s25s5s30s25s30s5s25s红绿黄东西方向南北方向红绿黄图1时序图2功能该电子产品实现的功能:本系统除基本交通灯功能以外,还有倒计时等功能,较好的模拟了十字路口出现的状况。

具体功能如下:(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。

基于单片机AT89C51交通灯控制器的设计

基于单片机AT89C51交通灯控制器的设计

图4 程序流程图
6.系统的 Proteus软件仿真
6.1 东西通行,南北禁行
6.2东西禁行,南北通行
7.结论
通过Proteus仿真实现东西方向和南北方向的十字路口 的车辆相互交替通过,东西方向每次通行时间设置为60 秒、南北方向通行时间设置为50秒。同时可以实现红灯、 黄灯、绿灯各状态之间的相互转换,黄灯闪烁时间设置 为10秒,数码管可以准确进行倒计时显示。通过按键K0, K1,K2,K3可以实现交通灯工作状态之间相互转化,实 现了课程设计的要求。
谢谢 观赏
3.整体框图
本设计采用模块化 的分层次设计方法, 以单片机AT 89C51 为控制核心,连接 成最小系统,由倒 计时显示模块、交 通灯显示模块、按 键开关控制模块等 组成。系统的总体 框图如图所示。
图2 交通灯控制器框图
4.硬件设计
本系统采用AT89C51单片机及外围器件构成最小控制系统, 12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块, 4个数码管东西南北方向各一个构成倒计时显示模块,通过 四个按键K0、K1、K2、K3模拟控制交通灯东西通行, 南北通行,返回,紧急情况各个交通灯工作情况之间相互转 化。
图3 交通灯控制系统原理图
5.系统软件设计
本系统采用AT89C51单片机实现交通灯的控制, 程序的编写用C语言来完成。系统控制程序可以分为 若干模块:初始化程序,按键开关控制程序,交通 灯转换控制程序,LED数码管显示程序,按键消抖 动程序,延时程序,中断服务子程序等。系统相应 的程序流程如下图所示。
基于AT89C51的交通灯控制器的设计
姓名:张建猛 学号:2010080870 学院:机械与电子工程学院 专业:自动化 指导老师:胡波 刘明
目录

基于AT89C51单片机的交通灯实验报告

基于AT89C51单片机的交通灯实验报告
/*
*实现基于C51的交通信号灯的控制操作
*使用器件->>
* 1.74HC138用于控制LED的位选码的设定
* 2.T0->>实现一个时间的定时操作(设置为10ms)
* 3.P0->>作为LED现实的断码输出端
* 4.P1->>作为LED交通灯的信号灯的控制端
* 5.P2->>作为74HC138的为选码的控制端
//红灯跳转到绿灯
SN_RED = 0;
SN_YELLOW = 1;
SN_GREEN = 0;
SN_IFGREEN = 1;
}
}
void east_west(){
if(EW_IFGREEN && LEDTIME == 5){
//绿灯跳转到黄灯的变换
EW_RED = 0;
EW_YELLOW = 1;
EW_GREEN = 0;
EW_GREEN = 1;
EW_IFGREEN = 1;
}
}
void led_show(){
int height_LED = LEDTIME/10;//高10位
int litter_LED = LEDTIME%10;//低10位
//南北方向的时间跳变控制
PA = 1;
PB = 1;
PC = 1;
P0 = LED_TABLE[litter_LED];//低10位
//东西方向的交通灯的操作控制
void east_west();
//LED时间显示的操作控制
void led_show();
//复位系统
void reset_SYS() interrupt 0{
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟交通灯设计报告题目交通信号灯控制系统团队研发区第二组完成时间2011-11-31贵州民族学院开放实验室`目录一、项目名称 (1)二、选题背景 (1)2.1 课题背景 (1)2.2 交通灯的历史 (1)三、单片机简介 (2)3.1 单片机的发展历程 (2)3.2 单片机的特点: (3)3.3 AT89C52单片机简介 (4)四、设计基本要求和步骤 (5)4.1 基本要求 (5)4.2 设计步骤 (6)五、硬件和软件设计 (6)5.1 硬件电路图 (6)5.2 程序流程图 (8)主程序 (8)运行过程 (9)LED显示程序 (10)T0中断 (11)INT0中断 (11)5.3 P0、P1口显示状态编码表 (12)5.4 程序源代码 (12)5.5 程序运行效果图 (21)六、心得体会 (22)七、参考文献................................................................................. 错误!未定义书签。

模拟交通灯设计报告一、项目名称十字路口交通信号灯控制系统二、选题背景2.1 课题背景由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。

日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。

随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。

2.2 交通灯的历史1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街道的第一盏信号灯。

1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。

稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。

随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。

它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。

中国最早的马路红绿灯,是于1928年出现在上海的英租界。

三、单片机简介3.1 单片机的发展历程单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

在MCS-51系列单片机中,有两个子系列:51子系列和52子系列。

每个子系列有诺干中型号。

51系列有8051、8751和8031三个型号,后来经过改进产生了80c51、87c51、80c31三个型号;52系列有5021、8752、8032三个型号,改进后的型号是80c52/87c52、80c32。

改进后的型号更加省电。

52系列比对应的51系列增加了定时器T2并将内部程序存贮器增加到8KB。

Inter公司停止生产MCS-51系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与Mcs-51兼容的单片机。

现在生产mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。

我们现在使用比较的多的是AT89C51/AT89s51等。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗3.2 单片机的特点:(1)性价比高,开发周期短,易于产品化,(2)集成度高,可靠性好,抗干扰性强,(3)功能完善,接口多样,(4)低功耗、低电压一般电源供电电压在5~3V范围内单片机都能正常工作,供电的下限可达1~2V。

(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。

外部总线增加了I2C及SPI等串行总线方式, 可根据需要进行并行或者串行扩展。

3.3 AT89C52单片机简介AT89C52是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2052是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,AT89C2052是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路四、设计基本要求和步骤十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

4.1 基本要求本系统需要采用MSC-51系列单片机AT89C52作为中心器件来设计交通灯控制器,实现以下功能:1.初始东西绿灯亮,南北红灯亮,东西方向通车。

2.延时27s,东西路口绿灯熄灭,黄灯闪烁3次。

3.黄灯闪烁后,东西路口红灯亮同时南北路口绿灯亮,南北方向开始通车。

4.延时27s,南北方向绿灯灭,黄灯闪烁3次,然后又切换成东西方向通车,如此重复。

5.当发生交通意外(中断产生)时,全部亮红灯,进行交通事故的处理。

当事故处理完毕(再次按中断键),重新按上述方式工作。

6.当南北路口的流量大时,可以增加南北路口亮绿灯的时间,当东西路口的流量大时,可以增加东西路口亮绿灯的时间,结束后调回正常状态。

4.2 设计步骤1.利用Proteus 7.5 SP3仿真软件按下列要求绘制仿真实例✧用4个共阳极LED数码管的分别表示东、西、南、北四个方向路口,以数码管的上、中、下3个横段分别代表红、黄、绿3盏灯✧用P0、P1口分别输出控制模拟交通灯的状态显示的数码管和倒计时显示数码管的状态码✧P3^1、P3^2、P3^4~~~P3^7控制数码管的位选✧P2^0~~~P2^4接收中断信号并反馈给INT0接口进行中断处理2.按照基本要求编制程序实现相应功能。

五、硬件和软件设计5.1 硬件电路图硬件电路图通过Proteus 7.5 SP3仿真之后如图1所示,其中:按钮K0连接P2^0端口实现红灯全亮,处理交通意外按钮K1连接P2^1端口实现南北方向亮灯时间+1s 按钮K2连接P2^2端口实现南北方向亮灯时间-1s 按钮K3连接P2^3端口实现东西方向亮灯时间+1s 按钮K4连接P2^4端口实现东西方向亮灯时间-1s 整体实验连接电路如下图所示:图1 整体连接电路图5.2 程序流程图5.3 P0、P1口显示状态编码表5.4 程序源代码#include<reg52.h>#define uchar unsigned charuchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar code b[4]={0x0d,0x0e,0x07,0x0b}; //P2口低有效uchar code c[4]={0x6a,0x66,0x5c,0x3c}; //P1口低电平有效char SN=35,WE=40; //SN表示南北方向主干道WE表示东西方向支干到char SN_G=35,WE_G=20,Y=5; //sn——g表示南北方向的绿灯we——g表示东西方向的绿灯uchar i,k=0,count=0;void delay(uchar t);void light();void led();void ledthrough();void leddrive();sbit K0=P3^7; //开关KOsbit K1=P3^6; //开关K1sbit K2=P3^3; //开关K2sbit K3=P3^5; //开关K3sbit K4=P3^2; //开关K4/*******程序初始化**********/void init(void){TMOD=0X01; //计数器模式1 为16位计数器TH1=(65536-50000)/256;TL1=(65536-50000)%256; //用时50msIT0=1; //外部中断为低电平触发ET0=1; //允许T0中断TR0=1; //启动计数器EA=1; //总中断EX0=1; //允许外部中断0EX1=1; //允许外部中断1}/*******中断0处理程序*****/void int0(void) interrupt 0{EA=0; //关闭总中断P1=0x6c; //东西南北方向为红灯TR0=!TR0; //计数器停止工作for(; ;) //无条件循环{ledthrough(); //调用通行时间显示函数if(K0==0) //设置南北通行时间{delay(10);if(K0==0){while(!K0) //当松手时跳出循环执行后面程序{ledthrough(); //调用通行时间显示函数}SN_G++; //南北方向绿灯时间+1if((SN_G+Y)==100) //南北通行时间100msSN_G=1; //时间归1}}if(K1==0) //设置东西方向通行时间{delay(10);if(K1==0){while(!K1) //当松手时跳出循环执行后面程序{ledthrough(); //调用通行时间显示函数}WE_G++; //东西时间+1if((WE_G+Y)==100)WE_G=1; //时间归1}}if(K3==0) //返回{delay(10);if(K3==0){while(!K3) //当松手时跳出循环执行后面程序{ledthrough(); //调用通行时间显示函数}TR0=!TR0; //启动计数器EA=1; //开总中断break; //跳出}}}}/*****中断1处理程序********/void int1(void) interrupt 2{P1=0X6C,P0=a[0]; //东西南北都为红灯EA=0; //TR0=!TR0; //计数器停止工作for(;;){leddrive(); //数码管驱动程序if(K3==0){delay(10);if(K3==0) //返回{while(!K3){leddrive(); //数码管驱动程序}EA=1;TR0=!TR0; //启动定时器break;}}}}/******键盘程序*******/void key(){if(K0==0){delay(10);if(K0==0){while(!K0){light(); //调用交通灯函数led(); //调用数码管函数}count=0; //清零k=0; //南北方向通车东西方向不通车SN=SN_G, WE=SN_G+Y; //南北显示时间为绿灯时间东西方向显示时间为南北绿灯通行时间加黄灯闪亮时间}}if(K1==0) //南北无车而东西有车{delay(10);if(K1==0){while(!K1){light();led();}count=0;k=2; //南北不通车东西通车SN=WE_G+Y,WE=WE_G; //南北显示时间为东西绿灯通行时间+黄灯闪亮时间东西方向显示时间为其绿灯时间}}}/********定时函数*********/void time1(void) interrupt 1{TH0=0X3C;TL0=0XB0;count++;if(count>=20){SN--;WE--;count=0;if(SN==0||WE==0){k++;if(k>3) //当k》3执行程序k=0;switch(k){case 0: SN=SN_G,WE=SN_G+Y;break;case 1: SN=Y,WE=Y;break;case 2: SN=WE_G+Y,WE=WE_G;break;case 3: SN=Y,WE=Y;break;}}}}/******延时T毫秒*********/void delay(uchar t){uchar i;for(t;t>0;t--){for(i=2000;i>0;i--){}}}/*********交通灯函数*******/void light(){P1=c[k];if(P1==c[1]&&count==0){TH1=(65536-50000)/256;TL1=(65536-50000)%256;P1=0X6E;}elseif(P1==c[3]&&count==0){TH1=(65536-50000)/256;TL1=(65536-50000)%256;P1=0X7c;}}void led(){P2=b[0],P0=a[SN%10];delay(5);P2=b[1],P0=a[SN/10];delay(5);P2=b[2],P0=a[WE%10];delay(5);P2=b[3],P0=a[WE/10];delay(5);}/******通行时间显示函数*********/void ledthrough(){P2=b[0],P0=a[(SN_G+Y)%10];delay(5);P2=b[1],P0=a[(SN_G+Y)/10];delay(5);P2=b[2],P0=a[(WE_G+Y)%10];delay(5);P2=b[3],P0=a[(WE_G+Y)/10];delay(5);}/*****数码管驱动函数********/void leddrive(){P2=b[0];delay(5);P2=b[1];delay(5);P2=b[2];delay(5);P2=b[3];delay(5);}/********主函数********/void main(void){init();for(;;){key();light();led();}}5.5 程序运行效果图图2 正常状态图3 黄灯状态图4 紧急状态六、心得体会通过这次交通灯的课程设计,使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。

相关文档
最新文档