导航:首页 > 程序命令 > 红绿灯路口程序员测试

红绿灯路口程序员测试

发布时间:2022-06-18 14:05:47

Ⅰ 求一个十字路口交通灯c语言程序,交通灯是由STC89C52单片机控制,南北是一组红黄绿灯,东西是一组红黄绿

供参考

Ⅱ 哪位大神给plc 编程 模拟红绿灯的程序啊,

根据对红绿灯的控制要求及PLC地址分配的定义,可对PLC程序编制,其梯形图见附录1。
下面对所编的程序梯形图作简要的说明:
当按下启动按钮I0.3,中间继电器M0.1得电其常开触点闭合代替了I0.3达到自锁使得MO.1在一直通电的状态。中间串上M0.0常闭触点是为了当需要切断电源时,按下I0.2,继电器M0.0得电,其常闭触点断开,而此断开M0.1的自锁程序达到切断电源的效果。

(1)当按下启动开关后,以下接触器得电:
a.Q0.0通过中间继电器M0.1的常开触点闭合接通电源,马路南北红灯亮。而计时器也接通,它是为Q0.0计时作用的。当T37计时30s后,它的常闭触点断开,断开Q0.0的电源。T42常闭触点在这里起循环作用,就是在此程序运转一个周期时,控制最后一个接触器的计时器计时完成,断开T37使得T37重新计时,以达到循环效果。

b.Q0.4得电,马路东西绿灯亮。与之串连的是计数器C21(计数3次,作用是Q0.4闪烁3次时断开其电源),T43、T44在这里起控制Q0.4闪烁并计时作用。

c.Q0.7接通人行道东西方向红灯亮,Q0.7与Q0.0公用一个计时器,所以Q0.7的显示时间与Q0.0一样。

d. Q1.0得电人行道南北方向绿灯亮,它的显示与Q0.4相同。C22、T48、T49的功能叶相同。

(2)延时25s后,Q0.4马路东西方向绿灯开始闪烁。计时器T43计时到,它的常闭触点先断开,使得Q0.4失电,同时它的常开触点闭合,接通计时器T44。T44、T45(接通T44后,T44开始工作,0.5S后接通QO.4与T45,再过0.5s后计时器T45工作,先断开T44。
如此循环工作。而这里加上计数器C21的3次计数达到绿灯闪烁功能。

(3)经过3s后,C21计数完成,断开Q0.4(熄灭绿灯)接通Q0.5马路东西黄灯和计时器T46(T46在这里起计时作用,2s后它先断开Q0.5,然后其常开触点闭合接通Q0.3,达到红绿灯循环效果。

(4)延时2s后,T46常开触点闭合接通Q0.3马路东西红灯。这时计时器T47接通开始工作。T47计时2s后,它的敞开触点闭合,复位C21。使得Q0.4重新开始工作,如此一直循环。

PLC编程设计报告

(5)当人行道红灯Q0.7亮30s后,T37计时30s动作,其常闭触点先端开,切断Q0.7。然后其常开触点闭合接通Q0.6(人行道东西绿灯),Q0.6接通27s后闪烁3s(频率1s/次)其工作过程与马路闪烁3次相类似。

此次设计的红绿灯系统工作情况就向上面介绍的循环工作。

附上出处链接:http://wenku..com/link?url=OqtoElo8HW1GdOgAlqdCTqRJQJ_OsLJq5_Mt7

Ⅲ C语言程序设计编写一个交通红绿灯的控制,各位高手帮帮忙急!

unsigned char counter;
sbit red_nb=P2^0;
......
void main()
{
TMOD=
TH0
TL0
ET0
TR0
while(1) //根据楼主所给,有4种状态
{
state1;
state2;
state3;
state4;

}
}
void timer0() interrupt 1 //定时器0
{
TH0=0x3c;
TL0=0xb0;
counter++;
}
void state1() //控制南北红灯亮,东西绿灯亮,30s
{
unsigned char temp = 30;
red_nb=1;
.....
green_dx=1;

while(1)
{
if( counter>19){counter=0;temp--} //每次counter=20,即1s,temp自减
if(temp) break; //当temp为0时,即30秒,退出状态1,进入状态2

}
}
没经过测试,完全是5分诱惑不大。。

Ⅳ 怎么编写交通红绿灯的程序(VB)考试求救啊!

十字路口红绿灯程序,红灯倒计时30秒,绿灯倒计时30秒,
黄灯倒计时5秒
Dim A As Integer, B As Integer, C As Integer

Private Sub Form_Load()
'启动
Timer1.Enabled = True
Timer2.Enabled = False
Timer1.Interval = 1000
Timer2.Interval = 1000
A = 31
B = 31
C = 5
End Sub

Private Sub Timer1_Timer()
'红灯时间绿灯时间
A = A - 1
B = B - 1
Label3.Caption = ""
If A = 0 And B = 0 Then
Timer1.Enabled = False
Timer2.Enabled = True
C = 6
End If
Label1.Caption = "红灯时间=" & Str(A) & "秒"
Label2.Caption = "绿灯时间=" & Str(B) & "秒"
End Sub
Private Sub Timer2_Timer()
'黄灯时间
Label1.Caption = ""
Label2.Caption = ""
C = C - 1
If C = 0 Then
Timer1.Enabled = True
Timer2.Enabled = False
A = 31
B = 31
End If
Label3.Caption = "黄灯时间=" & Str(C) & "秒"
End Sub

Ⅳ 求单片机十字路口红绿灯c语言源程序,要求红灯32秒,绿灯28秒,黄灯4秒。南北东西各一组红绿灯,共

你好@!

这是一个交通灯仿真的效果,这样可以吗

Ⅵ 求大神解答,用51单片机汇编语言实现一个红绿灯的程序,不是一个路口的,大概注释下就好

;------------------------------------

;程序实现功能

;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。

;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。

;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。

;工作寄存器及存储单元分配

;1.工作寄存器

;R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器

;2.片内存储单元

;30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单元

;3.标志位

;00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急事件标志位

;-----------------------------------

SNF EQU 00H ;;;南北通行标志位

EWF EQU 01H ;;;东西通行标志位

URF EQU 02H ;;;紧急事件标志位

ORG 0000H

LJMP MAIN ;;;上电转主程序

ORG 000BH ;;;定时中断入口

LJMP DSZD

ORG 0003H ;;;紧急中断入口

LJMP URZD

ORG 0030H

MAIN: LCALL INIT ;;;调用初始化子程序

LOOP: LCALL DIS ;;;循环执行显示子程序

AJMP LOOP

;///////////初始化程序

INIT: SETB SNF

SETB EWF

SETB URF

MOV R2,#20 ;;;定时器中断20次为1s

MOV TMOD,#01H ;;;初始化定时器

MOV TL0,#0B0H

MOV TH0,#3CH

SETB EA ;;;开定时中断与紧急中断

SETB ET0

SETB TR0

SETB EX0

SETB IT0 ;;;设置中断程控方式

MOV DPTR,#TAB ;;;数值首地址放入DPTR中

MOV 40H,#40 ;;;东南西北通行时间设置

MOV 41H,#40

MOV 30H,#40 ;;;通行时间初始化

MOV 31H,#60

MOV P0,#4CH ;;;初始化时南北通行并把交通灯状态分别放在32H和33H中

MOV 32H,#4CH

MOV P2,#15H

MOV 33H,#15H

RET

;////////////显示子程序

DIS: MOV P3,#0DFH ;;;选中南北方向的十位数码管

MOV A,30H ;;;把显示数据送人数码管显示

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV P1,A ;;;

LCALL D1MS

MOV P3,#0EFH ;;;选中南北方向的个位数码管

MOV A,B ;;;送入数码管显示

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

MOV P3,#7FH ;;;选中第东西方向的十位数码管

MOV A,31H ;;;送入数码管显示

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

MOV P3,#0BFH ;;;选中第东西方向的个位数码管

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

SETB P3.0

SETB P3.1

JNB P3.0,DIS_S ;;;查询是否第一个按键按下

JNB P3.1,DIS_E ;;;查询是否第二个按键按下

AJMP DIS_R ;;;没有键按下则返回

DIS_S:LCALL D5MS ;;;按键去抖

JNB P3.0,DIS_SN

AJMP DIS_R

DIS_SN:MOV 40H,#50 ;;;对通行时间从新分配,南北通行时间加长

MOV 41H,#30

AJMP DIS_R

DIS_E:LCALL D5MS ;;;按键去抖

JNB P3.1,DIS_EW

AJMP DIS_R

DIS_EW:MOV 40H,#30 ;;;东西通行时间加长

MOV 41H,#50

DIS_R:RET

;///////定时中断处理程序

DS_C: LJMP DS_R ;;;接力跳转

DSZD: PUSH ACC ;;;保护现场

PUSH PSW

CLR TR0 ;;;关定时器及中断标志位并重新赋值

CLR TF0

MOV TL0,#0B0H

MOV TH0,#3CH

DJNZ R2,DS_C ;;;判断1m时间是否到达

MOV R2,#20 ;;;到达重新赋值

DEC 30H ;;;南北方向通行时间减一

MOV A,30H ;;;把减一后的时间送入显示存储单元

;;;;;;;南北通行到达最后4秒时黄灯闪烁

DS_10:CJNE A,#4,DS_11 ;;;如果通行时间剩余4秒

JNB SNF,DS_11 ;;;判断是否是南北通行

MOV P0,#8AH

MOV 32H, #8AH ;;;把交通灯状态存入存储单元(后面类似)

DS_11:CJNE A,#3,DS_12 ;;;不是剩余3秒,返回

JNB SNF,DS_12 ;;;不是南北通行时间,返回

MOV P0,#88H

MOV 32H, #88H

DS_12:CJNE A,#2,DS_13

JNB SNF,DS_13

MOV P0,#8AH

MOV 32H, #8AH

DS_13:CJNE A,#1,DS_14

JNB SNF,DS_14

MOV P0,#88H

MOV 32H, #88H

;------------------------

DS_14:JNZ DS_NE ;;;通行时间没有结束转向改变东西方向的数码管

CPL SNF ;;;如果通行时间结束则对标志位取反

JNB SNF,DS_1 ;;;判断是否南北通行

MOV 30H,40H ;;;是,点亮相应的交通灯

MOV P0,#4CH

MOV 32H,#4CH ;;;存储交通灯状态

MOV P2,#15H

MOV 33H, #15H ;;;存储交通灯状态

DS_NE:DEC 31H ;;;东西方向通行时间减一

MOV A,31H ;;;把通行剩余时间送入显示存储单元

;;;;;;;;东西方向通行时间剩余4秒钟黄灯闪烁(程序注释与南北方向类似 略)

DS_20:CJNE A,#4,DS_21

JB EWF,DS_21

MOV P0,#51H

MOV 32H, #51H

DS_21:CJNE A,#3,DS_22

JB EWF,DS_22

MOV P0,#41H

MOV 32H, #41H

DS_22:CJNE A,#2,DS_23

JB EWF,DS_23

MOV P0,#51H

MOV 32H, #51H

DS_23:CJNE A,#1,DS_24

JB EWF,DS_24

MOV P0,#41H

MOV 32H, #41H

;-----------------------------

DS_24:JNZ DS_R ;;;东西方向时间没有结束,返回

CPL EWF ;;;对通行状态取反

JNB EWF,DS_2 ;;;东西方向通行时间到来,跳转

MOV 31H,#80 ;;;东西方向通行结束,重新显示时间

MOV P0,#89H ;;;点亮相应的交通灯

MOV 32H, #89H

MOV P2,#29H

MOV 33H, #29H

AJMP DS_R

DS_1: MOV 30H,#80 ;;;南北通行时间结束,重新对显示存储单元赋值

MOV P0,#89H ;;;执行转弯状态1

MOV 32H, #89H

MOV P2,#26H

MOV 33H, #26H

AJMP DS_NE

DS_2: MOV 31H,41H ;;;东西方向开始通行,赋值予显示存储单元

MOV P0,#61H ;;;点亮相应的交通灯

MOV 32H, #61H

MOV P2,#15H

MOV 33H, #15H

DS_R: SETB TR0

POP PSW ;;;恢复现场

POP ACC

RETI

;/////////////紧急中断处理程序

URZD: PUSH ACC ;;;保护现场

PUSH PSW

CLR IE0 ;;;清除中断标志位

CLR TR0 ;;;关定时器

CPL URF ;;;紧急事件标志位

JB URF,UR_CON ;;;紧急结束;跳转

MOV P0,#49H ;;;各路口灯全显示红灯亮

MOV P2,#15H

AJMP UR_R

UR_CON:SETB TR0 ;;;恢复正常交通

MOV A,32H

MOV P0,A

MOV A,33H

MOV P2,A

UR_R: POP PSW ;;;恢复现场

POP ACC

RETI

;////////////查表指令0,1,2,3,4,5,6,7,8,9

TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH

DB 7DH, 07H, 7FH, 6FH

;//////////延时5ms与1ms

D5MS: MOV R7,#5

D1MS: MOV R7,#10

MOV R6,#50

L1: DJNZ R6,$

DJNZ R7,L1

RET

Ⅶ 单片机:编写十字路口交通灯程序

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
//sbit BI=P3^4; //74Ls49的消隐引脚
sbit DXR=P1^0; //东西红
sbit DXG=P1^1; //东西绿
sbit DXY=P1^2; //东西黄
sbit NBR=P1^3; //南北红
sbit NBG=P1^4; //南北绿
sbit NBY=P1^5; //南北黄
uchar code table0[30]={0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,
0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00};

void delay(uchar x)
{
uchar t;
while(x--)
for(t=0;t<10;t++);
}
uint count;
char i,j,k=1;
void main()
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
P3=0xff;
while(1)
{
// BI=0;
// BI=1;

switch(k)
{

case 1: //南北方向黄灯灭,红灯亮(29-06)s,东西方向红灯灭,绿灯亮24S
P0=table0[i];
P2=table0[j+6];
NBY=1;DXR=1;NBR=0;DXG=0;
if(i==24)
{
i=0;
j=0;
k++;
// delay(0);
}
break;
case 2://南北方向红灯依然亮(05-00)s,东西方向绿灯灭,黄灯亮6s

P0=table0[i+24];
P2=table0[j+24];
DXG=1;DXY=0;
if(i==6)
{ i=0;
j=0;
k++;
}
break;
case 3: //南北方向红灯灭,绿灯亮24s,东西方向黄灯灭,红灯(30-06)s
P0=table0[i+6];
P2=table0[j];
NBR=1;DXY=1;NBG=0;DXR=0;
if(i==24)
{
i=0;
j=0;
k++;
}
break;
case 4://南北方向绿灯灭,黄灯亮6s,东西方向红灯依然亮6s
P0=table0[i+24];
P2=table0[j+24];
NBG=1;NBY=0;
if(i==6)
{
i=0;
j=0;
k=1;
}
break;
}
}
}
void timer0() interrupt 1
{
TH0=0x3c; //50ms
TL0=0xb0;
count++;
if(count==20) //20次中断为1s
{
count=0;
i++;
j++;
}
}

具体时间参数你可以自己在修改。 我的是红灯30S 绿灯24 黄灯 6S

Ⅷ 用c++ 编写十字路口 红绿灯程序

起码你要给出点规则吧。红绿灯亮灭的规则,限制。中间间隔好长时间。

Ⅸ 用C语言编程模拟交通路口(十字路口)红绿灯的控制功能

本系统的设计首先必须了解交通路灯的亮灭规律。设有一个十字路口,1、3 为南,北
方向, 2、4 为东,西方向,初始态为4 个路口的红灯全亮。之后, 1、3 路口的绿灯亮,
2、4 路口的红灯亮, 1、3 路口方向通车。延迟一段时间后, 1、3 路口的绿灯熄灭,而1、
3 路口的黄灯开始闪烁。闪烁若干次后, 1、3 路口的红灯亮, 同时 2、4 路口的绿灯亮, 2、
4 路口方向开始通车。延迟一段时间后, 2、4 路口的绿灯熄灭,而黄灯开始闪烁。闪烁若
干次后,再切换到1、3 路口方向。之后,重复上述过程。对于各组灯的亮灭,我们运用的
是8255A 的输入输出功能。

阅读全文

与红绿灯路口程序员测试相关的资料

热点内容
安卓微信版本过低不升级怎么登录微信 浏览:937
程序员专科生长期目标 浏览:685
以太坊交易确认算法 浏览:814
文件夹变成hjm打不开怎么办 浏览:571
分页算法视频 浏览:104
python3标准库pdf 浏览:600
杭州云服务器销售 浏览:535
pdf密码移除 浏览:148
云迅智创FIL服务器 浏览:940
中间件pdf 浏览:277
输入服务器上的ip地址怎么办啊 浏览:296
app道客巴巴如何登录 浏览:87
初中物理课本pdf 浏览:340
原神安装包解压失败 浏览:349
分期车有不需要解压的吗 浏览:765
程序员高效软件 浏览:471
十年后程序员的工资还会这么高吗 浏览:404
用气球解压玩具教程 浏览:327
命令与征服3汉化补丁 浏览:941
kali解压口令 浏览:650