基于80C51交通燈控制課題_第1頁
基于80C51交通燈控制課題_第2頁
基于80C51交通燈控制課題_第3頁
基于80C51交通燈控制課題_第4頁
基于80C51交通燈控制課題_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于80C51交通燈控制一、 課程設計功能描述題目描述:請設計一個交通燈控制電路,并且編寫相應的軟件,完成交通燈的管理任務。題目要求:該控制任務應該完成下列功能:1.控制LED燈,完成交通燈的管理任務;2. 按照分析、設計、調試和測試的軟、硬件開發(fā)過程完成這個控制任務。功能描述:要先了解實際交通燈的控制變化規(guī)律。假設一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉狀態(tài)1南北綠燈通車,東西紅燈。過20秒鐘轉狀態(tài)2,南北綠燈閃幾次轉亮黃燈,延時幾秒,東西仍然紅燈。再轉狀態(tài)3,東西綠燈通車,南北紅燈。過20秒鐘轉狀態(tài)4,東西綠燈閃幾次轉亮黃燈,延時幾秒,南北仍然紅燈。最后循環(huán)至狀態(tài)

2、1.二、 課程設計分析設計1、80C51內部結構與外部引腳80C51的40個引腳可分為:電源引腳2根、時鐘引腳2根、控制引腳4根和I/O引腳32根。80C51單片機內部結構圖如圖所示。引腳功能:Vss:接地端。Vcc:電源端,接+5V。XTAL1:接外部晶體的一個引腳。CHMOS單片機采用外部時鐘信號時,外部時鐘信號由此引入。XTAL2:接外部晶體的一個引腳。HMOS單片機采用外部時鐘信號時,外部時鐘信號由此引入。RST:復位信號輸入。Vcc掉電后,此引腳可接備用電源,低功耗條件下保證內部RAM中的數據。ALE:地址鎖存允許。當單片機訪問外部存儲器時,該引腳的輸出信號ALE用于鎖存P0端口的低

3、8位地址。ALE輸出的頻率為時鐘振蕩頻率的1/6。對8751單片機片內EPROM編程時,編程脈沖由此引腳接入。PSEN:程序存儲器允許。輸出讀外部程序存儲器的選通信號。取指令操作期間,PSEN的頻率為振蕩頻率的1/6;但若此期間有訪問外部數據存儲器的操作時,則有一個機器周期中的PSEN信號將不會出現(xiàn)。EA:EA=0,單片機只訪問外部程序存儲器。對于8031單片機此引腳必須接地。EA=1,單片機訪問內部程序存儲器。對于內部有程序存儲器的8xx51單片機,此引腳應接高電平,但若地址超過4KB范圍(0fffh),單片機將自動訪問外部程序存儲器。在8751單片機片內EPROM編程期間,此引腳接入21V

4、編程電源Vpp。P0.0P0.7:P0數據/低8位地址復用總線端口。P1.0P1.7:P1靜態(tài)通用端口。P2.0P2.7:P2高八位地址總線動態(tài)端口。P3.0P3.7:雙功能靜態(tài)端口。2.LED數碼顯示器數碼管在單片機應用系統(tǒng)中主要用于顯示單片機的輸出數據和狀態(tài)等。LED顯示器為發(fā)光二極管構成的顯示器件。常用的LED顯示器有兩種供應狀態(tài),既共陰極LED與共陽極LED。3.7405非門電路4.雙色LED.雙色LED是由一個紅色LED管芯和一個綠色LED管芯封裝在一起,公用負端。當紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。

5、5.程序設計程序設計時,首先對東西南北路口計時寄存器進行地址分配、對路口紅黃綠燈分配引腳、設置顯示碼緩沖區(qū)、設置定時器初始時間。然后對各個狀態(tài)進行編程,編程過程中應注意各個狀態(tài)計時初值和顯示初值的設置,以及各個狀態(tài)LED燈編程和調用。最后,數碼顯示的編程。三、 繪制硬件電路圖(用Protel軟件)并對硬件電路進行說明;80c51的引腳:P2.1p2.6分別控制東西路口綠燈、黃燈、紅燈和南北路口綠燈、黃燈、紅燈。P3.0和p3.1控制LED數碼顯示。四、繪制軟件流程圖(用VISIO軟件)并對軟件流程進行說明;開始 四個路口紅燈亮 南北綠燈亮,東西紅燈亮,延時 南北黃燈閃爍,東西紅燈亮,延時 南北

6、紅燈亮,東西綠燈亮,延時 南北紅燈亮,東西黃燈閃爍,延時 流程說明:程序開始進入狀態(tài)0四個路口紅燈亮;然后進入狀態(tài)1南北綠燈亮,東西紅燈亮,延時;然后進入狀態(tài)2南北黃燈閃爍,東西紅燈亮,延時;然后進入狀態(tài)3南北紅燈亮,東西綠燈亮,延時;然后進入狀態(tài)4南北紅燈亮,東西黃燈閃爍,延時;循環(huán)至狀態(tài)1。五、程序的源代碼清單及注釋(匯編語言或C51程序);SECOND1EQU30H ;東西路口計時寄存器SECOND2EQU31H;南北路口計時寄存器 DBUFEQU40H;顯示碼緩沖區(qū)1TEMPEQU44H;顯示碼緩沖區(qū)2LED_G1BITP2.1;東西路口綠燈LED_Y1BITP2.2;東西路口黃燈LE

7、D_R1BITP2.3;東西路口紅燈LED_G2BITP2.4;南北路口綠燈LED_Y2BITP2.5;南北路口黃燈LED_R2BITP2.6;南北路口紅燈ORG0000HLJMP STARTORG0100HSTART:MOVTMOD,#01H;置T0為工作方式1MOVTH0,#3CH;置T0定時初值50msMOVTL0,#0B0HCLRTF0SETB TR0;啟動T0CLRAMOVP1,A;關閉不相關的LED;*MOVR2,#20;置1s計數初值,50ms*20=1sMOVR3,#5;紅燈亮5sMOVSECOND1,#5;東西路口計時顯示初值5sMOVSECOND2,#5;南北路口計時顯示初

8、值5sLCALL DISPLAYWAIT0:LCALL STATE0;調用狀態(tài)0JNBTF0,WAIT0;查詢50ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值50msMOVTL0,#0B0HDJNZ R2,WAIT0;判斷1s到否?未到繼續(xù)狀態(tài)0MOVR2,#20;置50ms計數初值 DECSECOND1;東西路口顯示時間減1sDECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT0;狀態(tài)0維持5s;*LOOP:MOVR2,#20;置50ms計數初值MOVR3,#20;紅燈閃20sMOVSECOND1,#25;東西路口計時顯示初值25sM

9、OVSECOND2,#25;南北路口計時顯示初值25sLCALL DISPLAYWAIT1:LCALL STATE1;調用狀態(tài)1JNBTF0,WAIT1;查詢100ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值100msMOVTL0,#0B0HDJNZ R2,WAIT1;判斷1s到否?未到繼續(xù)狀態(tài)1MOVR2,#20;置100ms計數初值DECSECOND1;東西路口顯示時間減1sDECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT1;狀態(tài)1維持20s;* MOV R2,#5;置50ms計數初值5*4=20MOVR3,#3;綠燈閃3sMO

10、VR4,#4;閃爍間隔200msMOVSECOND1,#5;東西路口計時顯示初值5sMOVSECOND2,#5;南北路口計時顯示初值5sLCALL DISPLAYWAIT2:LCALL STATE2;調用狀態(tài)2JNBTF0,WAIT2;查詢50ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值50msMOVTL0,#0B0HDJNZ R4,WAIT2;判斷200ms到否?未到繼續(xù)狀態(tài)2CPLLED_G2;南北綠燈閃MOVR4,#4;閃爍間隔200msDJNZ R2,WAIT2;判1s到否?未到繼續(xù)狀態(tài)2MOVR2,#5;置50ms計數初值DECSECOND1;東西路口顯示時間減1sD

11、ECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT2;狀態(tài)2維持3s;*MOVR2,#20;置50ms計數初值MOVR3,#2;黃燈閃2sMOVSECOND1,#2;東西路口計時顯示初值2sMOVSECOND2,#2;南北路口計時顯示初值2sLCALL DISPLAYWAIT3:LCALL STATE3;調用狀態(tài)3JNBTF0,WAIT3;查詢100ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值100msMOVTL0,#0B0HDJNZ R2,WAIT3;判斷1s到否?未到繼續(xù)狀態(tài)3MOVR2,#20;置100ms計數初值DECSECON

12、D1;東西路口顯示時間減1sDECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT3;狀態(tài)3維持2s;*MOVR2,#20;置50ms計數初值MOVR3,#20;紅燈閃20sMOVSECOND1,#25;東西路口計時顯示初值25sMOVSECOND2,#25;南北路口計時顯示初值25sLCALL DISPLAYWAIT4:LCALL STATE4;調用狀態(tài)4JNBTF0,WAIT4;查詢100ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值100msMOVTL0,#0B0HDJNZ R2,WAIT4;判斷1s到否?未到繼續(xù)狀態(tài)4MOVR2,#

13、20;置100ms計數初值DECSECOND1;東西路口顯示時間減1sDECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT4;狀態(tài)4維持20s;*MOVR2,#5;置50ms計數初值MOVR4,#4;紅燈閃20msMOVR3,#3;綠燈閃3sMOVSECOND1,#5;東西路口計時顯示初值5sMOVSECOND2,#5;南北路口計時顯示初值5sLCALL DISPLAYWAIT5:LCALL STATE5;調用狀態(tài)5JNBTF0,WAIT5;查詢100ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值100msMOVTL0,#0B0HDJNZ

14、 R4,WAIT5;判斷200ms到否?未到繼續(xù)狀態(tài)5CPLLED_G1;東西綠燈閃MOVR4,#4;閃爍200msDJNZ R2,WAIT5;判斷1s到否?未到繼續(xù)狀態(tài)5MOVR2,#5;置100ms計數初值DECSECOND1;東西路口顯示時間減1sDECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT5;狀態(tài)5維持3s;*MOVR2,#20;置50ms計數初值MOVR3,#2;紅燈閃2sMOVSECOND1,#2;東西路口計時顯示初值2sMOVSECOND2,#2;南北路口計時顯示初值2sLCALL DISPLAYWAIT6:LCALL STATE

15、6 ;調用狀態(tài)6JNBTF0,WAIT6;查詢100ms到否CLRTF0MOVTH0,#3CH;恢復T0定時初值100msMOVTL0,#0B0HDJNZ R2,WAIT6;判斷1s到否?未到繼續(xù)狀態(tài)6MOVR2,#20;置100ms計數初值DECSECOND1;東西路口顯示時間減1sDECSECOND2;南北路口顯示時間減1sLCALL DISPLAYDJNZ R3,WAIT6;狀態(tài)6維持2sLJMP LOOP;大循環(huán);*STATE0:;狀態(tài)0SETB LED_R1;東西路口紅燈亮CLRLED_Y1CLRLED_G1CLRLED_G2CLRLED_Y2SETB LED_R2;南北路口紅燈亮R

16、ETSTATE1:;狀態(tài)1 SETB LED_R1 ;東西路口紅燈亮CLRLED_Y1CLRLED_G1CLRLED_R2CLRLED_Y2SETB LED_G2;南北路口綠燈亮RETSTATE2:;狀態(tài)2CLRLED_Y2CLRLED_R2CLRLED_G1CLRLED_Y1SETB LED_R1;東西路口紅燈亮RETSTATE3:;狀態(tài)3CLRLED_G2CLRLED_R2CLRLED_G1CLRLED_Y1SETB LED_R1;東西路口紅燈亮SETB LED_Y2 ;南北路口黃燈亮RETSTATE4:;狀態(tài)4CLRLED_G2CLRLED_Y2SETB LED_R2;南北路口紅燈亮SE

17、TB LED_G1;東西路口綠燈亮CLRLED_Y1CLRLED_R1RETSTATE5:;狀態(tài)5CLRLED_G2CLRLED_Y2SETB LED_R2;南北路口紅燈亮CLRLED_Y1CLRLED_R1RETSTATE6:;狀態(tài)6CLRLED_G2CLRLED_Y2SETB LED_R2 ;南北路口紅燈亮CLRLED_G1CLRLED_R1SETB LED_Y1;東西路口黃燈亮RETDISPLAY:;數碼顯示MOVA,SECOND1;東西路口計時寄存器MOVB,#10;16進制數拆成兩個10進制數DIVABMOVDBUF+3,AMOVA,BMOVDBUF+2,AMOVA,SECOND2;

18、南北路口計時寄存器MOVB,#10;16進制數拆成兩個10進制數DIVABMOVDBUF+1,AMOVA,BMOVDBUF,AMOVR0,#DBUFMOVR1,#TEMPMOVR7,#4DP10:MOVDPTR,#LEDMAPMOVA,R0MOVC A,A+DPTRMOVR1,AINCR0INCR1DJNZ R7,DP10MOVR0,#TEMPMOVR1,#4DP12:MOVR7,#8MOVA,R0DP13:RLCAMOVP3.0,CCLRP3.1SETB P3.1DJNZ R7,DP13INCR0DJNZ R1,DP12RETLEDMAP:DB 3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5DB 7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,BDB 58H,5EH,7BH,71H,0,40H;C,D,E,F(xiàn), ,-END六、上機調試運行結果及分析;1.硬件調試硬件調試可分為脫機調試與聯(lián)機調試兩步進行。脫機調試是在用戶系統(tǒng)未工作時的一種硬件檢測。第一步:目測。檢查外部的各種元件或者是電路是否有斷點。目測結果:電路及各元件正常。第二步是通電檢查。通電后發(fā)現(xiàn)各個交通燈均能發(fā)光,證明電路線

溫馨提示

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

評論

0/150

提交評論