单片机交通灯综合实验报告

合集下载

单片机的交通灯实训报告

单片机的交通灯实训报告

一、引言随着我国经济的快速发展,城市交通问题日益突出,交通拥堵、事故频发等问题严重影响了市民的生活质量。

为了解决这些问题,智能交通系统应运而生。

单片机作为一种高效、低成本的微控制器,在智能交通系统中扮演着重要角色。

本实训报告以单片机为控制核心,设计并实现了一套交通灯控制系统,旨在提高交通效率,保障交通安全。

二、实训目标1. 熟悉单片机的基本原理和编程方法。

2. 掌握交通灯控制系统的设计方法。

3. 学会使用单片机进行交通灯控制。

4. 提高动手实践能力和团队协作能力。

三、实训内容1. 系统组成本系统采用AT89C52单片机作为核心控制单元,通过外围电路实现交通灯的控制。

系统主要由以下模块组成:(1)单片机模块:负责整个系统的控制和数据处理。

(2)信号灯模块:包括红、黄、绿三个信号灯,用于指示交通灯状态。

(3)按键模块:用于手动控制交通灯状态。

(4)数码管模块:用于显示交通灯倒计时时间。

(5)电源模块:为整个系统提供稳定的电源。

2. 系统工作原理系统启动后,单片机首先进行初始化设置,包括设定交通灯状态、倒计时时间等。

然后进入主循环,不断检测按键状态,并根据交通灯状态和倒计时时间进行控制。

(1)正常状态:系统按照预设的交通灯状态和时间进行控制,绿灯亮30秒,黄灯亮5秒,红灯亮25秒。

(2)紧急状态:当检测到紧急车辆时,系统立即切换到紧急状态,所有交通灯亮红灯,直到紧急车辆通过。

(3)手动控制:用户可以通过按键手动控制交通灯状态,实现交通灯的切换。

3. 程序设计程序采用C语言编写,主要包括以下部分:(1)初始化函数:设置单片机的工作模式、IO口状态、定时器等。

(2)主循环函数:检测按键状态,控制交通灯状态和倒计时时间。

(3)中断服务程序:处理按键中断和定时器中断。

四、实训过程1. 硬件设计根据系统组成,设计并焊接电路板,包括单片机模块、信号灯模块、按键模块、数码管模块和电源模块。

2. 软件设计使用Keil uVision软件编写程序,并进行编译、下载和调试。

单片机交通灯实验报告

单片机交通灯实验报告

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

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

实验材料•单片机•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. 理解交通灯控制系统的工作原理。

2. 掌握使用单片机进行交通灯控制系统的设计与实现。

3. 提高动手实践能力和问题解决能力。

二、实验原理交通灯控制系统通常采用单片机作为核心控制单元,通过编程实现对交通灯的红、黄、绿三种灯光状态的切换。

本实验采用单片机(如STC89C52)作为核心控制单元,利用定时器实现灯光的定时切换,并通过LED灯模拟交通灯的灯光状态。

三、实验器材1. 单片机开发板(如STC89C52开发板)2. LED灯(红、黄、绿各一个)3. 电阻(根据LED灯的规格选择)4. 跳线5. 编程器6. 计算机四、实验步骤1. 硬件连接:- 将红、黄、绿LED灯分别连接到单片机的P1.0、P1.1、P1.2端口。

- 将电阻串联在每个LED灯的两端,防止LED灯过载。

- 将跳线连接到单片机的相关引脚,用于编程和调试。

2. 软件编程:- 使用Keil软件编写单片机程序,实现交通灯的控制逻辑。

- 设置定时器,实现灯光的定时切换。

- 编写主循环程序,根据定时器的值切换LED灯的状态。

3. 程序调试:- 将程序烧录到单片机中。

- 使用示波器或逻辑分析仪观察LED灯的状态,确保程序运行正常。

4. 实验验证:- 将LED灯连接到实际交通灯的位置。

- 启动单片机,观察LED灯的状态是否符合交通灯的控制逻辑。

五、实验结果与分析1. 实验结果:- 红灯亮时,表示禁止通行。

- 绿灯亮时,表示允许通行。

- 黄灯亮时,表示准备切换到红灯。

2. 实验分析:- 通过本次实验,掌握了使用单片机进行交通灯控制系统的设计与实现。

- 了解了定时器在实现灯光切换中的作用。

- 提高了动手实践能力和问题解决能力。

六、实验总结1. 优点:- 实验操作简单,易于上手。

- 理论与实践相结合,提高了学生的动手能力。

2. 不足:- 实验内容较为简单,未能涉及到复杂交通灯控制系统的设计。

- 实验器材较为有限,限制了实验的拓展性。

七、实验拓展1. 研究复杂交通灯控制系统的设计,如多路口交通灯协同控制。

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

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

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

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

正文:一、硬件设计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. 数码管模块5. 电阻、电容等电子元器件6. 调试工具(如万用表、示波器等)四、实验步骤1. 系统设计(1)确定交通灯控制系统的功能需求:实现红、黄、绿三色LED灯的交替闪烁,满足交通信号灯的基本要求。

(2)设计系统框图:单片机作为核心控制单元,通过编写程序实现对交通灯的控制。

系统框图如下:```+------------------+ +------------------+ +------------------+| | | | | || 单片机 |-------| 交通灯模块 |-------| 按键模块|| | | | | |+------------------+ +------------------+ +------------------+```(3)编写程序:根据系统需求,编写单片机控制程序,实现红、黄、绿三色LED灯的交替闪烁。

2. 硬件搭建(1)将单片机开发板与交通灯模块、按键模块、数码管模块等连接。

(2)根据电路原理图,连接电阻、电容等电子元器件。

(3)使用万用表测试电路连接是否正确。

3. 软件编程(1)使用C语言编写单片机控制程序。

(2)编译程序,生成可执行文件。

(3)将可执行文件烧录到单片机中。

4. 系统调试(1)使用示波器观察单片机引脚输出波形。

(2)检查交通灯模块是否正常工作。

(3)使用万用表测试按键模块是否正常工作。

(4)根据实际情况调整程序参数,确保系统稳定运行。

单片机交通灯实验报告

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

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

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

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

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

3.电阻:用于限流。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机红绿灯实训报告

一、实训目的1. 了解单片机的基本原理和编程方法;2. 掌握单片机在交通灯控制系统中的应用;3. 熟悉交通灯控制系统的设计流程;4. 提高实际操作能力和问题解决能力。

二、实训背景随着城市交通的日益发展,交通灯作为城市交通管理的重要组成部分,其智能化程度对提高道路通行效率、保障交通安全具有重要意义。

单片机具有体积小、功耗低、成本低、易于编程等优点,是交通灯控制系统理想的控制器。

本实训旨在通过设计一个基于单片机的交通灯控制系统,使学生掌握单片机编程和交通灯控制系统的设计方法。

三、实训内容1. 交通灯控制系统概述交通灯控制系统主要由单片机核心控制器、交通灯模块、传感器模块、显示模块(可选)、按键模块(可选)和电源模块组成。

系统通过传感器实时检测交通流量,单片机根据检测到的数据自动调整红绿灯的切换时间,实现交通灯的智能控制。

2. 系统硬件设计(1)单片机核心控制器:选用51系列单片机作为核心控制器,具有丰富的外设资源,便于系统扩展。

(2)交通灯模块:采用LED灯作为交通灯,分别代表红灯、黄灯和绿灯。

(3)传感器模块:选用超声波传感器检测交通流量,通过计算超声波的发射与接收时间差,得到车辆行驶距离。

(4)显示模块:选用LCD显示屏,用于显示系统状态和实时数据。

(5)按键模块:采用按钮作为输入设备,用于手动控制交通灯。

(6)电源模块:选用稳压电源为系统提供稳定的工作电压。

3. 系统软件设计(1)初始化:初始化单片机系统,包括设置端口、中断等。

(2)交通流量检测:读取超声波传感器的数据,计算车辆行驶距离,得到交通流量。

(3)数据处理与决策:根据交通流量数据,计算红绿灯切换时间,实现智能控制。

(4)交通灯控制:根据计算出的红绿灯切换时间,控制LED灯的亮灭。

(5)手动/自动控制:根据按键输入,实现手动控制交通灯或自动控制交通灯。

(6)特殊情况处理:如遇紧急情况,可手动将交通灯切换为全红灯,确保交通安全。

4. 仿真与调试利用Altium Designer19进行原理图设计,使用KEIL5进行程序设计,并利用protues8.7软件进行仿真设计。

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

单片机交通灯综合实验报告河北工业大学实验报告学院:专业:班级:姓名:学号:实验课程:单片机应用系统设计开发入门指导教师:实验名称:交通信号灯控制实验实验时间:2021 年5月23 日2021 年5 月23 日一实验要求1实验目的及实验内容要求实验目的:1.熟悉外部中断源的扩展方法。

2.初步掌握单片机综合应用系统设计。

3.掌握用Proteus 调试汇编源程序的方法。

实验内容要求:用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统。

设计要求如下:(1) A 车道与B 车道交叉组成十字路口,A 是主道,B 是支道;正常情况下,A、B 两车道轮流放行。

具体放行时间和要求如下:(2) A 车道放行50s,其中绿灯常亮44s,绿灯闪烁3s(用于警告),黄灯常亮3s(用于警告)。

(3) B 车道放行30s,其中绿灯常亮24s,绿灯闪烁3s(用于警告),黄灯常亮3s(用于警告)。

在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。

控制要求如下:(1) 在B 车道放行期间,若A 车道有车而B 车道无车,按下开关使A 车道放行15s。

(2) 在A 车道放行期间,若B 车道有车而A 车道无车,按下开关使B 车道放行15s。

(3) 有紧急车辆通过时,按下开关使A、B 车道均为红灯,禁行15s。

2实验设备或运行软件平台完成本实验需要使用到单片机仿真软件Proteus8,该软件是英国Lab Center Electronics 公司出版的EDA 工具软件,是目前比较好的仿真单片机及外围器件的工具。

从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台。

在编译方面,它也支持IAR、Keil、MATLAB 等多种编译器。

其具有的基本功能特点为:1.原理布图。

2.PCB 自动或人工布线。

3.SPICE 电路仿真。

革命性的特点是1.互动的电路仿真。

2.仿真处理器及其外围电路。

二实验内容及过程1实验设计及分析(或者实验程序)实验原理图如下所示:交通信号灯模拟控制系统程序流程图如下图所示:主程序一道有车另一道无车时紧急车辆通过时的中断服务程序的中断服务程序绿灯闪、B红灯延时s3A红灯、B绿灯闪动延s3A红灯、B绿灯延时25sA绿灯、B红灯延时sA红灯、B黄灯延时s2A黄灯、B红灯延时s2初始化开中断保护现场关中断A道有车B道有车红灯、B绿灯延时s5A绿灯、B红灯延时5s关中断恢复现场开中断返回中断响应保护现场A红灯、B红灯延时20恢复现场返回NNYY中断响应开始实验程序及程序分析如下:ORG0000H LJMPMAIN ;LJMP,转向主程序ORG0003H LJMPINT00 ;转向紧急车辆中断服务程序ORG0013H LJMPINT11 ;转向有车车道放行中断服务ORG0030H MAIN : SETBPX0;置外部中断0 为高优先级中断MOVTCON,#00H ;置外部中断0、1 为电平触发MOVIE,#85H ;开CPU 中断、外部中断0、1 中断LOOP:;A 道绿灯亮;B 红灯亮MOVP1,#0F3H MOVR1,#88 ;44s 延时循环次数AP1:;调用0.5s 延时子程序DELAY LCALLDELAY DJNZR1,AP1 ;44s 不到,继续循环(DJNZ RN,REL 是一条件转移指令,先将工作寄存器Rn 中的数减”1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL 的地方执行,否则,为“0”就不转移,继续执行下一条指令。

)MOVR1,#6 ;3s 延时的循环次数(循环一次延时0.5 秒。

)AP2:;A 道绿灯闪烁CPLP1.2 LCALLDELAY ;参考程序中缺少此句,若缺失会导致无法延时。

DJNZR1,AP2 ;3s 未到,继续循环MOVP1,#0F5H ;A 道黄灯亮,B 道红灯亮MOVR1,#6AP3: LCALLDELAY DJNZR1,AP3;3s 未到,继续循环MOVP1,#0DEH ;A 道红灯亮,B 道绿灯亮MOV R1,#48;延时循环48 次BP1: LCALLDELAYDJNZR1,BP1 ;24s 未到继续循环MOVR1,#6 BP2: CPLP1.5 ;B 道绿灯闪烁LCALLDELAY DJNZR1,BP2 ;3s 未到,继续循环MOVP1,#0EEH;A 道红灯亮,B 道黄灯亮MOVR1,#6 BP3: LCALLDELAY DJNZR1,BP3 ;3s 未到,继续循环SJMP LOOP ORG0200H INT00:保护P1 口数据PUSHP1;PUSH 入栈指令MOVP1,#0F6H;A 道红灯亮;B 道红灯亮MOVR2,#30;15 秒延时的循环次数DELAY0: LCALLDELAY DJNZR2,DELAY0POPP1;恢复P1 口数据POP 是出栈指令RETI;返回主程序ORG0300H INT11: CLREA;关中断EA 为总中断PUSHP1;保护现场PUSH04H PUSH05H PUSH06H SETBEA;开中断JNBP3.0,AP0 ;A 道无车,转向判断B 道(JNB 比较转移指令。

当P3.0 是0 时就转移执行AP0,否则就顺序执行。

)MOVP1,#0F3H;A 道绿灯亮,B 道红灯亮SJMPDEL1;转向15 秒延时程序AP0: JNBP3.1,EXIT ;B 道无车,退出中断MOVP1,#0DEH;A 道红灯亮,B 道绿灯亮DEL1 : MOVR3,#30 ;15s 延时的循环次数NEXT : LCALLDELAY DJNZR3,NEXT ;15 秒未到循环继续EXIT : CLREA POP06H;恢复现场POP05H POP04H POPP1 SETBEA RETI;返回原程序ORG0350H DELAY : MOVR4,#20;0.5 秒延时子程序参考程序中为#10,经实验发现只能延时0.25s 故改为#20,以达到实验目的。

LP1 : MOVR5,#50 LP2 : MOVR6,#248 NOP LP3: DJNZR6,LP3 DJNZR5,LP2 DJNZR4,LP1 RET END交通信号灯与控制管脚的对应关系如下:控制状态P1 口控制码P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0未用未用B 道绿灯B 道黄灯B 道红灯A 道绿灯A 道黄灯A 道红灯A 绿灯亮、B 红灯亮F3H111111A 黄灯亮、B 红灯亮F5H11111A 红灯亮、B 绿灯亮DEH111111A 红灯亮、B 黄灯亮EEH11111A 红灯亮、B 红灯亮F6H1111112实验步骤及实验数据记录1.先接线按下表所示的管脚与LED 或逻辑开关的对应关系接线。

在Proteus8 中原理图绘制界面中将接线接好。

管脚P1.0P1.1P1.2P1.3P1.4P1.5P3.0P3.1P3.3P3.2LED 或逻辑开关L3L1L2L7L5L6K1K2K3K8控制对象A 红灯A 黄灯A 绿灯B 红灯B 黄灯B 绿灯A 道B 道使有车车道放行低电平有效紧急车辆放行低电平有效高电平表示有车低电平表示无车接线完成后如图所示:2.输入程序,在Proteus8 中SourceCode 界面将程序输入完成后试运行保证程序正确。

出现编译成功后进行下一步。

3 运行程序。

4.观察六只发光二极管的亮灭规律。

实验中六只发光二极管亮灭规律:(0 代表灭,1 代表亮,2 代表闪)运行时间(s )A 绿A 黄A 红B 绿B 黄B 红0 1 0 0 0 0 1 44 2 0 0 0 0 1 47 0 1 00 0 1 50 0 0 1 1 0 0 74 0 0 1 2 0 0 77 0 0 1 0 1 0 80 1 0 0 0 0 1 八十秒后开始重复0-80 秒内的亮灭规律。

5.部分连接图如图所示。

1)在A 红灯、B 绿灯亮时,先将K1 拨至高电平(表示A 道有车)、K2 拨至低电平(表示B 道无车),再将K3 拨至低电平使有车车道(A 道)放行,A 绿灯、B 红灯同时亮5s 后返回原先状态。

对逻辑开关K1、K2、K3 的操作对应于SW2 开关,闭合SW2 后,A 红灯灭,绿灯亮,B 绿灯灭,红灯亮。

15s 后恢复回闭合开关前的的亮灯状态。

2)在A 绿灯、B 红灯亮时,先将K1 拨至低电平(表示A 道无车)、K2 拨至高电平(表示B 道有车),再将K3 拨至低电平使有车车道(B 道)放行,A 红灯、B 绿灯同时亮5s 后返回原先状态。

对逻辑开关K1、K2、K3 的操作对应于SW1 开关,闭合SW1 后,A 绿灯灭,红灯亮,B 红灯灭,绿灯亮。

15s 后恢复回闭合开关前的的亮灯状态。

(提示:K3 拨至低电平后,应在5s 内改为高电平,否则,单片机可能将再一次响应中断。

)6.不论A 道、B 道的信号灯处于什么状态,将K8 拨至低电平后,A 红灯、B 红灯同时亮20s后返回原先状态。

(提示:K8 拨至低电平后,应在20s 内改为高电平,否则,单片机可能将再一次响应中断。

)对逻辑开关K8 的操作对应于JINJI 开关,闭合JINJI 后,A 只有红灯亮,B也只有红灯亮。

20s 后恢复回闭合开关前的的亮灯状态。

3实验数据分析1.一道有车而另一道无车时,K3 拨至低电平即向单片机发出中断请求(低优先级别);若此时单片机正在执行主程序,会响应中断转入到相应的中断服务程序,先依次查询A、B 车道的空闲状态,再去控制A、B 车道的信号灯;若此时单片机正在执行紧急车辆通过时中断服务程序,单片机不会响应中断。

2.紧急车辆通过时,K8 拨至低电平即向单片机发出中断请求(高优先级别),不论单片机正在执行主程序还是一道有车而另一道无车时的中断服务程序,会响应中断转入到相应的中断服务程序。

3.在进行步骤5 1)或2)操作时,若在闭合开关后没有在5s 内断开开关,则在15 秒时无法按时恢复回闭合开关时的亮灯状态。

4.操作过程中发现,若操作SW1 开关后亮灯状态已经发生改变,则在15 秒内再操作SW2开关则无法继续使亮灯状态改变。

三总结与体会1实验任务完成情况本实验完成情况良好。

通过老师的精心指导、本人的不懈努力和同学的热心帮助,能够基本上完成所有实验内容,且在实验过程中对单片机的了解更加深入了。

但也无法避免地遇到一些问题,比如对实验程序代码的理解不够深入,只停留在表面,且对51 单片机的111 条指令仍比较陌生,只能记住一些特别常用的。

对于此我的做法是,在分析实验程序的过程中,一遇到不熟悉的指令就百度搜索一下加深印象。

相关文档
最新文档