『壹』 關於單片機簡單的紅綠燈程序問題
代碼修改如下,經keil編譯,proteus模擬結果為 P1.0亮10秒,然後P1.1亮2秒,然後P1.2亮10秒,最後P1.0亮10秒,,,
#include<reg51.h>
sbitR=P1^0;//HONG
sbitW=P1^1;//HUANG
sbitL=P1^2;//LV
unsignedinta,b=0;
//unsignedcharcodec[]={0xfe,0xfc,0xfb};//1110,1100,1011
unsignedcharcodec[]={0xfe,0xfD,0xfb,0xfd};//1110,1101,1011,1101//紅黃綠黃//修正黃燈的值,增加一個狀態
voidtimer10s()interrupt1
{
if(a<2000)
{
TH0=0xec;//5ms
TL0=0x78;
a++;
//b=0;//這里不能對b賦值
TR0=1;
TR1=0;//【增加】
}
if(a>=2000)
{
TH0=0xec;
TL0=0x78;
a=0;
b++;//b=1;
if(b==4)b=0;//【增加】
TR1=1;
TR0=0;//【增加】
}
}
voidtimer2s()interrupt3
{
if(a<400)
{
TH1=0xec;
TL1=0x78;
a++;
TR1=1;
TR0=0;
}
if(a>=400)
{
TH1=0xec;
TL1=0x78;
a=0;
b++;//b=2;
//
if(b==4)b=0;//【增加】
TR0=1;
TR1=0;//【增加】
}
}
voidmain()
{
EA=1;
ET0=1;
ET1=1;
TMOD=0X11;
TH0=0xec;//5MS
TL0=0x78;
TH1=0xec;
TL1=0x78;
TR0=1;
TR1=0;
P1=c[0];
b=0;////【增加】
while(1)
{
switch(b)
{
case0x00:P1=c[0];break;
case0x01:P1=c[1];break;
case0x02:P1=c[2];break;
case0x03:P1=c[3];break;//增加一個狀態
}
}
}
以上代碼可以優化,如下:
#include<reg51.h>
sbitR=P1^0;//HONG
sbitW=P1^1;//HUANG
sbitL=P1^2;//LV
unsignedinta,b=0;
unsignedcharcodec[]={0xfe,0xfD,0xfb,0xfd};
voidtimer10s()interrupt1
{
TH0=0xec;//5ms
TL0=0x78;
a++;
if(TR1==1)TR1=0;
if(a>=2000)
{
a=0;
b++;
if(b==4)b=0;
TR1=1;
TR0=0;
}
}
voidtimer2s()interrupt3
{
TH1=0xec;
TL1=0x78;
a++;
if(TR0==1)TR0=0;
if(a>=400)
{
a=0;
b++;
if(b==4)b=0;
TR0=1;
TR1=0;
}
}
voidmain()
{
EA=1;
ET0=1;
ET1=1;
TMOD=0X11;
TH0=0xec;//5MS
TL0=0x78;
TH1=0xec;
TL1=0x78;
TR0=1;
TR1=0;
a=0;//
b=0;//
while(1)
{
switch(b)
{
case0x00:P1=c[0];break;
case0x01:P1=c[1];break;
case0x02:P1=c[2];break;
case0x03:P1=c[3];break;
}
}
}
『貳』 求高手給我編一個51單片機紅綠燈程序
你的設計不合常理。
1、右轉彎無需紅綠燈;
2、若用595作時間顯示驅動,可節省大量埠。
3、缺少A、B路通行時間、黃燈閃爍時間規定。
『叄』 單片機控制的交通燈
題目 交通燈控制系統的設計 一、課程設計的目的與要求 1、課程設計目的: (1)進一步理解和消化書本知識,運用所學知識和技能進行簡單的設計。 (2)通過課程設計提高應用能力,分析問題和解決問題的能力。 (3)培養查閱資料的習慣,訓練和提高自學,獨立思考的能力。 2、課程設計要求 交通燈控制系統的設計 1) 掌握在單片機系統中擴展簡單I/O介面的方法。 2) 掌握數據輸出程序的設計方法。 3) 掌握模擬交通燈控制的實現方法。 4) 掌握外部中斷技術的基本使用方法。 5) 掌握中斷處理程序的編程方法。 從課程設計的目的出發,通過設計工作的各個環節,達到以下要求: (1)能夠正確理解課程設計的題目和意義,全面思考問題。 (2)運用科學合理的方法,認真按時完成。 二、課程設計課題的分析 1、電路的設計 1)原理 要完成本實驗,首先必須了解交通燈的亮滅規律。本實驗需要用到試驗箱上八個發光二極體中的六個,即紅、綠、黃各兩個。將L1(紅)、L2(綠)、L3(黃)作為東西方向的指示燈,將L5(紅)、L6(綠)、L7(黃)作為南北方向的指示燈。交通燈的亮滅規律為:初始態是兩個路口的紅燈全亮,之後,東西路口的綠燈亮,南北路口的紅燈亮,東西方向通車,延時一段時間後,東西路口綠燈滅,黃燈開始閃爍。閃爍若干次後,東西路口紅燈亮,而同時南北路口的綠燈亮,南北方向開始通車,延時一段時間後,南北路口的綠燈滅,黃燈開始閃爍。閃爍若干次後,再切換到東西路口方向,重復上述過程。 各發光二極體的陽極通過保護電阻接到+5V的電源上,陰極接到輸入端上,因此使其點亮使相應使相應輸入端為低電平。 當有急救車到達時,兩個方向上的紅燈亮,以便讓急救車通過,假設急救車通過路口的時間為10秒,急救車通過後,交通燈恢復中斷前的狀態。本程序以單次脈沖為中斷申請,表示有急救車通過,單次脈沖輸出端P-接CPU板上的INT0。 2)、硬體電路圖 圖1—1 交通燈控制系統的硬體接線圖 74LS273的輸出00—07接發光二極體L1—L8,74LS273的片選CS273接片選信號CS2,此時74LS273的片選地址為CFA0—CFA7之間任選。 3)、程序流程圖 主程序流程 圖1—2 主程序軟體流程圖 中斷程序流程圖 三、課程設計的結果 1、程序 NAME JIAOTONGGENG OUTPORT EQU 0CFB0H ;埠地址 SAVE EQU 55H ;SAVE保存從埠CFA0輸出的數據 CSEG AT 0000H LJMP START CSEG AT 4003H LJMP INT CSEG AT 4100H START: SETB IT0 ;中斷程序初始化 SETB EX0 SETB EA MOV A,#11H ;置首顯示碼,兩紅燈全亮 MOV SAVE,A ;保存 ACALL DISP ;顯示輸出 ACALL DE3S ;延時3秒 LLL: MOV A,#12H ;東西路口綠燈亮,南北路口紅燈亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延時10秒 MOV A,#10H ;東西路口綠燈滅 MOV SAVE,A ACALL DISP MOV R2,#05H ;東西路口黃燈閃爍5次 TTT: MOV A,#14H MOV SAVE,A ACALL DISP ACALL DE02S ;延時0.2秒 MOV A,#10H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,TTT MOV A,#11H ;紅燈全亮 MOV SAVE,A ACALL DISP ACALL DE02S ;延時0.2秒 MOV A,#21H ;東西路口紅燈亮,南北路口綠燈亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延時10秒 MOV A,#01H ;南北路口綠燈滅 MOV SAVE,A ACALL DISP MOV R2
『肆』 基於51單片機的紅綠燈原理
注p0口為東西紅燈
; p1口為東西黃燈
;p2口為東西綠燈
;p3南北紅燈
;p4南北黃燈
;p5南北綠燈
;綠燈停留3s;黃燈閃爍5次,每次0.2s,紅的停留4s
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV DPTR,#B1
MOV R2,#4
MOV A,#0H
F3:MOV R1,A
MOVC A,@A+DPTR
JNB ACC.4,SS1 ;判斷東西方向黃燈是否亮,若亮則轉移到黃燈閃爍程序
JNB ACC.1,SS2 ;判斷南北方向黃燈是否亮,若亮則轉移到黃燈閃爍程序
MOV P1,A
LCALL DY1S
SS:MOV A,R1
INC A
DJNZ R2,F3
SJMP MAIN
SS1:MOV R0,#10
XH1:CPL ACC.4
MOV P1,A
LCALL DYS
DJNZ R0,XH1
SJMP SS
SS2:MOV R0,#10
XH2:CPL ACC.1
MOV P1,A
LCALL DYS
DJNZ R0,XH2
SJMP SS
DY1S:MOV R5,#30
DLP0:MOV R6,#100
DLP1:MOV R7,#250 ;F=6MHZ
DLP2:DJNZ R7,DLP2 ;2X250X2uS=1ms
DJNZ R6,DLP1 ;1x100=0.1S
DJNZ R5,DLP0 ;0.1X30=3s
RET
DYS:MOV R6,#200
DLP3:MOV R7,#250 ;F=6MHZ
DLP4:DJNZ R7,DLP4 ;2X250X1uS=500us=1ms
DJNZ R6,DLP3 ;1x200=0.2S
RET
B1: DB 11011110B,11101110B,11110011B,11110101B
END
『伍』 單片機做紅綠燈控制
我的博客上有好幾個相關的程序,你可以去看看.
『陸』 用單片機模擬控制交通燈
到網路文庫中找找,參考論文也比較多。你也可到「淘寶網」上找找:「51單片機交通燈控制系統C語言設計源程序送模擬圖」,有現成的,有實物圖、模擬、原理圖、源程序等,這款交通燈有以下功能。
1. 系統除基本交通燈功能外;
2. 還具有倒計時、顯示時間設置;
3. 緊急情況處理、LED信息顯示;
4. 時間可以根據具體情況手動控制等功能。
『柒』 單片機中十字路口交通信號燈的過程,內容,原理
基於單片機的十字路口交通燈設計
摘要:知道了交通燈的重要性,而對於交通燈最重要的是單片機。跟隨單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機通常作為一個核心部件來使用,僅憑對單片機簡單了解是不夠的,應該根據具體硬體結構並且軟硬體結合,實現自己想要達到的目的。單片機自問世以來,性能不斷提高和完善,所以實用許多場合。單片機具有集成度高、功能多、速度快、體積小、功耗低、使用方便、性能可靠、價格便宜,其易於產品化、抗干擾能力強、可以在惡劣的情況下堅持工作。特別是它強大的面向控制能力,使它在工業控制領域,智能儀表、外設控制、家用電器、機器人、軍事裝置等方面得到了廣泛的應用。 考慮到單片機具有物美價廉、靈活方便、還有各種優秀的特點,所以我們從中選擇用MCS-51系列單片機AT89C51單片機來實現十字路口交通信號燈的控制。單片機系統的實體和裝置,通常由運算器、控制器、存儲器、輸入介面電路和輸入設備、輸出介面電路和輸出設備等組成。單片機實質上是一個硬體的晶元,在實際應用中,通常很難直接和被控對象進行電氣連接,必須外加各種擴展介面電路、外部設備、被控對象等硬體和軟體,才能構成一個單片機應用系統。該交通燈擬系統的硬體部分主要由鍵盤、顯示和運算部分組成,再根據實際車流量通過8051晶元的P3口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過P1口輸出,顯示時間通過P0口輸出至雙位數碼管)。本系統設計周期短、可靠性高、實用性強、操作簡單、維護方便、擴展功能強。
關鍵詞:單片機、MCS-51系列單片機AT89C51、交通燈
『捌』 編程加實踐(單片機):求利用89C51 CPU編寫紅綠燈程序
僅供參考
功能說明:
利用單片機P1埠控制6個交通信號燈,並使用定時/計數器T0作定時,實現交通信號燈控制。
在馬路的十字路過東西南北各設置紅、黃、綠3種信號燈。由P1.0~P1.2控制南北方向,其中P1.0為紅燈,P1.1為黃燈,P1.2為綠燈。P1.3~P1.5控制東西方向,其中P1.3為紅燈,P1.4為黃燈,P1.5為綠燈。
/*文件名:JT21-3.c*/
/*程序功能:交通信號燈控制*/
#include<AT89X51.H>/*頭文件*/
charcount;/*聲明count為字元變數*/
bitflag;/*聲明flag為位變數*/
charsum=0;/*聲明sum為字元變數並賦初始值0*/
xhd();/*信號燈函數xhd()*/
/*――――――――主函數(主程序)―――――――――――*/
main()/*主函數*/
{
TMOD=0x01;/*設定T0為模式1*/
TH0=-(50000/256);/*設定時器初始值50000*/
TL0=-(50000%256);
EA=1;/*總允許中斷*/
ET0=1;/*允許定時器T0中斷*/
TR0=1;/*啟動定時器工作*/
P1=0xff;/*P1初始值,關閉所有信號燈*/
xhd();/*調用信號燈函數*/
}
/*―――――――中斷函數(中斷服務程序)――――――――*/
T0_srv()interrupt1using1/*中斷服務程序*/
{
TH0=-(50000/256);/*重裝定時器初始值*/
TL0=-(50000%256);
count++;/*count加1*/
if(count==20)/*判斷count是否等於20*/
{
count=0;/*count清0,以便從新計數*/
flag=1;/*標志位為1*/
}
}
/*――――――――信號燈函數(子程序)――――――――*/
xhd()/*信號燈函數*/
{
while(1)/*無限循環*/
{
/*―――――――――――――*/
P1_3=0;P1_2=0;/*東西紅燈亮,南北綠燈亮*/
while(sum<15)/*循環15次,延時15秒*/
{
while(!flag);/*等待1秒*/
flag=0;/*標志位清0*/
sum++;/*sum加1*/
}
sum=0;/*sum清0,以便從新計數*/
/*―――――――――――――*/
P1_2=1;P1_1=0;/*南北綠燈滅,黃燈亮*/
while(sum<3)/*循環3次,延時3秒*/
{
while(!flag);
flag=0;
sum++;
}
sum=0;
/*―――――――――――――*/
P1_1=1;P1_0=0;/*南北黃燈滅,紅燈亮*/
P1_3=1;P1_5=0;/*東西紅燈滅,綠燈亮*/
while(sum<10)/*延時10秒*/
{
while(!flag);
flag=0;
sum++;
}
sum=0;
/*―――――――――――――*/
P1_5=1;P1_4=0;/*東西綠燈滅,黃燈亮*/
while(sum<3)/*延時3秒*/
{
while(!flag);
flag=0;
sum++;
}
sum=0;
/*―――――――――――――*/
P1_4=1;P1_0=1;/*東西黃燈滅,南北紅燈滅*/
}
}
『玖』 求大神解答,用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
『拾』 單片機的紅綠燈控製程序如何寫啊
//--------------------------------------------------
//名稱:LED模擬交通燈
//作者:彭偉《單片機C語言程序設計實訓100例-基於8051+PROTEUS模擬》
//--------------------------------------------------
//說明:東西向綠燈亮若干秒後,黃燈閃爍,閃爍5次後亮紅燈
// 紅燈亮後,南北向由紅燈變為綠燈,若干秒後南北向黃燈閃爍
// 閃爍5次後亮紅燈,東西向綠燈亮,如此重復
//---------------------------------------------------
#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);
GREEN_A=1;
YELLOW_A=~YELLOW_A;
//閃爍5次
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);
GREEN_B=1;
YELLOW_B=~YELLOW_B;
//閃爍5次
if (++Flash_count!=10) return;
Flash_count=0;
Operation_type=1;
}
}
void main()
{
while(1) Traffic_light();
}