基于单片机的智能交通红绿灯控制系统设计
基于单片机的智能交通灯控制器设计

基于单片机的智能交通灯控制器设计一、本文概述随着城市化进程的加快,交通拥堵问题日益严重,智能交通系统的应用与发展成为解决这一问题的关键。
其中,智能交通灯控制器作为交通系统的重要组成部分,对于提高道路通行效率、保障行车安全具有重要意义。
本文旨在设计一种基于单片机的智能交通灯控制器,通过优化算法和硬件设计,实现交通灯的智能控制,以适应不同交通场景的需求,提升城市交通的整体运行效率。
本文将首先介绍智能交通灯控制器的研究背景和意义,阐述现有交通灯控制系统的不足和改进的必要性。
接着,文章将详细介绍基于单片机的智能交通灯控制器的设计方案,包括硬件电路的设计、控制算法的选择与优化等方面。
在此基础上,本文将探讨如何通过软件编程实现交通灯的智能控制,并讨论如何在实际应用中调试和优化系统性能。
文章将总结研究成果,展望智能交通灯控制器在未来的发展方向和应用前景。
通过本文的研究,旨在为城市交通管理提供一种新的智能化解决方案,为缓解交通拥堵、提高道路通行效率提供有力支持。
本文的研究也有助于推动单片机技术和智能交通系统的发展,为相关领域的研究和实践提供有益的参考和借鉴。
二、单片机技术概述单片机,即单片微型计算机(Single-Chip Microcomputer),是一种集成电路芯片,它采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O 口和中断系统、定时器/计时器等功能集成到一块硅片上,构成一个小而完善的微型计算机系统。
单片机以其体积小、功能强、成本低、可靠性高、应用广泛等特点,广泛应用于工业控制、智能仪表、家用电器、医疗设备、航空航天、军事装备等领域。
单片机作为智能交通灯控制器的核心部件,具有不可替代的重要作用。
它负责接收来自传感器的交通信号输入,根据预设的交通规则和算法,快速作出判断,并输出相应的控制信号,以驱动交通信号灯的亮灭和变化,从而实现交通流量的有序控制和疏导。
基于单片机的交通信号灯控制系统设计完整版

基于单⽚机的交通信号灯控制系统设计完整版⽬录中⽂摘要 (Ⅰ)1. 引⾔ (1)2. 设计任务及思路 (1)3. 单⽚机 (3)3.1 单⽚机简介 (3)3.2 单⽚机基本结构 (3)3.3 单⽚机硬件特性 (3)4. 芯⽚的选择 (4)4.1 74LS373以及74LS07芯⽚简介 (4)4.2 8255芯⽚ (5)4.2.1 8255可编程并⾏接⼝芯⽚简介 (5)4.2.2 8255可编程并⾏接⼝芯⽚⽅式控制字格式说明 (5)4.3 晶闸管 (7)5. 交通灯控制原理分析及⽅案论证 (8)6. 系统硬件设计 (9)6.1 总体设计 (9)6.2 单⽚机最⼩系统 (9)6.2.1 振荡电路 (9)6.2.2 复位电路 (10)6.3 显⽰及其驱动模块 (11)6.3.1 键盘与状态显⽰功能 (11)6.3.2 倒计时计数功能 (11)7. 系统软件设计 (12)7.1 延时程序设计 (12)7.1.1 计数器硬件延时 (12)7.1.2 软件延时 (13)7.2 时间及信号灯的显⽰ (14)7.2.1 8031并⾏⼝的扩展 (14)122.设计任务及思路设计⼀个能够控制⼗⼆盏交通信号灯的模拟系统。
通过交通信号灯控制系统的设计。
系统⼯作受开关控制,起动开关 ON 则系统⼯作;起动开关 OFF 则系统停⽌⼯作。
控制对象如下:东西⽅向红灯两个 , 南北⽅向红灯两个,东西⽅向黄灯两个 , 南北⽅向黄灯两个,东西⽅向绿灯两个 , 南北⽅向绿灯两个,图1⼗字路⼝东西⽅向和南北⽅向各装有直⾏(包括右拐弯)控制红、黄、绿交通信号灯(如图1所⽰)。
还有倒计时显⽰器,显⽰器⽤于显⽰相应⽅向直⾏控制当前点亮信号灯还要持续的时间(即剩余时间)。
系统中有两个按钮-启动和停⽌,启动按钮按下后信号灯系统开始⼯作,并周⽽复始地循环;停⽌按钮按下,所有信号灯都熄灭。
信号灯的控制规律如表1所⽰。
即系统启动后,东西⽅向先绿灯亮25s ,然后绿灯闪烁3s,最后黄灯亮2s ,与此同时南北⽅向红灯亮30s 。
基于单片机的交通信号灯的控制系统设计

基于单片机的交通信号灯的控制系统设计交通信号灯是城市交通管理中非常重要的一部分,它通过灯光信号来指示道路上车辆和行人的行动。
基于单片机的交通信号灯控制系统可以实现对交通信号的自动控制,并能根据实际交通情况和时间变化进行灵活调整,提高道路交通的效率和安全性。
1.系统设计需求分析:
-实现红、黄、绿三种信号灯的循环显示,时间可设定;
-根据实际交通情况和时间变化,动态调整红、黄、绿三种信号灯的显示时间;
-配备感应器,检测行人和车辆的存在,根据情况自动调整信号灯时间。
2.系统硬件设计:
-选择合适的单片机,如AT89C52;
-使用LED灯作为信号灯显示器件;
-选择适当的传感器,如红外传感器用于检测行人,光敏电阻用于检测车辆;
-选择适当的电路板进行连接。
3.系统软件设计:
-编写单片机的控制程序,实现红、黄、绿三种信号灯的循环显示;
-设定初始的信号灯显示时间;
-利用定时器和中断控制程序,实现对信号灯显示时间的控制,可以根据设定的时间进行调整;
-设定感应器的检测程序,当检测到行人或车辆时,调整信号灯显示时间。
4.系统工作流程:
(1)初始化系统,设定初始的信号灯显示时间;
(2)通过定时器和中断控制程序实现循环显示红绿黄信号灯;
(3)检测行人和车辆的存在,根据情况调整信号灯显示时间;
(4)循环执行步骤2和步骤3,实现自动控制交通信号灯。
5.系统优化方案:
-根据实际交通数据和研究结果,优化信号灯显示时间;
-利用流量监测技术,实时监测道路交通情况,进一步优化信号灯的控制策略;
-可以加入数据通信模块,将采集到的交通数据上传到中央交通管理系统,实现更智能化的交通信号灯控制。
基于单片机的交通信号灯控制系统设计

基于单片机的交通信号灯控制系统设计交通信号灯控制系统是城市交通管理中必不可少的一个重要元素,通过对车辆行驶状态的监测,协调红绿灯信号,来确保道路交通的流畅和安全。
本文将介绍一种基于单片机的交通信号灯控制系统设计方案。
1. 系统功能描述该交通信号灯控制系统的主要功能是控制红绿灯信号的循环变换,保证各个车辆道路的交通流畅。
同时,系统具备故障检测和自适应调整的功能,当出现交通拥堵状况时,系统能够自动调整信号灯的时间,实现道路交通的快速畅通。
2. 系统设计框架此系统主要分为硬件系统和软件系统两部分。
硬件系统主要由单片机、红绿灯、电源、车辆检测器等部分组成。
其中,单片机作为系统的核心部分,主要实现了信号灯的周期控制和车辆检测。
软件系统主要由整合了单片机编程语言和相关算法所组成。
系统中的单片机程序主要完成红绿灯变换和车辆检测等功能,还会实现一些复杂的算法,如故障检测和自适应调整等。
3. 系统设计过程基于单片机的交通信号灯控制系统设计主要分为以下几个方面。
1) 系统需求分析:针对不同的交通场景,分析交通信号灯的需要,确定系统设计的需求。
2) 硬件选型:根据系统的需求,选择单片机、传感器、红绿灯等硬件设备。
3) 软件设计:在单片机上设计系统软件,实现各个部分的功能。
如控制红绿灯变换,实现车辆检测器的功能等。
4) 系统测试:对系统进行全面测试,验证其性能和功能是否满足设计要求。
5) 发布与维护:发布系统,并在运营过程中不断优化和维护。
4. 系统实现效果基于单片机的交通信号灯控制系统设计方案,通过软硬件体系的配合,能够高效准确地控制红绿灯信号的变换,有效降低交通拥堵,提高交通运行效率。
同时,该系统具备自适应调整和故障检测等功能,能够根据实际交通情况快速调整相应的红绿灯信号,确保道路交通的畅通和安全。
综上所述,基于单片机的交通信号灯控制系统设计,是一种高效实用的解决方案。
其系统感知性强,性能稳定可靠,可广泛应用于城市和道路交通的管理中,促进交通资源的有效分配,在实现城市交通快速、高效、安全运行的同时,也为市民提供了更好的出行环境。
基于单片机的智能交通红绿灯控制系统设计

基于单片机的智能交通红绿灯控制系统设计智能交通红绿灯控制系统是一种基于单片机的电子设备,用于智能化控制交通信号灯的工作。
本文将详细介绍如何设计一套基于单片机的智能交通红绿灯控制系统。
首先,我们需要选择适合的单片机作为控制器。
在选择单片机时,我们需要考虑其功能、性能和价格等因素。
一些常用的单片机型号有8051、AVR、PIC等。
我们可以根据具体的需求选择合适的单片机型号。
接下来,我们需要设计硬件电路。
智能交通红绿灯控制系统的硬件电路主要包括单片机、传感器、继电器和LED等组件。
传感器可以用来感知交通流量和车辆信息,继电器用于控制交通灯的开关,LED用于显示交通灯的状态。
在硬件设计中,我们需要将传感器与单片机相连接,以便将传感器获取的信息传输给单片机。
同时,我们还需要将单片机的控制信号传输给继电器和LED,以实现对交通灯的控制。
在软件设计中,我们需要编写相应的程序代码来实现智能交通红绿灯的控制逻辑。
首先,我们需要对传感器获取的信息进行处理,根据交通流量和车辆信息来确定交通灯的状态和切换规则。
例如,当交通流量较大时,可以延长绿灯亮起的时间;当有车辆等待时,可以提前切换到红灯。
此外,我们还可以在程序中添加自适应控制算法,用于根据交通流量动态调整交通灯的周期和切换时间,以进一步提高交通流量的效率和道路通行能力。
最后,我们需要将程序代码烧录到单片机中,并进行调试和测试。
在测试过程中,我们可以模拟不同的交通流量和车辆信息,以验证智能交通红绿灯控制系统的正常运行和控制效果。
综上所述,基于单片机的智能交通红绿灯控制系统设计主要包括硬件设计和软件设计两个方面。
通过合理的硬件电路设计和程序编写,可以实现对智能交通红绿灯的智能化控制,提高交通流量的效率和道路通行能力,实现交通拥堵的缓解和交通安全的提升。
基于单片机的交通信号灯的控制系统设计

基于单片机的交通信号灯的控制系统设计交通信号灯的控制系统是指利用单片机控制交通信号灯的运行和切换。
通过合理的控制,交通信号灯可以按照设定的时序规律切换颜色,以指示交通参与者应该如何行动,从而保证交通的有序进行。
本文将详细介绍基于单片机的交通信号灯控制系统的设计。
首先,我们需要选择适合的单片机。
常用的单片机如8051、AVR、PIC等,均具有较高的集成度和低功耗特性。
我们可以根据项目要求选择合适的单片机。
在本系统中,我们选择了PIC单片机。
接下来,我们需要设计电路。
首先,我们需要一个交通信号灯,包括红、黄、绿三种颜色的LED灯。
为了控制LED的亮灭,我们需要使用适当的电阻限制电流,以及合适的电平转换电路将单片机的输出电压转换为适合LED的电压。
此外,我们还需要设置一个可调电阻来控制LED灯的亮度。
为了保证电路的稳定性和安全性,我们还需要添加适当的过流保护电路和过压保护电路。
然后,我们需要设计程序逻辑。
首先,我们需要定义交通信号灯的状态和时间参数。
交通信号灯的状态一般包括红、黄、绿三个状态,分别对应停止、准备和行进。
时间参数则包括每个状态的持续时间。
根据这些参数,我们可以设计程序逻辑流程,实现交通信号灯状态的切换。
在程序设计中,我们需要使用定时器中断来计时,并根据时间参数切换信号灯状态。
我们还需要使用IO口来控制LED灯的亮灭。
通过编程,我们可以将交通信号灯的切换、亮灭、亮度控制等功能与单片机的硬件结合起来,从而实现交通信号灯的控制。
最后,我们需要进行系统测试和优化。
在测试中,我们可以通过观察LED灯的亮灭、时间参数的调整等来验证系统的正常工作。
如果有需要,我们可以对程序进行优化,以提高系统的稳定性和性能。
综上所述,基于单片机的交通信号灯控制系统设计涉及到硬件电路设计、程序逻辑设计、系统测试和优化等多个方面。
通过合理的设计和控制,我们可以实现交通信号灯的有序运行,为交通参与者提供准确的指引,提高交通的安全性和效率。
单片机控制红绿灯系统方案

单片机控制红绿灯系统方案1.系统硬件设计:-单片机:选用常见的51系列单片机,如AT89C51、STC89C52等,具有较好的性能和稳定性。
-红绿灯模块:选用集成了LED灯和数码管的模块,方便实现红绿灯的亮灭控制,并可通过数码管显示倒计时时间。
-电源模块:为单片机和红绿灯模块提供稳定的电源。
-按钮:设置用于手动切换信号灯状态的按钮。
-电路连接:通过电路连接单片机、红绿灯模块、按钮等硬件模块,并进行相应的引脚连接。
2.系统软件设计:-输入检测:使用单片机的输入引脚,检测按钮按下的信号,并对按钮事件进行中断处理。
-红绿灯控制程序:根据交通信号灯的状态进行控制,如绿灯亮时,红灯、黄灯灭;红灯亮时,绿灯、黄灯灭;黄灯亮时,其他灯均灭。
-倒计时程序:通过单片机的计时器功能实现倒计时功能,控制红绿灯的时间。
-灯光变化显示:根据交通信号灯的状态控制相应的LED灯点亮或熄灭,并通过数码管显示倒计时时间。
-数据保存:通过EEPROM等非易失存储器保存交通灯的灯色状态,以防断电后重启时灯色状态恢复初始值。
3.系统流程设计:-初始化系统:包括初始化单片机、红绿灯模块、按钮等硬件模块,以及设置倒计时时间和初始灯色状态。
-按钮事件处理:当检测到按钮按下时,中断触发相应的按钮事件处理函数,如切换信号灯状态或修改倒计时时间。
-倒计时处理:通过设置计时器的时间间隔来控制倒计时功能,当倒计时时间到达0时,自动切换信号灯状态。
-灯光控制:根据交通灯的状态,通过单片机的输出引脚控制相应的LED灯点亮或熄灭,并通过数码管显示倒计时时间。
-数据保存和恢复:通过EEPROM等非易失存储器保存交通灯的灯色状态,以便断电后系统重启能够恢复到上次的状态。
4.系统功能扩展:-增加红绿灯时间调整功能:通过按钮事件处理函数,实现手动调整红绿灯的时间间隔,以适应交通流量的变化。
-添加外部信号检测功能:通过输入引脚检测外部交通信号灯状态,并根据外部信号优化本系统的红绿灯控制策略。
基于单片机的交通信号灯设计

基于单片机的交通信号灯设计交通信号灯是城市道路交通管理的重要组成部分,通过控制交通信号灯的亮灭顺序,可以有效地调控车辆和行人的通行,保证道路的交通流畅和安全。
本文将介绍基于单片机的交通信号灯设计。
一、设计目标本设计的目标是利用单片机控制交通信号灯的亮灭顺序,并根据交通状况进行动态调控,以提高道路通行效率和安全性。
二、硬件设计硬件设计包括交通信号灯、单片机、红外传感器等。
1.交通信号灯:根据道路情况选择适当的信号灯布局,一般包括红灯、黄灯和绿灯。
2.单片机:选用一款具有较好性能和稳定性的单片机,如STC89C513.红外传感器:用于检测车辆和行人的存在,以及计算通过时间。
三、软件设计软件设计分为信号灯控制程序和调控算法设计。
1.信号灯控制程序:根据信号灯的布局和时序要求,编写程序实现交通信号灯的亮灭控制。
通过单片机的输出口控制灯的状态切换,可以使用各种延时函数来控制各个灯的亮灭时间。
2.调控算法设计:根据交通状况和道路拥堵情况进行调控。
可以通过红外传感器检测车辆和行人的存在与否,并计算通过时间。
根据不同的情况,编写算法来动态调节交通信号灯的亮灭顺序和时间。
例如,当有车辆和行人需要通行时,可以延长绿灯时间;当一些方向车辆较多时,可以调节配时绿灯的时间比例。
四、系统功能设计完成后的交通信号灯系统具备以下功能:1.自动控制:根据预设的时序和调控算法,系统能够自动控制交通信号灯的亮灭。
2.动态调控:根据红外传感器检测到的交通状况和拥堵情况,系统能够动态调控信号灯的亮灭顺序和时间,以提高道路通行效率。
3.人工干预:在需要进行维护或出现特殊情况时,可以通过人机交互界面对信号灯进行手动控制。
4.报警功能:当交通信号灯系统出现故障时,系统能够及时报警,以提醒维修人员进行处理。
五、系统优势与传统的交通信号灯相比1.灵活性更高:通过单片机的程序设计,交通信号灯可以根据交通状况进行动态调控,提高道路通行效率。
2.可靠性更强:采用单片机控制,系统工作稳定可靠,可避免由于传统信号灯老化等原因导致的故障。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1选题背景今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
关键词:AT89C51;7448,LED2方案论证2.1设计任务设计基于单片机的智能交通红绿灯控制系统,要求能通过按键或遥控器设置系统参数,系统运行时,“倒计时等信息”能通过数码管或点阵发光管显示,设计时应考虑交通红绿灯控制的易操作性及智能性。
以单片机的最小系统为基础设计硬件,用汇编语言、或C语言设计软件。
通过本设计可以培养学生分析问题和解决问题的能力,掌握Mcs51单片机的硬件与软件设计方法,从而将学到的理论知识应用于实践中,为将来走向社会奠定良好的基础。
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行,黄灯亮时车辆及行人小心通过。
红灯的设计时间为45秒,绿灯为40秒,黄灯为5秒。
2.2 方案介绍方案1设计思想:采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。
方案2 设计思想:由两个传感器监视南北方向即A道与东西方向即B道的车辆来往情况,设开关K=1为有车通过,K=0为没有车通过。
则有以下四种情况:Ka=1时:Kb=0,表示A有车B没有车,则仅通行B道:Kb=1,表示A有车B有车,则优先通行A道;Ka=0时:Kb=0表示A没有车B也没有车,同样优先通行A道;Kb=1表示A没有车B有车,则仅通行B道。
方案比较:方案1用了模块设计,而方案2采用逻辑设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。
2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。
我们最终的设计应该尽量使用模块化设计。
对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。
我们最终的设计应该尽量使用模块化设计。
对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。
3 交通灯系统硬件设计3.1 单片机概述单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。
单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。
通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
3.2 系统构成电路板一块,AT89S51单片机一片,7448芯片2片,七段数码管八个。
发光二极管20个(8个绿的,8个红的,4个黄的用于交通控制),100欧姆电阻20个,2个按键,2个开关,51K欧姆电阻2个,5V 稳定电源1个,3个电容2个单刀单掷开关等。
系统结构框图:图3-1 系统结构框图系统工作流程:(1)程序初始,通过两个传感器来判断南北与东西方向车辆通行情况。
(2) 情况判定后由AT89S51单片机p1口及部分p2口输出二进制信号控制红绿黄灯亮的情况。
(3) 确定那些灯亮后,由对应的七段数码管来进行到计时显示。
由p0口输出来控制七段数码管的显示,而p2口的高四位则用来控制数码管显示时的个位和十位(4)系统是否需要紧急工作状态,而此任务由外部中断来实现。
(5)LED采用5V的直流电来驱动,低电平。
3.3芯片选择与介绍3.3.1 AT89S51芯片选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。
用于实现系统的总的控制。
其主要功能列举如下:1) 为一般控制应用的 8 位单片机2) 晶片内部具有时钟振荡器(传统最高工作频率可至 33MHz)3) 内部程式存储器(ROM)为 4KB4) 内部数据存储器(RAM)为 128B5) 外部程序存储器可扩充至 64KB6) 外部数据存储器可扩充至 64KB7) 32条双向输入输出线,且每条均可以单独做 I/O 的控制8) 6 个中断向量源9) 2 组独立的 16 位定时器10) 1 个全双工串行通信端口11) 8751 及 8752 单芯片具有数据保密的功能12) 单芯片提供位逻辑运算指令图3-1 AT89C51芯片3.3.2 7448芯片介绍7448七段显示译码器输出高电平有效,用以驱动共阴极显示器。
该集成显示译码器设有多个辅助控制端,以增强器件的功能,可将单片机输出的四位二进制数转换成10进制数与七段数码管显示对应,用于显示0—9的数字。
图3-2 7448芯片其中LT 为测试输入。
3.3.3 红绿LED信号显示灯及七段数码显示管LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮。
如下图:图3-3红绿LED信号显示灯而七段数码管的显示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上OFEH所以SP上为0伏,不亮其余为TTL高电平,全亮则显示为8。
采用共阴极连接:表3-4 七段数码管的显示显示数值 a b c d e f g dop 驱动代码(16进制)0 1 1 1 1 1 1 1 1 0FCH1 0 0 0 0 0 1 1 0 60H2 1 1 0 1 1 0 1 0 0DAH3 1 1 1 1 0 0 1 0 0F2H4 0 1 1 0 0 1 1 0 66H5 1 0 1 1 0 1 1 0 0B6H6 1 0 1 1 1 1 1 0 0BEH7 1 1 1 0 0 0 0 0 0E0H8 1 1 1 1 1 1 1 0 0FEH9 1 1 1 1 0 1 1 0 0F6H3.3.4交通灯控制线路图图3-5 原理图4 交通灯软件设计4.1 程序设计流程图程序设计框图图4-1 程序设计框图4.2延时的设定延时方法可以有两种一种是利用AT89S51内部定时器的溢出中断来确定1秒的时间,另一种是采用软件延时的方法.实现1ms秒的方法:我们采用在主程序中设定一个初值为0的软件计数器和使T1定时1毫秒相应程序代码:D1MS: MOV R7,#250 ;1MS延时程序DJNZ R7,$RET4.3子程序的实现A道通车情况:START1: MOV TEMP, #25LOOP1: ACALL DELAYDEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START3JNB P1.7,START11CJNE A,#0, NEXT1LJMP START2NEXT1: LJMP LOOP1 START11: MOV TEMP, #65 MOV P1, #0F3HLOOP11: ACALL DELAYDEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START33JNB P1.7,START1CJNE A,#0, NEXT11LJMP START11NEXT11: LJMP LOOP11 START2: MOV P1, #0F5H MOV TEMN,#05LOOP2: ACALL DELAY1DEC TEMNMOV A,TEMNCJNE A, #0,NEXT2LJMP START3NEXT2: LJMP LOOP2B道通车情况:START3: MOV TEMP, #25 MOV P1,#0DEHLOOP3: ACALL DELAYDEC TEMPMOV P0, TEMPJNB P1.6,START1JNB P1.7,START33CJNE A, #0,NEXT3LJMP START4NEXT3: LJMP LOOP3 START33: MOV TEMP, #65 MOV P1,#0DEHLOOP33: ACALL DELAY DEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START11JNB P1.7,START3CJNE A, #0,NEXT33 LJMP START4NEXT33: LJMP LOOP33 START4: MOV P1, #0EEH MOV TEMN,#05LOOP4: ACALL DELAY1中断情况即紧急情况:ORG 0000HTEMP EQU 24HTEMN EQU 25HLJMP MAINORG 0003HLJMP T0_INTORG 0013HLJMP TI_INTT0_INT: MOV A, P1 PUSH ACCMOV P1, #0FFHMOV P1, #0F3HJNB P3.2,$POP ACCMOV P1, ACCRETITI_INT: MOV A, P1 PUSH ACCMOV P1, #0FFHMOV P1, #0DEHMOV P0,#00HJNB P3.3,$POP ACCMOV P1, ARETI5.1仿真图根据对称性选用部分对称元件仿真,图5-1 仿真图5.2.1 编写程序代码程序代码分为几个模块:中断模块,循环模块,延时模块。
原程序实现:ORG 0000HTEMP EQU 24HTEMN EQU 25HLJMP MAINORG 0003HLJMP T0_INTORG 0013HLJMP TI_INTT0_INT: MOV A, P1PUSH ACCMOV P1, #0FFHMOV P1, #0F3HMOV P0, #00HJNB P3.2,$POP ACCMOV P1, ACCRETITI_INT: MOV A, P1PUSH ACCMOV P1, #0FFHMOV P1, #0DEHMOV P0,#00HJNB P3.3,$POP ACCMOV P1, ARETIMAIN: SETB EASETB EX0SETB EX1CLR F0START1: MOV TEMP, #25 MOV P1, #0F3HLOOP1: ACALL DELAYDEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START3JNB P1.7,START11CJNE A,#0, NEXT1LJMP START2NEXT1: LJMP LOOP1 START11: MOV TEMP, #65 MOV P1, #0F3HLOOP11: ACALL DELAYDEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START33JNB P1.7,START1CJNE A,#0, NEXT11LJMP START11NEXT11: LJMP LOOP11 START2: MOV P1, #0F5H MOV TEMN,#05LOOP2: ACALL DELAY1DEC TEMNMOV A,TEMNCJNE A, #0,NEXT2LJMP START3NEXT2: LJMP LOOP2 START3: MOV TEMP, #25 MOV P1,#0DEHLOOP3: ACALL DELAYDEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START1JNB P1.7,START33CJNE A, #0,NEXT3LJMP START4NEXT3: LJMP LOOP3 START33: MOV TEMP, #65 MOV P1,#0DEHLOOP33: ACALL DELAY DEC TEMPMOV A,TEMPMOV P0, TEMPJNB P1.6,START11JNB P1.7,START3CJNE A, #0,NEXT33 LJMP START4NEXT33: LJMP LOOP33 START4: MOV P1, #0EEH MOV TEMN,#05LOOP4: ACALL DELAY1 DEC TEMNMOV A, TEMNCJNE A,#0,NEXT4LJMP START1NEXT4: LJMP LOOP4 RETIDELAY: MOV A,TEMPMOV B, #10DIV ABMOV R5, AMOV R6, BMOV R0, #10L0: MOV R1, #250L1:MOV A,R5MOV P0, AACALL DIMSSETB P2.4MOV A,R6MOV P0,R6CLR P2.5ACALL DIMSSETB P2.5DEC R1DJNZ R1,L1DEC R0DJNZ R0,L0RETIDELAY1: MOV A,TEMN MOV B, #10DIV ABMOV R5, AMOV R6, BMOV R2, #10L2: MOV R3, #250 L3:MOV A,R5MOV P0, ACLR P2.4ACALL DIMSSETB P2.4MOV A,R6MOV P0,R6CLR P2.5ACALL DIMSSETB P2.5DEC R3DJNZ R3,L3DEC R2DJNZ R2,L2RETIMOV A,TEMPMOV B, #10DIV ABMOV R5, AMOV R6, BMOV R0, #10Y0: MOV R1, #250Y1:MOV A,R5MOV P2, ACLR P2.6ACALL DIMSSETB P2.6MOV A,R6MOV P2,R6CLR P2.7ACALL DIMSSETB P2.7DEC R1DJNZ R1,Y1DEC R0DJNZ R0,Y0RETIDIMS: MOV R7,#250DJNZ R7,$RETEND5.2.2 按照系统硬件连线图连接好系统并调试1) 调试程序⑴打开仿真软件,新建文件;⑵选择芯片;⑶新建文档,把编写好代码写入文档并保存了ASM文件;⑷把保存的文档加载到Source Group;⑸编译程序;⑹设置转换成16进制;⑺运行程序的结果;2) 把编写好的16进制文件(jtd.hex) 输入单片机AT89S51仿真器和对其进行初始化。