① 谁会用西门子PLC编交通灯的程序啊
(1)
控制要求
:
1)
交通信号灯系统由一启动开关SB1控制,此开关接通时,信号灯系统开始运行;当该开关断开时,所有的信号灯均熄灭;
2)
南北方向绿灯与东西方向绿灯不能同时亮,一旦出现此情况应关闭信号灯系统;并发出报警信号;
3)
南北红灯亮维持30秒,此时东西方向绿灯也亮并维持25秒,然后进入闪烁3秒,东西方向黄灯点亮维持2秒,然后黄灯熄灭;接着东西方向红灯点亮;同时,南北方向红灯熄灭,绿灯点亮;
4)
东西方向红灯点亮维持30秒,南北绿灯点亮维持25秒,然后闪烁3秒后熄灭,黄灯点亮2秒后熄灭;这时南北红灯点亮,东西绿灯点亮;
5)
以上南北、东西交通信号灯周而复始的交替工作状态,指挥着十字路口的交通;
(2)画出东西、南北方向交通灯的时序图,以作编程时参考;
(3)画出系统的电气原理图、控制流程图;
(4)对I/O进行分配,并标注在电气原理图上;
输入:
SB1(启动开关)
:
X0
输出:
故障警告灯:
Y6
南方向/北方向绿灯:Y5
南方向/北方向黄灯:Y4
南方向/北方向红灯:Y3
东方向/西方向绿灯:Y2
东方向/西方向黄灯:Y1
东方向/西方向红灯:Y0
采纳哦
② 用单片机做交通灯,这么做
基于单片机的交通灯设计
时间:2010-12-08 21:43:12 来源: 作者:
一、 系统功能要求:
1. 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。
时间方向 控制要求
白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯
晚上 东西 黄灯 南北 红灯
2.总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。
二、 总体设计方案提示:
1.假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态。
2.东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态。
3.南北绿灯通车,东西红灯。过一段时间转状态。
4.南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。
三.硬件设计
电路原理图如下:
四、软件设计
1、 流程图
2、程序设计
ORG 0000H
MOV P0,#00H ;确保P0为低电位
lJMP MAIN0
ORG 0030H
MAIN0: MOV 30H,#08H
MOV R6,#00H
MOV R7,#00H
MOV DPTR,#TABLE ;取数码管的译码
MOV TMOD,#01H ;设计定时方式及时间
MOV TL0,#0CDH
MOV TH0,#0BH
SETB TR0
MOV IE,#00H
MAIN: MOV P1,#0F3H ;南北绿灯,东西红灯
MOV R6,#1EH ;红灯30s倒计时
MOV R7,#19H ;绿灯25s倒计时
MAIN1:CALL DELAY ;1S延时子程序
JB P0.1,REL1 ;判断是否有东西方向按钮按下
CJNE R7,#00H,MAIN1 ;判断绿灯25s是否倒计完
MOV P1,#0F5H ;南北黄灯,东西红灯
MAIN2:CALL DELAY
MOV R7,#00H ;红灯继续倒计时,黄灯闪烁,保持0s
CPL P1.1 ;黄灯闪烁
CJNE R6,#00H,MAIN2 ;判断红灯是否倒计时完
MOV P1,#0DEH ;南北红灯,东西绿灯
MOV R7,#1EH
MOV R6,#19H
MAIN3:CALL DELAY
JB P0.0,REL2
CJNE R6,#00H,MAIN3
MOV P1,#0EEH
MAIN4:CALL DELAY
MOV R6,#00H
CPL P1.4
CJNE R7,#00H,MAIN4
JMP MAIN
REL1:MOV P1,#0F5H ;东西方向按钮按下,南北方向强制由绿灯变成黄灯警告
MOV R6,#05H
MOV R7,#00H
JMP MAIN2
REL2:MOV P1,#0EEH ;南北方向按钮按下,东西方向强制由绿灯变成黄灯警告
MOV R7,#05H
MOV R6,#00H
JMP MAIN4
;1s延时子程序
DELAY:MOV A,R6 ;进行南北方向倒计时时间的十进制调整
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR ;找寻相应的数码管代码
MOV P2,#01H
MOV P3,A ;输出个位
MOV R4,#4 ;降低动态显示频率
LOOP2:MOV R3,#125
LOOP3:DJNZ R3,LOOP3
DJNZ R4,LOOP2
MOV A,B
MOVC A,@A+DPTR
MOV P2,#02H ;输出十位
MOV P3,A
MOV R4,#4
LOOP4:MOV R3,#125
LOOP5:DJNZ R3,LOOP5
DJNZ R4,LOOP4
MOV A,R7 ;进行东西方向倒计时时间的十进制调整
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV P2,#04H
MOV P3,A
MOV R4,#4
LOOP6:MOV R3,#125
LOOP7:DJNZ R3,LOOP7
DJNZ R4,LOOP6
MOV A,B
MOVC A,@A+DPTR
MOV P2,#08H
MOV P3,A
MOV R4,#4
LOOP8:MOV R3,#125
LOOP9:DJNZ R3,LOOP9
DJNZ R4,LOOP8
JBC TF0,LOOP ;判断是否计满125ms
AJMP DELAY
LOOP:MOV TL0,#0CDH ;计满125ms重新给定时器赋值
MOV TH0,#0BH
MOV A,30H
DEC A
MOV 30H,A
JNZ DELAY ;判断是否计满8次125ms,即1s
DEC R6 ;计满1s,东西倒计时减1,南北倒计时减1
DEC R7
MOV 30H,#08H ;重新1s次数,重新计时
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;相应数值的数码管代码
DB 92H,82H,0F8H,80H,90H
END
③ 单片机交通指示灯编程
这是我做的一个交通灯控制电路,包括电路图,程序,程序详细注释说明,仿真图;你可以看一下;
三、硬件电路设计
此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。
(1)电路连接图:
三、软件程序(C语言)
以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。
//*****************************//
//程序名:十字路口交通灯控制
//编写人:黄庭剑
//初写时间:2009年1月2日
//程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换.
//CPU说明:AT89C51型单片机;24MHZ晶体振荡器
//完成时间:2009年1月6日
//*****************************//
#include<stdio.h>
#include<reg51.h>
#include<intrins.h>
sfrp0=0x80;
sfrp1=0x90;
sfrp2=0xA0;
sfrp3=0xb0;//这部分内容其实在“#include<reg51.h>”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。其实两者是一样的。
sbitsw=p0^0;
sbitOE=P0^6;
sbitLE=P0^7;//74LS373锁存器控制端定义
chardisplay[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};//p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;
//函数声明begin
voiddelay1(intcount);
voiddelay_long(intnumber1,intnumber2);
voidpeople_car_drive();
//函数声明end
//***********************//延时子程序
voiddelay1(intcount)
{inti;
for(i=count;i>0;i--)
{;}
}
voiddelay_long(intnumber1,intnumber2)
{
inta,b;
for(a=number1;a>0;a--)
{
for(b=number2;b>0;b--)
{_nop_();}
}
}
//**********************//延时子程序
voidpeople_car_drive()
{
intp_1=2,i,j=9,p_2=6;//****************//行人通行时,延时20秒
p2=0x09;//南北红灯亮
p3=0x24;//东西绿灯亮
while(p_1-->0)
{LE=1;
OE=0;
if(p_1==0){OE=1;}//当十位数减到0时,只显示个位数
p1=display[p_1];
delay1(1000);
LE=0;
j=9;
for(i=10;i>0;i--)
{
if(p_1==0&&j==3)break;//减到3时退出循环,让其黄灯闪烁显示
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
}
}
//*******************************************************************************//
p2=0x12;//南北黄灯闪烁三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[2];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[1];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
//*****************以下是车辆通行时延时60秒//
p2=0x24;//南北绿灯亮
p3=0x09;//东西红灯亮
while(p_2-->0)
{LE=1;
OE=0;
if(p_2==0){OE=1;}//当十位数减到0时,只显示个位数
p1=display[p_2];
delay1(1000);
LE=0;
j=9;
for(i=10;i>0;i--)
{
if(p_2==0&&j==3)break;//减到2时退出循环
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
}
}
p2=0x12;//南北黄灯闪烁三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[2];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[1];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);//南北黄灯闪烁三秒完毕
}
voidmain()//主函数入口处
{
p0=0x01;
p1=0x00;
p2=0x00;
p3=0x00;//初始化各端口
{while(1)
{
if(sw==0)
{people_car_drive();}
else
{
p2=0x00;
p3=0x00;//关闭所有交通灯
}
}
}
}
详细资料,你可以参考这里:http://hi..com/hjiannew/blog/item/b1b17a40f0b52a1a9313c6bb.html
另外硬件,软件你有不懂的,你可以加我QQ:314955772,我在线指导你。
④ 编程里有个制作汽车红灯停绿灯行的怎么弄
交通红绿灯plc编程实例_交通红绿灯控制。
控制要求:
1、确定设计任务书; 本设计主要实现对十字路口的东西向和南北向的红绿灯的有序控制。
2、确定外围I/O设备。
3、选定PLC型号。
I/O地址表
编制PLC的I/O地址表,如表10-1所示。
表10-1 ------------------I/O地址表
编号
地址
说明
功能
6路数字输出
1
Q0.0
绿灯
控制东西方向绿灯
2
Q0.1
黄灯
控制东西方向黄灯
3
Q0.2
红灯
控制东西方向红灯
4
Q0.3
绿灯
控制南北方向绿灯
5
Q0.4
黄灯
控制南北方向黄灯
6
Q0.5
红灯
控制南北方向红灯
1路数字输入
1
10.0
开关
电源开关
红绿灯控制图
1、硬件图 ---硬件图如图10-1
流程图10-3
交通灯的PLC接线图10-2
交通灯的逻辑控制图10-4
交通灯时序图10-5
红绿灯控制plc编程
1、新建工程
单击"New"新建工程,输入工程名:红绿灯控制。
2、编写程序
当按下“启动”键,则系统开始计时,以一时间段的时间为周期,循环。在不同的时间范围内,开启不同的灯,周而复始。
程序如表10-2所示。 表10-2 交通灯控制程序表
Network1
按开启,开始计时,设定基时,即秒的时间。
Network2
基时复位。
Network3
时间周期的设定,电源关则计数器复位。
Network4
周期复位。
Network5
设定开Q0.0的时间段。
Network6
设定开Q0.1 的时间段。
Network7
设定开Q0.2 的时间段。
Network8
设定开Q0.3 的时间段。
Network9
设定开Q0.4 的时间段。
Network10
设定开Q0.5 的时间段。
⑤ PLC怎么实现程序循环(交通灯)
PLC实现程序循环(交通灯)方法
交通信号灯分东、西、南、北四组,每组分别有“红”“黄”“绿”三种颜色。
其工作状态由PLC过程控制,“启动”、“停止”按钮分别控制信号灯的启动和停止。
G1表示东西绿灯的信号,Y1表示东西黄灯的信号,R1表示东西红灯的信号;
G2表示南北绿灯的信号,Y2表示南北黄灯的信号,R3表示南北红灯的信号;
SB2表示“停止”信号,SB1表示“启动”信号。
1.按下启动按钮,东西绿灯亮,南北红灯亮; 30秒后,熄灭。
2.东西,南北四个黄灯同时闪烁5次(5秒)后,熄灭。
3.东西红灯亮,南北绿灯亮20秒。
4.东西,南北四个黄灯同时闪烁5次(5秒)后,熄灭。按如下波形图,连续循环。
5.按下停止按钮,所有指示灯全部熄灭。
6.选定PLC的机型是S7-200系列PLC。确定I/O点,绘制I/O点分配表,编程。
7.编程后,认真检查PLC的梯形图程序。