实验3--模拟交通灯控制实验
交通灯控制实验报告

交通灯控制实验报告交通灯控制实验报告引言:交通灯是城市交通管理的重要组成部分,通过对交通流量的控制,有效地维护交通秩序和安全。
本次实验旨在通过搭建一个简单的交通灯控制系统,探究不同交通流量下的信号灯变化规律,并分析其对交通流畅度和效率的影响。
实验装置:实验装置由红、黄、绿三种颜色的LED灯组成,分别代表红灯、黄灯和绿灯。
通过按键控制,可以切换不同灯光的显示状态。
在实验过程中,我们将模拟不同交通流量情况下的信号灯变化。
实验过程:1. 低交通流量情况下:首先,我们模拟低交通流量情况。
设置红灯时间为20秒,绿灯时间为30秒,黄灯时间为5秒。
在这种情况下,红灯的时间较长,确保道路上的车辆能够安全通过。
绿灯时间相对较短,以充分利用交通资源,提高交通效率。
黄灯时间较短,用于过渡信号灯变化。
2. 中等交通流量情况下:接下来,我们模拟中等交通流量情况。
设置红灯时间为30秒,绿灯时间为40秒,黄灯时间为5秒。
在这种情况下,红灯时间相对较长,确保道路上的车辆能够顺利通过。
绿灯时间适中,以保持交通的流畅性。
黄灯时间依然较短,用于过渡信号灯变化。
3. 高交通流量情况下:最后,我们模拟高交通流量情况。
设置红灯时间为40秒,绿灯时间为50秒,黄灯时间为5秒。
在这种情况下,红灯时间最长,确保道路上的车辆能够完全通过。
绿灯时间相对较长,以缓解交通压力,提高交通效率。
黄灯时间仍然较短,用于过渡信号灯变化。
实验结果:通过实验观察,我们发现不同交通流量下的信号灯变化对交通流畅度和效率有着明显的影响。
在低交通流量情况下,红灯时间较长,确保车辆安全通过,但可能导致交通效率稍有降低。
在中等交通流量情况下,信号灯的设置更加平衡,保证了交通的流畅性和效率。
而在高交通流量情况下,红灯时间最长,确保车辆完全通过,但也导致交通效率相对较低。
结论:通过本次实验,我们得出了以下结论:交通灯的设置应根据不同交通流量情况进行合理调整,以保证交通的流畅性和效率。
实验三 交通灯的模拟控制

实验五交通灯的模拟控制一、实验目的通过交通灯控制系统的编程和练习,掌握顺序控制电路的设计。
二、实验内容1.控制要求(1)起动后,南北红灯亮并维持25s(时间太长可以改短),然后南北红灯灭,南北绿灯亮。
南北绿灯亮了25s(时间太长可以改短)后开始闪亮(闪烁10次)3s后熄灭,然后黄灯亮2s后熄灭,南北红灯亮循环。
请画出南北向红灯,绿灯和黄灯的时序图,并进行状态步的划分,画出顺序功能画,并按照顺序功能图,使用顺序控制指令,完成程序的编程和调试。
(基本要求)(2)起动后,南北红灯亮并维持25s。
在南北红灯亮的同时,东西绿灯也亮,1s后,东西车灯即甲亮。
到20s时,东西绿灯闪亮,3s后熄灭,在东西绿灯熄灭后,东西黄灯亮,同时甲灭。
黄灯亮2s后灭,东西红灯亮。
与此同时,南北红灯灭,南北绿灯亮。
1s后,南北车灯即乙亮。
南北绿灯亮了25s后闪亮,3s后熄灭,同时乙灭,黄灯亮2s后熄灭,南北红灯亮,东西绿灯亮,循环。
(可选做)2.I/O分配1.I/O分配a)PLC连线时必须关掉电源。
b)输入模块上的0.0到SB(交通灯实验模块上)起动按钮c)输入端:1M、2M串联后,然后从其中1端连到24Vd)输入端:1L、2L、3L串联后,然后从其中1端连到0Ve)实验模块(交通灯)COM连到电源的0Vf)实验模块(交通灯)24V连到24Vg)传输程序时电源打开,PLC开关拨到Run模式输入输出起动按钮:I0.0 南北红灯:Q0.0 东西红灯:Q0.3南北黄灯:Q0.1 东西黄灯:Q0.4南北绿灯:Q0.2 东西绿灯:Q0.5南北车灯:Q0.6 东西车灯:Q0.73.按图所示的梯形图输入程序。
4.调试并运行程序。
图5-1 交通灯控制示意图三、交通灯控制语句表四、交通灯控制梯形图。
实验三-交通灯控制实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□√设计□创新实验日期:实验成绩:实验三交通灯控制实验一.实验目的掌握十字路口交通灯控制方法。
二.实验内容利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。
4 位LED 数码管显示时间,LED 显示红绿灯状态。
三.实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四.实验说明和电路原理图交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。
开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。
双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区)实验框图如图:五.实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。
六.实验步骤1)系统各跳线器处在初始设置状态。
P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察十字路口交通灯效果。
交通灯实验报告

交通灯实验报告交通灯实验报告引言:交通灯是城市交通管理中不可或缺的一部分,它通过红、黄、绿三种信号灯的变化来引导车辆和行人的通行。
本次实验旨在通过观察交通灯的工作原理和效果,了解交通灯在交通管理中的重要性。
实验目的:1. 观察交通灯的信号灯变化规律;2. 分析交通灯对车辆和行人通行的引导作用;3. 探讨交通灯在交通管理中的优势和不足。
实验过程:在实验室中,我们使用了一套模拟交通灯系统进行实验。
该系统包括红、黄、绿三种信号灯和相应的控制器。
首先,我们观察了交通灯的信号灯变化规律。
根据实验室提供的资料,红灯表示停止,黄灯表示准备,绿灯表示通行。
交通灯的变化规律是:红灯亮→绿灯亮→黄灯亮→红灯亮。
这个变化过程是有序的,为车辆和行人提供了明确的信号。
接下来,我们进行了交通灯对车辆和行人通行的引导实验。
在实验室中,我们设置了一段模拟道路和人行横道,并安装了交通灯。
通过控制器,我们模拟了不同的交通情况,观察交通灯对车辆和行人通行的影响。
实验结果显示,当红灯亮起时,车辆停止通行,行人等待过马路;当绿灯亮起时,车辆可以通行,行人可以过马路;当黄灯亮起时,车辆应减速停车,行人应尽快过马路。
交通灯的引导作用使得车辆和行人的通行更加有序和安全。
讨论:交通灯作为一种交通管理工具,具有一定的优势和不足。
首先,交通灯通过明确的信号灯变化规律,为车辆和行人提供了明确的指示,减少了交通事故的发生。
其次,交通灯可以根据交通流量的变化进行智能调控,提高道路的通行效率。
此外,交通灯还可以与其他交通设施相结合,形成综合交通管理系统,进一步提升交通管理水平。
然而,交通灯也存在一些不足之处。
首先,当交通流量较大时,交通灯的信号周期较长,可能导致车辆和行人等待时间过长,影响通行效率。
其次,交通灯对车辆和行人的通行进行了简化处理,不能完全满足各种交通情况的需求。
例如,在某些情况下,行人可能需要额外的通行时间,以确保安全过马路。
结论:通过本次实验,我们深入了解了交通灯的工作原理和效果。
红绿灯的PLC控制实验报告

一、红绿灯十字路口交通灯模拟控制实验区完成本实验。
1.1实验目的1、熟练使用各基本指令,根据控制要求,掌握PLC的编程方法和程序调试方法。
2、了解交通灯的控制规律,完成十字路口交通灯控制的编程与调试。
1.2实验原理十字路口交通灯控制的实验面板图,如下图所示:图 1 实验原理图如图所示,下框中的南北红、黄、绿灯R、Y、G分别接主机的输出点O/0.2、O/0.1、O/0.0,东西红、黄、绿灯R、Y、G分别接主机的输出点O/0.5、O/0.4、O/0.3,模拟南北向行驶车的灯接主机的输出点O/0.6,模拟东西向行驶车的灯接主机的输出点O/0.7;下框中的SD接主机的输入端I0.0。
上框中的东西南北三组红绿黄三色发光二极管模拟十字路口的交通灯。
I/O端子分配如下表所示。
表 1 I/O端子分配表输入输出启动按钮I0.0 南北绿灯0/0.0 南北黄灯0/0.1 南北红灯0/0.2 东西绿灯0/0.3 东西黄灯0/0.4 东西红灯0/0.5 南北车0/0.6 东西车0/0.71.3实验内容1、控制要求信号灯受一个启动开关控制,当启动开关接通时,信号灯系统开始工作,且先南北红灯亮,东西绿灯亮。
当启动开关断开时,所有信号灯都熄灭。
南北红灯亮维持25秒,在南北红灯亮的同时东西绿灯也亮,并维持15秒。
到15秒时,东西绿灯闪亮,闪亮8秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,绿灯亮。
东西红灯亮维持30秒。
南北绿灯亮维持20秒,然后闪亮8秒后熄灭;同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。
周而复始。
2、按要求分配PLC的I/O 地址,正确连接实验线路;3、编写实验程序并运行;1.4实验结果1.4.1顺序输出器顺序输出器的输出顺序如下表所示。
表格 1 顺序输出器输入数据文件数值数据文件数值B3:00000 0000 0000 0000B9:00 (秒)B3:10000 0000 1000 1100B9:115 (秒)B3:20000 0000 1000 0100B9:2 1 (秒)B3:30000 0000 1000 1100B9:3 1 (秒) B3:40000 0000 1000 0100B9:4 1 (秒) B3:50000 0000 1000 1100B9:5 1 (秒) B3:60000 0000 1000 0100B9:6 1 (秒) B3:70000 0000 1000 1100B9:7 1 (秒) B3:80000 0000 1000 0100B9:8 1 (秒) B3:90000 0000 1000 1100B9:9 1 (秒) B3:100000 0000 1001 0100B9:10 2 (秒) B3:110000 0000 0110 0001B9:1120 (秒) B3:120000 0000 0110 0000B9:12 1 (秒) B3:130000 0000 0110 0001B9:13 1 (秒) B3:140000 0000 0110 0000B9:14 1 (秒) B3:150000 0000 0110 0001B9:15 1 (秒) B3:160000 0000 0110 0000B9:16 1 (秒) B3:170000 0000 0110 0001B9:17 1 (秒) B3:180000 0000 0110 0000B9:18 1 (秒) B3:190000 0000 0110 0001B9:19 1 (秒) B3:200000 0000 0110 0010B9:20 2 (秒)1.4.2梯形图程序工作原理:按下启动按钮,系统开始工作,南北红灯亮25秒,同时东西绿灯亮15秒。
交通信号灯控制器实验报告Word版

交通信号灯控制器一、设计任务及要求 (2)二、总体方案设计以及系统原理框图 (2)2.1、设计思路 (2)2.2、各模块相应的功能 (2)2.3、系统原理图 (3)三、单元电路设计 (3)3.1、车辆检测电路 (3)3.2、主控电路 (4)3.3、灯控电路 (5)3.4、计时控制电路 (6)3.5、计时显示电路 (6)3.6、反馈控制电路 (7)3.7、置数电路 (7)3.8、时基电路 (7)四、工作原理 (8)五、电路的软件仿真及结果分析 (8)5.1、时基电路(555接成的多谐振荡器)的电路图以及波形的显示 (8)5.2、结果分析 (10)六、电路的组装调试 (10)6.1、使用的主要仪器和仪表 (10)6.2、调试电路的方法和技巧 (10)6.3、调试中出现的问题、原因和排除方法 (11)七、收获、存在的问题和进一步的改进意见 (11)7.1、存在的问题和进一步的改进意见 (11)7.2、收获以及心得体会 (12)附录一:电路所用元器件 (14)附录二:电路全图 (15)附录三:实际电路图 (16)一、设计任务及要求在一个主干道和支干道汇交叉的十字路口,为了确保车辆行车安全,迅速通行,设计一个交通信号灯控制电路,要求如下:1、用两组红、绿、黄发光二极管作信号灯,分别指示主道和支道的通行状态。
2、通行状态自动交替转换,主道每次通行30秒,支道每次通行20秒,通行交替间隔时为5秒。
3、通行状态转换依照“主道优先”的原则,即:当主道通行30秒后,若支道无车则继续通行;当支道通行20秒后,只有当支道有车且主道无车时才允许继续通行。
(用按键模拟路口是否有车)4、设计计时显示电路,计时方式尽量采用倒计时。
二、总体方案设计以及系统原理框图2.1、设计思路本次设计采用模块划分的方法,每个模块完成一项功能,最后将各个模块连接起来,设计完成后,用Multisim进行仿真,仿真成功后,再去实验室焊接调试。
2.2、各模块相应的功能(1)车辆检测电路:用来显示主路支路车辆的四种情况。
微机实验 交通灯实验报告

微机实验交通灯实验报告微机实验交通灯实验报告引言交通灯作为城市交通管理的重要组成部分,对于保障交通安全和顺畅起着至关重要的作用。
本次实验旨在通过微机控制,模拟交通灯的工作原理,并实现交通灯的自动控制。
一、实验目的本次实验的主要目的是通过搭建一套微机控制系统,实现交通灯的自动控制,并通过实验验证交通灯在不同道路情况下的工作原理和效果。
二、实验原理1. 交通灯的工作原理交通灯通常由红、黄、绿三个信号灯组成。
红灯表示停止,黄灯表示准备,绿灯表示可以通行。
交通灯通过不同颜色的灯光变化,指示车辆和行人何时可以通行,以保障交通的有序进行。
2. 微机控制系统微机控制系统是利用计算机和相应的软硬件实现对设备、机器等的控制和管理。
在交通灯实验中,我们可以通过编程控制计算机输出不同的信号,从而实现交通灯的自动控制。
三、实验器材和步骤1. 实验器材- 微机控制系统:包括计算机、编程软件和控制接口等。
- 交通灯模型:模拟真实的交通灯,包括红、黄、绿三个信号灯。
2. 实验步骤- 连接交通灯模型和微机控制系统。
- 编写程序,设置交通灯的工作时间和信号灯变化规律。
- 运行程序,观察交通灯的工作状态和变化过程。
四、实验结果和分析通过实验,我们成功地实现了交通灯的自动控制。
在程序中,我们设置了红灯亮10秒,黄灯亮3秒,绿灯亮15秒的时间间隔,模拟了真实交通灯的工作规律。
在实验过程中,我们观察到交通灯按照预设的时间间隔循环变化,红灯亮起时车辆停止,绿灯亮起时车辆可以通行。
这样的交通灯控制方式可以有效地维持交通的有序进行,减少交通事故的发生。
五、实验总结通过本次实验,我们深入了解了交通灯的工作原理和微机控制系统的应用。
微机控制系统作为一种高效、精确的控制手段,可以广泛应用于各个领域,提高设备的自动化程度和工作效率。
在今后的学习和工作中,我们将继续深入学习微机控制系统的原理和应用,掌握更多的编程技巧和控制方法,为实现更多实际问题的自动化解决方案做出贡献。
模拟交通灯实验报告

模拟交通灯实验报告模拟交通灯实验报告引言:交通安全一直是社会关注的焦点,而交通信号灯作为交通管理的重要手段,对于维护交通秩序和减少交通事故起着至关重要的作用。
本实验旨在通过模拟交通灯实验,研究交通灯的工作原理和对交通流量的控制效果,以期提高交通系统的效率和安全性。
一、实验目的本实验的主要目的是研究交通灯在不同条件下的工作原理,探究交通灯对交通流量的控制效果以及对交通系统的影响。
二、实验器材和方法1. 实验器材:- 电脑模拟软件- 交通灯模拟装置2. 实验方法:- 设定不同的交通流量条件,模拟不同的交通灯工作模式;- 观察并记录交通灯在不同情况下的工作状态和交通流量情况;- 分析交通灯对交通流量的控制效果。
三、实验过程与结果1. 实验过程:- 首先,我们设置了一个高峰时段的交通流量条件,模拟交通灯的工作。
根据交通流量的变化,交通灯会自动切换不同的信号灯状态,包括红灯、绿灯和黄灯。
- 其次,我们调整了交通灯的周期时长和绿灯时间长度,观察交通流量的变化和交通灯的工作效果。
- 最后,我们分析了不同交通灯工作模式下的交通流量情况,并对交通灯的控制效果进行了评估。
2. 实验结果:- 在高峰时段,交通灯的工作起到了明显的交通流量控制作用。
绿灯时,交通流量明显增加,车辆通行速度加快,而红灯时,车辆停止通行,交通流量减少。
- 调整交通灯的周期时长和绿灯时间长度对交通流量的控制效果有显著影响。
周期时长过长会导致车辆等待时间过长,造成交通拥堵;而周期时长过短会导致交通流量无法得到有效控制。
- 合理调整绿灯时间长度可以有效平衡交通流量,减少交通拥堵和事故发生的可能性。
四、实验讨论与结论1. 实验讨论:- 交通灯作为交通管理的重要手段,对交通流量的控制效果直接影响着交通系统的效率和安全性。
通过本次实验,我们发现交通灯能够有效地控制交通流量,减少交通事故的发生。
- 合理调整交通灯的周期时长和绿灯时间长度,可以最大程度地平衡交通流量,提高交通系统的运行效率。
交通灯控制电路实验报告

译码电路
•
译码器的主要任务是将控制器的输出 Q1、 Q2的4种工作 状态,翻译成东西道、南北道上6个信号灯的工作状态控制器中的 信号在送给由芯片74LS08N组成的译码器后再通过电路中的指示 灯得到交通灯的逻辑电路,这种电路的结果最终通过小灯的正常闪 烁来实现。
显示部分
显示部分由74LS48D和共阴极七段数码管组成, 74LS48D作为译码器,对74LS192N的输出信号进行译 码,然后通过七段数码管显示出74LS192N的计数。即 交通灯需要显示的时间。
交通灯控制电路
设计要求:
(1) 东西红灯(南北绿灯)亮; (2)东西红灯(南北绿灯)亮,且南北黄灯 闪烁; (3)南北红灯(东西绿灯)亮; (4)南北红灯(东西绿灯)亮,且东西黄灯 闪烁; 假设绿灯亮12秒,然后黄灯亮2秒,红灯 亮14秒。
设计方案
• 交通灯控制电路主要是按照交通规则:“红灯 停, 绿灯行,黄灯等一等”来设计的。主要由控 制器、定 时器、译码器、秒脉冲信号发生器和显示部 分组成。 秒脉冲发生器是该系统中定时器和控制器的 标准时 钟信号源,译码器输出两组信号灯的控制信 号,经 驱动电路后驱动信号灯工作,控制器是系统 的主要 部分,由它控制定时器和译码器的工作。
秒脉冲发生器
秒脉冲发生器是由+5V的交流电源来产生100HZ的 频率来驱动整个电路的,使电路示出12秒,2秒的时间,故考 虑双时钟输入的十进制计数器74LS192。74LS192是同 步十进制可逆计数器,为双时钟输入,具有同步清零和 同步置数等功能。
控制器
控制器是交通管理的核心,它应该能够按照交通管 理规则控制信号灯工作状态的转换。74LS112为带预置 和清除端的两组J-K触发器,是下降边沿触发的边沿触 发器。
模拟交通灯控制实验【范本模板】

实验报告课程名称:微机原理与接口技术 指导老师:彭勇刚 成绩:__________________ 实验名称:_______________________________实验类型:________________同组学生姓名:__________一、实验目的和要求(必填) 二、实验内容和原理(必填)三、主要仪器设备(必填) 四、操作方法和实验步骤五、实验数据记录和处理 六、实验结果与分析(必填)七、讨论、心得模拟交通灯控制实验一、实验目的1、了解时间常数的计算方法.2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。
3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。
二。
实验内容和实验原理 编写模拟交通灯运行控制程序。
要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒.利用二位八段LED 显示器进行时间显示.时间显示采用倒计时的方式。
时间归零时信号进行切换。
实验线路图如下图:装订线除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出三.实验器材:1。
Micetek仿真器一台2。
实验板一块四.程序及实验结果:调试通过的.LST文件如下:ORG 0000H0000 0130 AJMP MAINORG 000BH ;定时器T0的中断矢量000B 21A3 AJMP T0INT ;跳转到中断服务程序ORG 0030HMAIN:0030 758901 MOV TMOD,#01H ;写控制字,T0为方式1;0033 759800 MOV SCON,#00H0036 758160 MOV SP,#60H ;设堆栈指针SP为60H0039 D28C SETB TR0 ;启动T0;003B D2B9 SETB PT0 ;T0中断为高优先级003D D2A9 SETB ET0 ;允许T0中断003F D2AF SETB EA ;开放CPU中断0041 758AB0 MOV TL0,#0B0H ;定时常数为100ms0044 758C3C MOV TH0,#3CHORG 0100HRED: ;红灯0100 D280 SETB P0.0 ;设置输出的初始状态0102 C281 CLR P0。
模拟交通灯实验报告

单片机综合实验报告题目: 模拟真实交通灯班级:姓名:学号:指导老师:时间:一、实验内容:用8255芯片的PA、PB口低四位做输出口,控制十二个发光二极管燃灭,模拟十字路口交通灯管理,并利用数码显示器进行倒计时显示(采用单片机内部定时器定时)。
通过外部中断能使交通灯暂停运行,并点亮4个红灯。
通过16*16点阵中的图形模拟控制行人过马路的人形“走”、“停”指示灯,可参考下图所示。
选做增加项目:在交通灯开始之前可通过开关对红绿灯亮灭时间的初始值进行增、减设定或者交通灯暂停时加上乐曲报警。
二、实验电路及功能说明电路:74LS138译码器电路8255与发光二极管连线图数码LED显示器电路(不需接线)16×16LED点阵显示电要求:交通灯亮灭过程同“8255控制交通灯实验”,倒计时显示只需两位数(0~99),用定时器定时进行倒计时,每秒钟减1。
在16*16点阵中显示的人形“走”、“停”标志可自定义,由专门软件可转换为相应显示代码,不需自己推理。
三、实验程序流程图:主程序:子程序:详细程序请参考程序清单。
四、实验结果分析对程序进行仿真可以观察到:点阵中交替显示如图(a)、(b)所示图像,且交替显示时间为30秒。
当显示图像为(a)时,表示可以容行人通过,限时30秒;当显示图像为(b)时,表示不容行人通过,也限时30秒。
如此,在十字路口各置一对点阵即可模拟实景。
五、心得体会通过此次实验,对单片机的I/O口的使用的条件有了更深的理解,对单片机的各个管脚功能的理解也加深了,以及在常用编程设计思路技巧的掌握方面也向前迈了一大步。
这次的课程设计让我把单片机的理论知识应用在实践中,实现了理论和实践相结合,从中更懂得理论是实践的基础,实践有助于检验理论的正确性的道理,对我以后参加工作或者继续学习深造将产生巨大的帮助和影响。
六、程序清单#include <reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned int#define ROW1 XBYTE[0XFFE3]#define ROW2 XBYTE[0XFFE0]#define COL1 XBYTE[0XFFE2]#define COL2 XBYTE[0XFFE1]#define PA XBYTE[0xffd8]#define PB XBYTE[0xffd9]#define CTL XBYTE[0xffdb]#define SEG XBYTE[0xffdc]#define BIT XBYTE[0xffdd]#define allredend 10#define ewredend 2*ewstarter+allredend#define snyellowend ewredend+10#define snredend snyellowend+2*snstarter#define ewyellowend snredend+10sbit KEY1=P1^0;sbit KEY2=P1^1;sbit KEY3=P1^2;sbit P32=P3^2;uchar tongBu;uchar code ewTable[]={0xb6,0x75,0xf3,0xf7,0xae,0x9e,0xbe};uchar code nsTable[]={0xd,0xd,0xc,0xd,0xb,0x7,0xf};//uchar tempa,tempb;int time=1,cnt,change,intflag,inttime=1,ewstarter=10,snstarter=15;int tempseg;uchar key1=0;uchar buffer[]={0,0,0,0,0,0};uchar table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};/*-- 行走--*//*-- 宽度x高度=16x16 --*/uchar code led1[]={0x01,0x80,0x02,0x40,0x02,0x40,0x01,0x80,0x03,0xC0,0x06,0x60,0x0A,0x50,0x0A,0x5 0,0x0B,0xD0,0x12,0x48,0x02,0x40,0x02,0x60,0x04,0x20,0x04,0x20,0x08,0x20,0x18,0x60};/*-- 停止--*//*-- 宽度x高度=16x16 --*/uchar code led2[]={0x01,0x80,0x02,0x40,0x02,0x40,0x01,0x80,0x07,0xE0,0x7E,0x7E,0x02,0x40,0x02,0x40 ,0x03,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0xC0};/*-- 文字: 高--*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --uchar code led2[]={0x02,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,0x0F,0xE0,0x08,0x20,0x0F,0xE0,0x00,0x0 0,0x7F,0xFC,0x40,0x04,0x4F,0xE4,0x48,0x24,0x48,0x24,0x4F,0xE4,0x40,0x14,0x40,0x08};*/ void delayshort(){char n;for(n=50;n>0;n--);}uchar changeleft(uchar led){uchar temp;temp=0;temp|=(led<<7)&0x80;temp|=(led<<5)&0x40;temp|=(led<<3)&0x20;temp|=(led<<1)&0x10;temp|=(led>>1)&0x08;temp|=(led>>3)&0x04;temp|=(led>>5)&0x02;temp|=(led>>7)&0x01;return(temp);}void led16_16display(uchar *table,uchar length){uchar i=length/2,scan1=0x1,scan2=0x1;for(i=0;i<16;i++){if(i<8){ROW1=0;ROW2=0;COL1=scan1;COL2=0;ROW1=changeleft(table[2*i]);ROW2=table[2*i+1];COL1=scan1;COL2=0;delayshort();scan1<<=1;}else{ROW1=0;ROW2=0;COL1=0;COL2=scan2;ROW1=changeleft(table[2*i]);ROW2=table[2*i+1];COL1=0;COL2=scan2;delayshort();scan2<<=1;}}}void changeseg(){if(key1==0){buffer[3]=10;buffer[0]=10;buffer[5]=tempseg%10;buffer[4]=tempseg/10;buffer[2]=tempseg%10;buffer[1]=tempseg/10;}else if(key1==1){buffer[3]=10;buffer[0]=10;buffer[5]=ewstarter%10;buffer[4]=ewstarter/10;buffer[2]=ewstarter%10;buffer[1]=ewstarter/10;}else{buffer[3]=10;buffer[0]=10;buffer[5]=snstarter%10;buffer[4]=snstarter/10;buffer[2]=snstarter%10;buffer[1]=snstarter/10;}}void timer1()interrupt 3{static uchar temp=0x20,cnt1;TH1=(65536-1000)/256;TL1=(65536-1000)%256;changeseg();SEG=0xff;SEG=table[buffer[cnt1]];cnt1++;if(cnt1==6)cnt1=0;BIT=temp;temp>>=1;if(temp==0)temp=0x20;}void int_0()interrupt 0{delayshort();if(P32==0){PA=0xB6;PB=0xd;PT0=1;PT1=1;intflag=1;while(inttime<=20)led16_16display(led2,32);inttime=1;intflag=0;PT0=0;PT1=0;PA=ewTable[tongBu];PB=nsTable[tongBu];}}void timer0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;if(cnt==5){cnt=0;if(intflag==1){inttime++;tempseg=10-inttime/2;}else{time++;if(time<=allredend){tongBu=0;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=allredend/2-(time+1)/2;}else if((time>allredend)&&(time<=ewredend)){tongBu=1;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=ewstarter+allredend/2-(time+1)/2;}else if((time>ewredend)&&(time<=snyellowend)){if(change==0){tongBu=2;PA=ewTable[tongBu];PB=nsTable[tongBu];change=1;}else{tongBu=3;PA=ewTable[tongBu];PB=nsTable[tongBu];change=0;}tempseg=ewstarter+allredend/2+5-(time+1)/2;}else if((time>snyellowend)&&(time<=snredend)){tongBu=4;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=ewstarter+allredend/2+5+snstarter-(time+1)/2;}else if((time>snredend)&&(time<=ewyellowend)){if(change==0){tongBu=5;PA=ewTable[tongBu];PB=nsTable[tongBu];change=1;}else{tongBu=6;PA=ewTable[tongBu];PB=nsTable[tongBu];change=0;}tempseg=ewstarter+10+allredend/2+snstarter-(time+1)/2;}else{tongBu=1;time=allredend+1;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=ewstarter+allredend/2-(time+1)/2;}}}}void key(){uchar keynum;keynum=~(P1|0XF8);switch(keynum){case 0x1:while(KEY1==0)led16_16display(led2,32);key1++;TR0=0;if(key1==3){key1=0;TR0=1;}break;case 0x2:while(KEY2==0)led16_16display(led2,32);if(key1==1){ewstarter++;if(ewstarter==100)ewstarter=0;}if(key1==2){snstarter++;if(snstarter==100)snstarter=0;}break;case 0x4:while(KEY3==0)led16_16display(led2,32);if(key1==1){ewstarter--;if(ewstarter==-1)ewstarter=99;}if(key1==2){snstarter--;if(snstarter==-1)snstarter=99;}break;default:break;}}void main(){IE=0x8b;IT0=1;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-1000)/256;TL1=(65536-1000)%256;CTL=0x80;tongBu=0;TR1=1;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=allredend/2-(time+1)/2;TR0=1;while(1){key();if(intflag==0){if(key1==0){if(time<=allredend)led16_16display(led2,32);else if(time>allredend&&time<=snyellowend)led16_16display(led1,32);else if(time>snyellowend&&time<=ewyellowend)led16_16display(led2,32);}elseled16_16display(led2,32);}}}。
交通信号控制实验报告

交通信号控制实验报告交通信号控制实验报告一、引言交通信号控制是现代城市交通管理的重要手段之一,通过合理的信号灯设置和控制,可以有效地提高道路交通的效率和安全性。
为了进一步了解交通信号控制的原理和应用,我们进行了一次交通信号控制的实验。
二、实验目的本次实验的目的是通过模拟交通信号控制的过程,探究不同信号灯设置对交通流量和交通延误的影响,并分析其优缺点,为实际交通信号的设置提供参考。
三、实验方法1. 实验设备我们使用了一个交通信号控制模拟器,该模拟器可以模拟不同路口的交通流量和信号灯控制。
2. 实验步骤(1)选择不同的交通流量情况,包括高峰时段和低峰时段。
(2)设置不同的信号灯控制方案,包括定时控制和感应控制。
(3)观察和记录交通流量、延误时间等数据。
(4)分析实验结果,总结不同信号灯控制方案的优缺点。
四、实验结果我们进行了多组实验,得到了以下结果:1. 高峰时段在高峰时段,交通流量较大,需要采取较为严格的信号灯控制措施。
我们设置了定时控制和感应控制两种方案进行对比。
(1)定时控制在定时控制方案中,信号灯按照固定的时间间隔进行切换。
我们发现,在高峰时段,定时控制的交通流量较大,容易出现拥堵现象,导致交通延误时间增加。
(2)感应控制在感应控制方案中,交通信号根据交通流量的实时变化进行调整。
我们发现,感应控制能够根据交通流量的变化灵活调整信号灯的切换时间,有效地缓解交通拥堵,减少交通延误时间。
2. 低峰时段在低峰时段,交通流量相对较小,我们设置了两种不同的信号灯控制方案进行对比。
(1)定时控制在低峰时段,定时控制方案能够满足交通需求,交通流畅,但会造成一定的能源浪费。
(2)感应控制在低峰时段,感应控制方案能够根据实时交通流量的变化进行调整,减少能源浪费,提高交通效率。
五、实验分析通过实验结果的分析,我们可以得出以下结论:1. 定时控制和感应控制的优缺点定时控制方案简单易行,但无法根据实时交通流量进行调整,容易导致交通拥堵和延误。
交通灯控制实验报告

一、实验目的1. 理解交通灯控制系统的工作原理和基本组成。
2. 掌握PLC(可编程逻辑控制器)编程和调试方法。
3. 学习交通灯控制系统的硬件连接和电路设计。
4. 提高实际应用中解决复杂问题的能力。
二、实验原理交通灯控制系统是城市交通管理的重要组成部分,其基本原理是通过对交通信号灯进行控制,实现交通流量的有序疏导。
本实验采用PLC作为控制核心,通过编写程序实现对交通灯的定时控制。
三、实验器材1. PLC主机2. 交通灯控制模块3. 电源模块4. 交通灯模型5. 连接线四、实验步骤1. 硬件连接:- 将PLC主机与交通灯控制模块、电源模块和交通灯模型连接。
- 将PLC主机与计算机连接,以便进行程序编写和调试。
2. 程序编写:- 根据交通灯控制要求,编写PLC程序。
- 程序主要包括以下部分:- 启动信号处理:检测启动开关状态,控制交通灯开始工作。
- 定时控制:根据设定的时间,控制交通灯的红、黄、绿灯亮灭。
- 紧急处理:检测紧急处理开关状态,实现交通灯的紧急控制。
3. 程序调试:- 在计算机上运行PLC程序,观察程序运行效果。
- 根据实际情况,对程序进行调试和优化。
4. 实验验证:- 在实际硬件环境中运行程序,观察交通灯控制效果。
- 验证程序是否满足实验要求。
五、实验结果与分析1. 实验结果:- 在实验过程中,成功实现了交通灯的控制,实现了红、黄、绿灯的定时切换。
- 在紧急情况下,能够实现交通灯的紧急控制。
2. 结果分析:- 通过实验,掌握了PLC编程和调试方法,提高了实际应用中解决复杂问题的能力。
- 实验结果表明,所设计的交通灯控制系统具有良好的稳定性和可靠性。
六、实验总结本次实验成功实现了交通灯控制系统的设计与实现,达到了预期目标。
通过实验,我们掌握了以下知识点:1. 交通灯控制系统的工作原理和基本组成。
2. PLC编程和调试方法。
3. 交通灯控制系统的硬件连接和电路设计。
本次实验提高了我们的实际应用能力,为以后从事相关领域工作奠定了基础。
模拟交通信号灯实训报告

一、实训背景随着城市化进程的加快,交通拥堵问题日益严重,交通信号灯作为交通管理的重要手段,对于提高道路通行效率、保障交通安全具有重要意义。
为了提高学生的实践能力,了解交通信号灯的工作原理,本实训采用模拟交通信号灯系统进行实践操作。
二、实训目的1. 了解交通信号灯的工作原理和组成。
2. 掌握交通信号灯系统的设计方法。
3. 学会使用相关软件进行交通信号灯系统的仿真。
4. 提高学生的动手能力和团队协作能力。
三、实训内容1. 交通信号灯系统组成交通信号灯系统主要由以下部分组成:(1)控制器:负责控制信号灯的时序、状态切换和故障处理。
(2)信号灯:包括红、黄、绿三种颜色的信号灯,分别表示停车、等待和通行。
(3)感应器:检测车辆和行人通行情况,为控制器提供实时数据。
(4)显示屏:显示信号灯状态、倒计时等信息。
2. 交通信号灯系统设计(1)控制器设计控制器采用单片机作为核心控制单元,负责信号灯的时序控制、状态切换和故障处理。
控制器通过定时器实现信号灯的定时切换,同时根据感应器采集的数据调整信号灯的时长。
(2)信号灯设计信号灯采用LED灯作为发光元件,通过单片机控制LED灯的亮灭实现信号灯的显示。
信号灯包括红、黄、绿三种颜色的LED灯,分别表示停车、等待和通行。
(3)感应器设计感应器采用红外感应器或超声波感应器,用于检测车辆和行人通行情况。
当感应器检测到车辆或行人时,向控制器发送信号,控制器根据信号调整信号灯时长。
(4)显示屏设计显示屏采用LCD显示屏,用于显示信号灯状态、倒计时等信息。
显示屏通过单片机控制,实现信息的实时显示。
3. 交通信号灯系统仿真采用Proteus软件进行交通信号灯系统的仿真。
Proteus软件是一款电路仿真软件,可以模拟各种电路的工作原理,包括交通信号灯系统。
在Proteus软件中,搭建交通信号灯系统的电路图,设置参数,运行仿真,观察信号灯的工作状态。
四、实训过程1. 熟悉Proteus软件首先,学生需要熟悉Proteus软件的操作,包括电路搭建、参数设置、仿真运行等。
交通灯模拟实验

交通灯模拟实验
一,实验目的
熟练掌握并使用各基本指令,特别是定时器的使用。
掌握用PLC解决一个实际问题的方法及编程、调试方法。
二,控制要求
信号灯受一个启动按钮控制,当启动按钮的接通时,信号灯系统开始循环工作,且先南北红灯亮(15s)、东西绿灯亮(12s)。
然后东西黄灯开始闪烁(闪烁3次,周期为1s),然后东西红灯亮(20s),南北绿灯亮(17s)。
然后南北黄开始闪(闪烁3次,周期为1s),然南北红灯亮时,一个循环结束,然后周而复始,按停止键可结束。
验面板图中端子对应表。
交通灯控制电路设计实验(实验报告)

学号 **********东北师范大学2015——2016学年学年小论文学院、系物理学院专业名称电气及其自动化年级 2014级学生姓名伍敏2016年11月1日一.设计背景如今,红绿灯成为管制交通的最有效的手段之一。
作为疏导交通必不可少的工具,已经出现在各个交通路口。
红绿灯的出现有效的减少了交通事故的发生,提高了道路的畅通性。
因此,为了巩固对课堂知识的理解,更进一步了解单片机结构与功能,加强自己的动手实践能力,本人决定用单片机来实现简单模拟交通灯的设计。
二.设计功能1.东西方向车道和南北方向车道上车辆交替运行。
2.路口数码管按秒倒计时显示数字作为提醒。
3.红灯亮表示禁止通行,绿灯亮表示允许通行。
4.数码管显示时间共用,按秒倒计时显示数字作为提醒。
5.黄灯时间和绿灯时间可以进行更改,红灯时间默认为两个时间相加。
三.所需元件1. 74ls1922. 74ls2453. 741384. 7486 四异或门5. 7474双D 触发器6. 发光二极管 12个(红黄绿各3个)7. 电容电阻若干8. 晶振9.导线若干南东西北 交通路口示意图主 干 道四.实验设计部分设计思路五.单元设计电路1.秒信号发生器:本来想选用555定时器实现秒信号产生的额基本功能,因为在课上接触到的比较熟悉,但是由于某些原因,不让使用555定时器,只能够想用32768晶振和CD4060搭配,通过分频实现秒信号发生的功能,而且由于555定时器受到的外界因素影响较大,使用晶振产生的秒信号会更加的稳定。
状态译码电路 输出 电路状态产生电路时间倒计时电路 时间预置电路 南北方向计时东西方向计时秒信号产生电路2.时间预置电路:74LS245:同相三态双向总线收发器,通过G端口的选择,可以选择由A向B发送数据或者是由B向A发送数据。
每个芯片有着八个开关,前四个开关控制的计时的个位数据,后四个开关控制的计时的十位预置数据。
而预置数据具体选择的是哪一个芯片上的数据由G控制,任何时刻两个芯片只有其中的一个能正常传输数据,而另一个不能传输。
实验报告二-模拟交通灯实验

实验报告二-模拟交通灯实验实验目的:本次实验旨在通过模拟交通灯实验,了解交通灯的工作原理、设计及调节方法。
实验原理:交通灯是城市交通管理中不可缺少的部分,广泛应用于道路、路口等地方,用以调整交通流量和保障行人和车辆的交通安全。
基本上,每个交通灯系统都由信号控制器、信号球、绿地检测器组成。
信号控制器是交通灯系统的核心部分,通过控制信号球的点灯和熄灭,向车辆、行人发出指令。
实验器材:1. Arduino控制板;2. LED灯若干;3. 面包板;4. 杜邦线;5. 电阻。
实验步骤:1. 通过面包板将Arduino控制板与电阻、LED灯连接;2. 在Arduino控制板上编写程序,实现交通灯模拟;3. 连接电源,通过Arduino IDE输入程序运行。
实验结果:经过程序处理,LED灯按照交通灯的颜色进行变换,使得其能够模拟实际交通灯的工作状态,达到预期效果。
实验教训:在实验过程中,我们发现LED灯的管脚与面包板接触不良时,会出现程序不能正常运行的情况。
因此,我们在连接器件时要确保接触良好,并注意防静电。
实验思考:本次实验通过模拟交通灯,我们深刻认识到交通灯的工作原理以及对道路交通的重要意义。
合理设置交通灯,不仅能够保障行人和车辆安全,而且还能提高道路的通行效率。
因此,在今后的实践活动中,我们应该更加注重交通灯的科学研究和实际应用。
结语:通过本次实验,我们进一步认识到交通灯对于城市交通管理的重要性,同时也掌握了基本的交通灯原理和设计方法。
相信在今后的学习和研究中,我们将能够更好地提高交通管理的水平和效率。
PLC实验报告:实验三 交通灯控制实验

实验名称 交通灯控制实验
指导老师 成绩
专业 班级 姓名 学号
一、实验目的:
1、 熟悉定时器(TOF 断电延时型定时器)的应用。
二、实验内容:
启动开关打开东西绿灯亮、南北红灯亮。
延时5秒后,东西绿灯灭,南北红灯继续亮,同时东西黄灯以1秒为周期进行闪烁,延时3秒后东西红灯亮,南北绿灯亮,同样延时5秒后,东西红灯继续亮,南北绿灯灭,南北黄灯以1秒为周期进行闪烁,延时3秒后又切换到东西绿灯亮,南北红灯亮的状态,如此周而复始。
启动开关关闭,所有绿灯、红灯均灭,所有黄灯以1秒为周期的闪烁。
三、实验连线图:
CPU224模块
四、输入/输出地址分配及功能说明
1M 1L I0.0 Q0.0 I0.1 Q0.1 I0.2 Q0.2 I0.3 Q0.3 I0.4 2L I0.5 Q0.4 I0.6 Q0.5 I0.7 Q0.6 2M 3L I1.0 Q0.7 I1.1 Q1.0 I1.2 Q1.1 I1.3
I1.4
五、实验程序
六、实验结论。
综合课程设计——模拟交通灯实验报告

标准实验报告学生姓名:指导教师:一、实验室名称:二、实验项目名称:综合课程设计1——模拟交通灯实验三、实验原理:1、交通信号灯基本转换原理本实验所模拟的交通信号灯的转换原理如下图:转移状态图默认的初始状态为红灯状态,做30 秒减计时。
当时间从30 秒递减到0 秒后,红灯状态变为绿灯状态;重新30 秒减计时,递减到0 秒后,绿灯状态变为黄灯状态;做5 秒减计时,递减到0 秒后,黄灯状态变为红灯状态。
如此循环进行转换。
2、自由按键电路KEY1 对应P102,KEY2 对应P101。
3、八段数码管和动态显示原理八段就是指数码管里有八个小LED 发光二极管,通过控制不同的LED 发光二极管的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型。
共阴极就是将八个LED 的阴极连在一起,让其接地,这样给任何一个LED 的另一端高电平,它便能点亮;共阳极就是将八个LED 的阳极连在一起。
其原理图如下:数码管电路原理图其中引脚图的两个COM 端连在一起就是公共端。
共阴极数码管要将其接地,共阳极数码管将其接+5V 电源。
一个八段数码管用来表示一位,多个数码管并列在一起即可构成多位数字,它们的段选线(即a,b,c,d,e,f,g,dp)都连在一起,而各自的公共端为位选线。
显示时,数据都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8 段即对应一个字节(Byte)的8 位,a 对应最低位,dp 对应最高位。
所以如果想让数码管显示数字0,那么共阴极数码管的字符编码为00111111 即0x3f;共阳极数码管的字符编码为11000000 即0xc0。
可以看出两个编码的各位正好相反。
如下图所示:8段数码管的共阴共阳差异4、数码动态显示数码管动态显示即轮流向各位数码管送出字符编码和相应的位选信号,利用发光二极管的余辉和人眼的视觉暂留作用,使人感觉好像各位的数码管都同时在显示。
相比于静态显示,动态显示的亮度要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
LED模拟交通灯实验报告

switch(Operation_Type)
{
case 1: //东西向绿灯与南北向红灯亮
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case 2: //东西向黄灯闪烁,绿灯关闭
DelayMS(300);
YELLOW_A=~YELLOW_A;GREEN_A=1;
if(++Flash_Count!=10) return; //闪烁5次
Flash_Count=0;
Operation_Type=3;
break;
case 3: //东西向红灯,南北向绿灯亮
RED_A=0;YELLOW_A=1;GREEN_A=1;
一、LED模拟交通灯实验实验
一、实验目的及要求
1、学习P0口的使用方法
2、学习延时子程序的编写
本实验中12只LED分成东西向和南北向两组,各组指示灯均有相向的2只红色、2只黄色与2只绿色的LED,实验对相应的LED单独进行定义,程序运行时模拟了十字路口交通信号灯的切换过程与显示交果。
源程序中用6行sbit对东西和南北向的红、黄、绿指示灯分别进行定义,这样便于对Fra bibliotek们进行单独控制。
sbit GREEN_B=P0^5;
uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量
//延时
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AJMP T0INT
ORG 0030H
MAIN:
MOV TMOD,#01H ;设定时器/计数器T0为方式1,T1为方式0 MOV SCON,#00H
MOV SP,#60H ;设堆栈指针SP为60H
SETB TR0 ;启动定时器/计数器T0
SETB PT0 ;T0中断为高优先级
SETB ET0 ;允许定时器/计数器T0中断
SETB EA ;开中断
MOV TL0,#0B0H ;设T0时间常数为100ms
MOV TH0,#3CH
;ORG 0100H
RED:
SETB P0.0 ;设置灯的初始状态
CLR P0.1
CLR P0.2
CLR P0.3
CLR P0.4
SETB P0.5
MOV R0,#30 ;红绿灯亮30秒
MOV R1,#10 ;黄灯亮10秒
LOOP1:MOV A,R0
LCALL SHOW
WAIT1:JNB 20H.0,WAIT1 ;显示管每隔1秒倒计数
CLR 20H.0
DJNZ R1,WAIT1
MOV R1,#10
DEC R0 ;倒计时从30到1
CJNE R0,#00H,LOOP1
YELLOW: ;设置灯的初始状态
CLR P0.0
SETB P0.1
CLR P0.2
CLR P0.3
SETB P0.4
CLR P0.5
MOV R0,#10 ;黄灯亮10秒
MOV R1,#10
LOOP2:MOV A,R0
LCALL SHOW
WAIT2:JNB 20H.0,WAIT2
CLR 20H.0
DJNZ R1,WAIT2
MOV R1,#10
DEC R0
CJNE R0,#00H,LOOP2
GREEN:
CLR P0.0
CLR P0.1
SETB P0.2
SETB P0.3
CLR P0.4
CLR P0.5
MOV R0,#30
MOV R1,#10
LOOP3:MOV A,R0
LCALL SHOW
WAIT3:JNB 20H.0,WAIT3
CLR 20H.0
DJNZ R1,WAIT3
MOV R1,#10
DEC R0
CJNE R0,#00H,LOOP3
LJMP MAIN
SHOW:
MOV 21H,R0
MOV 22H,R1
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 4BH,A
MOV A,B
MOVC A,@A+DPTR
MOV 4AH,A
MOV 4CH,#0FFH ;前四个显示管灭MOV 4DH,#0FFH
MOV 4EH,#0FFH
MOV 4FH,#0FFH
MOV R1,#4AH
MOV R0,#06H
TRAN:MOV A,@R1
CLR TI
MOV SBUF,A
HERE:JNB TI,HERE
INC R1
DJNZ R0,TRAN ;循环六次,是的六个显示管有相应的状态
MOV R0,21H
MOV R1,22H
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
T0INT:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB 20H.0
SETB TR0
RETI
六、实验心得和体会
本次实验综合性较高,囊括了半本书的知识范围。
在最初写程序时,我不时参考课本266页的程序,但也遇到了很大的困难,最终是和同学讨论着完成的。
一个实验有不同的的程序,用不同的思路写出来的程序不同。