信息与电子工程学院
课程设计报告
目录
一、 课程设计概述 .................................................................. 3
1.1课程设计内容 ........................................................................... 3
1.2课程设计技术指标 ................................................................... 3
二、 方案的选择及确定 ........................................................... 4
三、 系统硬件设计 .................................................................. 5
四、 系统软件设计 .................................................................. 6
五、 触摸屏设计 ...................................................................... 8
六、 系统调试 ......................................................................... 9
七、 总结以体会 ...................................................................... 9
八、 参考文献 ....................................................................... 10
九、 附录 .............................................................................. 10
附录1:I/O分配表: ................................................................. 10
附录2:仪器与器件 .................................................................... 11
附录3:外部接线图 .................................................................... 12
附录4:触摸屏页面图 ................................................................ 12
附录5:使用说明 ........................................................................ 13
一、 课程设计概述
1.1课程设计内容
在本设计中以城市十字路口为研究对象,根据十字路口车辆运行情况,调整各红、绿、黄灯亮的时间,
如下图交通灯的时间和亮灯的情况表所示:
1、黄灯亮时提示相应的车辆准备。
2、绿灯亮时表示车辆直行。
3、绿灯闪烁时表示车辆转弯行驶。
4、红灯亮时表示禁止通行。
当交通灯通上电后,开始工作,一个循环时间为70s,周而复始。此交通灯每转换红、绿灯中间都设有黄灯2s,即可提示相应的车辆准备又让上一步骤行驶的车辆有效的保证全部通过十字路口,不仅提高了速度还提高了安全系数。
1.2课程设计技术指标
1、东西红灯亮的同时南北黄灯亮2秒提示南北直行车辆准备,后南北绿灯亮24秒南北车辆可直行,然后在黄灯亮2秒提示南北转弯车辆准备,后在绿灯闪烁7秒此时南北转弯车辆可行驶。后跳转至南北红灯同时东西黄灯亮2秒提示东西直
行车辆准备,后东西绿灯亮24秒东西车辆可直行,然后在黄灯亮2秒提示东西转弯车辆准备,后在绿灯闪烁7秒此时东西转弯车辆可行驶,周而复始。
2、各方向的交通灯受一个启动开关控制,当启动开关接通时,交通灯开始工作,且先东西红灯亮,南北黄灯亮。当起动开关断开时,所有信号灯都同时熄灭。
3、程序要求各方向的同色交通灯不能同时亮,并且各方向不同状态切换时都有黄灯2秒的准备时间。
4、车辆的运行必须要在路口交通灯显示为绿灯的时候才能启动。
5、运用PLC做实验的时候必须要运用到在PLC仪器上的触摸屏来显示程序的实验结果。
二、 方案的选择及确定
方案一:用单片机技术来实现交通灯控制
采用AT89S52单片机为核心,由数码管、LED显示电路以及复位电路组成。 方案二:运用PLC设计,其中设计原理为:
1、车辆在黄灯准备,绿灯行驶,红灯等候,
交通信号灯的控制时序是按信号灯置1与置0两种状态绘制的,置1表示信号灯点亮,置0表示信号灯点灭。
综上所述:
方案一:采用数码管显示,这种方案只显示有限的符号和数码字符,且电路复杂难懂。
方案二,该电路简单易懂,而且功能全面。
对比两方案,方案二不仅电路简单并且在功能上相对更全面,添加了可转弯行驶的时间段,和准备行使时间,确保了安全。
三、 系统硬件设计
1、硬件框图如下图所示:
由启动停止开关通过实验箱连载到触摸屏,在通过触摸屏模拟显示交通灯的各个灯的状态,来实现交通灯的功能。
2、开启启动停止开关后电路开始工作,周而复始直到关闭启动停止开关为止。
3、在此次课程设计中,我们使用的是安装了编程软件的计算机。通过计算机绘制PLC梯形图编程后将程序发送到PLC进行验证。
四、 系统软件设计
1、交通灯流程图如下所示:
先开启电源,使交通灯处于工作状态,在工作状态时先处于南北黄灯,东西红灯亮的状态,时间为2秒,接下去判断时间是否到,当时间到2秒时工作下一个状态,时间若没有到则继续当前状态,直至最后一个状态为止,后在转回第一个状态循环到停止了启动停止开关,失去电源时才停止循环。
2、主要片段说明:
1)、启动交通灯处于工作状态。
当启动停止开关0.00开启时,从分支指令的连锁至解除连锁之间进入工作状态。
2)、控制个个交通灯的持续时间。
当定时器T0得电,进入70s倒计时状态,在时间68s<T0<70s时W1.0动作“#0081”是十六进表示的数,指定的第一与第八盏灯亮,制在68s<T0<44s时相应的W1.01动作,“#0041”指定的是第六与第一盏灯亮。
3)、交通灯闪烁状态
如下图所示,当W1.01动作时,因为T2是常闭触头,所以T1得电,同时100.6线圈得电,后T1常开触头得电使T2定时器得电,后又因为常闭触头T2动作使T1定时器失电导致T1常闭触头动作,使100.06线圈失电,周而复始。
五、 触摸屏设计
六、 系统调试
1、硬件调试:接通电源,检查PLC是否能正常工作;
2、软件调试:将写好的程序下载到欧姆龙中,看是否能正常工作,如出现错误,则逐个解决;
3、运行调试:在软件调试完成后,启动触摸屏将触摸屏与PLC进行连接,进行运行调试,观察PLC能不能与触摸屏能否进行完好的运行;
刚开始的时候把程序写进去然后运行却发现灯亮时间不准确,按自己的想法检查程序是没有问题的,那时真的不知道从哪里入手,只好在一条一条地检查, 好几遍后才发现了其中一条指令把‘>’写成了‘<’,虽然找出的错误只有一处,但却使时间和灯的亮发不对应了。
七、 总结以体会
课程设计是我们专业课程知识综合应用的实践训练,我们迈向社会、职业,工作前一个必不可少的一个过
程,“千里之行始于足下”,通过这次课程设计,我深深体会到 这句千古名言的真正含义。
综合运用本所学课程的理论知识进行一次十字路口交通灯系统设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了PLC设计等课程所学的内容,掌握PLC设计的方法和步骤,在这次课程设计的过程中,发现自己平时学习的不足和薄弱环节,从而加以弥补,由于经验上的不足,开始时连一些最简单的指令也不熟悉,所以在这次课程设计过程中,有些指令不是很了解,不能确定其正确与否,但通过做课程设计,使我更加了解了一些指令的功能及应用。
趁着做课程设计的同时也对课本知识有了巩固和加强,同时也加强了分析问题和解决问题的能力。
八、 参考文献
1、《电气控制与PLC应用技术》 刘铁生主编 P163页
2、《可编程控制器原理与程序设计》 吴文廷、陈金佳、曾喜娟主编 P138
九、 附录
附录1:I/O分配表:
附录2:仪器与器件
仪器:
器材:
附录3:外部接线图
附录4:触摸屏页面图
此十字路口有四组共12盏交通灯,其中同方向的两组交通灯的亮法是相同的。
附录5:使用说明
当外部控制电源开启时,交通灯处于工作状态,在工作状态时先处于南北黄灯,东西红灯亮的状态,时间为2秒;时间到后在进入下一个工作状态,即南北绿灯亮和东西红灯亮,时间为24秒;后在南北黄灯亮和东西红灯亮,时间为2秒;在南北绿灯闪烁和东西红灯亮,时间为7秒;接下去是南北红灯亮的同时东西灯依次为黄灯亮2秒,绿灯亮24秒,黄灯亮2秒,绿灯闪烁7秒,以上是交通灯的一个循环,总共时间为70秒,周而复始。
第二篇:交通灯实验报告
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0;//¶«Î÷ÏòµÆ
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3;//Äϱ±ÏòµÆ
sbit YELLOW_B=P0^4;
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++);
}
}
//½»Í¨µÆÇл»
void Traffic_Light()
{
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 ;//ÉÁ˸Îå´Î
Flash_Count=0;
Operation_Type=3;
break;
case 3://¶«Î÷ÏòºìµÆÁÁ£¬Äϱ±ÏòÂ̵ÆÁÁ
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case 4://Äϱ±Ïò»ÆµÆÉÁ˸Îå´Î
DelayMS(300);
YELLOW_B=~YELLOW_B;GREEN_B=1;
if(++Flash_Count!=10)return;
Flash_Count=0;
Operation_Type=1;
}
}
//Ö÷³ÌÐò
void main()
{
while(1)
Traffic_Light();
}