交通灯实验二
- 格式:docx
- 大小:19.42 KB
- 文档页数:3
plc红绿灯实验报告篇一:交通灯PLC控制实验报告交通灯的PLC控制实验报告学院:自动化学院班级:0811103姓名:张乃心学号:2011213307实验目的1.熟悉PLC编程软件的使用和程序的调试方法。
2.加深对PLC循环顺序扫描的工作过程的理解。
3.掌握PLC 的硬件接线方法。
4.通过PLC对红绿灯的变时控制,加深对PLC按时间控制功能的理解。
5.熟悉掌握PLC的基本指令以及定时器指令的正确使用方法。
实验设备1.含可编程序控制器MicroLogix1500系列PLC的DEMO实验箱一个2.可编程序控制器的编程器一个(装有编程软件的PC电脑)及编程电缆。
3.导线若干实验原理交通指挥信号灯图I/O端子分配如下表注:PLC的24V DC端接DEMO模块的24V+ ;PLC的COM端接DEMO 模块的COM 。
系统硬件连线与控制要求采用1764-L32LSP型号的MicroLogix 1500可编程控制器,进行I/O端子的连线。
它由220V AC供电,输入回路中要串入24V直流电源。
1764系列可编程控制器的产品目录号的各位含义如下示。
1764:产品系列的代号L :基本单元24 :32个I/O点(12个输入点,12个输出点)B :24V直流输入W :继电器输出A :100/240V交流供电下图为可编程控制器控制交通信号灯的I/O端子的连线图。
本实验中模拟交通信号灯的指示灯由24V直流电源供电。
O/2-O/4为南北交通信号灯,O/5-O/7为东西交通信号灯。
实现交通指挥信号灯的控制,交通指挥信号灯的布置,控制要求如下:(1)信号灯受一个启动开关控制,当启动开关接通时,信号灯系统开始正常工作,且先南北红灯亮,东西绿灯亮。
当启动开关断开时,所有信号灯熄灭。
(2)南北红灯维持25秒。
在南北红灯亮的同时东西绿灯也亮,并维持20秒。
到20秒时,东西绿灯闪亮,闪亮3秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
中南林业科技大学涉外学院实习报告名称:交通灯控制器姓名:***学号:********专业班级:电子信息工程一班时间:2011-10-5地点:林科大涉外学院目录任务和性能指标 (2)实现(设计)方案 (3)系统设计 (4)调试及性能分析 (6)性能分析: (7)相关知识概述 (7)心得体会 (7)参考文献 (8)任务和性能指标本电路设计一个交通灯控制器,需要达到的目的如下:一个周期64秒,平均分配,前32秒红灯1与绿灯2亮,后32秒绿灯1与红灯2亮。
在红灯1与绿灯2亮的期间的后8秒黄灯1、2闪烁,且在这期间红灯1与绿灯2同时亮。
闪烁频率为2。
在绿灯1与红灯2亮的期间的后8秒黄灯1、2闪烁,且在这期间绿灯1与红灯2同时亮。
闪烁频率为2。
实现(设计)方案为了达到目的,需要设计一个控制电路,这就需要一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮由二进制加法计数器的输出状态来决定。
因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二级管的控制信号。
因此,需要一个组合逻辑电路,六个发光二级管(两个红色发光二极管、两个绿色发光二极管、两个黄色发光二极管)电路,555脉冲振荡器,4024计数器,74LS193计数器,数码管显示电路。
其结构图如下:本电路中的组合逻辑电路的输入信号为二进制计数器的输出信号,输出要控制六个发光二级管不同时刻的状态。
红灯1与绿灯2的状态相同,红灯2与绿灯1的状态相同,两个黄灯状态相同。
所以只要输出三个信号即可,分别为L1、L2、L3。
组合逻辑电路的输出信号L1、L2、L3与电路的输入信号Q7、Q6、Q5、Q4、Q3、Q2、Q1的关系用如下真值表表示:从以上可知:L1=Q7’,需要低电平有效时,L1’=Q7’’L2=Q7,需要低电平有效时,L2’=Q7’L3=Q6Q5=(Q6Q5)’’考虑到黄灯需要闪烁,可以让L3信号和Q1信号(频率为2HZ的脉冲)加到一个二输入的与非门的两个输入端,输出信号为L4,L4=(L3*Q1)’当L3为0时,L4=1当L3为1时,L4=Q1’可见,需要L4低电平有效,这样,L3为0时,黄灯不亮;L3为1时,黄灯闪烁。
实验二交通灯实验一、实验目的1、进一步熟悉HNIST-2型单片机系统相关硬件电路;2、掌握单片机中断的应用和中断处理程序的编写方法;3、掌握单片机内部定时/计数器的使用及编程方法。
二、实验前准备1、完成作业4;2、根据实验内容编写好相关程序,并进行Proteus仿真。
三、实验内容实验内容为3项,其中第1、2项必做。
1、基本交通灯。
根据图3.2电路,用单片机的IO口控制4组红绿黄共12个发光二极管,使发光二极管按照一定规则与次序发光与闪亮以实现模拟交通灯的功能。
假设初始状态为:(南北通行状态)南北绿灯、东西红灯(25s);后转为过度状态:南北黄灯、东西红灯(5s);再转为东西通行状态:东西绿灯、南北红灯25(s)。
再转为过渡状态:东西黄灯、南北红灯(5s),然后循环往复。
要求采用定时器实现所需要的定时时间。
2、键控交通灯。
按一下K1键,保持南北通行状态;按一下K2键,保持东西通行状态;按一下K3键,保持正常交通灯。
要求在中断中进行按键处理。
3、具有闪烁的交通灯。
在2的基础上增加,绿灯最后5s闪烁,即亮0.5S灭0.5S闪烁。
四、实验原理图图3.2 交通灯实验电路原理图图3.2共有4个按键K1、K2、K3、K4,分别连接到单片机P2.0、P2.1、P2.2、P2.3引脚,按键后对应引脚为低电平,通过4个二极管D17、D18、D19、D20连接到P3.2(外部中断0),这是二极管构成的相与电路,即任意按一个键能在P3.2上产生一个低电平或下降沿,作为中断触发信号。
五、软件设计思想1、定时思想。
采用定时器T0或T1的方式1定时500ms,每500ms中断进行计数,计数10次即0.5s,计数20次即1s,对秒计数实现所需要的定时时间。
2、亮灯控制思想。
单片机控制灯引脚与灯对应如下,0点亮。
一共有四种状态S0、S1、S2、S3,a、南北通行S0状态:南北绿灯、东西红灯,P0= 11111100=0xfc,P1=11110011=0xf3;b、过渡状态S1:南北黄灯、东西红灯,P0=11111101=0xfd,P1=01110101=0x75;c、东西通行状态S2:d、过渡状态S3:设置一个秒计数单元SEC每秒+1,设置两个控制值变量a,b。
任务一十字路口交通信号灯控制实验一、控制要求:该实验在十字路口交通信号灯控制实验区内完成,交通灯分1、2两组,控制规律相同,工作时序图如下:起动┌┐─┘└──────────────────────────────┌──────┐┌┐┌┐┌┐1绿─┘└┘└┘└┘└─────────────────←20秒→←3秒→┌──1黄──────────────┘2秒└───────────────┐┌──────────────1红└───────────────┘┌──────┐┌┐┌┐┌┐2绿─────────────────┘└┘└┘└┘└─1─┐┌─2黄└────────────────────────────┘┌───────────────┐2红─┘└──────────────二、I/O分配:三、梯形图设计四.实验梯形图五.实验问题.今天的实验中,我们先在绿灯的闪烁上遇到了问题,后经同学讲解,运用了P -1s 解决了闪烁问题;在运行的时候,计时器出现了不工作的问题,老师说可以从灯100.00中看出计时器没有运行,在调整后就可以运行基本程序了;按钮的开关控制问题通过利用一个新线圈的引用,实现了0.00按下后整体的指示灯工作,0.01按下后整体停止。
实现了交通灯的指示控制。
以上为我们组今天实验中遇到的所有问题。
通过对这些问题的解决,让我们对PLC 实验更进一步的了解,对日后的实际操作会有很大的帮助。
任务二混料罐控制实验一、控制要求:该实验在混料罐实验区内完成。
液面在最下方时,按下起动按钮后, 可进行连续混料。
首先,液体A阀门打开,液体A流入容器;当液面升到M传感器检测位置时, 液体A阀门关闭,液体B阀门打开; 当液面升到H传感器检测位置时, 液体B阀门关闭,搅拌电机开始工作。
搅拌电机工作6秒钟后,停止搅拌,混合液体C阀门打开,开始放出混合液体。
当液面降到L传感器检测位置时,延时2秒后,关闭液体C阀门, 然后再开始下一周期操作。
红绿灯实验原理
红绿灯实验是一种常见的实验,用于研究人们在面对不同颜色灯光时的反应时间和决策能力。
实验的原理是利用红绿灯交替变换的特点,通过记录被试者在红灯和绿灯出现时按下按钮的时间来评估其反应时间和决策能力。
在实验过程中,被试者通常会被要求坐在一个特定位置上,面前放置着一个模拟红绿灯的装置。
该装置会交替发出红灯和绿灯,并在某个固定的时间间隔内变换颜色。
被试者的任务是在绿灯亮起时尽快按下按钮,而在红灯亮起时不做反应。
实验的数据一般包括被试者按下按钮的时间以及与预期时间的差异。
通过统计和分析这些数据,可以得到平均反应时间、反应时间的变异程度以及被试者在不同情境下的决策能力等信息。
红绿灯实验的原理是基于人类感知和反应的特点。
红灯通常被视为停止或等待的信号,而绿灯通常被视为行进的信号。
这种关联是由交通规则和社会习惯所形成的。
因此,当被试者看到红灯时,他们的大脑会自动抑制按动按钮的冲动,而在绿灯亮起时,他们则会迅速做出决策并按下按钮。
红绿灯实验可以用于研究认知心理学、注意力和决策等方面的问题。
通过对不同人群的实验比较,可以揭示不同人群在反应时间和决策能力上的差异,进而为相关疾病的研究和治疗提供科学依据。
此外,红绿灯实验也可以用于评估驾驶员的注意力和反应能力,对交通安全具有重要意义。
学号 **********东北师范大学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)简单 I/O 引脚的输出2)掌握软件延时编程方法3)简单按键输入捕捉判断二、实验实现的功能1)开机是点亮 12 发光二极管,闪耀三下2)依据顺时针循环挨次点亮发光二极管3)经过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯原理图四、系统软件设计演示程序按键正转闪耀反转五、实验过程中碰到的问题及解决方法1) 每次循环不论正转仍是反转程序,总先是先履行P1 口的 8 位 led 灯。
原由:在利用 KEIL 自带的库函数中的 _crol_ 和_cror_ 时,在正转和反转程序中应当调动次序的,开始没注意到。
更正后显示正常。
2)在开始实验的时候推行的是向来循环的方式,利用按键嵌套。
以后发现不理想,每次按键按到三次以上后进入死循环。
解决方案:利用一个按键,显示一次。
并加入按键开释,防备误动作。
指导老师署名:日期:实验一程序 :/******************************************************************** **************工程说明:本工程主要达成了一下功能:1,复位后演示全部功能2,灯闪耀三次3,流水灯正转4,流水灯反转函数说明:yanshi() :演示程序dengss() :闪耀程序right():正转程序left():反转程序scankey() :按键扫描********************************************************************* **************/#ifndef _led_h#define _led_h#define uint unsigned int#define uchar unsigned charuchar i,j,a,b,c,d;uchar flag=0;//亮灯判断标记uchar aa,bb,cc,dd,ss;sbit H1=P3^6;sbit key1=P0^5;sbit key2=P0^6;sbit key3=P0^7;void delay(uint);//1ms 延时void yanshi(void);//演示全部亮灯方式void dengss(void);//闪耀三次void left(void); //左循环亮灯void right(void);//右循环亮灯void scankey(); //按键扫描#endif#include"stc10.h"#include<intrins.h>#include<led.h> //包含各样变量定义及函数申明main(){yanshi();delay(2000); //两秒后进入可控大循环while(1){scankey();if(flag==0)right();if(flag==1)left();if(flag==2)dengss();}}void delay(uint x){uint i,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}void yanshi(){dengss();right();left();P2=0XFF;P3=0XFF;}void dengss(){for(ss=3;ss>0;ss--)P2=0;P3=0xc3;delay(1000);P2=0xff;P3=0xff;delay(1000);}flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void right(){aa=0xfe;for(a=8;a>0;a--){P2=aa;aa=_crol_(aa,1);delay(500);}bb=0xfb;P2=0xff;//熄灭循环后亮着的for(b=4;b>0;b--){P3=bb;bb=_crol_(bb,1);delay(500);}//D12 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void left(){cc=0xdf;for(c=4;c>0;c--){P3=cc;cc=_cror_(cc,1);delay(500);P3=0xff;// 熄灭 D9dd=0x7f;for(d=8;d>0;d--){P2=dd;dd=_cror_(dd,1);delay(500);}//D1 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void scankey(){H1=0;if(key1==0){delay(10);if(key1==0){flag=0;while(!key1);//等候按键开释}}if(key2==0){delay(10);if(key2==0){flag=1;while(!key2);//等候按键开释}}if(key3==0){delay(10);if(key3==0){flag=2;while(!key3);//等候按键开释}}}实验二准时器或实不时钟实验一、实验目的1)数码管动向显示技术2)准时器的应用3)按键功能定义二、实验实现的功能1) 经过按键能够设定准不时间,启动准时器,准不时间到,让12 个发光二极管闪耀,达成准时器功能。
单片机综合实验报告题目: 模拟真实交通灯班级:姓名:学号:指导老师:时间:一、实验内容:用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);}}}。
交通灯控制电路摘要在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。
当然我们每个人都不希望这样。
我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。
我设计的这个交通控制系统可以通过交通灯控制东西方向车道和南北方向车道两条主次交叉道路上的车辆交替运行,用以减少交通事故的发生概率。
并且经过这次实验使得我对电子技术课程内容的理解和掌握有了更深一层的认识,也学会使用半导体元件和集成电路,掌握电子电路的基本分析方法和设计方法,进一步提高分析解决实际问题的综合能力,也为将来的就业或继续深造做好准备。
一、任务在城市道路上的交叉路口一般设置有交通灯,用于管理两条道路通行车辆。
现有一条主干道和一条支干道的汇合点形成十字交叉口,为确保车辆安全、迅速的通行,在交叉路口的每条道上设置一组交通灯,交通灯由红、黄、绿3色组成。
红灯亮表示此通道禁止车辆通过路口;黄灯亮表示此通道未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该通道车辆可以通行。
要求设计一交通灯控制电路以控制十字路口两组交通灯的状态转换,指挥车辆安全通行。
指挥车辆安全通行。
设计要求1、基本要求(1)设计一个十字路口交通灯控制电路,要求主干道与支干道交替通行。
主干道通行时,主干道绿灯亮,支干道红灯亮,时间为60秒。
支干道通行时,支干道绿灯亮,主干道红灯亮,时间为30秒。
(2)每次绿灯变红灯时,要求黄灯先亮5秒钟。
此时另一路口红灯也不变。
(3)黄灯亮时,要求黄灯闪烁,频率为1Hz。
2、发挥部分要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)均有倒计时显示。
二、设计方案选取与论证1、所选方案的理由:本设计的交通灯控制电路是综合运用了74LS192芯片、7474芯片和NE555芯片等的集成电路。
根据任务要求,用单片机或分立组件来实现是比较容易的,但是由于要求不能使用单片机设计,因此使用数字电路课程里学过的知识,运用它们来设计分析电路。
实验一交通灯的模拟控制一、实验目的使用图1-1 交通灯示意图二、实验内容1.控制要求起动后,南北红灯亮并维持15s。
在南北红灯亮的同时,东西绿灯也亮。
到10s 时,东西绿灯闪亮,3s后熄灭,在东西绿灯熄灭后东西黄灯亮。
黄灯亮2s后灭东西红灯亮。
与此同时,南北红灯灭,南北绿灯亮。
南北绿灯亮了10s后闪亮,3s 后熄灭,黄灯亮2s后熄灭,南北红灯亮,东西绿灯亮,循环。
停止后东西南北的黄灯闪烁红绿灯熄灭。
图1-2 交通灯工作流程图2.I/O分配输入输出起动:start 北红灯:b_north_red 东红灯:b_east_red停止:stop 北黄灯:b_north_yellow 东黄灯:b_east_yellow北绿灯:b_north_green 东绿灯:b_east_green南红灯:b_south_red 西红灯:b_west_red南黄灯:b_south_yellow 西黄灯:b_west_yellow南绿灯:b_south_green 西绿灯:b_west_yellow图1-3 逻辑时序图3.根据示意图绘制HMI图形并链接变量图1-4 交通灯HMI示意图4.编写并运行程序编写程序来实现控制要求。
相关程序参考文件:《交通灯.pro》。
编写主程序时需要注意:编写主程序时先把红绿等功能完成。
最后编写停止时黄灯闪烁的功能。
建议使用Case语句,将各个时间段的灯的亮灭状态都进行声明,方便之后使用者的修改。
实验二抢答器一、实验目的使用TwinCAT编写一个可供六人参与的抢答器。
二、实验内容1. 控制要求当主持人按下开始按钮以后,1~6号按钮任意一个按钮被触发,按钮对应的灯则亮起。
同时将其他按钮锁定,再继续按其他按钮不会使对应的灯亮起。
当主持人按下复位按钮后,可以将抢答器复位,然后可以重复以上步骤。
图2-1 抢答器流程图2.I/O分配输入输出开始按钮:start 抢答灯:light[1..6]复位按钮:reset抢答按钮:button[1..6]3.根据示意图绘制HMI图形并链接变量图2-2 抢答器HMI图4.编写并运行程序编写程序来实现控制要求。
微机原理课程设计一.设计任务及要求:交通信号灯的控制:1.通过8255A并口来控制LED发光二极管的亮灭。
2.A口控制红灯,B口控制黄灯,C口控制绿灯。
3.输出为0则亮,输出为1则灭。
4.用8253定时来控制变换时间。
要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。
延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到1、3路口方向。
之后,重复上述过程。
二.方案比较及评估论证:分析题意,红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1控制。
30秒延时及闪烁由8253控制,由闪烁的实现方法可分为两种方案:方案一:设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。
黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。
由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方式,理论设计输出周期为0.01s的方波。
1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1 s,因此通道0的计数初值为10000=2710H。
由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数口,8255将A口数据输入到8086,8086检测到则输出一个高电平到8255的PA7到高电平既完成30s定时。
课程设计任务书学生姓名:王凯专业班级:电子科学与技术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 日上交课程设计成果及报告,同时进行答辩。
指导教师签名:年月日系主任(或责任教师)签名:年月日系主任(或责任教师)签名:年月日目录摘要 (6)交通信号灯控制器的设计 (7)1 任务要求与设计 (7)1.1 设计目的 (7)1.2 设计任务和内容 (7)1.2.1设计任务 (7)1.2.2设计内容 (7)2 总体方案比较 (8)2.1 方案论证 (8)2.2 方案选择 (9)3 总体硬件电路设计及核心器件介绍 (10)3.1总体设计 (10)4单元电路模块设计 (11)4.1复位电路、晶振电路 (11)4.2 LED数码管显示电路 (11)4.3 仿真原理图 (12)5软件编程设计 (13)5.1 设计思想 (13)5.2 程序框图..................... 错误!未定义书签。
EDA实验报告题目:交通灯设计学院:电子工程学院专业:电子信息工程作者:王正帅 14020120007 导师:孙万蓉EDA实验报告:交通灯设计一、设计任务及要求:设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。
要求:(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)东西主干道上的绿灯时间为25秒,南北支干道的绿灯时间为25秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。
路口示意图如下:图 1 路口交通示意图表1 交通信号灯的4种状态A B C东西主干道交通灯绿(25秒)黄(5秒)红(30秒)南北支干道交通灯红(30秒)黄(5秒)绿(25秒)设计要求:(1)采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。
(2)编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。
二、设计原理1、设计目的:学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制2、设计说明(1)第一模块:clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。
因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
模块说明:系统输入信号:Clk: 由外接信号发生器提供50MHz的时钟信号;系统输出信号: full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块说明:系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号;系统输出信号:tm:产生显示电路状态转换信号tl:倒计数值秒数个位变化控制信号th:倒计数值秒数十位变化控制信号(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。
实验二:单一十字路口交通灯控制实验。
一、实验目的:
1.熟悉使用CCW软件,掌握CCW软件中常用功能。
2.学会对功能块的创建和调用。
3.学会循环控制的方法。
二、实验原理
在实验一的基础上设计单一十字路口交通灯的控制实验,此实验内容应包括四个路口红绿灯的工作及同步的时间显示。
一般情况下,红绿灯设在十字路口,或在多干道的叉口上,目的是为了调整叉口的交通秩序使各干道来往车辆能够有条不紊地行驶,否则将造成意想不到的严重后果。
当然在叉口设置合理的红绿灯后,也可大大减少交通管理部门的人力、物力。
叉口交通信号等的基本作用:红灯亮表示车辆、行人禁止通行,绿灯亮表示车辆、行人可以通行,绿灯转换成红灯前几秒,可用黄灯亮来暗示驾驶员或行人即将禁止通行。
屏幕时间显示用倒计时方式表示红绿灯的切换时间,时间显示器的作用是协助红绿灯工作,跟随红、绿灯反复地进行切换。
每个路口分直行左转和右转。
颜色分别为红,黄,绿。
其中红灯和绿灯同时亮显示为黄灯。
一个路口由三盏灯控制使控制更有条理,安全型更高。
三、实验器材(设备、软件、元器件):
十字路口交通灯实验设备、CCW编程软件、850控制器
四、实验内容:
1、单一十字路口交通灯设置6个状态。
状态1:南北直行绿灯和所有右行绿灯亮,其它灯全红灯,行人红灯,四个路口的时间显示都从28秒开始倒计时,20秒后南北直行绿灯闪烁5秒,然后变成黄灯3秒。
状态2:南北直行黄灯变成红灯,南北左行红灯变成绿灯,同时28秒倒计时,20秒后绿灯闪烁5秒变成黄灯,持续3秒。
状态3:南北左行黄灯由黄灯变成红灯,同时东西直行由红灯变成绿灯,时间显示都从28秒开始倒计时,20秒后东西直行绿灯闪烁5秒,然后变成黄灯3秒。
状态4:东西直行黄灯变成红灯,东西左行红灯变成绿灯,同时28秒倒计时,20秒后东西左行绿灯及所有右行绿灯闪烁5秒变成黄灯,持续3秒。
状态5:所有右行绿灯变成红灯,东西左行绿灯变成红灯,南北直行红灯变成绿灯,同时南北人行道绿灯亮,状态5开始时同样28秒倒计时,20秒后南北直行绿灯和行人绿灯闪烁5秒,行人灯变成红灯,南北直行灯则变成黄灯持续3秒。
状态6:南北直行黄灯变成红灯,东西直行红灯变成绿灯,同时东西人行灯
由红变绿,28秒倒计时开始,20秒后行人绿灯闪烁5秒变成红灯,东西直行绿
灯闪烁5秒变成黄灯并持续3秒。
之后再跳转到状态1,如此循环。
以上每个状
态一开始,四个路口的时间显示都会从28秒开始倒计时。
在绿灯闪烁时,对应
的显示时间也一起闪烁。
2、加入手动申请,当南北方向有申请时切换到状态5,当东西方向有申请
时切换到状态6。
五、实验步骤:
1、打开CCW软件,右侧控制器中双击2080-LC50-48QWB ,双击“全局变量”,
配置全局变量如下表(接线也参照此表):
PLC输出接口名称设备端口别名PLC输入接口名称设备端口别名
_IO_EM_DO_00 NSL-R 南北左红_IO_EM_DI_00 启\停启动\停止
_IO_EM_DO_01 NSM-R 南北中红_IO_EM_DI_01 手\自手动\自动
_IO_EM_DO_02 NSR-R 南北右红_IO_EM_DI_02 A->B A->B的申请信号_IO_EM_DO_03 NSL-G 南北左绿_IO_EM_DI_03 B->C B->C的申请信号_IO_EM_DO_04 NSM-G 南北中绿_IO_EM_DI_04 C->D C->D的申请信号_IO_EM_DO_05 NSR-G 南北右绿_IO_EM_DI_05 D->A D->A的申请信号_IO_EM_DO_06 EWL-R 东西左红_IO_EM_DI_06 A->D A->D的申请信号_IO_EM_DO_07 EWM-R 东西中红_IO_EM_DI_07 D->C D->C的申请信号_IO_EM_DO_08 EWR-R 东西右红_IO_EM_DI_08 C->B C->B的申请信号_IO_EM_DO_09 EWL-G 东西左绿_IO_EM_DI_09 B->A B->A的申请信号_IO_EM_DO_10 EWM-G 东西中绿_IO_EM_DI_10
_IO_EM_DO_11 EWR-G 东西右绿_IO_EM_DI_11
_IO_EM_DO_12 1A 数码管十位0 _IO_EM_DI_12
_IO_EM_DO_13 1B 数码管十位1 _IO_EM_DI_13
_IO_EM_DO_14 2A 数码管个位0 _IO_EM_DI_14
_IO_EM_DO_15 2B 数码管个位1 _IO_EM_DI_15
_IO_EM_DO_16 2C 数码管个位2 _IO_EM_DI_16
_IO_EM_DO_17 2D 数码管个位3 _IO_EM_DI_17
_IO_EM_DO_18 _IO_EM_DI_18
_IO_EM_DO_19 _IO_EM_DI_19
_IO_EM_DI_20
_IO_EM_DI_21
_IO_EM_DI_22
_IO_EM_DI_23
_IO_EM_DI_24
_IO_EM_DI_25
_IO_EM_DI_26
_IO_EM_DI_27
2.在“用户定义的功能块”上右键单击,“添加”,“新建LD:梯形图”,在程
序名称“UntitledLD”上右键重命名为“STATE1”。
双击“局部变量”,配置局部
变量如下:
名称数据类型方向
BEGIN BOOL VarInput
END BOOL Varoutput
state_1_1 BOOL Var
state_1_2 BOOL Var
state_1_3 BOOL Var
3.有了实验一的基础,下面直接开始在STATE1上编写状态1的程序。
4.同理编写STATE2、STATE3、STATE4、STATE5、STATE6,及配置各个状态的局部变量。
5.下面编写初始化模块。
在“用户定义的功能块”上右键,“添加”,“新建LD:梯形图”,在新建的程序上右键重命名为“RESETALL”。
双击进入在梯形图上再添加17个并联,分别将全局变量里的18个输出信号复位。
6.下面编写时间显示模块。
新建个梯形图。
重命名为“TIMER”。
配置局部变量如下:
7.编写主程序。
并调用这些块。
在Micro850下面右键单击“程序”,“添加”,“新建LD:梯形图”。
8.双击“Micro850”回到主界面,在“Micro850”上右键“生成”后“下载”
9.此时可以开启调试,快捷键为F5。
也可以在工具栏中“调试”,“启动调试”。
调试也可以在运行之前先打开。