導航:首頁 > 程序命令 > 紅綠燈路口程序員測試

紅綠燈路口程序員測試

發布時間: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 的輸入輸出功能。

閱讀全文

與紅綠燈路口程序員測試相關的資料

熱點內容
python3標准庫pdf 瀏覽:598
杭州雲伺服器銷售 瀏覽:535
pdf密碼移除 瀏覽:147
雲迅智創FIL伺服器 瀏覽:939
中間件pdf 瀏覽:276
輸入伺服器上的ip地址怎麼辦啊 瀏覽:295
app道客巴巴如何登錄 瀏覽:87
初中物理課本pdf 瀏覽:339
原神安裝包解壓失敗 瀏覽:347
分期車有不需要解壓的嗎 瀏覽:763
程序員高效軟體 瀏覽:468
十年後程序員的工資還會這么高嗎 瀏覽:404
用氣球解壓玩具教程 瀏覽:327
命令與征服3漢化補丁 瀏覽:941
kali解壓口令 瀏覽:647
單片機數組超出范圍 瀏覽:977
2g的pdf 瀏覽:215
把內存變成文件夾 瀏覽:521
加密大貨幣 瀏覽:380
編程機器人怎麼玩 瀏覽:747