單片機控制交通燈控制系統設計說明_第1頁
單片機控制交通燈控制系統設計說明_第2頁
單片機控制交通燈控制系統設計說明_第3頁
單片機控制交通燈控制系統設計說明_第4頁
單片機控制交通燈控制系統設計說明_第5頁
已閱讀5頁,還剩18頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 . . . 長江學院課程設計報告 課程設計題目: 交通信號燈控制系統制作設計2011年 06月 06日單片機控制交通燈控制系統設計摘要十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本設計是根據我所學習的單片機課程,按照大綱要求對我進行的一次課程檢驗,是進行單片機課程訓練的必要任務,也對我們掌握單片機應用有很大的幫助。掌握單片機技術是一門不可或缺的技術,對我將來的工作以與生活和學習都有很密切的聯系。當今世界的發展是以科學技術為基礎的,微控技術在生產中所占的比重也越來越大。單片機的出現是近代計算機技

2、術發展史上的一個重要里程碑。近年來,隨著電子技術和微機計算機的迅速發展,單片機的檔次不斷提高,其應用領域也在不斷的擴大,已在工業控制、尖端科學、智能儀器儀表、日用家電、汽車電子系統、辦公自動化設備、個人信息終端與通信產品中得到了廣泛的應用,成為現代電子系統中最重要的智能化的核心部件。目 錄 1引言.42原件型號與參數.5 2.1 MSC-51芯片簡介 .5 2.2雙色發光二極管.5 2.3雙色燈與數碼顯示的對應關系.52.4交通燈的狀態.62.5硬件連線.62.6 8279使用簡介.63 CAD電路原理圖與說明.8 4件設計流程圖與源程序清單.95實驗心得與體會.206參考文獻.211引言當今

3、,紅綠燈安裝在各個道口上,已經成為疏導交通車輛最常見和最有效的手段。大多紅綠燈由紅綠黃三色圓形投光器組成:“紅”燈表示“停止”,“黃”燈表示“注意”,“綠”燈表示“通行”。本電路設計了一個簡易的交通燈控制系統,利用51單片機的定時器產生秒信號,控制十字路口的紅綠黃燈交替點亮和熄滅,并且用4只LED數碼管顯示十字路口兩個方向的剩余時間。并運用按鍵設置兩個方向的通行時間(綠燈點亮的時間),使系統的工作符合一般交通燈控制要求。2元器件的型號與參數2.1 MSC-51芯片簡介AT89S52是MCS-51系列單片機的典型產品,我們以這一代表性的機型進行系統的講解。AT89S52單片機包含中央處理器、程序

4、存儲器(ROM)、數據存儲器(RAM)、定時/計數器、并行接口、串行接口和中斷系統等幾大單元與數據總線、地址總線和控制總線等三大總線,現在我們分別加以說明:2.2雙色發光二極管雙色發光二極管是將一個紅色LED管芯和一個綠色LED管芯封裝在一起、公用負端的一個集成器件。當紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。實驗中,采用4只雙色發光二極管(DLED)分別模擬安裝在東、西、南、北4個路口上的4只交通燈,每只雙色發光二極管由74LS240反向驅動器驅動,74LS240輸入控制端為DR和DG,分別控制DLED紅燈和黃燈的工

5、作。具體控制如下:發光二極管的控制: R 0 G 1 紅色 R 1 G 0 綠色 R 0 G 0 黃色 R 1 G 1 不發光2.3雙色燈與數碼管顯示的對應關系3號數碼管(DR4) 北2號數碼管(DR3) 西1號數碼管(DR2) 南0號數碼管(DR1) 東2.4交通燈的狀態(1)正常狀態:狀態數值持續時間工作狀況101101010(5AH)20秒東西紅燈南北綠燈200001010(0AH)1秒東西紅燈南北黃燈閃爍310100110 (A5H)20秒東西綠燈南北紅燈400000110(05H)1秒南北紅燈東西黃燈閃爍(2)緊急狀態狀態數值持續時間工作狀況100001111(OFH)10秒東西南北

6、全部紅燈2.5硬件連線(1)采用P1口輸出,P1.0P1.7分別與DG1,DR1,DG2,DR2,DG3,DR3,DG4,DR4相連;(2)P3.2和P3.3分別與按鍵開關K1、K2相連,K1的優先級高于K2;(3)在愛迪克實驗教學機上,數碼管和8279部已經連接好,不需再連線。2.6 8279使用簡介8279可按其功能分為:鍵盤功能塊;顯示功能塊;控制功能塊;與CPU接口功能塊控制功能塊包括控制和定時寄存器,定時和控制,掃描計數器三部分。它主要用來控制鍵盤和顯示功能塊工作.控制和定時寄存器:用于存貯來自CPU的編程命令,CPU對8279編程以確定鍵盤與顯示器工作方式和其它工作條件時,先把命令

7、控制數據放到數據總線上,然后使A0=1,WR=0CS=0,并在WR上升沿把命令鍵存在控制和定時寄存器中,并經譯碼,建立適當的功能. 定時和控制:它含基本的定時計數器,第一個計數器是一個分頻系數為2-31的前置定時器,分頻系數可由程序預置,使部頻率為100KHz,從而能給出5.1ms鍵盤掃描時間和10.3ms反跳時間,其它計數器將此基本頻率分頻后,提供適當的按鍵掃描.行掃描.鍵盤陣列掃描.以與顯示器掃描次數.   本圖片為8279引腳圖18279 在鍵盤工作方式時,可設置為雙鍵互鎖方式和 N 鍵循回方式。雙鍵互鎖方式:若有兩個或多個鍵同時按下時,不管按鍵先后順序如何,只能識別

8、最后一個被釋放的鍵,并把該鍵值送入 FIFO RAM 中。N 鍵循回方式:一次按下任意個鍵均可被識別,按鍵值按掃描次序被送入 FIFO RAM 中。2.5.2顯示方式顯示功能塊包括:顯示寄存器,16X8顯示RAM,顯示地址寄存器. 顯示RAM和顯示寄存器8279部有16X8的顯示RAM,通過顯示寄存器和兩個四位端口0UT A0-3,0UT BO-3來刷新顯示,顯示器可以是白熾燈,也可以是8段數碼管,顯示RAM可以是16X8的形式,也可以構成兩個16x4 的RAM形式,顯示RAM可由CPU進行讀寫,被讀寫的RAM字節地址由顯示地址寄存器指示. 顯示地址寄存器保存當前CPU讀或寫的那個RAM地址,

9、以與正顯示著的那兩個4位半字節的地址,讀寫地址由CPU命令編程,也可置為每次讀寫后地址自動加1的工作方式,在設置了正確的工作方式后,顯示RAM可直接由CPU讀出,半字節A和半字節B地址自動由8279更新,以適應由CPU送入的數據,A和B半字節可獨立送入,也可作為一個字送入,隨CPU所設置的工作方式而定3 CAD電路原理圖與說明4軟件設計流程圖與源程序清單與注解4.1主程序流程圖主程序程序注入返回4.2源程序清單與注解Z8279 EQU 08701H ;8279 狀態/命令口地址D8279 EQU 08700H ;8279 數據口地址LEDMOD EQU 00H ;左邊輸入八位字符顯示 ;外部譯

10、碼鍵掃描方式,雙鍵互鎖LEDFEQ EQU 2FH ;掃描速率LEDCLS EQU 0C1H ;清除顯示 RAMLEDWR0 EQU 80H ;設定的將要寫入的顯示RAM地址 ORG 0000H AJMP START ORG 0003H ;INT 0 中斷入口地址LJMP INT_0 ORG 000BH ;INT T0 入口地址 AJMP INT_T0 ORG 001BH ;INT T1 入口地址AJMP INT_T1 ORG 0040HSTART: MOV SP,#60H LCALL INIT8279 ;初始化8279 MOV R6,#00H MOV R1,#0H ;南北 MOV R2,#0

11、H ;東西 MOV 32h,#10 MOV 33h,#8 MOV TMOD, #10H ;置T1為方式1 SETB EX0 ;INT 0 中斷有效 SETB IT0 SETB PX0 MOV TMOD,#11H MOV TL0,#00H ;50 mS 的時間常數 MOV TH0,#04CH MOV TL1,#00H ;50 mS 的時間常數 MOV TH1,#04CH MOV R0,#20H SETB TR0 SETB TF1 SETB ET0 SETB TR1 SETB ET1 SETB EA ;開總中斷 LCALL ST0 ;置初始狀態南北東西全紅WAIT0: MOV A,R1 MOV R

12、2,A MOV R3,A LCALL DISPLAY CJNE R1,#00,WAIT0CIRCLE: LCALL ST1WAIT1: MOV A,R1 MOV R2,A LCALL DISPLAY CJNE R1,#02,WAIT1FLASH: LCALL ST2 MOV A,R1 MOV R2,A LCALL DISPLAY CJNE R1,#00,flash LCALL ST3 WAIT3: MOV A,R1 MOV R3,A LCALL DISPLAY CJNE r1,#02,WAIT3FLASH1: LCALL ST4 MOV A,R1 MOV R3,A LCALL DISPLAY

13、CJNE R1,#00,FLASH1LJMP CIRCLEST0: MOV DPTR,#8300h MOV a,#0FH ;東西南北全紅 MOVX DPTR,a MOV R1,#05 RETST1: MOV DPTR, #8300H ; 東西綠燈南北紅燈 MOV A, 32h MOV R1, A MOV A, #5AH MOVX DPTR, A RETST2: MOV DPTR,#8300H ;綠燈閃3次 MOV A,#5FH MOVX DPTR,A LCALL DELAY ;調用延時 LCALL DELAY LCALL DELAY MOV A,#5AH MOVX DPTR,A LCALL D

14、ELAY ;調用延時 LCALL DELAY LCALL DELAY RETST3: MOV DPTR,#8300H ;南北綠燈東西紅燈 MOV A,33h MOV R1,A MOV A,#0A5H MOVX DPTR,A RETST4: MOV DPTR,#8300H ;綠燈閃3次 MOV A,#0AFH MOVX DPTR,A LCALL DELAY ;調用延時 LCALL DELAY LCALL DELAY MOV A,#0A5H MOVX DPTR,A LCALL DELAY ;調用延時 LCALL DELAY LCALL DELAY RETINT_0: PUSH PSW ;保護現場

15、PUSH 2 PUSH 90H CLR EX0 MOV P1, #0FH ;南北,東西都亮紅燈 MOV R2, #100 ;延時10秒 LCALL DISPLAY SETB EX0 POP 90H ;恢復現場 POP 2 POP PSW RETIDELAY: ;延時子程序 PUSH 8 ;保存現場 PUSH 9 MOV 8,#0HDELAY1: MOV 9,#0H DJNZ 9,$ DJNZ 8,DELAY1 POP 9 ;恢復現場 POP 8 RETINIT8279: ;8279初始化子程序 PUSH DPH ;保存現場 PUSH DPL PUSH ACC LCALL DELAY ;延時 M

16、OV DPTR ,#Z8279 MOV A,#LEDMOD ;置8279工作方式 MOVX DPTR,A MOV A,#LEDFEQ ;置鍵盤掃描速率 MOVX DPTR,A MOV A,#LEDCLS ;清除 LED 顯示 MOVX DPTR,A LCALL DELAY ;延時 POP ACC ;恢復現場 POP DPL POP DPH RET;顯示字符子程序;輸入: R4,位置 R5,值DISLED: PUSH DPH ;保存現場 PUSH DPL PUSH ACC MOV A,#LEDWR0 ;置顯示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#Z8279 MOVX D

17、PTR,A ;設定顯示位置 MOV DPTR,#LEDSEG ;置顯示常數表起始位置 MOV A,R5 MOVC A,A+DPTR ;查表 MOV DPTR,#D8279 MOVX DPTR,A ;顯示數據 POP ACC ;恢復現場 POP DPL POP DPH RETINT_T0: ;INT_T1中斷服務子程序 PUSH DPH ;保護現場 PUSH DPL PUSH ACC PUSH PSW CLR TR0 MOV TL0,#00H ;50mS 定時常數 MOV TH0,#4CH SETB TR0 LCALL KEYCAN ;8279鍵盤掃描 MOV A, R6 CJNE R6,#00

18、H,LOOP9 SJMP EXIT0LOOP9: CJNE A,#30H,NEXT ;判斷是否南北綠燈時間重置 CLR TR1LOOP8: MOV R6,#00H ;加計數子程序 LCALL KEYCAN MOV A,R6 CJNE A,#31H, LOOP MOV A,32H ADD A,#01 DA A MOV 32H, A MOV R2, A LCALL DISPLAY SJMP LOOP8LOOP: CJNE A,#32H,EXIT1 MOV A,32H SUBB A,#01 ;減計數子程序 MOV 32H,A MOV R2,A LCALL DISPLAY SJMP LOOP8 EXI

19、T1: CJNE A,#35H,LOOP8 SJMP EXIT0NEXT: CJNE A,#37H,EXIT0 ;判斷是否東西綠燈時間重置 CLR TR1LOOP7: MOV R6,#00H LCALL KEYCAN MOV A, R6 CJNE A,#31H,LOOP1 MOV A,33H ;加計數子程序 ADD A,#01 DA A MOV 33H,A MOV R3,A LCALL DISPLAY SJMP LOOP7LOOP1: CJNE A,#32H,EXIT2 MOV A,33H ;減計數子程序 SUBB A,#01 MOV 33H,A MOV R3,A LCALL DISPLAY

20、SJMP LOOP7EXIT2: CJNE A,#35H, LOOP7EXIT0: SETB TR1 MOV R6, #00 POP PSW ;恢復現場 POP ACC POP DPL POP DPH RETI ;中斷返回INT_T1: ;INT_T1中斷服務子程序 PUSH DPH ;保護現場 PUSH DPL PUSH ACC PUSH PSW CLR TR1 MOV TL1,#00H ;50mS 定時常數 MOV TH1,#4CH SETB TR1 DJNZ R0,EXIT ;判斷是否到1000毫秒 MOV R0,#20 ; 判斷是否到1秒 DEC R1EXIT: POP PSW ;恢復

21、現場 POP ACC POP DPL POP DPH RETI ;中斷返回DISPLAY: MOV B, #10 MOV A, R2 DIV AB ;除法指令 MOV R4,#1 MOV R5,A ;商放在高位 LCALL DISLED ;顯示秒高位 MOV R4,#0 MOV R5,B ;余數放在低位 LCALL DISLED ;顯示秒低位 MOV B, #10 MOV A, R3 DIV AB MOV R4,#7 MOV R5,A ;商放在高位 LCALL DISLED ;顯示秒高位 MOV R4,#6 MOV R5,B ;余數放在低位 LCALL DISLED ;顯示秒低位 RETKEY

22、CAN: PUSH DPH ;保存現場 PUSH DPL PUSH PSW MOV DPTR,#Z8279 MOVX A,DPTR ;讀8279狀態 ANL A,#07H ;屏蔽D7-D3 JNZ RD_KB ;判斷是否有鍵輸入 MOV A,#0H ;置標志(無鍵輸入) SJMP EXIT3RD_KB: MOV A,#40h ;讀 FIFO RAM 命令 MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR ;讀鍵 ANL A,#3FH ;屏蔽 SHIFT 和 CTRL 鍵 MOV DPTR,#KEYCODE ;鍵碼表起始地址 MOVC A,A+DPTR ;查表 MOV R6,A EXIT3: POP PSW ;恢復現場 POP DPL POP DPH RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7' DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F' DB 6DH,40H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, 'KEYCODE:DB 30H,3

溫馨提示

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

評論

0/150

提交評論