導航:首頁 > 操作系統 > 單片機控制交通燈

單片機控制交通燈

發布時間:2022-04-29 23:23:53

單片機控制的交通燈

題目 交通燈控制系統的設計 一、課程設計的目的與要求 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

❷ 單片機控制交通燈

ORG 0000H
STA: MOV P0,#11011011B ;干線亮綠燈,支線亮紅燈
MOV P2,#0001000B ;選通LED

MOV P3,#11101111B ;K1列線置0
MOV R7,#3
STA1: JB P3.3,$ ;無按鍵等待
LCALL DELAY30MS ;去抖動
JB P3.3,STA1
JNB P3.3,$ ;等鍵釋放
DJNZ R7,STA1
MOV R6,#200
STA2: LCALL DELAY30MS ;延時30MS
DJNZ R6,STA2 ;延時6秒
MOV P0,#10111011B ;干線亮黃燈,支線亮紅燈
MoV R6,#100
STA3: LCALL DELAY30MS
DJNZ R6,STA3 ;延時3秒
MOV P0,#01111110B ;干線亮紅燈,支線亮綠燈
MOV R5,#4
STA4: MOV R6,#200
STA5: LCALL DELAY30MS
DJNZ R6,STA5
DJNZ R5,STA4 ;延時24秒
MOV P0,#01111101B ;干線亮綠燈,支線亮黃燈
MOV R6,#100
STA6: LCALL DELAY30MS
DJNZ R6,STA6 ;延時3秒
LJMP STA
DELAY30MS:MOV R4,#55
DELAY:MOV R3,#250
DJNZ R3,$ ;1.085us(指令周期)*2*250+2=547.5us
DJNZ R4,DELAY

❸ 單片機中斷實驗交通燈的實驗原理

根據圖3.2電路,用單片機的IO口控制4組紅綠黃共12個發光二極體,使發光二極體按照一定規則與次序發光與閃亮以實現模擬交通燈的功能。假設初始狀態為:(南北通行狀態)南北綠燈、東西紅燈(25s);後轉為過度狀態:南北黃燈、東西紅燈(5s);再轉為東西通行狀態:東西綠燈、南北紅燈25(s)。再轉為過渡狀態:東西黃燈、南北紅燈(5s),然後循環往復。

要求採用定時器實現所需要的定時時間。

2、鍵控交通燈。

按一下K1鍵

,保持南北通行狀態;按一下K2鍵

,保持東西通行狀態;按一下K3鍵

,保持正常交通燈。

要求在中斷中進行按鍵處理。

3、具有閃爍的交通燈。

在2的基礎上增加,綠燈最後5s閃爍,即亮0.5S滅0.5S閃爍。

四、實驗原理圖

圖3.2交通燈實驗電路原理圖
圖3.2共有4個按鍵K1、K2、K3、K4,分別連接到單片機P2.0、P2.1、P2.2、P2.3引腳,按鍵後對應引腳為低電平,通過4個二極體D17、D18、D19、D20連接到P3.2(外部中斷0),這是二極體構成的相與電路,即任意按一個鍵能在P3.2上產生一個低電平或下降,作為中斷觸發信號。

五、軟體設計思想

1、定時思想。

採用定時器T0或T1的方式1定時500ms,每500ms中斷進行計數,計數10次即0.5s,計數20次即1s,對秒計數實現所需要的定時時間。

2、亮燈控制思想。

單片機控制燈引腳與燈對應如下,0點亮。

一共有四種狀態S0、S1、S2、S3,

a、南北通行S0狀態:

南北綠燈、東西紅燈,P0=11110111=0xf7,P1=10011110=0x9e;

南北通行S0
b、過渡狀態S1:

南北黃燈、東西紅燈,P0=11111011=0xfb,P1=10101110=0xae;​

過渡狀態S1
c、東西通行狀態S2:

東西綠燈、南北紅燈,P0=11111100=0xfc,P1=11110011=0xf3;​

東西通行狀態S2
d、過渡狀態S3:

東西黃燈、南北紅燈,P0=11111101=0xfd,P1=01110101=0x75;

過渡狀態S3
設置一個秒計數單元SEC每秒+1,設置兩個控制值變數a,b。

❹ 用單片機模擬控制交通燈

到網路文庫中找找,參考論文也比較多。你也可到「淘寶網」上找找:「51單片機交通燈控制系統C語言設計源程序送模擬圖」,有現成的,有實物圖、模擬、原理圖、源程序等,這款交通燈有以下功能。
1. 系統除基本交通燈功能外;
2. 還具有倒計時、顯示時間設置;
3. 緊急情況處理、LED信息顯示;
4. 時間可以根據具體情況手動控制等功能。

❺ 單片機《交通燈控制系統》

模擬實例 供參考

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

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

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

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

❼ 單片機交通燈程序

採用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

❽ 如何用單片機製作交通燈

LED模擬交通燈

本例中的12隻LED分成東西向和南北向兩組,各組指示燈均有相向的2隻紅色、2隻黃色與2隻綠色的LED,本例中對應的LED單獨進行定義,程序運行時模擬了十字路口交通信號燈得切換過程與顯示效果。
本例電路如下圖:
(呵呵 圖片插入不進來)
程序設計調試與實訓:
源程序中用6行sbit對東西和南北向的紅、黃、綠指示燈分別進行定義,這樣便於對它們進行單獨控制。
本例交通指示燈切換時間設置的較短,這樣可在調試的時候較快觀察到運行效果,可在調試運行本例後修改代碼,使指示燈切換過程更接近於實際的交通指示燈切換過程。

源程序代碼:
//----------------------------------------------------------------
// 名稱:LED模擬交通燈
//----------------------------------------------------------------
// 說明:東西向綠燈亮若干秒後,黃燈閃爍5次後亮紅燈,紅燈亮後,
// 南北向由紅燈變為綠燈,若干秒後,南北向黃燈閃爍,
// 閃爍5次後亮紅燈,東西向綠燈亮,如此重復。
//
//-----------------------------------------------------------------
#include <reg52.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 t;
while(x--)
{
for(t=120;t>0;t--);
}
}

//---------------------------------------------------------
//交通燈交換子程序
//---------------------------------------------------------
void Traffic_lignt()
{
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); //延時
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); //延時
YELLOW_B=!YELLOW_B;
if(++Flash_Count !=10)
return; //閃爍5次
Flash_Count=0;
Operation_Type = 1; //回到第一種操作
break;
}
}

//----------------------------------------------------------
//主程序
//----------------------------------------------------------
void main()
{
while(1)
{
Traffic_lignt();
}
}

閱讀全文

與單片機控制交通燈相關的資料

熱點內容
phpyii2框架示例 瀏覽:525
轉轉閑魚源碼作者 瀏覽:606
app哪裡下載知乎 瀏覽:36
網吧可以用天翼雲伺服器嗎 瀏覽:213
伺服器連接質量過低怎麼辦 瀏覽:276
淘寶下單怎樣加密碼 瀏覽:650
什麼是全扇區加密 瀏覽:574
哪個app可以開水費發票 瀏覽:822
蘋果手機源碼泄露是真的嗎 瀏覽:574
fanuc系統編程手冊 瀏覽:168
螢石新版app怎麼選日期回放 瀏覽:581
代碼需要編譯器嗎 瀏覽:781
伺服器如何做埠映射 瀏覽:616
命令行加密工具 瀏覽:368
做一個解壓磚頭 瀏覽:480
如何用雲伺服器部署個人博客系統 瀏覽:281
lol壓縮瑞文皮膚 瀏覽:332
深圳強安app怎麼用 瀏覽:903
湖南農信app怎麼不能注冊了 瀏覽:989
qt編譯後找不到exe 瀏覽:271