完整单片机交通灯课程实验资料报告材料

合集下载

单片机交通灯实训报告完整版

单片机交通灯实训报告完整版

课程设计课题名称智能交通信号灯姓名学号班级专业所在系指导教师完成日期智能交通信号灯摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用AT89C52单片机控制的交通灯控制电路。

该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。

交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

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

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

根据给出的要求设计交通灯东西、南北两干道交于一个十字路口各干道有一组红、黄、绿三色的指示灯指挥车辆和行人安全通行。

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

黄灯亮提示人们注意红、绿灯的状态即将切换且黄灯亮的时间为东西、南北两干道的公共停车时间。

关键词:电子线路;AT89C52 ; LED 交通灯。

目录一、绪论 (4)二、总体设计方案 (4)1.设计思路 (4)2.设计目的 (5)3.设计任务和内容 (5)(1)设计任务 (5)4.电源提供方案 (5)5.复位方案 (5)6.输入方案 (5)三、显示界面方案 (6)四、交通管理的方案论证 (7)五、芯片简介 (7)1.AT89S52单片机简介 (7)2.主要性能 (8)3.功能特性描述 (8)六、设计原理分析 (10)1.交通灯显示时序的理论分析与计算 (10)2.交通灯显示时间的理论分析与计算 (12)七、LED数码管显示模块 (13)1.静态显示方式 (13)八、复位电路 (14)九、晶振电路 (15)十、总结与谢词 (15)十一、参考文献 (16)十二、附录 (16)附录1:程序清单 (16)附录2:电路设计图 (18)一、绪论当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告简介本实验通过使用单片机设计并实现一个交通灯控制系统,模拟城市道路上的交通信号灯。

实验过程中,我们通过编程控制不同灯的亮灭状态,实现交通灯的循环变换,以此来模拟车辆和行人的行进。

实验材料•单片机•LED灯•电阻•连线•电源实验过程及结果1. 电路连接首先,我们根据实验需要将单片机和LED灯等材料进行连接。

具体连接方式如下:- 将电阻连接到单片机的IO口上,起到限流的作用。

- 将LED灯连接到电阻的另一端。

- 将单片机通过连线与电源进行连接。

2. 程序设计接下来,我们需要编写程序来实现交通灯的循环变换。

使用C语言编程,通过控制IO口的高低电平来控制LED灯的亮灭状态。

以下是程序的主要逻辑:#include <reg52.h>sbit redLed = P1^0; // 红灯sbit yellowLed = P1^1; // 黄灯sbit greenLed = P1^2; // 绿灯void delay(unsigned int t){while(t--);}void main(){while(1){// 红灯亮,其他灯灭redLed = 0;yellowLed = 1;greenLed = 1;delay(50000);// 红灯亮黄灯亮,绿灯灭redLed = 0;yellowLed = 0;greenLed = 1;delay(20000);// 绿灯亮,其他灯灭redLed = 1;yellowLed = 1;greenLed = 0;delay(50000);// 黄灯亮,其他灯灭redLed = 1;yellowLed = 0;greenLed = 1;delay(20000);}}3. 实验结果与分析通过实验,我们观察到LED灯按照我们设计的程序循环地变换亮灭状态,从而实现了交通灯的模拟效果。

红灯、黄灯、绿灯在规定的时间间隔内依次亮起,并在该时间间隔结束后熄灭。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告一、实验目的二、实验原理三、实验器材四、实验步骤五、实验结果六、实验分析与讨论七、实验总结一、实验目的:本次单片机交通灯实验的主要目的是通过使用单片机控制LED灯的亮灭,模拟交通信号灯的运行状态,并能够正确地掌握单片机编程技巧和硬件连接技术。

二、实验原理:本次交通灯实验采用了单片机作为中央处理器,通过编写程序控制LED灯的亮灭来模拟交通信号灯。

在程序中,我们需要使用到延时函数和条件判断语句。

具体来说,在红绿黄三个LED灯之间切换时,需要设定一个时间段,并在该时间段内循环执行红绿黄三个LED灯亮度变化的循环语句。

三、实验器材:1. 单片机开发板一块;2. LED 灯若干;3. 杜邦线若干。

四、实验步骤:1. 将红色 LED 灯连接至 P0 口;2. 将黄色 LED 灯连接至 P1 口;3. 将绿色 LED 灯连接至 P2 口;4. 将单片机开发板与电脑连接,打开 Keil 软件;5. 编写程序,将红色 LED 灯亮起来;6. 编写程序,将黄色 LED 灯亮起来;7. 编写程序,将绿色 LED 灯亮起来;8. 编写程序,模拟交通信号灯的运行状态。

五、实验结果:在完成了上述步骤后,我们成功地模拟出了交通信号灯的运行状态。

具体来说,在程序中我们设定了一个时间段为10s,在这个时间段内,红灯亮 5s,黄灯亮 2s,绿灯亮 3s。

在这个时间段结束后,循环执行该过程。

六、实验分析与讨论:通过本次交通灯实验,我们学习到了如何使用单片机控制LED灯的亮灭,并能够正确地编写程序模拟交通信号灯的运行状态。

在编写过程中需要注意以下几点:1. 在使用延时函数时要注意时间单位和精度;2. 在编写条件判断语句时要注意逻辑结构和语法规范;3. 在硬件连接时要注意杜邦线的颜色对应关系和插口位置。

七、实验总结:本次单片机交通灯实验是一次非常有意义的实践活动。

通过此次实验,我们掌握了单片机编程技巧和硬件连接技术,并能够正确地模拟交通信号灯的运行状态。

单片机交通灯实验报告(一)

单片机交通灯实验报告(一)

单片机交通灯实验报告(一)引言概述:交通灯是城市交通管理的重要组成部分,通过控制红绿灯的变化,实现车辆和行人的有序通行。

本文将详细介绍单片机交通灯实验的设计与实现,包括硬件设计、程序编写和实验结果分析。

正文:一、硬件设计1. 确定电路所需元件:单片机、LED灯、电阻等。

2. 组装硬件电路:按照电路图进行元件的连接,确保电路的正确连接。

3. 设计适当的电源:为单片机和LED灯提供稳定的电源。

二、程序编写1. 定义程序所需的IO口:确定控制LED灯的IO口。

2. 初始化单片机:设置单片机的工作频率和中断。

3. 设计交通灯的流程控制:根据实际的交通灯变化规律,设计程序的流程控制。

4. 编写交通灯控制的函数:使用if-else语句或switch-case语句编写函数控制交通灯的变化。

5. 调试程序:通过单片机调试工具或仿真软件,检查程序运行的正确与否。

三、实验结果分析1. 观察实验现象:通过实验现场观察交通灯的变化,记录每一种灯亮的时间和顺序。

2. 分析实验结果:根据实验记录,分析交通灯的工作原理和实现的准确性。

3. 比较与设计要求的符合度:将实验结果与设计要求进行比较,评估实验的完成度。

4. 探讨存在问题与改进方向:分析实验中可能存在的问题,并提出改进措施。

四、小结本文介绍了单片机交通灯实验的设计与实现。

通过硬件设计和程序编写,实现了交通灯的变化控制。

通过实验结果分析,我们可以得出实验的有效性和可行性。

当然,实验中也存在一些问题,需要进一步改进。

在后续的实验中,我们将进一步完善交通灯的控制,提高其实际应用的稳定性和可靠性。

总结:本文详细介绍了单片机交通灯实验的设计与实现,包括硬件设计、程序编写和实验结果分析。

通过该实验,我们对交通灯的工作原理和控制方法有了更为深入的了解,并对实验的经验和教训进行了总结。

相信在今后的学习和实践中,我们能够更好地应用单片机技术,为实现交通管理的智能化和高效化作出贡献。

单片机实训报告交通灯

单片机实训报告交通灯

一、实训背景与目的随着城市化进程的加快,交通流量日益增大,传统的交通灯控制系统已经无法满足日益复杂的交通需求。

为了提高交通效率,减少交通拥堵,本实训项目旨在设计并实现一套基于单片机的智能交通灯控制系统。

通过本实训,学生可以深入了解单片机原理,掌握单片机编程与调试技巧,同时锻炼动手实践能力和团队协作精神。

二、系统设计1. 系统组成本系统主要由以下模块组成:单片机模块:采用AT89C52单片机作为核心控制单元,负责接收传感器信号、处理数据、控制交通灯状态等。

传感器模块:包括红外传感器、地磁传感器等,用于检测车辆和行人,实时获取交通信息。

执行模块:包括LED灯、继电器等,用于驱动交通灯和信号灯。

显示模块:采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

电源模块:为系统提供稳定电源。

2. 工作原理系统工作原理如下:(1)单片机初始化,设置各模块参数。

(2)单片机通过传感器模块检测交通情况,如车辆和行人数量。

(3)单片机根据检测到的交通情况,控制交通灯和信号灯的亮灯状态。

(4)LCD显示屏显示交通灯状态和倒计时信息。

(5)当系统检测到紧急情况时,如行人过马路,系统自动切换到紧急模式,确保行人安全。

三、硬件设计1. 单片机模块选用AT89C52单片机作为核心控制单元,具有以下特点:内置8K字节闪存,可存储程序和数据。

内置8位定时器/计数器,可进行定时或计数操作。

内置串行通信接口,可进行数据通信。

2. 传感器模块红外传感器:用于检测车辆和行人,实现自动控制。

地磁传感器:用于检测车辆行驶方向,实现左转和直行控制。

3. 执行模块LED灯:用于显示交通灯状态。

继电器:用于驱动信号灯。

4. 显示模块采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

5. 电源模块采用DC 12V电源,为系统提供稳定电源。

四、软件设计1. 编程语言采用C语言进行编程,具有以下优点:语法简单,易于理解。

可移植性好,可在不同平台上运行。

单片机交通灯实习报告

单片机交通灯实习报告

一、实习背景随着我国城市化进程的加快,城市交通压力日益增大,交通拥堵问题日益突出。

为了提高交通效率,保障交通安全,交通信号灯控制系统的设计与研究显得尤为重要。

本实习项目旨在通过单片机技术,实现对交通灯的智能控制,提高交通路口的通行效率和安全性。

二、实习目的1. 熟悉单片机的基本原理和编程方法;2. 掌握交通信号灯控制系统的设计方法;3. 提高实际动手能力和问题解决能力;4. 培养团队协作精神和创新意识。

三、实习内容1. 硬件设计(1)单片机选型:选用STC89C51单片机作为核心控制器;(2)传感器选型:选用红外传感器检测车辆和行人流量;(3)显示屏选型:选用LCD显示屏显示交通灯状态和时间;(4)交通灯模块:采用LED灯实现红、黄、绿灯的显示;(5)按键模块:采用按键实现功能切换和参数设置。

2. 软件设计(1)系统初始化:单片机上电后,进行系统初始化,包括设置定时器、初始化I/O端口等;(2)数据采集:通过红外传感器采集交通流量数据,并进行处理;(3)数据处理与决策:根据采集到的交通流量数据,结合预设的算法和规则,计算出当前交通灯的信号配时;(4)信号控制:根据计算出的信号配时,控制交通灯的信号状态;(5)人机交互:通过按键实现功能切换和参数设置,并通过LCD显示屏显示交通灯状态和时间。

3. 系统测试与调试(1)硬件测试:检查电路连接是否正确,电源是否稳定,传感器、显示屏、交通灯模块是否正常工作;(2)软件测试:通过编写测试程序,验证系统功能是否满足设计要求;(3)调试:根据测试结果,对系统进行调试,确保系统稳定可靠地运行。

四、实习成果1. 设计并实现了基于单片机的交通信号灯控制系统;2. 系统能够根据实时交通流量自动调整红绿灯的切换时间,提高交通效率;3. 系统具有故障自诊断、手动/自动切换等功能,提高了系统的可靠性和实用性。

五、实习总结通过本次单片机交通灯实习,我掌握了单片机的基本原理和编程方法,熟悉了交通信号灯控制系统的设计方法,提高了实际动手能力和问题解决能力。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告实验目的:1.熟悉单片机的基本工作原理和编程方法。

2.学习如何使用单片机控制交通灯的运行。

3.加深对电子元器件和电路原理的理解和掌握。

实验器材:1.51系列单片机开发板:包括单片机主控板、显示器板、外部扩展板等。

2.LED灯:红色、黄色、绿色各一颗。

3.电阻:用于限流。

4.连接线:用于连接各个电子元器件。

实验原理:在交通中,红灯代表停止、黄灯代表警告、绿灯代表通行。

在本实验中,我们将使用单片机控制三个LED灯实现交通灯的运行。

具体原理如下:1.使用单片机的IO口控制LED灯的亮灭。

2.根据交通灯的运行状态,通过改变LED灯的亮灭顺序来模拟交通的运行。

实验步骤:1.连接电路:将三个LED灯连接到单片机的IO口,并通过电阻限流。

2.编写程序:使用C语言编写程序,在主函数中设置交通灯的运行状态和亮灭顺序。

3.烧写程序:将编写好的程序烧写到单片机中。

4.运行实验:启动单片机,观察LED灯的亮灭情况,验证交通灯是否能正常工作。

实验结果:经过实验,我们成功地实现了单片机交通灯的控制。

在程序运行过程中,红灯先亮,表示停止;然后黄灯亮,表示警告;最后绿灯亮,表示通行。

整个过程循环不断,符合实际交通灯的运行规律。

实验总结:通过这次实验,我深入了解了单片机的基本工作原理和编程方法,掌握了使用单片机控制交通灯的技巧。

同时,我也加深了对电子元器件和电路原理的理解和掌握。

这些知识将对我今后的学习和工作产生积极影响。

然而,在实验过程中也遇到了一些问题。

比如,如果LED灯连接不正确或程序编写有误,交通灯可能无法正常运行。

因此,在进行单片机实验时,我们需要仔细检查电路连接和程序编写,确保一切正常。

总之,单片机交通灯实验是一次充满趣味和挑战的实践活动。

通过这次实验,我不仅学到了许多知识,而且培养了动手能力和实践能力。

希望将来能有更多这样的实验机会,继续提升自己的电子技术水平。

单片机交通灯实验报告(二)2024

单片机交通灯实验报告(二)2024

单片机交通灯实验报告(二)引言概述本报告旨在介绍单片机交通灯实验的进一步研究。

通过对单片机交通灯实验的深入探讨,我们将了解交通信号灯电路的设计原理、控制逻辑以及实际应用的相关知识。

本文将分为五个大点进行阐述,包括:电路设计、控制逻辑编程、硬件连接、功能扩展和实验结果分析。

正文一、电路设计1. 确定交通信号灯的基本电路结构2. 选择适当的电子元件并进行电路布局3. 绘制电路原理图和PCB布局图4. 按照电路设计进行焊接和组装二、控制逻辑编程1. 理解交通信号灯的控制逻辑2. 学习并掌握单片机编程语言3. 根据控制逻辑编写程序代码4. 调试程序的运行,确保交通信号灯按照预期进行切换5. 优化控制逻辑,提高程序效率和稳定性三、硬件连接1. 连接交通信号灯的LED灯及其它电子元件2. 理解并实现灯光的正反相控制3. 使用适当的电阻进行电流限制4. 连接并配置单片机与电路的通信接口5. 建立单片机与计算机之间的连接,方便程序下载与调试四、功能扩展1. 添加电子组件以实现交通信号灯的更多功能2. 尝试不同的交通灯控制算法3. 增加人车辨别传感器以实现智能化控制4. 加入音效与声光提示功能,提高交通信号灯的可视性和可听性5. 设计并实现交通流量的实时监测和统计功能五、实验结果分析1. 对交通信号灯的各项功能进行实验验证2. 分析实验结果,评估系统的性能和稳定性3. 总结实验中遇到的问题和解决方案4. 提出改进交通信号灯设计的建议总结通过本文详细的阐述,我们了解了单片机交通灯实验的电路设计、控制逻辑编程、硬件连接、功能扩展以及实验结果分析等方面的知识。

这些内容不仅对于我们更深入地了解交通信号灯的工作原理和应用具有重要意义,而且为我们开展相关实际项目提供了指导和启示。

希望本报告能够帮助读者更好地理解和应用单片机交通灯实验。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告交通灯是城市交通管理的重要组成部分,它能够规范车辆和行人的通行秩序,保障交通安全。

为了进一步学习交通灯的原理和掌握其设计,我们进行了一次单片机交通灯实验。

本次实验使用单片机和几个LED灯,通过对单片机的编程控制来实现交通灯的自动切换。

下面是我对该实验进行的详细记录和分析。

首先,我们需要连接电路。

我们采用的是STC89C52单片机,使用3个LED灯来模拟红灯、黄灯和绿灯。

利用杜邦线将LED灯连接到单片机的GPIO口,另外还需要连接一个电位器到单片机的模拟口,用来控制红灯亮灭的时间。

接下来,我们进行了单片机的编程。

我们使用C语言编写程序,利用单片机提供的GPIO口控制LED灯的亮灭,从而实现交通灯的控制。

我们通过控制红灯、黄灯和绿灯的亮灭时间,模拟真实交通灯的工作。

在编写程序的过程中,我们首先做了一些准备工作。

我们初始化了单片机的GPIO口,设定了红灯、黄灯和绿灯的引脚。

然后,我们使用一个循环语句不断地进行交通灯的切换。

具体来说,我们将交通灯控制划分为红灯、绿灯和黄灯三个状态,利用if-else语句对不同状态进行判断并进行相应的控制。

通过对红灯亮灭时间的控制,我们能够实现交通灯的自动切换。

在程序设计的过程中,我们还考虑了交通灯的变化时间。

我们在红灯和绿灯之间设置了一个黄灯过渡时间,以模拟真实交通灯的工作。

同时,我们还设置了一个迟滞时间,使得每个状态之间的切换更加顺滑。

通过这次实验,我们进一步了解了交通灯的工作原理和掌握了单片机的编程技巧。

通过对交通灯的模拟,我们成功地实现了交通灯的自动切换。

总结起来,这次实验不仅提高了我们对交通灯的认识,还锻炼了我们的动手能力和创新思维。

在今后的学习和工作中,我们将继续学以致用,将所学的知识应用到实际问题中。

让我们共同努力,为交通安全做出贡献。

单片机交通灯实训报告材料

单片机交通灯实训报告材料

机电工程学院课程设计报告课程名称:单片机课程设计专业班级: 13电本2班学号: **********学生姓名:**指导教师:王清辉、何文丰完成时间:报告成绩:交通灯设计一、设计任务与要求设计基本要求:(1)车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设东西方向通行时间为30秒,当剩余3秒时黄灯亮,南北方向通行时间为20秒,当剩余3秒时黄灯亮。

(2)东西、南北方向各用三个(绿、黄、红)LED表示,并用数码管显示东西、南北方向的剩余时间。

(3)可利用按键修改时间参数,可以利用按键切换东西南北交通灯的当前状态(即立刻东西由红变绿,南北有绿变红,并按设定的时间工作)。

二、方案设计与论证表2-1:交通灯的工作状态表根据表2-1所示可将交通灯的工作状态设为以下几个步骤:1、初始状态时即为东西方向绿灯通行27秒+3秒黄灯,此时南北红灯亮。

2、随后是南北方向绿灯通行17秒+3秒黄灯,此时东西红灯亮。

3、通过按模式选择键一次来切换东西南北交通灯的当前状态。

(通过设置定时计时器T1实现交通灯的计时)4、通过按模式选择键第二次切换至南北方向红绿灯的计时设置,通过加减按键来确定南北方向红绿灯的计时数。

5、确定南北方向计数值后,通过按模式选择键第三次切换至东西方向红绿灯的计时设置,通过加减按键来确定东西方向红绿灯的计时数。

6、确定交通灯计时数后再按下模式选择键后,交通灯便进入工作状态。

时间计时的实现:采用定时中断实现秒的精确计时(详细方案入下列程序设计所示)。

按键输入的实现:通过编写按键读取函数,来实现交通灯的状态以及时间值得设定(详细方案入下列程序设计所示)。

图2-1程序设计流程框图三、硬件电路设计1、倒计时显示该系统要求完成倒计时的功能。

因只需显示数字,基于上述原因,我完全采用数码管显示,四个路口分别采用一个二位共阴极数码管即可。

2、状态灯显示该系统要求完成状态灯显示的功能。

采用红绿黄三种LED灯一个路口只需三个个状态灯,绿灯通行,红灯停止,黄灯闪烁。

单片机交通灯实验报告

单片机交通灯实验报告

引言:随着城市交通的发展,交通灯作为交通管理的重要组成部分,起着至关重要的作用。

为了研究和实践交通灯的基本原理和实现方法,本文进行了单片机交通灯实验。

本实验通过使用单片机来模拟和控制交通灯的运行,以实现交通流畅和安全。

概述:交通灯是城市交通管理的重要组成部分,通过控制交通灯的信号变化,可以实现不同车辆和行人的交通流畅和安全。

单片机作为实验的控制器,可编程控制交通灯的运行,增强交通流畅性。

正文:一、单片机交通灯实验的背景和意义1.单片机交通灯实验的背景交通灯在城市交通管理中具有重要的地位和作用,通过控制交通灯的信号变化,可以实现车辆和行人的有序通行。

单片机交通灯实验为进一步研究交通灯原理和实现方式提供了实践基础。

2.单片机交通灯实验的意义单片机交通灯实验可以帮助学生理解并掌握交通灯的基本原理和控制方式,培养学生的创新思维和动手能力,并为进一步研究和改进交通灯系统提供参考。

二、单片机交通灯实验的设计和实施1.设计交通灯的硬件结构a.硬件元件选择和连接方式b.单片机选择和编程2.实施交通灯的控制逻辑和操作a.基本的交通灯控制逻辑b.交通灯的运行和状态转换三、单片机交通灯实验的分析和评价1.对交通流畅性的影响分析a.不同信号时间间隔对交通流量的影响b.交通灯控制方式对交通流畅性的影响2.对交通安全性的评价a.不同交通灯参数对交通安全的影响b.交通灯设施对行人安全的影响3.对实验结果的分析和总结a.实验数据的收集和处理b.结果的呈现和解释四、单片机交通灯实验的改进和优化方向1.优化交通灯的控制算法a.基于流量的自适应控制算法b.基于信号的智能预测算法2.改进交通灯的硬件设计a.使用更高效的电子元件和材料b.结合无线通信技术和传感器技术进行实时监测和控制五、单片机交通灯实验的应用和展望1.在城市交通管理中的应用前景a.提高交通流畅性和安全性的需求b.单片机交通灯技术的潜在优势2.可能的进一步研究方向a.基于互联网的智能化交通灯系统b.基于算法的全自动交通控制系统总结:通过本次单片机交通灯实验,我们对交通灯的原理和实现方法有了更深入的了解。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告单片机交通灯实验报告引言:交通灯作为城市交通管理的重要组成部分,对于保障道路交通的安全和顺畅起着至关重要的作用。

为了更好地了解交通灯的工作原理和控制方法,我们进行了单片机交通灯的实验。

一、实验目的本实验旨在通过使用单片机来控制交通灯的变化,探索交通灯的工作原理,并了解单片机在交通灯控制中的应用。

二、实验材料1. 单片机开发板2. 交通灯模块3. 连接线4. 电源适配器三、实验过程1. 将单片机开发板与电源适配器连接,并接通电源。

2. 将交通灯模块与单片机开发板连接,确保连接线的正确性。

3. 编写单片机程序,实现交通灯的控制逻辑。

4. 将程序烧录到单片机开发板中。

5. 通过操作单片机开发板上的按键,观察交通灯的变化。

四、实验结果通过实验,我们成功地实现了交通灯的控制。

在程序的控制下,交通灯按照规定的时间间隔进行变化,保证了道路交通的安全和顺畅。

五、实验分析1. 单片机控制交通灯的好处通过使用单片机来控制交通灯,可以实现精确的时间控制,避免了传统机械控制方式中可能存在的误差。

同时,单片机还可以根据实际情况进行自适应调整,提高了交通灯的灵活性和响应速度。

2. 单片机程序的设计在本次实验中,我们编写了一段简单的单片机程序来控制交通灯的变化。

该程序通过设定不同的时间间隔来控制红、黄、绿三种灯的亮灭,实现了交通灯的正常工作。

在实际应用中,我们可以根据道路情况和交通流量的变化来调整程序,以达到最佳的交通管理效果。

3. 单片机在交通灯控制中的应用前景随着城市交通的不断发展和智能化水平的提高,单片机在交通灯控制中的应用前景十分广阔。

通过使用单片机,可以实现交通灯的智能控制,根据实时的交通流量和道路情况进行调整,提高交通效率和安全性。

同时,单片机还可以与其他交通管理系统进行联动,实现更加智能化的交通管理。

六、实验总结通过本次实验,我们深入了解了交通灯的工作原理和控制方法,并成功地使用单片机实现了交通灯的控制。

单片机实验报告 交通灯-14页精选文档

单片机实验报告 交通灯-14页精选文档

实验四交通灯实验一、实验目的1)按键、数码管、发光二极管综合应用编程技术2)定时中断技术3)按键中断技术二、实验实现的功能1)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。

2)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。

再按该键,恢复正常显示。

三、系统硬件设计四、系统软件设计说明:1、红绿灯规则:绿变红时:绿灯亮→绿灯闪→绿灯灭黄灯亮→黄灯灭红灯亮;红变绿时:红灯亮→红灯黄灯同时亮→红灯黄灯同时灭绿灯亮;2、左边数1、2位数码管计左右灯时间,3、4位计上下灯时间;3、1键按下时进入设置红灯时间模式,同时计时停止;再次按下进入绿灯设置模式;再次按下退出设置模式,同时继续计时。

设置模式时2 键选中灯加,3键选中灯减。

4、按键4进入和退出紧急模式P1M1 EQU 91HP1M0 EQU 92HDX1 DATA 30H ;数码管个位显示DX2 DATA 31H ;数码管十位显示NB1 DATA 32H ;数码管百位显示NB2 DATA 33H ;数码管千位显示RE DATA 34H ;红灯亮时间,单位为秒GR DATA 35H ;绿灯亮时间,单位为秒YE DATA 36H ;黄灯亮时间,单位为秒NUM1 DATA 37H ;计算东西向亮灯时间参数NUM2 DATA 38H ;计算南北向亮灯时间参数DELAY_1 DATA 39H ;延时参数DELAY_2 DATA 40H ;延时参数KF1 DATA 41H ;按键标志位KF2 DATA 42H ;按键标志位KF3 DATA 43H ;按键标志位KF4 DATA 44H ;按键标志位ORG 0000HLJMP 0030HORG 001BH ;定时器1定时中断,记秒LJMP INTR0ORG 0030HMOV P1M1,#00000000BMOV P1M0,#11111111BMOV SP,#060H ;设置堆栈指针MOV RE,#025 ;红灯亮时间默认值25SMOV GR,#020 ;绿灯亮时间默认值20SMOV YE,#005 ;黄灯亮时间默认值5SMOV R1,#000 ;设置时间时暂停红绿灯MOV R2,#000 ;保存键值MOV R7,#000 ;记中断次数,R7=100为1秒MOV KF1,#000 ;初始化相关参数MOV KF2,#000MOV KF3,#000MOV KF4,#000MOV TMOD,#10H ;定时器初始化MOV TH1,#0D8H ;定时时间10msMOV TL1,#0F0HSETB ET1SETB TR1SETB EA ;开启总中断MAIN: LCALL LIGHT ;主程序/*********************************************************按键逻辑*********************************************************** *********/KY: MOV R1,#001 ;暂停计时CJNE R2,#000,KY0LJMP KY15KY0: CJNE R2,#004,KY1 ;紧急按键MOV R2,#000KY00: LCALL DP1 ;应急模式LCALL DP2LCALL LIGHT7CJNE R2,#004,KY00MOV R2,#000LJMP KY15AJMP KY00KY1: CJNE R2,#001,KY15 ;进入设置模式MOV R2,#000KY10: MOV NUM2,RELCALL COUNT2LCALL DP3LCALL LIGHT7CJNE R2,#001,KY11MOV R2,#000LJMP KY20KY11: CJNE R2,#002,KY12 ;红灯加MOV R2,#000INC REMOV A,RECJNE A,#100,KY12MOV RE,#000KY12: CJNE R2,#003,KY14 ;红灯减MOV R2,#000MOV A,RECJNE A,#000,KY13MOV RE,#099LJMP KY14KY13: DEC REKY14: AJMP KY10KY15: MOV R1,#000RETKY20: MOV NUM2,GR ;退出设置LCALL COUNT2LCALL DP3LCALL LIGHT8CJNE R2,#001,KY21MOV R2,#000LJMP KY3KY21: CJNE R2,#002,KY22 ;绿灯加MOV R2,#000INC GRMOV A,GRCJNE A,#100,KY22MOV GR,#000KY22: CJNE R2,#003,KY24 ;绿灯减MOV R2,#000MOV A,GRCJNE A,#000,KY23MOV GR,#099LJMP KY24KY23: DEC GRKY24: AJMP KY20KY3: MOV A,RE ;利用CJNE指令对CY位的影响来比较大小CJNE A,GR,KY31 ;处理最终设置结果AJMP BIGKY31: JC BIGAJMP SMALLSMALL: MOV A,RESUBB A,GRMOV YE,AAJMP KY4BIG: LJMP KY10 ;当绿灯时间小于等于红灯时间时重新设置KY4: MOV R1,#000RET/*******************************************************按键扫描及确定******************************************************* *********/KS: LCALL KS1LCALL KS2LCALL KS3LCALL KS4RETKS1: MOV A,KF1CJNE A,#001,KS12 ;按键标志位消抖SETB P0.5SETB P3.7JB P0.5,KS13MOV R2,#001MOV KF1,#000AJMP KS13KS12: SETB P0.5CLR P3.6SETB P3.7JNB P0.5,KS13MOV KF1,#001KS13: RETKS2: MOV A,KF2CJNE A,#001,KS22 ;按键标志位消抖SETB P0.6CLR P3.6SETB P3.7JB P0.6,KS23MOV R2,#002MOV KF2,#000AJMP KS23KS22: SETB P0.6CLR P3.6SETB P3.7JNB P0.6,KS23MOV KF2,#001KS23: RETKS3: MOV A,KF3CJNE A,#001,KS32 ;按键标志位消抖SETB P0.7CLR P3.6SETB P3.7JB P0.7,KS33MOV R2,#003MOV KF3,#000AJMP KS13KS32: SETB P0.7CLR P3.6JNB P0.7,KS33MOV KF3,#001KS33: RETKS4: MOV A,KF4CJNE A,#001,KS42 ;按键标志位消抖SETB P0.5CLR P3.7SETB P3.6JB P0.5,KS43MOV R2,#004MOV KF4,#000AJMP KS43KS42: SETB P0.5CLR P3.7SETB P3.6JNB P0.5,KS43MOV KF4,#001KS43: RET/**********************************************************红绿灯亮灯规则***************************************************** ********//*绿变红时:绿灯亮→绿灯闪→绿灯灭黄灯亮→黄灯灭红灯亮;红变绿时:红灯亮→红灯黄灯同时亮→红灯黄灯同时灭绿灯亮*/ LIGHT:LOOP0: MOV R5,GR ;东西向绿灯亮MOV R6,GRMOV R3,RE ;南北向红灯亮MOV R4,REMOV R0,YE ;保存原黄灯时间LOOP01: LCALL KYMOV NUM1,R6MOV NUM2,R4LCALL COUNT1LCALL COUNT2LCALL LIGHT1LCALL DP1LCALL DP2MOV A,R0XRL A,R6JNZ LOOP01LJMP LOOP1LOOP1: LCALL KYMOV NUM1,R6MOV NUM2,R4LCALL COUNT1 ;东西向绿灯闪,南北向红灯亮LCALL COUNT2LCALL LIGHT2LCALL DP1LCALL DP2MOV A,R0DEC AXRL A,R4JNZ LOOP1LJMP LOOP2LOOP2: MOV A,R0MOV R5,A ;东西向黄灯亮MOV R6,A ;南北向红黄灯亮MOV R3,#099MOV R4,#099LOOP21: LCALL KYMOV NUM1,R6MOV NUM2,R6LCALL COUNT1LCALL COUNT2LCALL LIGHT3LCALL DP1LCALL DP2MOV A,#099SUBB A,R0DEC AXRL A,R4JNZ LOOP21LJMP LOOP3LOOP3: MOV R5,RE ;东西向红灯亮MOV R6,REMOV R3,GR ;南北向绿灯亮MOV R4,GRMOV R0,YE ;保存原黄灯时间LOOP31: LCALL KYMOV NUM1,R6MOV NUM2,R4LCALL COUNT1LCALL COUNT2LCALL LIGHT4LCALL DP1LCALL DP2MOV A,R0XRL A,R4JNZ LOOP31LJMP LOOP4LOOP4: LCALL KYMOV NUM1,R6MOV NUM2,R4LCALL COUNT1 ;东西向绿灯闪,南北向红灯亮LCALL COUNT2LCALL LIGHT5LCALL DP1LCALL DP2MOV A,R0DEC AXRL A,R6JNZ LOOP4LJMP LOOP5LOOP5: MOV A,R0MOV R5,A ;东西向红黄灯亮MOV R6,A ;南北向黄灯亮MOV R3,#099MOV R4,#099LOOP51: LCALL KYMOV NUM1,R6MOV NUM2,R6LCALL COUNT1LCALL COUNT2LCALL LIGHT6LCALL DP1LCALL DP2MOV A,#099SUBB A,R0DEC AXRL A,R4JNZ LOOP51LCALL LOOP0/*******************************************************运行模式的红绿灯***************************************************** *********//**********东西向绿灯亮,南北向红灯亮**********/LIGHT1: MOV P2,#0EBHSETB P3.5CLR P3.4SETB P3.3CLR P3.2RET/**********东西向绿灯闪,南北向红灯亮*********/LIGHT2: CJNE R7,#050,LIGHT21LIGHT21: JNC LIGHT22LCALL LIGHT24AJMP LIGHT23LIGHT22: LCALL LIGHT25LIGHT23: RETLIGHT24: MOV P2,#0EBH ;东西向绿灯亮,南北向红灯亮SETB P3.5CLR P3.4SETB P3.3CLR P3.2RETLIGHT25: MOV P2,#0EFH ;东西向无灯亮,南北向红灯亮SETB P3.5CLR P3.4SETB P3.3SETB P3.2RET/*********东西向黄灯亮,南北向红黄灯亮*******/LIGHT3: MOV P2,#0A6HSETB P3.5CLR P3.4CLR P3.3SETB P3.2RET/*********东西向红灯亮,南北向绿灯亮**********/LIGHT4: MOV P2,#05DHCLR P3.5SETB P3.4SETB P3.3SETB P3.2RET/********东西向红黄灯亮,南北向绿灯闪*********/LIGHT5: CJNE R7,#050,LIGHT51LIGHT51: JNC LIGHT52LCALL LIGHT54AJMP LIGHT53LIGHT52: LCALL LIGHT55LIGHT53: RETLIGHT54: MOV P2,#05DH ;东西向红灯亮,南北向绿灯亮CLR P3.5SETB P3.4SETB P3.3SETB P3.2RETLIGHT55: MOV P2,#07DH ;东西向红灯亮,南北向无灯亮SETB P3.5SETB P3.4SETB P3.3SETB P3.2RET/********东西向红黄灯亮,南北向黄灯亮*********/LIGHT6: MOV P2,#034HSETB P3.5SETB P3.4CLR P3.3SETB P3.2RET/**********东西南北路口都变成红灯***********/LIGHT7: MOV P2,#06DHSETB P3.5CLR P3.4SETB P3.3SETB P3.2RET/*****东西南北路口都变成绿灯*****/LIGHT8: MOV P2,#0DBHCLR P3.5SETB P3.4SETB P3.3CLR P3.2RET/**************************************************中断服务程序*************************************************************** *******/INTR0: PUSH PSW ;原始时间分秒的确定PUSH AccLCALL KSMOV TH1,#0D8HMOV TL1,#0F0HINC R7CJNE R7,#100,INTR04MOV R7,#000HCJNE R1,#000,INTR04CJNE R6,#000,INTR01 ;倒计时MOV A,R5MOV R6,ALJMP INTR02INTR01: DEC R6INTR02: CJNE R4,#000,INTR03 ;倒计时MOV A,R3MOV R4,ALJMP INTR04INTR03: DEC R4INTR04: POP AccPOP PSWRETI/************************************************数码管各位显示计算*********************************************************** ********/COUNT1: MOV A,NUM1 ;计算东西向亮灯时间MOV B,#10DIV ABMOV DX2,AMOV DX1,BRETCOUNT2: MOV A,NUM2 ;计算南北向亮灯时间MOV B,#10DIV ABMOV NB2,AMOV NB1,BRET/*****************************************************数码管显示************************************************************* *********/DP1: MOV A,DX2 ;东西向两位数码管显示MOV DPTR,#TAB0MOVC A,@A+DPTRCLR P0.0MOV P1,ALCALL DL0MOV P1,#000HSETB P0.0MOV A,DX1MOV DPTR,#TAB1MOVC A,@A+DPTRCLR P0.1MOV P1,ALCALL DL0MOV P1,#000HSETB P0.1RETDP2: MOV A,NB2 ;南北向两位数码管显示MOV DPTR,#TAB0MOVC A,@A+DPTRCLR P0.2MOV P1,ALCALL DL0MOV P1,#000HSETB P0.2MOV A,NB1MOV DPTR,#TAB0MOVC A,@A+DPTRCLR P0.3MOV P1,ALCALL DL0MOV P1,#000HSETB P0.3RETDP3: CJNE R7,#050,DP31 ;设置模式时数码管显示模式DP31: JNC DP32LCALL DP2AJMP DP33DP32: LCALL DL0DP33: RET/************************************************************** *延时********************************************************** ********//*说明:延时所用的三条令,stc10f08xe中与常用的51单片机中的指令执行时间不同*/DL0: MOV DELAY_1,#16 ;延时时间:[2+(2+250*4+4)×16+4]/11.0592DL01: MOV DELAY_2,#250 ; =16102/11.0592 DJNZ DELAY_2,$ ; =1.456msDJNZ DELAY_1,DL01 ;RET ; ;TAB0: DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,067H ;无小数点的LED字模表TAB1: DB 0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H,0FFH,0E7H ;有小数点的LED字模表END五、实验过程中遇到的问题及解决方法1、怎么将按键按描程序放入中断?改变用无延时的标志位按键扫描,然后在中断中调用。

单片机交通灯实验报告

单片机交通灯实验报告

一、实验目的1. 理解单片机在交通灯控制系统中的应用原理。

2. 掌握单片机编程方法,实现交通灯的自动控制。

3. 学会使用Proteus进行电路仿真和调试。

4. 培养动手实践能力和团队协作精神。

二、实验环境1. 硬件:STC89C52单片机、数码管、LED灯、电阻、电容、按键、三极管等元器件。

2. 软件:Keil C51、Proteus 8.0。

三、实验原理本实验基于STC89C52单片机,通过编程实现交通灯的红、黄、绿三色灯光切换,并利用数码管显示倒计时功能。

系统主要包括以下模块:1. 单片机控制模块:负责控制LED灯的亮灭和数码管的显示。

2. 数码管显示模块:显示交通灯状态和倒计时时间。

3. 按键模块:实现交通灯的紧急停用功能。

四、实验步骤1. 电路连接:根据原理图连接单片机、数码管、LED灯、电阻、电容、按键等元器件。

2. 程序编写:使用Keil C51编写单片机控制程序,实现以下功能:- 初始化单片机I/O端口;- 设置定时器中断,实现倒计时功能;- 编写主循环程序,控制LED灯的亮灭和数码管的显示;- 编写按键中断程序,实现紧急停用功能。

3. 仿真调试:使用Proteus软件对电路进行仿真,观察LED灯和数码管的显示效果,确保程序运行正确。

4. 实物测试:将程序烧录到单片机中,连接实物电路,测试交通灯控制系统是否正常工作。

五、实验结果与分析1. LED灯控制:通过编程实现LED灯的红、黄、绿三色灯光切换,模拟交通灯的运行状态。

2. 数码管显示:数码管显示倒计时时间,方便观察交通灯的运行状态。

3. 按键控制:按下按键,实现交通灯的紧急停用功能。

实验结果表明,本实验成功实现了单片机控制的交通灯系统,达到了预期目标。

六、实验总结1. 通过本次实验,掌握了单片机编程方法,实现了交通灯的自动控制。

2. 学会了使用Proteus进行电路仿真和调试,提高了动手实践能力。

3. 培养了团队协作精神,与同学共同完成了实验任务。

[精品文档]:单片机交通灯实验报告

[精品文档]:单片机交通灯实验报告

[精品文档]:单片机交通灯实验报告一、实验目的本次实验的目的是为了熟悉单片机的使用,利用单片机控制模拟实现交通灯的功能,将算法转化为软件程序,同时加强对C语言的编程能力。

二、实验原理本次实验采用的是单片机STC89C52控制,使用软件程序控制单片机的电路,实现交通灯的控制。

芯片收到低电平信号后,依据指令控制执行流程,处理相应的控制动作,从而实现交通灯的控制。

三、实验准备1. STC89C52芯片2. 交通灯模块3. 连接线四、实验步骤1. 先将交通灯模块插电,执行红灯亮,绿灯灭。

2. 然后再把STC89C52芯片插入相应的插座中,连接交通灯模块与STC89C52芯片,将芯片的P0口接到红灯,P1口接到绿灯,然后再把电源的正极和负极分别接到芯片的Vcc和GND口中。

3. 接下来,就是编写程序将算法转化为软件程序。

这个程序需要控制STC89C52芯片来控制交通灯模块,让它呈现红绿灯的模式,节点处相应的各灯间隔时间需要为3s,红灯时间需要大于绿灯时间,红灯时间为5s,绿灯时间很2s。

4. 写完程序打包进Stc-128位定点调试器中,运行调试,调试后点击发送,再把发送的软件烧录到芯片的FLASH中。

5. 最后通电,查看交通灯模块的呈现情况,绿灯呈示状态两次后,红灯呈示状态,重复几次,实现周期性变化,检查整个程序是否正确。

五、实验结果实验中,通过芯片STC89C52与交通灯模块的联系,以及对程序的编写,终于成功的实现了芯片控制实现交通灯的功能,实现交通灯模块的周期性变化。

六、总结通过本次实验,使我们更加深入的了解和掌握了单片机技术下实现交通灯的控制技术,实现其相应的指令和程序,从而提高C语言编程能力,对算法与编程有了更深入的认识。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告本实验旨在通过单片机控制,实现交通信号灯的模拟,以达到以下目的:通过模拟交通信号灯的控制,理解交通信号灯的工作原理和优化交通流量的方法。

本实验采用单片机作为主控芯片,通过编程设定各个交通信号灯的亮灭时间,以模拟交通信号灯的工作。

实验中采用LED灯模拟交通信号灯,红灯表示停止,绿灯表示通行,黄灯表示警告。

通过单片机的控制,可以实现交通信号灯的顺序切换,从而达到控制交通的目的。

准备材料:单片机、LED灯(红、绿、黄三个)、电阻、杜邦线、面包板、电脑及编程软件。

搭建电路:将LED灯分别连接到单片机的P1端口,并添加电阻以保护LED灯。

使用杜邦线将单片机与电脑连接,以便进行编程。

编程:使用C语言编写程序,控制交通信号灯的亮灭时间和顺序。

程序中应包含初始化函数、主函数和延时函数等基本元素。

其中,初始化函数用于设置LED灯的初始状态;主函数用于循环读取按键输入并控制LED灯的亮灭;延时函数用于实现交通信号灯的顺序切换。

调试:将程序下载到单片机中,观察交通信号灯的实际运行情况。

如有问题,可通过调整程序中的参数或重新编写程序进行优化。

数据记录与分析:记录每次实验的数据,包括LED灯的亮灭时间、交通流量等。

分析实验数据,得出结论并提出改进意见。

在本次实验中,我们成功地实现了交通信号灯的模拟。

通过调整程序中的参数,我们观察到交通信号灯的亮灭时间和顺序对交通流量的影响。

在早高峰时段,我们将红灯时间设置为较长时间,以减缓交通压力;在平峰时段,我们将绿灯时间设置为较长时间,以加快车辆通行速度。

同时,我们也注意到黄灯设置的重要性,它能够提醒司机注意交通安全。

在实验过程中,我们还发现了一些问题,例如在某些情况下,车辆在绿灯亮起时未能及时启动,导致交通拥堵。

针对这一问题,我们建议在程序中增加一个启动提醒功能,以提醒司机及时启动车辆。

通过本次实验,我们深入了解了单片机的原理和应用,并成功地模拟了交通信号灯的工作过程。

单片机交通灯控制实验报告

单片机交通灯控制实验报告

单片机交通灯控制实验报告单片机交通灯控制实验报告引言:交通灯是城市交通管理的重要组成部分,它能够有效地引导车辆和行人的交通流动,提高交通效率和安全性。

本实验旨在利用单片机技术设计一个简单的交通灯控制系统,以模拟真实的交通流量情况,并通过实验结果评估其性能和可靠性。

实验设备和原理:本实验使用的设备包括单片机、LED灯、电路板、电源等。

单片机是一种集成电路,具有处理器、存储器和输入输出接口等功能。

它能够根据预设的程序指令,控制外围设备的工作状态。

实验过程:首先,通过连接电路板和电源,将单片机与LED灯相连。

然后,编写单片机的程序,实现交通灯的控制逻辑。

在程序中,我们设置了三个状态:红灯亮、绿灯亮和黄灯亮。

根据预设的时间间隔,单片机会自动切换这些状态,模拟真实的交通灯工作过程。

实验结果:经过实验,我们观察到交通灯按照预设的时间间隔进行状态切换。

当红灯亮时,其他方向的灯都会熄灭;当绿灯亮时,其他方向的灯也会熄灭;当黄灯亮时,其他方向的灯同样会熄灭。

这样,交通灯能够有效地引导车辆和行人的通行,确保交通的有序进行。

实验分析:通过对实验结果的观察和分析,我们发现单片机交通灯控制系统具有以下优点:1. 精确控制:单片机能够精确计时,根据预设的时间间隔进行状态切换,保证交通灯的正常工作。

2. 灵活性:通过修改程序中的时间间隔和状态切换逻辑,可以灵活调整交通灯的工作模式,以适应不同的交通流量情况。

3. 可靠性:单片机具有较高的稳定性和可靠性,能够长时间稳定工作,减少交通灯故障的发生。

然而,单片机交通灯控制系统也存在一些不足之处:1. 依赖电力:交通灯需要外部电源供电,一旦供电中断,交通灯将无法正常工作,可能导致交通混乱。

2. 缺乏灵活性:单片机交通灯控制系统的状态切换逻辑是固定的,无法根据实时的交通流量情况进行动态调整。

结论:通过本次实验,我们成功设计并实现了一个简单的单片机交通灯控制系统。

该系统具有精确控制、灵活性和可靠性等优点,能够有效地引导交通流动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书学生:王凯专业班级:电子科学与技术0901班指导教师:吴友宇工作单位:信息工程学院题目: 交通信号灯控制器的设计初始条件:本设计既可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路等。

本设计也可以使用单片机系统构建交通信号灯控制器。

用数码管显示时间计数值,用红、黄、绿LED作信号灯。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。

2、技术要求:①要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。

其余部分可根据情况自行发挥。

②确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

3、查阅至少5篇参考文献。

按《理工大学课程设计工作规》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规。

时间安排:1、 2011 年 7 月 3 日集中,作课设具体实施计划与课程设计报告格式的要求说明。

2、 2011 年 7 月 3 日,查阅相关资料,学习电路的工作原理。

2、 2011年 7 月 4 日至 2011 年 7 月 5日,方案选择和电路设计。

2、 2011 年 7 月 6日至 2011 年 7 月 7 日,电路调试和设计说明书撰写。

3、 2011 年 7 月 8 日上交课程设计成果及报告,同时进行答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日系主任(或责任教师)签名:年月日目录摘要 (7)交通信号灯控制器的设计 (8)1 任务要求与设计 (8)1.1 设计目的 (8)1.2 设计任务和容 (8)1.2.1设计任务 (8)1.2.2设计容 (8)2 总体方案比较 (9)2.1 方案论证 (9)2.2 方案选择 (10)3 总体硬件电路设计及核心器件介绍 (11)3.1总体设计 (11)4单元电路模块设计 (12)4.1复位电路、晶振电路 (12)4.2 LED数码管显示电路 (12)4.3 仿真原理图 (13)5软件编程设计 (14)5.1 设计思想 (14)5.2 程序框图 (15)6 心得体会 (16)参考文献 (17)附录1 原件清单 (18)附录3 总电路图 (18)附录3 源程序 (18)摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

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

本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的状态显示以及倒计时。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用汇编语言编程,主要编写了主程序,LED数码管显示程序。

经过整机调试,实现了对十字路口交通灯的模拟。

关键词:交通灯单片机 C语言交通信号灯控制器的设计1 任务要求与设计1.1 设计目的(1)加强对单片机和C语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正使用。

(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

(4)提高利用已学知识分析和解决问题的能力。

(5)提高实践动手能力。

1.2 设计任务和容1.2.1设计任务①要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。

其余部分可根据情况自行发挥。

②确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

1.2.2设计容(1)填写设计任务书。

(2)进行总体设计,画出原理图。

(3)编写并调试程序。

(4)用Proteus软件进行仿真。

2 总体方案比较为了实现上述功能,有两种选择,其一是采用纯硬件设置,可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路设计技术延时显示电路,只需要手动按键,电路自行实现功能。

另一选择就是通过编程使用单片机系统,利用软件硬件结合。

2.1 方案论证方案一:如图 2-1采用集成集成译码器、计数器、定时器、脉冲发生器以及所需要的门电路,首先周期为一秒的脉冲发生器产生脉冲沿使计数器进行一秒钟计数,计数通过译码器将计数值送给数码管显示作为交通灯的倒计时显示,倒计时为零时产生计数脉冲改变LED灯的亮与灭,逻辑开关包括总开关、复位开关和预置数功能。

图 2-1方案一原理框图方案二:如图2-2 此方案主要以单片机为核心,采用C语言编程实现交通灯效果。

此方式为软硬件结合,硬件包括单片机最小系统,复位电路,数码管显示模块和LED灯模块。

软件设计时包括四种状态转换,中断延时程序。

系统框图如图。

AT89C51单片机LED数码管显示晶振电路复位电路图2-2 方案二原理图2.2 方案选择第一中方案使用纯硬件电路比较容易理解也也不需要软件设计,但是硬件焊接电路较复杂,而且需要比较精确的脉冲信号源,对硬件电路要求较高,第二种方案硬件电路很简单也几乎不需要电阻电容的组织选择,而且只需要+5V直接稳压电源,采用程序实现数码管与LED灯显示功能,所以综合难易程度也可实现性,选择第二种方案。

3 总体硬件电路设计及核心器件介绍3.1总体设计整个设计以AT89C51单片机为核心,LED数码管显示,晶振电路,复位电路组成。

硬件模块入图3-1。

图3-1 硬件原理图4单元电路模块设计4.1复位电路、晶振电路复位电路、晶振电路总体电路图如图 4-1图 4-1 复位电路、晶振电路4.2 LED数码管显示电路在单片机应用系统中,数码管显示常用两种方法:静态显示和动态扫描显示。

所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。

这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多,动态扫描电路软件设计较为复杂,由于89C52的可供使用I/O口足够多所以采用静态扫描。

此处使用74LS04是由于数码管位选段选直接与单片机I/O口相连,但是单片机I/O口输出电流很小,可能不足以带动数码管位选,则会导致数码管显示不够亮,此处使用的非门作为驱动,增加输出电流。

电路图如图 4-2图 4-2 LED数码管显示电路4.3 仿真原理图如图4-3 数码管LED灯初始化显示(倒计时为三十秒)当数码管倒计时到22秒时,此时状态是南北路红灯亮而东西路绿灯亮。

图4-3 仿真原理图5软件编程设计5.1 设计思想及程序框图软件编程是实现交通信号灯显示的灵魂,由于设计要求LED灯循环显示,,并且倒计数时间可以(0~30s)预置数。

程序可以分为按键模块,LED灯循环显示模块,数码管计数模块。

如图5-1所示根据分析可以将交通灯根据其显示情况可以分为四个状态,可以通过中断定时来控制每个状态的时间,程序总思路是首先设计一秒钟的中断模块,在一秒到来时,数码管计数显示减一,当倒计时到五秒时状态转换到黄灯亮另一路口继续红灯亮,,倒计时到零,从新显示预置数值,状态装换到一路口红灯灭,另一路口路灯亮,然后继续倒计时五秒,装换状态,完成这四个状态构成一个完整的程序循环图5-1 程序框图6 心得体会心得体会今年是第二次做课程设计,上次做的很匆忙,可想而知结果也很糟糕,总结了上次的经验与教训,这次准备的比较早,虽然遇到了很多的困难与问题,但是在自己的自学和同学的帮助之下,圆满的完成任务。

本设计采用的是软硬件结合的方案,所以对软件编程和硬件焊接排布都有一定的要求,而且这也是我第一次自己写C语言程序,刚开始思路很僵硬也不知道机械语言的那种很强的逻辑性,最后通过多看程序,多思考和改进终于实现软件功能。

虽然硬件电路比较简单,但是首先要有比较好的布局,这关系到美观和走线的方便,再一个就是电路的排查方面,第一次焊出来的电路总是或多或少有一些接触不良的问题这就需要细心与耐心的排查。

总体觉得这次的课程设计对自己自学能力动手能力是一个很大的考验和检查。

参考文献[1] 叶挺秀.应用电子学.:大学,1994[2] 朱承高.电工及电子技术手册.:高等教育,1990[3] 周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例.:电子工业,2006[4] 朝青.单片机原理及接口技术(第三版).:航空航天大学,2005[5]艳萍,高振斌,志军.EDA实用技术及应用.:国防工业,2006.附录1 原件清单附录2 总电路图附录3 源程序#include<reg52.h>#define uchar unsigned char #define uint unsigned intsbit kai=P2^2;sbit jia=P2^4;sbit jian=P2^3;sbit shiwen=P3^0;sbit gewen=P3^1;sbit LED_BLUE1=P3^2;sbit LED_RED1=P3^3;sbit LED_YELLOW1=P3^4;sbit LED_BLUE2=P2^5;sbit LED_RED2=P2^7;sbit LED_YELLOW2=P2^6;bit wen=1,guan;uchar TIME,i,z;char TIME_MAX1=30;/*uchar code table[]={0x30,0xf3,0x98,0x91,0x53,0x15,0x14,0xb3,0x10,0x11}; */uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar wenxuan[]={0,1};shuzi[]={0,0};void delayms(uchar z){uchar x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}void re_display(uchar z){shuzi[0]=z/2/10;shuzi[1]=z/2%10;}void display(){P0=0xff;shiwen=wenxuan[wen];gewen=!wenxuan[wen];P0=table[shuzi[wen]];}void set_zhuangtai(uchar zhuangtai) {if(zhuangtai==0){LED_BLUE1=0;LED_RED1=1;LED_YELLOW1=1;LED_BLUE2=1;LED_RED2=0;LED_YELLOW2=1;TIME=2*TIME_MAX1+1;}else if(zhuangtai==1){LED_BLUE1=1;LED_RED1=1;LED_YELLOW1=!LED_YELLOW1;LED_BLUE2=1;LED_RED2=0;LED_YELLOW2=1;}else if(zhuangtai==2){LED_BLUE1=1;LED_RED1=0;LED_YELLOW1=1;LED_BLUE2=0;LED_RED2=1;LED_YELLOW2=1;TIME=2*TIME_MAX1+1;}else if(zhuangtai==3){LED_BLUE1=1;LED_RED1=0;LED_YELLOW1=1;LED_BLUE2=1;LED_RED2=1;LED_YELLOW2=!LED_YELLOW2;}}void key(){while(!kai){delayms(10);if(!kai){guan=~guan;set_zhuangtai(z);}while(!kai);}}void tiao(){if(jian==0){delayms(10);if(jian==0){if(--TIME_MAX1<0) TIME_MAX1=30;}while(!jian);}else if(jia==0){delayms(10);if(jia==0){if(++TIME_MAX1>30) TIME_MAX1=0;}while(!jia);}z=0;if(TIME_MAX1<6) z=1;}void main(){TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65532-2000)/256;TL1=(65536-2000)%256;EA=1;while(1){key();if(guan){TR0=1;TR1=1;ET0=1;ET1=1;}else{LED_BLUE1=1;LED_RED1=1;LED_YELLOW1=1;LED_BLUE2=1;LED_RED2=1;LED_YELLOW2=1;ET0=0;TR0=0;ET1=1;TR1=1;TIME=2*TIME_MAX1+1;re_display(TIME);tiao();}}}void TIME0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){i=0;if(TIME_MAX1>5){if(1<--TIME&&TIME<12){set_zhuangtai(z+1);}if(TIME<2){set_zhuangtai(z=2-z);}}else{if(--TIME<2){set_zhuangtai(z=4-z);TIME=2*TIME_MAX1+1;}else set_zhuangtai(z);}re_display(TIME);}}void TIME1() interrupt 3{TH1=(65532-2000)/256;TL1=(65536-2000)%256;display();wen=~wen;}。

相关文档
最新文档