实验3 模拟交通灯控制实验
交通信号灯控制实验——单片机实验报告
实验名称:交通灯信号控制实验一、实验目的:1.学习P1口的使用方法;2.学习延时子程序的编写;3. 学习单片机的开发环境及流程。
二、实验内容及步骤:以P1口作为输出口,控制6个发光二极管,模拟交通信号灯的管理。
在实验仪上选择两组红、黄、绿指示灯,代表交通信号灯。
要求:设有一个十字路口为东西南北方向,其中东西方向为支路,南北方向为主路。
初始状态为4个路口的红灯全亮。
之后,南北路口的绿灯亮,东西路口的红灯亮。
南北路口方向通车,延时20秒后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁5次后红灯亮。
而同时东西方向路口的绿灯亮,东西方向开始通车,延时10秒后,东西路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到南北路口的绿灯亮,东西路口的红灯亮。
之后重复上述过程。
三、实验电路四、程序流程图五、单片机程序(*.lst文件)A51 MACRO ASSEMBLER JIAOTONGDENG 04/17/2010 11:17:58 PAGE 1MACRO ASSEMBLER A51 V7.01OBJECT MODULE PLACED IN jiaotongdeng.OBJASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE jiaotongdeng.asm SET(SMALL) DEBUG EPLOC OBJ LINE SOURCE0000 1 ORG 0000H230000 759018 4 START: MOV P1,#00011000B0003 1155 5 CALL DALY1 ;调用0.5s延时子程序0005 7590DB 6 MOV P1,#11011011B0008 1133 7 CALL DALY;调用20s子程序000A 7805 8 MOV R0,#5H000C 74DD 9 LOOP1: MOV A,#11011101B ;P1口状态000E F590 10 MOV P1,A0010 1155 11 CALL DALY1 ; 调用0.5s延时子程序0012 74DF 12 MOV A,#11011111B0014 F590 13 MOV P1,A0016 1155 14 CALL DALY1 ;调用0.5s延时子程序0018 D8F2 15 DJNZ R0,LOOP1001A 747E 16 MOV A,#01111110B001C F590 17 MOV P1,A001E 1144 18 CALL DALY2 ;调用10s延时子程序0020 7805 19 MOV R0,#5H0022 74BE 20 LOOP2: MOV A,#10111110B0024 F590 21 MOV P1,A0026 1155 22 CALL DALY1 ;调用0.5s延时子程序0028 74FE 23 MOV A,#11111110B002A F590 24 MOV P1,A002C 1155 25 CALL DALY1 ;调用0.5s延时子程序002E D8F2 26 DJNZ R0,LOOP20030 020000 27 LJMP START2829 ;20s延时子程序0033 7C64 30 DALY:MOV R4,#1000035 7B64 31 DELAY1:MOV R3,#1000037 7A14 32 DELAY2:MOV R2,#200039 792D 33 DELAY3:MOV R1,#45003B D9FE 34 DELAY4:DJNZ R1,DELAY4003D DAFA35 DJNZ R2,DELAY3003F DBF6 36 DJNZ R3,DELAY20041 DCF2 37 DJNZ R4,DELAY10043 22 38 RET3940 ;10s延时子程序0044 7C64 41 DALY2:MOV R4,#1000046 7B64 42 DEAY1:MOV R3,#1000048 7A0A43 DEAY2:MOV R2,#10004A 792D 44 DEAY3:MOV R1,#45004C D9FE 45 DEAY4:DJNZ R1,DEAY4004E DAFA46 DJNZ R2,DEAY30050 DBF6 47 DJNZ R3,DEAY20052 DCF2 48 DJNZ R4,DEAY10054 22 49 RET5051 ;0.5s延时子程序0055 7C64 52 DALY1: MOV R4,#1000057 7B64 53 DEY1: MOV R3,#1000059 7A19 54 DEY2: MOV R2,#25005B DAFE 55 DEY3: DJNZ R2,DEY3005D DBFA56 DJNZ R3,DEY2005F DCF6 57 DJNZ R4,DEY10061 22 58 RET04/17/2010 11:17:58 PAGE 25960 END04/17/2010 11:17:58 PAGE 3SYMBOL TABLE LISTING------ ----- -------六、实验总结及感想本次实验主要学习了单片机的开发环境和程序调试及运行两种模式,并通过交通灯信号控制实验进行了实例演练。
模拟交通灯单片机实验报告
本科学生设计性实验报告
学号姓名
学院物理与电子专业、班级子
实验课程名称模拟交通灯控制技术实验
教师及职称
开课学期2013 至2014 学年下学期
填报时间2014 年 6 月 5 日
云南师范大学教务处编印
摘要:道路交通信号灯是交通安全产品中的一种类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。
单片机是微型计算机一个重要分支,具有体积小、价格低、指令系统简单、可靠性高工作范围广等特点,故本实验以89C51单片机为核心进行设计控制交通灯的工作。
4.实验设备及材料。
实验三 交通灯控制实验
实验三发光二极管控制实验一、实验目的1、熟悉TMS320 2000系列DSP的指令系统;2、熟悉交通灯的控制方案及实现过程;3、熟悉CCS的环境下汇编语言的使用。
二、实验设备1、计算机;2、CCS软件;3、插上2407主控板的实验箱;4、DSP硬件仿真器。
三、实验原理交通灯模块由发光二极管和一个锁存器组成。
数据由TMS320LF2407模块的低八位输入;锁存器的控制信号由2407模块输出,但经由CPLD模块译码后再控制锁存器。
8个发光二极管的地址为3000H。
四、实验步骤1、连接设备①连接计算机和实验箱(电源和仿真器);②打开计算机电源;③打开实验箱电源开关;④打开数码管的电源开关。
2、配置硬件仿真器(在此次实验中配置硬件开发环境为F2407 XDS510 Emulator)①把F24XX XDS510 Emulator 拽入左侧;②下拉框:Auto-generate board data file with extra configration;③configuration File: C:\ti\c5000\drivers\ICETEK.cfg;④I/O Port: 0X0;⑤点击Add Single 增加CPU-1⑥CPU-1:c:\ti\c2000\cc\gel\f2407.gel3、开发设计控制数码管的应用程序3.1 创建一个新的工程3.2 向工程里添加文件3.3 查看源代码3.4 编译和下载程序4、例程3.1 打开工程,选择C:\ti\dsptest\ex5.2\jiaotong.pjt3.2 查看源代码,读懂程序;3.3编译和下载程序;3.4观察交通灯的显示效果。
5、编程实现下列显示效果1、实现流水灯的效果(8个发光二极管依次循环点亮)。
2、自行设计其它显示效果。
五、实验程序六、实验总结。
PLC交通灯实验报告
十字路口交通灯控制的模拟实验报告一、实验目的1、熟练使用各基本指令,定时器,计数器,内部指令等。
2、根据控制要求,掌握PLC的编程方法和程序调试方法。
3、掌握交通灯的实验设计与三菱PLC的连线方法。
二、实验要求交通灯模拟控制实验区中,下框中的南北红、黄、绿灯R、Y、G分别接主机的输出点Y2、Y1、Y0,东西红、黄、绿灯R、Y、G分别接主机的输出点Y5、Y4、Y3,模拟南北向行驶车的灯接主机的输出点Y6,模拟东西向行驶车的灯接主机的输出点Y7;下框中的SD接主机的输入端X0。
上框中的东西南北三组红绿黄三色发光二极管模拟十字路口的交通灯。
信号灯受一个启动开关控制,当启动开关接通时,信号灯系统开始空座,且先南北红灯亮,东西绿灯亮。
当启动开关断开时,所有信号灯都熄灭。
南北红灯亮维持25秒,在南北红灯亮的同时东西绿灯也亮,并维持20秒。
到20秒时,东西绿灯闪亮,闪亮3秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,绿灯亮。
东西红灯亮维持30秒。
南北绿灯亮维持25秒,然后闪亮3秒后熄灭。
同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。
周而复始。
三、程序设计步骤1、过程分析:过程一:东西向车行驶 2、设置定时器 当司机看到红灯变为绿灯的时候需要有时间反应,启动车辆等。
因此在车子行驶和交通灯变化之间设置1s 的间隔。
②设置T22、T222、T221、T223的原因是:T2和T7只能控制交通灯的闪亮时间,并不能使其控制。
T22一个定时器并不能同时控制东西绿灯与南北绿灯的闪烁,要分别设置控制器,所以通过T22、T222的分别作用,使东西绿灯与南北绿灯分别在高、低电平交替的时候闪亮。
南北红灯亮25s东西向车行驶东西绿灯亮20s →东西绿灯闪2s →东西黄灯亮2s 南北绿灯亮25s →南北绿灯闪3s →南北黄灯亮2s南北向车行驶 东西红灯亮30sT0: 南北红灯亮25sT6: 东西绿灯亮20s T22:东西绿灯闪烁 T1: 南北绿灯亮25sT7: 东西绿灯闪亮2s T222:南北绿灯闪烁 T2: 南北绿灯闪亮3sT10: 东西向车行驶22s T221:东西绿灯闪烁的断点 T3: 南北黄灯亮2s T11: 南北向车行驶27s T223:南北绿灯闪烁的断点T4: 东西红灯亮30s T12: 延迟1sT5: 东西黄灯亮2s T13: 延迟1s输入X0:启动开关输出Y40: 南北绿灯Y43: 东西绿灯Y41: 南北黄灯Y44: 东西黄灯Y42: 南北红灯Y45: 东西红灯Y46: 南北向车行驶Y47: 东西向车行驶4、按照设置的I/O分配进行接线。
实验三-交通灯控制实验
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□√设计□创新实验日期:实验成绩:实验三交通灯控制实验一.实验目的掌握十字路口交通灯控制方法。
二.实验内容利用系统提供的双色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. 探讨交通灯在交通管理中的优势和不足。
实验过程:在实验室中,我们使用了一套模拟交通灯系统进行实验。
该系统包括红、黄、绿三种信号灯和相应的控制器。
首先,我们观察了交通灯的信号灯变化规律。
根据实验室提供的资料,红灯表示停止,黄灯表示准备,绿灯表示通行。
交通灯的变化规律是:红灯亮→绿灯亮→黄灯亮→红灯亮。
这个变化过程是有序的,为车辆和行人提供了明确的信号。
接下来,我们进行了交通灯对车辆和行人通行的引导实验。
在实验室中,我们设置了一段模拟道路和人行横道,并安装了交通灯。
通过控制器,我们模拟了不同的交通情况,观察交通灯对车辆和行人通行的影响。
实验结果显示,当红灯亮起时,车辆停止通行,行人等待过马路;当绿灯亮起时,车辆可以通行,行人可以过马路;当黄灯亮起时,车辆应减速停车,行人应尽快过马路。
交通灯的引导作用使得车辆和行人的通行更加有序和安全。
讨论:交通灯作为一种交通管理工具,具有一定的优势和不足。
首先,交通灯通过明确的信号灯变化规律,为车辆和行人提供了明确的指示,减少了交通事故的发生。
其次,交通灯可以根据交通流量的变化进行智能调控,提高道路的通行效率。
此外,交通灯还可以与其他交通设施相结合,形成综合交通管理系统,进一步提升交通管理水平。
然而,交通灯也存在一些不足之处。
首先,当交通流量较大时,交通灯的信号周期较长,可能导致车辆和行人等待时间过长,影响通行效率。
其次,交通灯对车辆和行人的通行进行了简化处理,不能完全满足各种交通情况的需求。
例如,在某些情况下,行人可能需要额外的通行时间,以确保安全过马路。
结论:通过本次实验,我们深入了解了交通灯的工作原理和效果。
智能交通灯模拟控制电路实验报告
智能交通灯模拟控制电路实验报告(指导老师:李赣平)一.设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
用红、绿、黄发光二极管作信号灯。
二.设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。
2.2 方案设计单片机的I/O 接口直接和交通灯(LED)连接。
在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色灯连接在一起,受单片机P0.0~P2.3 口控制。
12 个发光二极管采用了共阳极的连接方式,因此I/O 口输出低电平时,与之相连的LED 会亮,I/O 口输出高电平时,与之相连的LED 会灭。
软件方案根据设计要求,软件可由汇编语言完成,也可由C语言完成。
程序流程图如下程序流程图智能交通灯模拟控制电路实验报告(1)单片机的构造89SC51 的基本结构89SC51 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。
中央处理器:中央处理器是8 位CPU,含布尔处理器;时钟电路;总线控制逻辑。
中央处理器(CPU)是整个单片机的核心部件,是8 位数据宽度的处理器,能处理8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。
数据存储器(RAM):数据存储器(RAM)有128KB 数据存储器(RAM,可再扩64KB)和特殊功能寄存器SFR。
89C51内部有128个8 位用户数据存储单元和128个寄存器单元,他们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。
模拟交通灯实验报告
单片机综合实验报告题目: 模拟真实交通灯班级:姓名:学号:指导老师:时间:一、实验内容:用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. 定时控制和感应控制的优缺点定时控制方案简单易行,但无法根据实时交通流量进行调整,容易导致交通拥堵和延误。
实验三 交通灯模拟控制
0 1 东西灯
甲车 南北灯 Y5 Y7 Y0
20 232526
Y4 Y3
50 53 5556 t/s
Hale Waihona Puke Y2Y1乙车
Y6
T0
T2
T1
0 1 东西灯 甲车 Y5 Y7
20 232526 Y4 Y3
50 53 5556 t/s
南北灯
乙车
Y0
Y2
Y6
Y1
T0=0 T1=1 T2=1
T0=1
T3=1
思路:1、确定时间;2、确定输出。
实验三 交通灯的模拟控制
一、实验目的 用PLC构成交通灯控制系统 二、实验内容 1.控制要求 起动后,南北红灯亮并维持 25s。在南北红灯亮的同时,东西 绿灯也亮,1s后,东西车灯即甲 亮。到20s时,东西绿灯闪亮,3s 后熄灭,在东西绿灯熄灭后东西 黄灯亮,同时甲灭。黄灯亮2s后 灭东西红灯亮。与此同时,南北 红灯灭,南北绿灯亮。1s后,南 北车灯即乙亮。南北绿灯亮了25s 后闪亮,3s后熄灭,同时乙灭, 黄灯亮2s后熄灭,南北红灯亮, 东西绿灯亮,循环。
图5-1 交通灯控制示意图
2.I/O分配
输入 输出
起动按钮:X0 南北红灯:Y0 东西红灯:Y3 停止按钮:X1 南北黄灯:Y1 东西黄灯:Y4 南北绿灯:Y2 东西绿灯:Y5 南北车灯:Y6 东西车灯:Y7 3.按图所示的梯形图输入程序。
4.调试并运行程序。
分析: 1、东西绿灯亮20秒,南北绿灯亮25秒。 2、绿灯熄灭前先闪烁3秒,再灭。 而后黄灯亮。黄灯亮2秒后灭。 红灯一直亮到黄灯灭后才转绿灯。 3、车在绿灯亮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. 交通灯控制系统的硬件连接和电路设计。
本次实验提高了我们的实际应用能力,为以后从事相关领域工作奠定了基础。
交通灯控制电路设计实验(实验报告)
学号 **********东北师范大学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控制,任何时刻两个芯片只有其中的一个能正常传输数据,而另一个不能传输。
交通灯控制实验
六、程序框图
七、源程序清单
/******************************************************
*标题:交通灯*
* L1——L4控制红灯,L5——L8控制黄灯,L9——L12控制绿灯*
*R6控制着U4(L1——L8);R7控制着U5(L9——L16)*
MOV DPTR,#1B10H
MOV A,R7
MOVX @DPTR,A ;控制绿灯
RET
DELAY1:MOV R1,#200;延时0.1S
L0:MOV R0,#248
NOP
L1:DJNZ R0,L1
DJNZ R1,L0
RET
DELAY20:MOV R4,#199;延时20S
L2:MOV R3,#247
方式二:使用keil c51与TMSD工具结合进行编辑、编译、链接和调试:
a.在windows下,打开keil c51集成环境,在主菜单中PROJECT下新建一个工程,选择合适的单片机类型;
b.在File功能下新建一个文件,输入汇编语言,存成*.asm即为汇编源文件;
c.把以上源文件添加到以上新建工程中,编译、链接,全部通过的话,进入调试;
ACALL LAMP ;东西方向黄灯亮,南北方向红灯亮
ACALL DH
MOV R7 ,#00H
ACALL LAMP ;东西方向黄灯灭,南北方向红灯亮
ACALL DELAY1;设置时间为0.1S
DJNZ NUMB,RESET1
MOV R6 ,#03H
方式一:使用TMSD工具进行编辑、编译、链接和调试:
a、进入C:\TMSD目录(如果需要,先用软盘启动机器);
大学 实训:交通灯控制
一、实验目的: 1、掌握系统设计数字电路的方法 2、进一步熟练虚拟仪器的使用方法 3、进一步提高Multisim的仿真技巧
二、实验原理:
假设有个十字路口,分别有A、B两条交叉的 道路,交通灯的控制方式为:A街道先出现在 绿灯(3S)、黄灯(1S)时,B街道为红灯 (4S);而A街道为红灯(4S)时,B街道 出现绿灯(3S)、黄灯(1S);如此循环。 所以交通灯控制的一个循环为8S,而采用一 片同步十进制计数74LS160来完成时间控制, 相当于模8的计数器。
GA QBQC QAQC YA QAQB QC R A QC GB QBQC QAQC YB QAQBQC R B QC
4、交通灯控制电路的实现
U1
DCD_HEX
4 3 2 1
U2
3
14
A
QA
VCC 5V
4B 5C
QB 13 QC 12
6D
QD 11
VCC
7 ENP
3 4 5
6 7
10
9 1 2
A B C D ENP ENT LOAD CLR CLK
QA QB QC QD
RCO
74LS160
14 13 12 11
15
2)模8计数器:
要产生8S的控制信号,所以CLK端输入1Hz 的脉冲信号,而8S一循环相当于模8计数, 即:0000~0111,故将1000信号作为清零信 号,即将QD通过一个非门接到芯片的清零端 CLR。
执行仿真的几点说明: 1、选择仿真菜单,将最大时间间隔设置为
0.001S 2、逻辑分析仪的时钟设置为1Hz
1
0
1
0
0
模拟交通指示灯的控制报告书
目录1. 技术要求 (1)2. 设计方案 (1)3. 设计总体框图 (2)4. 设计单元电路 (2)4.1 交通指示灯电路 (2)4.2 紧急通车及复位电路...................................... (4)4.3 倒计时数显电路 (5)5. 电路原理说明 (6)6. 调试报告 (8)7. 心得体会 (9)8. 参考文献 (10)附录: (11)附录1:源程序代码 (11)附录2:系统整体实现电路图 (14)附录3:元器件清单 (15)模拟交通指示灯的控制1.技术要求假设十字路口有东南两个方向的交通信号指示灯,每个方向各有3个指示灯(用发光二极管模拟),这三个指示灯分别用来标识前行、暂停、左拐,要求如下:A、每个方向的指示灯按照要求点亮不同的时间,前行指示灯点亮10秒熄灭,接着暂停指示灯点亮2秒熄灭,然后左拐指示灯点亮8秒熄灭,按照这种方式进行循环;B、当向东方向的前行指示灯点亮的时候,向南方向的前行指示灯熄灭,暂停指示灯和左拐指示灯分别点亮;C、当向南方向的前行指示灯点亮的时候,向东方向的前行指示灯熄灭,暂停指示灯和左拐指示灯点亮。
2.设计方案十字路口有东西南北四个方向的交通信号指示灯,每个方向各有3个指示灯,分别用绿色、红色、黄色的发光二极管来模拟,其中绿色指示灯用来标识前行,红色指示灯用来标识暂停,黄色指示灯用来标识左拐。
指示灯的亮灭规律如下:当东西方向的绿色指示灯点亮10秒时,东西方向的红色指示灯和黄色指示灯以及南北方向的绿色指示灯熄灭,与此同时,在南北方向上,红色指示灯先点亮2秒后熄灭,接着黄色指示灯点亮8秒,10秒结束后,东西方向的绿色指示灯、南北方向的红色指示灯和黄色指示灯熄灭,南北方向的绿色指示灯点亮10秒,与此同时,在东西方向上,红色指示灯先点亮2秒后接着黄色指示灯点亮8秒。
东西和南北方向的指示灯就这样循环交替进行点亮和熄灭。
为了更贴近生活,我还考虑了紧急通车情况,通过外部中断请求信号来响应,当紧急通车结束后或者指示灯的规律出现错误后,需要复位来重新回到正常状态。
LED模拟交通灯实验实训报告
实训报告FPGA系统LED模拟交通灯实验姓名:学号:班级:专业:指导教师:年月日一、大规模多FPGA系统概述大规模多FPGA系统是针对大学、研究机构和集成电路设计公司的教学及科研推出的多FPGA开发平台。
该平台采用了Altera公司的FPGA芯片,核心芯片选择了Cyclone II系列的EP2C20,该平台可以支持四块FPGA芯片的单独下载及调试,也支持级联下载以应对更为复杂的设计。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
二、FPGA的应用及本次试验主要器件FPGA的应用可分为三个层面:电路设计,产品设计,系统设计。
电路设计:连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石。
事实上在电路设计中应用FPGA要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)。
产品设计:把相对成熟的技术应用到某些特定领域开发出满足行业需要并能被行业客户接受的产品。
综合课程设计——模拟交通灯实验报告
标准实验报告学生姓名:指导教师:一、实验室名称:二、实验项目名称:综合课程设计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、数码动态显示数码管动态显示即轮流向各位数码管送出字符编码和相应的位选信号,利用发光二极管的余辉和人眼的视觉暂留作用,使人感觉好像各位的数码管都同时在显示。
相比于静态显示,动态显示的亮度要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
PLC交通灯实验报告
PLC交通灯实验报告十字路口交通灯控制的模拟实验报告一、实验目的1、熟练使用各基本指令,定时器,计数器,内部指令等。
2、根据控制要求,掌握PLC的编程方法和程序调试方法。
3、掌握交通灯的实验设计与三菱PLC的连线方法。
二、实验要求交通灯模拟控制实验区中,下框中的南北红、黄、绿灯R、Y、G分别接主机的输出点Y2、Y1、Y0,东西红、黄、绿灯R、Y、G分别接主机的输出点Y5、Y4、Y3,模拟南北向行驶车的灯接主机的输出点Y6,模拟东西向行驶车的灯接主机的输出点Y7;下框中的SD接主机的输入端X0。
上框中的东西南北三组红绿黄三色发光二极管模拟十字路口的交通灯。
信号灯受一个启动开关控制,当启动开关接通时,信号灯系统开始空座,且先南北红灯亮,东西绿灯亮。
当启动开关断开时,所有信号灯都熄灭。
南北红灯亮维持25秒,在南北红灯亮的同时东西绿灯也亮,并维持20秒。
到20秒时,东西绿灯闪亮,闪亮3秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,绿灯亮。
东西红灯亮维持30秒。
南北绿灯亮维持25秒,然后闪亮3秒后熄灭。
同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。
周而复始。
三、程序设计步骤1、过程分析:过程一:东西向车行驶 2、设置定时器 当司机看到红灯变为绿灯的时候需要有时间反应,启动车辆等。
因此在车子行驶和交通灯变化之间设置1s 的间隔。
②设置T22、T222、T221、T223的原因是:T2和T7只能控制交通灯的闪亮时间,并不能使其控制。
T22一个定时器并不能同时控制东西绿灯与南北绿灯的闪烁,要分别设置控制器,所以通过T22、T222的分别作用,使东西绿灯与南北绿灯分别在高、低电平交替的时候闪亮。
南北红灯亮25s东西向车行驶东西绿灯亮20s →东西绿灯闪2s →东西黄灯亮2s 南北绿灯亮25s →南北绿灯闪3s →南北黄灯亮2s南北向车行驶 东西红灯亮30sT0: 南北红灯亮25sT6: 东西绿灯亮20s T22:东西绿灯闪烁 T1: 南北绿灯亮25sT7: 东西绿灯闪亮2s T222:南北绿灯闪烁 T2: 南北绿灯闪亮3sT10: 东西向车行驶22s T221:东西绿灯闪烁的断点 T3: 南北黄灯亮2s T11: 南北向车行驶27s T223:南北绿灯闪烁的断点T4: 东西红灯亮30s T12: 延迟1sT5: 东西黄灯亮2s T13: 延迟1s输入X0:启动开关输出Y40: 南北绿灯Y43: 东西绿灯Y41: 南北黄灯Y44: 东西黄灯Y42: 南北红灯Y45: 东西红灯Y46: 南北向车行驶Y47: 东西向车行驶4、按照设置的I/O分配进行接线。
实验三、十字路口交通灯实验
25S30S30S 25S20S3S 2S3S 2S起动X400 B3-1 交通信号灯时序波形图南北红灯东西绿灯东西黄灯 东西红灯 南北绿灯南北黄灯实验三 十字路口交通灯自动控制的编程实验一. 实验目的1. 进一步练习定时器、计数器的基本使用方法。
2. 掌握PLC 的编程和调试方法。
3. 初步了解应用PLC 解决实际问题的全过程。
二. 控制要求十字路口简单交通信号灯的基本控制要求如下:信号灯受一个起动开关控制。
当起动开关接通时,信号灯系统开始工作。
先南北红灯亮,东西绿灯亮。
工作时序波形图如图B3-1所示。
南北红灯亮维持25S ,在南北红灯亮的同时,东西绿灯也亮,并维持20S 。
到20S 时,东西绿灯闪亮,绿灯闪亮周期为1S (亮0.5S ,熄0.5S )。
绿灯闪亮3S 后熄灭,东西黄灯亮,并维持2S 。
到2S 时,东西黄灯熄,东西红灯亮,同时南北红灯熄,南北绿灯亮。
东西红灯亮维持30S ,南北绿灯亮维持25S 。
到25S 时,南北绿灯闪亮3S 后熄灭,南北黄灯亮,并维持2S 。
到2S 时,南北黄灯熄,南北红灯亮,同时东西红灯熄,东西绿灯亮,开始第二周期的动作,以后周而复始地循环。
当起动开关断开时,所有信号灯熄灭。
三. I/O 接线图采用CPU224,I/O 端子分配及接线如图B3-2所示。
分析时序波形图可知,一个循环周期可分为两节拍:第一节拍为南北红灯亮,东西绿灯、东西黄灯工作,需20S 、3S 、2S 的定时器三个。
25S 的定时由前三个定时器累加得到。
第二节拍为东西红灯、南北绿灯、南北黄灯工作,需25S 、3S 、2S 的定时器三个,30S 的定时由前三个定时器累加得到。
此外还需一个用来产生闪烁的定时器。
南绿灯 北绿灯 起动开关南黄灯 北黄灯 南红灯 北红灯东绿灯 西绿灯 东黄灯 西黄灯 东红灯 西红灯I0.0 M 1ML+ 1L+ Q0.0 Q0.2 Q0.12L+ Q0.4Q0.5Q0.6B3-2 交通信号灯控制I/O 接线图定时器分配如表B3-1所示。
实验3 模拟交通灯控制实验
综合实验一:模拟交通灯控制实验一、实验目的1、了解时间常数的计算方法。
2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。
3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。
二、实验内容编写模拟交通灯运行控制程序。
要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。
利用二位八段LED显示器进行时间显示。
时间显示采用倒计时的方式。
时间归零时信号进行切换。
三、实验要求掌握单片机内部通用资源如中断、定时计数器、串行口及并行端口的应用。
●时间的延时必须采用定时器定时中断方式进行,定时器0或定时器1可任选一个(默认为0)。
编程时请充分考虑定期器的时间扩展问题。
●利用二位八段LED显示器进行时间显示,显示码采用串行口模式0进行输出。
显示方式及相应的程序编写请参考实验一。
显示部分的详细接线原理及对应的显示码参考图15。
●掌握中断系统的基本概念及使用方法。
如:中断被响应所需的必要条件;一个完整的中断响应过程;中断优先级的概念●信号灯的控制由并行口P0口输出进行快关控制。
四、实验线路图图3.1为交通灯控制接线示意图,除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出。
图3.2为八段显示器接线原理图,具体说明了串行口工作模式0的硬件线路。
由于开发板一有6个八段显示器,在实验过程中除正常计时的两个八段LED外,将其余四个灭掉。
图3.1 交通灯控制接线示意图图3.2 八段显示器接线原理图五、程序及注释ORG 0000HAJMP MAINORG 000BH;定时器计数器T0中断矢量AJMP T0INTORG 0030HMAIN:MOV TMOD,#01H;设定时器/计数器T0为方式1,T1为方式0 MOV SCON,#00HMOV SP,#60H;设堆栈指针SP为60HSETB TR0;启动定时器/计数器T0SETB PT0;T0中断为高优先级SETB ET0;允许定时器/计数器T0中断SETB EA;开中断MOV TL0,#0B0H;设T0时间常数为100msMOV TH0,#3CH;ORG 0100HRED:SETB P0.0;设置灯的初始状态CLR P0.1CLR P0.2CLR P0.3CLR P0.4SETB P0.5MOV R0,#30;红绿灯亮30秒MOV R1,#10;黄灯亮10秒LOOP1:MOV A,R0LCALL SHOWWAIT1:JNB 20H.0,WAIT1;显示管每隔1秒倒计数CLR 20H.0DJNZ R1,WAIT1MOV R1,#10DEC R0;倒计时从30到1CJNE R0,#00H,LOOP1YELLOW:;设置灯的初始状态CLR P0.0SETB P0.1CLR P0.2CLR P0.3SETB P0.4CLR P0.5MOV R0,#10;黄灯亮10秒MOV R1,#10LOOP2:MOV A,R0LCALL SHOWWAIT2:JNB 20H.0,WAIT2CLR 20H.0DJNZ R1,WAIT2MOV R1,#10DEC R0CJNE R0,#00H,LOOP2GREEN:CLR P0.0CLR P0.1SETB P0.2SETB P0.3CLR P0.4CLR P0.5MOV R0,#30MOV R1,#10LOOP3:MOV A,R0LCALL SHOWWAIT3:JNB 20H.0,WAIT3CLR 20H.0DJNZ R1,WAIT3MOV R1,#10DEC R0CJNE R0,#00H,LOOP3LJMP MAINSHOW:MOV 21H,R0MOV 22H,R1MOV B,#10DIV ABMOV DPTR,#TABMOVC A,@A+DPTRMOV 4BH,AMOV A,BMOVC A,@A+DPTRMOV 4AH,AMOV 4CH,#0FFH;前四个显示管灭MOV 4DH,#0FFHMOV 4EH,#0FFHMOV 4FH,#0FFHMOV R1,#4AHMOV R0,#06HTRAN:MOV A,@R1CLR TIMOV SBUF,AHERE:JNB TI,HEREINC R1DJNZ R0,TRAN;循环六次,是的六个显示管有相应的状态MOV R0,21HMOV R1,22HRETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HT0INT:MOV TH0,#3CHMOV TL0,#0B0HSETB 20H.0SETB TR0RETI六、实验心得和体会本次实验综合性较高,囊括了半本书的知识范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合实验一:模拟交通灯控制实验
一、实验目的
1、了解时间常数的计算方法。
2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。
3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。
二、实验内容
编写模拟交通灯运行控制程序。
要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。
利用二位八段LED显示器进行时间显示。
时间显示采用倒计时的方式。
时间归零时信号进行切换。
三、实验要求
掌握单片机内部通用资源如中断、定时计数器、串行口及并行端口的应用。
时间的延时必须采用定时器定时中断方式进行,定时器0或定时器1可任选一个(默认为0)。
编程时请充分考虑定期器的时间扩展问题。
利用二位八段LED显示器进行时间显示,显示码采用串行口模式0进行输出。
显示方式及相应的程序编写请参考实验一。
显示部分的详细接线原理及对应的显示码参考图15。
掌握中断系统的基本概念及使用方法。
如:中断被响应所需的必要条件;一个完整的中断响应过程;中断优先级的概念
信号灯的控制由并行口P0口输出进行快关控制。
四、实验线路图
图为交通灯控制接线示意图,除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出。
图为八段显示器接线原理图,具体说明了串行口工作模式0的硬件线路。
由于开发板一有6个八段显示器,在实验过程中除正常计时的两个八段LED外,将其余四个灭掉。
图交通灯控制接线示意图
图八段显示器接线原理图五、程序及注释
ORG 0000H
ORG 000BH ;定时器计数器T0中断矢量
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 ;设置灯的初始状态
CLR
CLR
CLR
CLR
SETB
MOV R0,#30 ;红绿灯亮30秒
MOV R1,#10 ;黄灯亮10秒
LOOP1:MOV A,R0
WAIT1:JNB ,WAIT1 ;显示管每隔1秒倒计数CLR
DJNZ R1,WAIT1
MOV R1,#10
DEC R0 ;倒计时从30到1 CJNE R0,#00H,LOOP1
YELLOW: ;设置灯的初始状态CLR
SETB
CLR
CLR
SETB
CLR
MOV R0,#10 ;黄灯亮10秒MOV R1,#10
LOOP2:MOV A,R0
LCALL SHOW
WAIT2:JNB ,WAIT2
CLR
DJNZ R1,WAIT2
MOV R1,#10
DEC R0
CJNE R0,#00H,LOOP2
GREEN:
CLR
CLR
SETB
SETB
CLR
CLR
MOV R0,#30
MOV R1,#10
LOOP3:MOV A,R0 LCALL SHOW
WAIT3:JNB ,WAIT3 CLR
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
SETB TR0
RETI
六、实验心得和体会
本次实验综合性较高,囊括了半本书的知识范围。
在最初写程序时,我不时参考课本266页的程序,但也遇到了很大的困难,最终是和同学讨论着完成的。
一个实验有不同的的程序,用不同的思路写出来的程序不同。