導航:首頁 > 操作系統 > 基於單片機交通燈的設計

基於單片機交通燈的設計

發布時間:2022-08-20 12:15:28

Ⅰ 基於單片機的交通燈控制系統設計(課設)

不知道你遠程式控制制系統是機器自動完成還是人工。如果要自動檢測車流量,你需要一個紅外線或者超聲波感測器,接在中斷口上,在路口前方x米的地方計數,然後用有線或者無線的方式傳送給主控器,主控器根據兩方四個計數器的計數來比較,按百分比分配時間。
然後控制相應的燈亮。
燈用發光二極體做,三色的四組,共陰,io口輸出高電平亮。
還是比較簡單的,畢業設計自己做吧,原理是這樣。如果有人幫你做了,你還是不會。以後出來找工作,靠的還是本事哦。

Ⅱ 用單片機做交通燈,這么做

基於單片機的交通燈設計
時間: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

Ⅲ 基於51單片機的交通燈控制設計

這個設計完了 可以在proteus下模擬的啊

可以交流

Ⅳ 基於51單片機的簡單交通燈設計

這個實現起來應該不難。我就寫一下while大循環裡面的函數吧
r1=1;y1=0;b1=0;
r2=1;
y2
=0;b2=0;
delay(1);
r1=0;y1=0;b1=1;
r2=1;y2=0;b2=0;
delay(45);
r1=0;y1=1;b1=0;
r2=1;y2=0;b2=0;
delay(3);
關於r1……b2的位定義我就不多說了,具體要看你的設計圖,delay
延遲函數
自己寫吧,主要是這個思想。

Ⅳ 基於單片機的交通燈

給一個類似的程序供你參考,你通過讀懂後,按自己的要求修改,可能會有助於你對此問題的理解。

採用51單片機作為系統的MCU,基本完成控制兩組交通指示燈交替亮
每個街口有左拐、直行及行人三種指示燈。直行燈每個燈有紅、黃、綠三種顏色。自行車與汽車共用左拐和直行燈。
首先東西向直行綠燈和行人燈亮1分鍾,左轉燈亮30秒,黃燈亮5秒(同時南北向紅燈亮95秒),然後東西向紅燈亮95秒鍾(同時首先南北向直行綠燈和行人燈亮1分鍾,左轉燈亮30秒,黃燈亮5秒),然後東西向的綠燈亮,依次類推。
每次綠燈亮的時候,對應的行人燈亮。
60S/30S/5S/60S/30S/5S
東西道
綠和行人/左轉/黃/紅/紅/紅
南北道
紅/紅/紅/綠和行人/左轉/黃
行人燈亮的時候有聲音提示盲人能通過。
突發交通事故的時候能夠緊急全紅燈。
在有重要人物通過的時候能手動改為綠燈。
ORG 0000H ;主程序的入口地址
LJMP MAIN ;跳轉到主程序的開始處
ORG 0003H ;外部中斷0的中斷程序入口地址
ORG 000BH ;定時器0的中斷程序入口地址
LJMP T0_INT ;跳轉到中斷服務程序處
ORG 0013H ;外部中斷1的中斷程序入口地址
MAIN : MOV SP,#50H
MOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷
MOV TMOD,#51H ;設置T1為計數方式,T0為定時方式,且都工作於模式1
MOV TH1,#00H ;T1計數器清零
MOV TL1,#00H
SETB TR1 ;啟動T1計時器
SETB EX1 ;允許INT1中斷
SETB IT1 ;選擇邊沿觸發方式
MOV DPTR ,#0003H
MOV A, #80H ;給8255賦初值,8255工作於方式0
MOVX @DPTR, A
AGAIN: JB P3.1,N0 ;判斷是否要設定東西方向紅綠燈時間的初值,若P3.1為1 則跳轉
MOV A,P1
JB P1.7,RED ;判斷P1.7是否為1,若為1則設定紅燈時間,否則設定綠燈時間
MOV R0,#00H ;R0清零
MOV R0,A ;存入東西方向綠燈初始時間
MOV R3,A
LCALL DISP1
LCALL DELAY
AJMP AGAIN
RED: MOV A,P1
ANL A,#7FH ;P1.7置0
MOV R7,#00H ;R7清零
MOV R7,A ;存入東西方向紅燈初始時間
MOV R3,A
LCALL DISP1
LCALL DELAY
AJMP AGAIN
;----------------------------------
N0: SETB TR0 ;啟動T0計時器
MOV 76H,R7 ;紅燈時間存入76H
N00: MOV A,76H ;東西方向禁止,南北方向通行
MOV R3,A
MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮
MOV A,#0DDH
MOVX @DPTR, A
N01: JB P2.0,B0
N02: SETB P3.0
CJNE R3,#00H,N01 ;比較R3中的值是否為0,不為0轉到當前指令處執行
;------黃燈閃爍5秒程序------
N1: SETB P3.0
MOV R3,#05H
MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮
MOV A,#0D4H
MOVX @DPTR,A
N11: MOV R4,#00H
N12: CJNE R4,#7DH,$ ;黃燈持續亮0.5秒
N13: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅
MOV A,#0DDH
MOVX @DPTR,A
N14: MOV R4,#00H
CJNE R4,#7DH,$ ;黃燈持續滅0.5秒
CJNE R3,#00H,N1 ;閃爍時間達5秒則退出
;-----------------------------------
N2: MOV R7,#00H
MOV A,R0 ;東西通行,南北禁止
MOV R3,A
MOV DPTR,#0000H ; 置8255A口,東西方向綠燈亮,南北方向紅燈亮
MOV A,#0EBH
MOVX @DPTR,A
N21: JB P2.0,T03

N22: CJNE R3,#00H,N21
;------黃燈閃爍5秒程序------
N3: MOV R3,#05H
MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮
MOV A,#0E2H
MOVX @DPTR,A
N31: MOV R4,#00H
CJNE R4,#7DH,$ ;黃燈持續亮0.5秒
N32: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅
MOV A,#0EBH
MOVX @DPTR,A
N33: MOV R4,#00H
CJNE R4,#7DH,$ ;黃燈持續滅0.5秒
CJNE R3,#00H,N3 ;閃爍時間達5秒則退出
SJMP N00
;------闖紅燈報警程序------
B0: MOV R2,#03H ;報警持續時間3秒
B01: MOV A,R3
JZ N1 ;若倒計時完畢,不再報警
CLR P3.0 ;報警
CJNE R2,#00H,B01 ;判斷3秒是否結束
SJMP N02
;------1秒延時子程序-------
N7: RETI
T0_INT:MOV TL0,#9AH ;給定時器T0送定時10ms的初值
MOV TH0,#0F1H
INC R4
INC R5
CJNE R5,#0FAH,T01 ;判斷延時是否夠一秒,不夠則調用顯示子程序
MOV R5,#00H ;R5清零
DEC R3 ;倒計時初值減一
DEC R2 ;報警初值減一
T01: ACALL DISP ;調用顯示子程序
RETI ;中斷返回
;------顯示子程序------
DISP: JNB P2.4,T02
DISP1: MOV B,#0AH
MOV A,R3 ;R3中值二轉十顯示轉換
DIV AB
MOV 79H,A
MOV 7AH,B
DIS: MOV A,79H ;顯示十位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0F7H
MOVX @DPTR,A
LCALL DELAY
DS2: MOV A,7AH ;顯示個位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0FBH
MOVX @DPTR,A
RET
;------東西方向車流量檢測程序------
T03: MOV A,R3
SUBB A,#00H ;若綠燈倒計時完畢,不再檢測車流量
JZ N3
JB P2.0,T03
INC R7
CJNE R7,#64H,E1
MOV R7,#00H ;中斷到100次則清零
E1: SJMP N22
;------東西方向車流量顯示程序------
T02: MOV B,#0AH
MOV A,R7 ;R7中值二轉十顯示轉換
DIV AB
MOV 79H,A
MOV 7AH,B
DIS3: MOV A,79H ;顯示十位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0F7H
MOVX @DPTR,A
LCALL DELAY
DS4: MOV A,7AH ;顯示個位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0FBH
MOVX @DPTR,A
LJMP N7
;------延時4MS子程序----------
DELAY: MOV R1,#0AH
LOOP: MOV R6,#64H
NOP
LOOP1: DJNZ R6,LOOP1
DJNZ R1,LOOP
RET
;------字元表------
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END

Ⅵ 基於89C51單片機的交通燈設計報告

我這里有一個用HOLTEK單片機匯編寫的,利用查表程序完成,你可以參考一下.

include HT48R10A-1.inc;
;-------------------------------------

data .section 'data' ;資料段

COUNT1 db ? ;延時變數1
count2 db ? ;延時變數2
count3 db ? ;延時變數3
flash db ? ;LED閃爍控制暫存器
rglight db ? ;LED控制暫存器

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

code .section at 0 'code' ;程序段
org 0H ;程式初始入口地址
jmp start ;

start : ; 程序開始
mov a, 0h
mov pac, a ;設PA為輸出口
mov pa,a ;PA清零
;*********************************

loop: ;LED燈循環
mov a, 0 ;
mov tblp, a ;表格指標初始化
tabrdl rglight ;讀取最後一頁表格內容放入LED控制寄存器
mov a,rglight ;
mov pa, a ;把LED寄存器的內容輸出到PA
call delay1 ;調用延時子程序DELAY1
inc tblp ;遞增表格內容
mov a, 6 ;
mov flash, a ;設LED閃爍控制寄存器的內容為6次

; ;;;;;;;;;;;;;

flashlamp: ;LED閃爍循環?
tabrdl rglight ;讀取最後一頁表格內容放入LED控制寄存?
mov a,rglight ;
mov pa,a ;將LED寄存器的內容輸出到PA
call delays ;
inc tblp ;遞增表格指標
sdz flash ;檢LED閃爍是否結束
jmp flashlamp ;閃爍沒有結束,跳至LED閃爍循環
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;將LED寄存器的內容輸出到PA
call delaym ;呼叫延時子程序
inc tblp ;遞增表格指標
;----------------
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a, rglight
mov pa, a ;將LED寄存器的內容輸出到PA
call delay1 ;呼叫延時子程序
inc tblp ;遞增表格指標
mov a, 6 ;設LED閃爍次數
mov flash,a ;將閃爍次數放入LED閃爍控制寄存器
flash2: ;LED閃爍循環次數
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;將LED寄存器的內容輸出到PA
call delays ;調用延時子程序
inc tblp ;遞增表格指標
sdz flash ;檢查LED閃爍是否結束
jmp flash2 ;閃爍沒有結束,中央電視台跳至LED閃爍循環2
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;將LED寄存器的內容輸出到PA
call delaym ;呼叫延時子程序DELAYM
jmp loop ;?
;======================== ;?
delay1 proc ; 延時子程序DELAY1
mov a,0fh ;?
mov count1,a ;?
mov count2,a ;?
mov count3,a ;?
d1: ;?
sdz count2
jmp d1 ;?
sdz count2
jmp d1
sdz count1
jmp d1
ret
delay1 endp
;;;;;;;;;;;;;;;;;;;;;;;;;;
delaym proc ;延時子程序DELAYM
mov a, 07h
mov count1 ,a
mov a, 0ffh
mov count2, a
mov count3,a
d2: sdz count3
jmp d2
sdz count2
jmp d2
sdz count1
jmp d2
ret
delaym endp
;------------------------
delays proc ;延時子程序DELAYS
mov a, 0ffh
mov count1, a
mov count2, a
d3: sdz count2
jmp d3
sdz count1
jmp d3
delays endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 300h ;led表格

dc 0ebh, 0fbh, 0ebh, 0fbh, 0ebh, 0fbh, 0ebh, 0dbh
dc 0beh, 0bfh, 0beh, 0bfh, 0beh, 0bfh, 0beh, 0bdh

; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

end

Ⅶ 單片機中十字路口交通信號燈的過程,內容,原理

基於單片機的十字路口交通燈設計

摘要:知道了交通燈的重要性,而對於交通燈最重要的是單片機。跟隨單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機通常作為一個核心部件來使用,僅憑對單片機簡單了解是不夠的,應該根據具體硬體結構並且軟硬體結合,實現自己想要達到的目的。單片機自問世以來,性能不斷提高和完善,所以實用許多場合。單片機具有集成度高、功能多、速度快、體積小、功耗低、使用方便、性能可靠、價格便宜,其易於產品化、抗干擾能力強、可以在惡劣的情況下堅持工作。特別是它強大的面向控制能力,使它在工業控制領域,智能儀表、外設控制、家用電器、機器人、軍事裝置等方面得到了廣泛的應用。 考慮到單片機具有物美價廉、靈活方便、還有各種優秀的特點,所以我們從中選擇用MCS-51系列單片機AT89C51單片機來實現十字路口交通信號燈的控制。單片機系統的實體和裝置,通常由運算器、控制器、存儲器、輸入介面電路和輸入設備、輸出介面電路和輸出設備等組成。單片機實質上是一個硬體的晶元,在實際應用中,通常很難直接和被控對象進行電氣連接,必須外加各種擴展介面電路、外部設備、被控對象等硬體和軟體,才能構成一個單片機應用系統。該交通燈擬系統的硬體部分主要由鍵盤、顯示和運算部分組成,再根據實際車流量通過8051晶元的P3口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過P1口輸出,顯示時間通過P0口輸出至雙位數碼管)。本系統設計周期短、可靠性高、實用性強、操作簡單、維護方便、擴展功能強。

關鍵詞:單片機、MCS-51系列單片機AT89C51、交通燈

Ⅷ 基於單片機交通燈設計的摘要怎麼寫

交通在人們的日常生活中佔有重要的地位,隨著人們社會活動的日益頻繁,這點更是體現的淋漓盡致。交通信號燈的出現,使交通得以有效管制,對於疏導交通流量、提高道路通行能力,減少交通事故有明顯作用。本系統採用單片機89C52為中心器件來設計交通燈控制器,系統實用性強、操作簡單、擴展性強。本設計就是採用單片機模擬十字路口交通燈的各種狀態顯示以及倒計時時間。
本設計系統由單片機I/O口擴展系統、交通燈狀態顯示系統、LED數碼顯示系統、復位電路等幾大部分組成。系統除基本的交通燈功能外,還具有倒計時功能,較好的模擬實現了十字路口可能出現的狀況。
軟體上採用KEILC編程,主要編寫了主程序,LED數碼管顯示程序,中斷程序延時程序等。經過整機調試,實現了對十字路口交通燈的模擬。中國車輛數量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管理比重修一條馬路無論在經濟、交通運行速率上都有很好的效益、更加節約資源。使交管人員有更多的精力投入到管理整個城市交通控制,帶來更大的經濟和社會效益,為創造美好的城市交通形象發揮更多的作用。

Ⅸ 單片機交通燈課程設計

/*****************************************************

十字路口交通燈控制C程序

******************************************************/

#defineucharunsignedchar

#defineuintunsignedint

#include<reg52.h>

/*****定義控制位**********************/

sbit Time_Show_LED2=P2^5;//Time_Show_LED2控制位

sbit Time_Show_LED1=P2^4;//Time_Show_LED1控制位

sbitEW_LED2=P2^3;//EW_LED2控制位

sbitEW_LED1=P2^2;//EW_LED1控制位

sbitSN_LED2=P2^1;//SN_LED2控制位

sbitSN_LED1=P2^0;//SN_LED1控制位

sbit SN_Yellow=P1^6;//SN黃燈

sbit EW_Yellow=P1^2;//EW黃燈

sbit EW_Red=P1^3;//EW紅燈

sbit SN_Red=P1^7;//SN紅燈

sbit EW_ManGreen=P3^0;//EW人行道綠燈

sbit SN_ManGreen=P3^1;//SN人行道綠燈

sbit Special_LED=P2^6;//交通正常指示燈

sbit Busy_LED=P2^7;//交通繁忙指示燈

sbit Nomor_Button=P3^5;//交通正常按鍵

sbit Busy_Btton=P3^6;//交通繁忙按鍵

sbit Special_Btton=P3^7;//交通特殊按鍵

sbit Add_Button=P3^3;//時間加

sbit Reces_Button=P3^4;//時間減

bit Flag_SN_Yellow;//SN黃燈標志位

bit Flag_EW_Yellow;//EW黃燈標志位

charTime_EW;//東西方向倒計時單元

charTime_SN;//南北方向倒計時單元

ucharEW=60,SN=40,EWL=19,SNL=19;//程序初始化賦值,正常模式

ucharEW1=60,SN1=40,EWL1=19,SNL1=19;//用於存放修改值的變數

ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1~~~~9段選碼

ucharcodeS[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};//交通信號燈控制代碼

/**********************延時子程序************************/

voidDelay(uchara)

{

uchari;

i=a;

while(i--){;}

}

/*****************顯示子函數**************************/

voidDisplay(void)

{

charh,l;

h=Time_EW/10;

l=Time_EW%10;

P0=table[l];

EW_LED2=1;

Delay(2);

EW_LED2=0;

P0=table[h];

EW_LED1=1;

Delay(2);

EW_LED1=0;

h=Time_SN/10;

l=Time_SN%10;

P0=table[l];

SN_LED2=1;

Delay(2);

SN_LED2=0;

P0=table[h];

SN_LED1=1;

Delay(2);

SN_LED1=0;

h=EW1/10;

l=EW1%10;

P0=table[l];

Time_Show_LED1=1;

Delay(2);

Time_Show_LED1=0;

P0=table[h];

Time_Show_LED2=1;

Delay(2);

Time_Show_LED2=0;

}

/**********************外部0中斷服務程序************************/

voidEXINT0(void)interrupt0using1

{

EX0=0;//關中斷

if(Add_Button==0)//時間加

{

EW1+=5;

SN1+=5;

if(EW1>=100)

{

EW1=99;

SN1=79;

}

}

if(Reces_Button==0)//時間減

{

EW1-=5;

SN1-=5;

if(EW1<=40)

{

EW1=40;

SN1=20;

}

}

if(Nomor_Button==0)//測試按鍵是否按下,按下為正常狀態

{

EW1=60;

SN1=40;

EWL1=19;

SNL1=19;

Busy_LED=0;//關繁忙信號燈

Special_LED=0;//關特殊信號燈

}

if(Busy_Btton==0)//測試按鍵是否按下,按下為繁忙狀態

{

EW1=45;

SN1=30;

EWL1=14;

SNL1=14;

Special_LED=0;//關特殊信號燈

Busy_LED=1;//開繁忙信號燈

}

if(Special_Btton==0)//測試按鍵是否按下,按下為特殊狀態

{

EW1=75;

SN1=55;

EWL1=19;

SNL1=19;

Busy_LED=0;//關繁忙信號燈

Special_LED=1;//開特殊信號燈

}

EX0=1;//開中斷

}

/**********************T0中斷服務程序*******************/

voidtimer0(void)interrupt1using1

{

staticucharcount;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==10)

{

if(Flag_SN_Yellow==1)//測試南北黃燈標志位

{SN_Yellow=~SN_Yellow;}

if(Flag_EW_Yellow==1) //測試東西黃燈標志位

{EW_Yellow=~EW_Yellow;}

}

if(count==20)

{

Time_EW--;

Time_SN--;

if(Flag_SN_Yellow==1)//測試南北黃燈標志位

{SN_Yellow=~SN_Yellow;}

if(Flag_EW_Yellow==1)//測試東西黃燈標志位

{EW_Yellow=~EW_Yellow;}

count=0;

}

}

/*********************主程序開始**********************/

voidmain(void)

{

Busy_LED=0;

Special_LED=0;

IT0=1;//INT0負跳變觸發

TMOD=0x01;//定時器工作於方式1

TH0=(65536-50000)/256;//定時器賦初值

TL0=(65536-50000)%256;

EA=1;//CPU開中斷總允許

ET0=1;//開定時中斷

EX0=1;//開外部INTO中斷

TR0=1;//啟動定時

while(1)

{/*******S0狀態**********/

EW_ManGreen=0;//EW人行道禁止

SN_ManGreen=1;//SN人行道通行

Flag_EW_Yellow=0; //EW關黃燈顯示信號

Time_EW=EW;

Time_SN=SN;

while(Time_SN>=5)

{P1=S[0];//SN通行,EW紅燈

Display();}

/*******S1狀態**********/

P1=0x00;

while(Time_SN>=0)

{Flag_SN_Yellow=1;//SN開黃燈信號位

EW_Red=1; //SN黃燈亮,等待左拐信號,EW紅燈

Display();

}

/*******S2狀態**********/

Flag_SN_Yellow=0;//SN關黃燈顯示信號

Time_SN=SNL;

while(Time_SN>=5)

{P1=S[2];//SN左拐綠燈亮,EW紅燈

Display();}

/*******S3狀態**********/

P1=0x00;

while(Time_SN>=0)

{Flag_SN_Yellow=1;//SN開黃燈信號位

EW_Red=1; //SN黃燈亮,等待停止信號,EW紅燈

Display();}

/***********賦值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

/*******S4狀態**********/

EW_ManGreen=~EW_ManGreen;//EW人行道通行

SN_ManGreen=~SN_ManGreen;//SN人行道禁止

Flag_SN_Yellow=0; //SN關黃燈顯示信號

Time_EW=SN;

Time_SN=EW;

while(Time_EW>=5)

{P1=S[4];//EW通行,SN紅燈

Display();}

/*******S5狀態**********/

P1=0X00;

while(Time_EW>=0)

{Flag_EW_Yellow=1;//EW開黃燈信號位

SN_Red=1;//EW黃燈亮,等待左拐信號,SN紅燈

Display();}

/*******S6狀態**********/

Flag_EW_Yellow=0; //EW關黃燈顯示信號

Time_EW=EWL;

while(Time_EW>=5)

{P1=S[6];//EW左拐綠燈亮,SN紅燈

Display();}

/*******S7狀態**********/

P1=0X00;

while(Time_EW>=0)

{Flag_EW_Yellow=1;//EN開黃燈信號位

SN_Red=1;//EW黃燈亮,等待停止信號,SN紅燈

Display();}

/***********賦值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

}

}

Ⅹ 如何運用51單片機設計一個交通燈系統

運用定時器,數碼管LED和8255A設計一個交通燈控制系統!
1.南北綠燈,東西紅燈,20秒
2.南北轉黃燈,東西紅燈,5秒
3.南北紅燈,東西綠燈,20秒
4.南北紅燈,東西轉黃燈,5秒
5.循環步驟1

閱讀全文

與基於單片機交通燈的設計相關的資料

熱點內容
加密兔f碼生成器免費 瀏覽:291
思科路由器命令明文加密 瀏覽:171
方舟生存進化伺服器如何改名字 瀏覽:892
央行數字貨幣app怎麼注冊 瀏覽:431
51單片機顯示時間 瀏覽:770
我的世界網易版怎麼壓縮地圖 瀏覽:682
qq小程序雲伺服器和 瀏覽:740
方舟伺服器怎麼玩才好玩 瀏覽:557
單片機的部件 瀏覽:621
編譯原理遍的過程 瀏覽:252
python讀取json字元串 瀏覽:62
ubuntu1404安裝php 瀏覽:634
lua能編譯嗎 瀏覽:118
思仙怎麼看伺服器 瀏覽:660
php微信圖片防盜鏈 瀏覽:800
安卓1怎麼讀音 瀏覽:297
農業app怎麼開通快捷支付 瀏覽:912
pythonredisdict 瀏覽:389
如何攻擊別人網賭伺服器 瀏覽:882
隱私與應用加密的圖案密碼 瀏覽:38