單片機(jī)課程設(shè)計(jì)-交通信號燈文檔閱讀、在線看_第1頁
單片機(jī)課程設(shè)計(jì)-交通信號燈文檔閱讀、在線看_第2頁
單片機(jī)課程設(shè)計(jì)-交通信號燈文檔閱讀、在線看_第3頁
單片機(jī)課程設(shè)計(jì)-交通信號燈文檔閱讀、在線看_第4頁
單片機(jī)課程設(shè)計(jì)-交通信號燈文檔閱讀、在線看_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機(jī)課程設(shè)計(jì)——交通信號燈控制器課程設(shè)計(jì)目的課程設(shè)計(jì)實(shí)現(xiàn)功能設(shè)計(jì)原理與步驟心得與體會目前,單片機(jī)已廣泛應(yīng)用到國民經(jīng)濟(jì)建設(shè)和日常生活的許多領(lǐng)域,成為測控技術(shù)現(xiàn)代化必不可少的重要工具。通過課程設(shè)計(jì),主要達(dá)到以下目的:進(jìn)一步熟悉和掌握單片機(jī)的結(jié)構(gòu)及工作原理,使學(xué)生掌握單片機(jī)的內(nèi) 部功能模塊的應(yīng)用,如定時器/計(jì)數(shù)器、中斷、片內(nèi)外存貯器、I/O口、串行口通訊等。掌握單片機(jī)的接口技術(shù)及相關(guān)外圍芯片的應(yīng)用特性、控制方法,使學(xué)生增進(jìn)對單片機(jī)應(yīng)用系統(tǒng)的感性認(rèn)識,加深對單片機(jī)理論方面的理解。通過課程設(shè)計(jì),掌握以單片機(jī)核心的電路設(shè)計(jì)的基本方法和技術(shù),了解相關(guān)電路參數(shù)的計(jì)算方法。通過實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù)。通過完成一個包括電路設(shè)計(jì)和程序開發(fā)的完整過程,使學(xué)生了解開發(fā)一單片機(jī)應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)工作打下基礎(chǔ)。課程設(shè)計(jì)目的課程設(shè)計(jì)實(shí)現(xiàn)功能設(shè)計(jì)原理與步驟心得與體會設(shè)計(jì)一個十字路口交通信號燈控制電路,用來控制主干道和支干道的紅、綠、黃三種信號燈的亮與滅。當(dāng)支干道無車時亮紅燈,則主干道處于允許通行狀態(tài)亮綠燈。當(dāng)主、支干道均有車時,兩者交替允許通行,主干道直行放行60秒,主干道左轉(zhuǎn)彎放行20秒,支干道放行20秒。每次允許通行時間結(jié)束,其綠燈變黃燈3秒鐘后再變成紅燈。此3秒鐘內(nèi)原紅燈不變,3秒鐘結(jié)束由紅燈變成綠燈,即一干道通行停止,另一干道仍不允許通行。4.倒計(jì)時采用兩位數(shù)碼管顯示,主干道和支干道都有。5.有緊急車輛通過時,系統(tǒng)能禁止普通車輛通行,主、支干道均為紅燈。交通燈狀態(tài)轉(zhuǎn)換表態(tài)序主干道支干道時間直行左轉(zhuǎn)右轉(zhuǎn)1綠紅綠紅60s2黃紅綠紅3s3紅綠綠紅20s4紅黃綠紅3s5紅紅綠綠20s6紅紅綠黃3s7紅紅紅紅15s課程設(shè)計(jì)目的課程設(shè)計(jì)實(shí)現(xiàn)功能設(shè)計(jì)原理與步驟心得與體會AT89C51單片機(jī)LED數(shù)碼管總體設(shè)計(jì)圖晶振、復(fù)位電路紅綠黃信號燈蜂鳴器LED數(shù)碼管顯示按鍵(開關(guān))控制單片機(jī)控制流程圖主干道直行綠燈亮,右轉(zhuǎn)彎綠燈亮主干道直行黃燈亮主干道左轉(zhuǎn)彎綠燈亮主干道左轉(zhuǎn)彎黃燈亮支干道綠燈亮支干道黃燈亮Protel

DXP電路設(shè)計(jì)步驟1.根據(jù)任務(wù)要求設(shè)計(jì)原理圖;2.創(chuàng)建項(xiàng)目文件;

3.原理圖輸入(放置元件;編輯元件屬性、布局及連線;元件自動標(biāo)注);

4.原理圖后處理(編譯與查錯;生成元件報表;生成網(wǎng)絡(luò)報表);

5.PCB板的制作(規(guī)劃電路板;導(dǎo)入網(wǎng)絡(luò)表和元件封裝;自動布局;自動布線;大面積鋪銅)。電路原理圖晶振電路外部時鐘振蕩電路由晶體振蕩器和電容C1、C2構(gòu)成并聯(lián)諧振電路,連接在XTAL1、XTAL2腳兩端。對外部C1、C2的取值雖然沒有嚴(yán)格的要求,但電容的大小會影響到振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性。C1、C2通常取值C1=C2=30PF左右;8051的晶振最高振蕩頻率為12M。復(fù)位電路復(fù)位電路電阻:起到限流作用,阻值不需要過大,取值為10歐;復(fù)位信號接高電平時需加上拉電阻,使復(fù)位可靠,取值為1k;復(fù)位電路電容在上電的瞬間有電流流過,取值為10uF.蜂鳴器電路此部分為開關(guān)控制特殊情況,蜂鳴器的正極接到

VCC(+5V)電源上面,蜂鳴器的負(fù)極接到三極管的發(fā)射極E,三極管的基級B經(jīng)過限流電阻R27后由單片機(jī)的P3.0引腳控制,當(dāng)P3.0輸出高電平時,三極管T1截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)P3.0輸出低電平時,三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。3D

PCB圖PCB圖軟件設(shè)計(jì)程序組成:主程序主干道直行綠燈的時間顯示子程序主干道直行黃燈的時間顯示子程序支干道左轉(zhuǎn)彎黃燈的時間顯示子程序主干道左轉(zhuǎn)彎通行的時間顯示子程序支干道綠燈時間顯示子程序支干道黃燈閃爍時間顯示子程序應(yīng)急車輛通過的時間顯示子程序應(yīng)急車輛通過,中斷服務(wù)程序程序流程圖;主干道通行時間初始值;支干道通行時間初值主程序ORG

0300HSTART:MOV

25H,#60MOV

26H,#20SETB

P3.6SETB

P3.7SETB

IT0MOV

IE,#8FHJB

P3.6,LOOP0JB

P3.7,LOOP9LOOP0:MOV

P2,#0F6HMOV

P1,#6FHACALL

DE05SLOOP1:MOV

R1,25HLOOP2:MOV

20H,R1MOV

P2,#0F3HMOV

P1,#3FHMOV

A,R1ADD

A,#26MOV

21H,ALCALL

DISP1;外部中斷下邊沿觸發(fā);開中斷;主干道有車,跳轉(zhuǎn)到LOOP0;主干道無車而支干道有車,則跳轉(zhuǎn)到LOOP9;主干道、支干道紅燈亮;;;為主干道直行方向顯示時間做準(zhǔn)備;主干道直行方向通行時間60s;主干道直行綠燈亮,右轉(zhuǎn)彎綠燈亮;;

R1=60;(21H)=86;為支干道方向顯示時間做準(zhǔn)備;顯示通行所剩時間,其中有0.5S延時LCALL

DISP1DJNZ

R1,LOOP2LOOP3:MOV

R2,#03LOOP4:MOV

P2,#0F5HMOV

P1,#3FHMOV

22H,R2MOV

A,R2ADD

A,#23MOV

21H,ALCALL

DISP4MOV

P2,#0F7HMOV

P1,#3FHLCALL

DISP4DJNZ

R2,LOOP4LOOP5:MOV

R3,26HLOOP6:MOV

P2,#0DEHMOV

P1,#3FHMOV

23H,R3MOV

A,R3ADD

A,#3;再次顯示以便數(shù)碼管不閃,且再延時0.5S以便湊夠1S;判斷60S是否已完,若未延時;主干直行黃燈閃亮3S;主干道直行黃燈亮;;為主干道方向顯示時間做準(zhǔn)備;

R2=3;(21H)=26;為支干道方向顯示時間做準(zhǔn)備;黃燈閃亮剩時顯示,其中延時0.5S;主干道直行黃燈滅;;顯示,且再延時0.5S以便湊夠1S;判斷3S是否已完,若未完則重新熄滅、延時和顯示;主干道通行20S(26H)=20;主干道左轉(zhuǎn)彎綠燈亮;;為主干道方向顯示時間做準(zhǔn)備;;MOV

24H,ALCALL

DISP3LCALL

DISP3DJNZ

R3,LOOP6LOOP7:MOV

R2,#03LOOP8:MOV

P2,#0EEHMOV

P1,#3FHMOV

22H,R2LCALL

DISP2MOV

P2,#0FEHMOV

P1,#3FHLCALL

DISP2DJNZ

R2,LOOP8;為支干道方向顯示時間做準(zhǔn)備;時間顯示,其中有0.5S延時;湊夠1S時間;判斷20S是否已完;主干左轉(zhuǎn)彎黃燈閃亮3S;主干道左轉(zhuǎn)彎黃燈亮;;為顯示時間做準(zhǔn)備;黃燈閃亮剩時顯示,其中延時0.5S;主干道左轉(zhuǎn)彎黃燈滅;;顯示,且再延時0.5S以便湊夠1S;判斷3S是否已完,若未完則重新熄滅、延時和顯示;;支干道通行20S(26H)=20JNB

P3.7,LOOP11LOOP9:MOV

R3,26HLOOP10:MOV

P2,#76HMOV

P1,#0BFHMOV

24H,R3MOV

A,R3;;支干道綠燈亮;為支干道方向顯示時間做準(zhǔn)備;;;為主干道方向顯示時間做準(zhǔn)備;時間顯示,其中有0.5S延時;湊夠1S時間;判斷20S是否已完;轉(zhuǎn)入東西黃燈閃亮3SADD

A,#3MOV

23H,ALCALL

DISP5LCALL

DISP5DJNZ

R3,LOOP10LOOP11:MOV

R2,#3LOOP12:MOV

22H,R2MOV

P2,#0B6HMOV

P1,#0BFHLCALL

DISP6MOV

P2,#0F6HMOV

P1,#0BFHLCALL

DISP6DJNZ

R2,LOOP12;為顯示做準(zhǔn)備;;支干道黃燈亮;顯示時間,并延時0.5S;;支干道黃燈滅;顯示,且再延時0.5S以便湊夠1S;判斷是否3S到,若未到繼續(xù)閃滅東西黃燈JB

P3.6,LOOP15JMP

LOOP7LOOP15:LJMP

LOOP1主干道直行綠燈的時間顯示子程序DISP1:MOV

P0,#00HMOV

R7,#25RP1:

MOV

A,20H;熄滅數(shù)碼管;以下調(diào)用四次5MS延時程序,故

25*4*5MS=0.5S;主干道直行方向要顯示時間移到寄存器A;要顯示的數(shù)字代碼表首地址MOV

DPTR,#TABMOV

B,#10DIV

ABMOVC

A,@A+DPTR;要顯示的時間10相除,求出十位和個位;找到十位的顯示代碼MOV

P1,#00111110B;選擇主干道數(shù)碼管十位片MOV

P0,AACALL

DE5MSMOV

A,BMOVC

A,@A+DPTR;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器A;找到個位數(shù)顯示代碼MOV

P1,#00111101B

;

選擇主干道數(shù)碼管個位片選MOV

P0,A ;

送出個位數(shù)顯示代碼ACALL

DE5MSMOV

A,21H;延時5ms以點(diǎn)亮數(shù)碼管;支干道方向要顯示時間移到寄存器A;要顯示的數(shù)字代碼表首地址MOV

DPTR,#TABMOV

B,#10DIV

AB個;要顯示的時間與10相除,求出位和十位;找到十位的顯示代碼;選擇支干道數(shù)碼管的十位片選;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器A;找到個位的顯示代碼;選擇支干道數(shù)碼管的個位片選;送出個位顯示數(shù)碼;是否已循環(huán)25次MOVC

A,@A+DPTRMOV

P1,#00111011BMOV

P0,AACALL

DE5MSMOV

A,BMOVC

A,@A+DPTRMOV

P1,#00110111BMOV

P0,AACALL

DE5MSDJNZ

R7,RP1RET主干道直行黃燈的時間顯示子程序;熄滅數(shù)碼管;以下調(diào)用兩次0.01S延時程序;要顯示的時間移到寄存器A;要顯示的數(shù)字代碼表首地址DISP4:MOV

P0,#00MOV

R7,#25RP4:MOV

A,22HMOV

DPTR,#TABMOV

B,#10DIV

AB十MOVC

A,@A+DPTR;要顯示的時間10相除,求出位和個位;找到十位的顯示代碼MOV

P1,#00111110BMOV

P0,AACALL

DE5MSMOV

A,B;選擇主干道數(shù)碼管十位片;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器AMOVC

A,@A+DPTR

;找到個位數(shù)顯示代碼;選擇南北數(shù)碼管個位片選;送出個位數(shù)顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管MOV

P1,#00111101BMOV

P0,AACALL

DE5MSMOV

A,21H;要顯示的數(shù)字代碼表首地址MOV

DPTR,#TABMOV

B,#10DIV

AB個;要顯示的時間與10相除,求出位和十位;找到十位的顯示代碼;選擇東西數(shù)碼管的十位片選;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器A;找到個位的顯示代碼;選擇東西數(shù)碼管的個位片選;送出個位顯示數(shù)碼MOVC

A,@A+DPTRMOV

P1,#00111011BMOV

P0,AACALL

DE5MSMOV

A,BMOVC

A,@A+DPTRMOV

P1,#00110111BMOV

P0,AACALL

DE5MSDJNZ

R7,RP4RET支干道左轉(zhuǎn)彎黃燈的時間顯示子程序;熄滅數(shù)碼管;以下調(diào)用兩次0.01S延時程序;要顯示的時間移到寄存器A;要顯示的數(shù)字代碼表首地址DISP2:MOV

P0,#00MOV

R7,#25RP2:MOV

A,22HMOV

DPTR,#TABMOV

B,#10DIV

ABMOVC

A,@A+DPTR;要顯示的時間與10相除,求出個位和十位;找到十位的顯示代碼MOV

P1,#00111010B;選擇主干道數(shù)碼管支干道數(shù)碼管十位片MOV

P0,ALCALL

DE10MS;送出十位顯示代碼;延時10ms以點(diǎn)亮數(shù)碼管MOV

P1,#00110101B;選擇主干道、支干道數(shù)碼管個位片;把個位數(shù)移到寄存器A;找到個位數(shù)顯示代碼;送出個位數(shù)顯示代碼;延時10ms以點(diǎn)亮數(shù)碼管MOV

A,BMOVC

A,@A+DPTRMOV

P0,ALCALL

DE10MSDJNZ

R7,RP2RET主干道左轉(zhuǎn)彎通行的時間顯示子程序DISP3:MOV

P0,#00MOV

R7,#25RP3:

MOV

A,23H;熄滅數(shù)碼管;以下調(diào)用四次延時程序;把主干道左轉(zhuǎn)彎方向顯示的時間移到寄存器A;要顯示的數(shù)字代碼表首地址MOV

DPTR,#TABMOV

B,#10DIV

AB;要顯示的時間10相除,求出十位和個位MOVC

A,@A+DPTR;找到十位的顯示代碼MOV

P1,#00111110B;選擇主干道數(shù)碼管十位片MOV

P0,AACALL

DE5MSMOV

A,BMOVC

A,@A+DPTR;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器A;找到個位數(shù)顯示代碼MOV

P1,#00111101B;選擇主干道數(shù)碼管個位片選MOV

P0,AACALL

DE5MS;送出個位數(shù)顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;;要顯示的數(shù)字代碼表首地址MOV

A,24HMOV

DPTR,#TABMOV

B,#10DIV

AB位;要顯示的時間與10相除,求出個和十位;找到十位的顯示代碼;選擇支干道數(shù)碼管的十位片選;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器A;找到個位的顯示代碼;選擇支干道數(shù)碼管的個位片選;送出個位顯示數(shù)碼MOVC

A,@A+DPTRMOV

P1,#00111011BMOV

P0,AACALL

DE5MSMOV

A,BMOVC

A,@A+DPTRMOV

P1,#00110111BMOV

P0,AACALL

DE5MSDJNZ

R7,RP3RET支干道綠燈時間顯示子程序DISP5:MOV

P0,#00MOV

R7,#25RP5:

MOV

A,23H;熄滅數(shù)碼管;以下調(diào)用四次延時程序;把主干道左轉(zhuǎn)彎方向顯示的時間移到寄存器A;要顯示的數(shù)字代碼表首地址MOV

DPTR,#TABMOV

B,#10DIV

ABMOVC

A,@A+DPTR;要顯示的時間10相除,求出十位和個位;找到十位的顯示代碼MOV

P1,#10111110BMOV

P0,AACALL

DE5MSMOV

A,B;選擇主干道數(shù)碼管十位片;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器AMOVC

A,@A+DPTR

;找到個位數(shù)顯示代碼MOV

P1,#10111101BMOV

P0,AACALL

DE5MS;選擇主干道數(shù)碼管個位片選;送出個位數(shù)顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;;要顯示的數(shù)字代碼表首地址MOV

A,24HMOV

DPTR,#TABMOV

B,#10DIV

AB出;要顯示的時間與10相除,求個位和十位;找到十位的顯示代碼;選擇支干道數(shù)碼管的十位片;送出十位顯示代碼;延時5ms以點(diǎn)亮數(shù)碼管;把個位數(shù)移到寄存器A;找到個位的顯示代碼;選擇支干道數(shù)碼管的個位片;送出個位顯示數(shù)碼MOVC

A,@A+DPTRMOV

P1,#10111011BMOV

P0,AACALL

DE5MSMOV

A,BMOVC

A,@A+DPTRMOV

P1,#10110111BMOV

P0,AACALL

DE5MSDJNZ

R7,RP3RET支干道黃燈閃爍時間顯示子程序;熄滅數(shù)碼管;以下調(diào)用兩次0.01S延時程序;要顯示的時間移到寄存器A;要顯示的數(shù)字代碼表首地址DISP6:MOV

P0,#00MOV

R7,#25RP6:MOV

A,22HMOV

DPTR,#TABMOV

B,#10DIV

ABMOVC

A,@A+DPTR;時間與10相除,求出個位和十位;找到十位的顯示代碼;選擇主干道、支干道數(shù)碼管十位片;送出十位顯示代碼;延時10ms以點(diǎn)亮數(shù)碼管;選擇主干道、支干道數(shù)碼管個位片;把個位數(shù)移到寄存器A;找到個位數(shù)顯示代碼;送出個位數(shù)顯示代碼;延時10ms以點(diǎn)亮數(shù)碼管MOV

P1,#10111010BMOV

P0,ALCALL

DE10MSMOV

P1,#10110101BMOV

A,BMOVC

A,@A+DPTRMOV

P0,ALCALL

DE10MSDJNZ

R7,RP6RET;;5ms延時,(5ms=50*50*2us);10ms延時;DELAY:

MOV

R6,#1DE61:

MOV

R0,#1DE71:

DJNZ

R0,DE71DJNZ

R6,DE61RETDE5MS:

MOV

R6,#50DE6:

MOV

R0,#50DE7:

DJNZ

R0,DE7DJNZ

R6,DE6RETDE10MS:ACALL

DE5MSACALL

DE5MSRETDE05S:

MOV

R5,#05DH1:

MOV

R6,#200DH2:

MOV

R7,#126DH3:

DJNZ

R7,DH3DJNZ

R6,DH2DJNZ

R5,DH1RET應(yīng)急車輛通過的時間顯示子程序LOOP13:;;;;;;MOV

P0,#00MOV

R7,#50LOOP14:CLR

P3.0MOV

A,27HMOV

DPTR,#TABMOV

B,#10DIV

ABMOVC

A,@A+DPTRMOV

P1,#01101010B

;MOV

P0,A

;LCALL

DE10MS

;MO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論