單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告_第1頁
單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告_第2頁
單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告_第3頁
單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告_第4頁
單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告 精品文檔,僅供參考單片機(jī)交通燈綜合實(shí)驗(yàn)報(bào)告 河 北 工 業(yè) 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告 學(xué) 院: 專 業(yè): 班 級: 姓 名: 學(xué) 號: 實(shí)驗(yàn)課程:單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)開發(fā)入門 指導(dǎo)教師: 實(shí)驗(yàn)名稱: 交通信號燈控制實(shí)驗(yàn) 實(shí)驗(yàn)時(shí)間: 2019 年 5 月 23 日 2019 年 5 月 23 日 一 實(shí)驗(yàn)要求 1 實(shí)驗(yàn)?zāi)康募皩?shí)驗(yàn)內(nèi)容要求 實(shí)驗(yàn)?zāi)康模?.熟悉外部中斷源的擴(kuò)展方法。 2.初步掌握單片機(jī)綜合應(yīng)用系統(tǒng)設(shè)計(jì)。 3.掌握用 Proteus 調(diào)試匯編源程序的方法。 實(shí)驗(yàn)內(nèi)容要求: 用發(fā)光二極管模擬交通信號燈,用邏輯電平開關(guān)模擬控制開關(guān),設(shè)計(jì)一個(gè)交通信號燈控制系統(tǒng)。設(shè)計(jì)要求

2、如下: (1) A 車道與 B 車道交叉組成十字路口,A 是主道,B 是支道;正常情況下,A、B 兩車道輪流放行。具體放行時(shí)間和要求如下: (2) A 車道放行 50s,其中綠燈常亮 44s,綠燈閃爍 3s(用于警告),黃燈常亮 3s(用于警告)。 (3) B 車道放行 30s,其中綠燈常亮 24s,綠燈閃爍 3s(用于警告),黃燈常亮 3s(用于警告)。 在交通繁忙時(shí),交通信號燈控制系統(tǒng)應(yīng)有手控開關(guān),可人為地改變信號燈的狀態(tài),以緩解交通擁擠狀況??刂埔笕缦拢?(1) 在 B 車道放行期間,若 A 車道有車而 B 車道無車,按下開關(guān)使 A 車道放行 15s。 (2) 在 A 車道放行期間,若

3、 B 車道有車而 A 車道無車,按下開關(guān)使 B 車道放行 15s。 (3) 有緊急車輛通過時(shí),按下開關(guān)使 A、B 車道均為紅燈,禁行 15s。 2 實(shí)驗(yàn)設(shè)備或運(yùn)行軟件平臺 完成本實(shí)驗(yàn)需要使用到單片機(jī)仿真軟件 Proteus8,該軟件是英國 Lab Center Electronics 公司出版的 EDA 工具軟件,是目前比較好的仿真單片機(jī)及外圍器件的工具。從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB 設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺。在編譯方面,它也支持 IAR、Keil、MATL

4、AB 等多種編譯器。其具有的基本功能特點(diǎn)為:1.原理布圖。2.PCB 自動(dòng)或人工布線。3.SPICE 電路仿真。革命性的特點(diǎn)是 1.互動(dòng)的電路仿真。 2.仿真處理器及其外圍電路。 二 實(shí)驗(yàn)內(nèi)容及過程 1 實(shí)驗(yàn)設(shè)計(jì)及分析(或者實(shí)驗(yàn)程序) 實(shí)驗(yàn)原理圖如下所示: 交通信號燈模擬控制系統(tǒng)程序流程圖如下圖所示: 主程序 一道有車另一道無車時(shí) 緊急車輛通過時(shí) 的中斷服務(wù)程序 的中斷服務(wù)程序 A 綠燈閃、 B 紅燈延時(shí) s 3 A 紅燈、 B 綠燈閃動(dòng)延 s 3 A 紅燈、 B 綠燈延時(shí) 25 s A 綠燈、 B 紅燈延時(shí) 55 s A 紅燈、 B 黃燈延時(shí) s 2 A 黃燈、 B 紅燈延時(shí) s 2 初始化

5、 開中斷 保護(hù)現(xiàn)場 關(guān)中斷 A 道有車 B 道有車 A 紅燈、 B 綠燈延時(shí) s 5 A 綠燈、 B 紅燈延時(shí) 5 s 關(guān)中斷 恢復(fù)現(xiàn)場 開中斷 返回 中斷響應(yīng) 保護(hù)現(xiàn)場 A 紅燈、 B 紅燈延時(shí) s 20 恢復(fù)現(xiàn)場 返回 N N Y Y 中斷響應(yīng) 開始 實(shí)驗(yàn)程序及程序分析如下: ORG 0000H LJMP MAIN ;LJMP,轉(zhuǎn)向主程序 ORG 0003H LJMP INT00 ;轉(zhuǎn)向緊急車輛中斷服務(wù)程序 ORG 0013H LJMP INT11 ;轉(zhuǎn)向有車車道放行中斷服務(wù) ORG 0030H MAIN : SETB PX0 ;置外部中斷 0 為高優(yōu)先級中斷 MOV TCON,#00H

6、;置外部中斷 0、1 為電平觸發(fā) MOV IE,#85H ;開 CPU 中斷、外部中斷 0、1 中斷 LOOP: ;A 道綠燈亮;B 紅燈亮 MOV P1,#0F3H MOV R1,#88 ;44s 延時(shí)循環(huán)次數(shù) AP1: ;調(diào)用 0.5s 延時(shí)子程序 DELAY LCALL DELAY DJNZ R1,AP1 ;44s 不到,繼續(xù)循環(huán)(DJNZ RN,REL 是一條件轉(zhuǎn)移指令,先將工作寄存器Rn 中的數(shù)減“1”,判斷結(jié)果是否為“0”,不為“0”程序就跳轉(zhuǎn)到行標(biāo)為REL 的地方執(zhí)行,否則,為“0”就不轉(zhuǎn)移,繼續(xù)執(zhí)行下一條指令。) MOV R1,#6 ;3s 延時(shí)的循環(huán)次數(shù)(循環(huán)一次延時(shí) 0.5

7、 秒。) AP2: ;A 道綠燈閃爍 CPL P1.2 LCALL DELAY ;參考程序中缺少此句,若缺失會(huì)導(dǎo)致無法延時(shí)。 DJNZ R1,AP2 ;3s 未到,繼續(xù)循環(huán) MOV P1,#0F5H ;A 道黃燈亮,B 道紅燈亮 MOV R1,#6 AP3: LCALL DELAY DJNZ R1,AP3 ;3s 未到,繼續(xù)循環(huán) MOV P1,#0DEH ;A 道紅燈亮,B 道綠燈亮 MOV R1,#48 ;延時(shí)循環(huán) 48 次 BP1: LCALL DELAY DJNZ R1,BP1 ;24s 未到繼續(xù)循環(huán) MOV R1,#6 BP2: CPL P1.5 ;B 道綠燈閃爍 LCALL DELA

8、Y DJNZ R1,BP2 ;3s 未到,繼續(xù)循環(huán) MOV P1,#0EEH;A 道紅燈亮,B 道黃燈亮 MOV R1,#6 BP3: LCALL DELAY DJNZ R1,BP3 ;3s 未到,繼續(xù)循環(huán) SJMP LOOP ORG 0200H INT00: 保護(hù) P1 口數(shù)據(jù) PUSH P1 ;PUSH 入棧指令 MOV P1,#0F6H ;A 道紅燈亮;B 道紅燈亮 MOV R2,#30 ;15 秒延時(shí)的循環(huán)次數(shù) DELAY0: LCALL DELAY DJNZ R2,DELAY0 POP P1 ;恢復(fù) P1 口數(shù)據(jù) POP 是出棧指令 RETI ;返回主程序 ORG 0300H INT

9、11: CLR EA ;關(guān)中斷 EA 為總中斷 PUSH P1 ;保護(hù)現(xiàn)場 PUSH 04H PUSH 05H PUSH 06H SETB EA ;開中斷 JNB P3.0,AP0 ;A 道無車,轉(zhuǎn)向判斷 B 道(JNB 比較轉(zhuǎn)移指令。當(dāng) P3.0 是 0 時(shí)就轉(zhuǎn)移執(zhí)行 AP0,否則就順序執(zhí)行。) MOV P1,#0F3H;A 道綠燈亮,B 道紅燈亮 SJMP DEL1 ;轉(zhuǎn)向 15 秒延時(shí)程序 AP0: JNB P3.1,EXIT ;B 道無車,退出中斷 MOV P1,#0DEH;A 道紅燈亮,B 道綠燈亮 DEL1 : MOV R3,#30 ;15s 延時(shí)的循環(huán)次數(shù) NEXT : LCAL

10、L DELAY DJNZ R3,NEXT ;15 秒未到循環(huán)繼續(xù) EXIT : CLR EA POP 06H ;恢復(fù)現(xiàn)場 POP 05H POP 04H POP P1 SETB EA RETI ;返回原程序 ORG 0350H DELAY : MOV R4,#20;0.5 秒延時(shí)子程序參考程序中為#10,經(jīng)實(shí)驗(yàn)發(fā)現(xiàn)只能延時(shí) 0.25s 故改為#20,以達(dá)到實(shí)驗(yàn)?zāi)康摹?LP1 : MOV R5,#50 LP2 : MOV R6,#248 NOP LP3: DJNZ R6,LP3 DJNZ R5,LP2 DJNZ R4,LP1 RET END 交通信號燈與控制管腳的對應(yīng)關(guān)系如下: 控制狀態(tài) P1

11、口控制碼 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 未用 未用 B 道 綠燈 B 道 黃燈 B 道 紅燈 A 道 綠燈 A 道 黃燈 A 道 紅燈 A 綠燈亮、B 紅燈亮 F3H 1 1 1 1 0 0 1 1 A 黃燈亮、B 紅燈亮 F5H 1 1 1 1 0 1 0 1 A 紅燈亮、B 綠燈亮 DEH 1 1 0 1 1 1 1 0 A 紅燈亮、B 黃燈亮 EEH 1 1 1 0 1 1 1 0 A 紅燈亮、B 紅燈亮 F6H 1 1 1 1 0 1 1 0 2 實(shí)驗(yàn)步驟及實(shí)驗(yàn)數(shù)據(jù)記 錄 1.先接線按下表所示的管腳與 LED 或邏輯開關(guān)的對應(yīng)關(guān)系接線。

12、在 Proteus8 中原理圖繪制界面中將接線接好。 管腳 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P3.0 P3.1 P3.3 P3.2 LED 或邏輯開關(guān) L3 L1 L2 L7 L5 L6 K1 K2 K3 K8 控制對象 A 紅燈 A 黃燈 A 綠燈 B 紅燈 B 黃燈 B 綠燈 A 道 B 道 使有車車道放行低電平有效 緊急車輛放行低電平有效 高電平表示有車低電平表示無車 接線完成后如圖所示: 2.輸入程序,在 Proteus8 中 SourceCode 界面將程序輸入完成后試運(yùn)行保證程序正確。 出現(xiàn)編譯成功后進(jìn)行下一步。 3 運(yùn)行程序。 4.觀察六只發(fā)光二極管的

13、亮滅規(guī)律。 實(shí)驗(yàn)中六只發(fā)光二極管亮滅規(guī)律:(0 代表滅,1 代表亮,2 代表閃) 運(yùn)行時(shí)間(s ) A 綠 A 黃 A 紅 B 綠 B 黃 B 紅 0 1 0 0 0 0 1 44 2 0 0 0 0 1 47 0 1 0 0 0 1 50 0 0 1 1 0 0 74 0 0 1 2 0 0 77 0 0 1 0 1 0 80 1 0 0 0 0 1 八十秒后開始重復(fù) 0-80 秒內(nèi)的亮滅規(guī)律。 5. 部分連接圖如圖所示。 1) 在 A 紅燈、B 綠燈亮?xí)r,先將 K1 撥至高電平(表示 A 道有車)、K2 撥至低電平(表示 B 道無車),再將 K3 撥至低電平使有車車道(A 道)放行,A 綠

14、燈、B 紅燈同時(shí)亮 5s 后返回原先狀態(tài)。 對邏輯開關(guān) K1、K2、K3 的操作對應(yīng)于 SW2 開關(guān),閉合 SW2 后,A 紅燈滅,綠燈亮,B 綠燈滅,紅燈亮。15s 后恢復(fù)回閉合開關(guān)前的的亮燈狀態(tài)。 2) 在 A 綠燈、B 紅燈亮?xí)r,先將 K1 撥至低電平(表示 A 道無車)、K2 撥至高電平(表示 B 道有車),再將 K3 撥至低電平使有車車道(B 道)放行,A 紅燈、B 綠燈同時(shí)亮 5s 后返 回原先狀態(tài)。 對邏輯開關(guān) K1、K2、K3 的操作對應(yīng)于 SW1 開關(guān),閉合 SW1 后,A 綠燈滅,紅燈亮,B 紅燈滅,綠燈亮。15s 后恢復(fù)回閉合開關(guān)前的的亮燈狀態(tài)。 (提示:K3 撥至低電平

15、后,應(yīng)在 5s 內(nèi)改為高電平,否則,單片機(jī)可能將再一次響應(yīng)中斷。) 6.不論 A 道、B 道的信號燈處于什么狀態(tài),將 K8 撥至低電平后,A 紅燈、B 紅燈同時(shí)亮 20s后返回原先狀態(tài)。(提示:K8 撥至低電平后,應(yīng)在 20s 內(nèi)改為高電平,否則,單片機(jī)可能將再一次響應(yīng)中斷。) 對邏輯開關(guān) K8 的操作對應(yīng)于 JINJI 開關(guān),閉合 JINJI 后,A 只有紅燈亮,B也只有紅燈亮。20s 后恢復(fù)回閉合開關(guān)前的的亮燈狀態(tài)。 3 實(shí)驗(yàn)數(shù)據(jù)分析 1.一道有車而另一道無車時(shí),K3 撥至低電平即向單片機(jī)發(fā)出中斷請求(低優(yōu)先級別);若此時(shí)單片機(jī)正在執(zhí)行主程序,會(huì)響應(yīng)中斷轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序,先依次查詢

16、 A、B 車道的空閑狀態(tài),再去控制 A、B 車道的信號燈;若此時(shí)單片機(jī)正在執(zhí)行緊急車輛通過時(shí)中斷服務(wù)程序,單片機(jī)不會(huì)響應(yīng)中斷。 2.緊急車輛通過時(shí),K8 撥至低電平即向單片機(jī)發(fā)出中斷請求(高優(yōu)先級別),不論單片機(jī)正在執(zhí)行主程序還是一道有車而另一道無車時(shí)的中斷服務(wù)程序,會(huì)響應(yīng)中斷轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序。 3.在進(jìn)行步驟 5 1)或 2)操作時(shí),若在閉合開關(guān)后沒有在 5s 內(nèi)斷開開關(guān),則在 15 秒時(shí)無法按時(shí)恢復(fù)回閉合開關(guān)時(shí)的亮燈狀態(tài)。 4.操作過程中發(fā)現(xiàn),若操作 SW1 開關(guān)后亮燈狀態(tài)已經(jīng)發(fā)生改變,則在 15 秒內(nèi)再操作 SW2開關(guān)則無法繼續(xù)使亮燈狀態(tài)改變。 三 總結(jié)與體會(huì) 1 實(shí)驗(yàn)任務(wù)完成情況 本實(shí)驗(yàn)完成情況良好。通過老師的精心指導(dǎo)、本人的不懈努力和同學(xué)的熱心幫助,能夠基本上完成所有實(shí)驗(yàn)內(nèi)容,且在實(shí)驗(yàn)過程中對單片機(jī)的了解更加深入了。但也無法避免地遇到一些問題,比如對實(shí)驗(yàn)程序代碼的理解不夠深入,只停留在表面,且對 51 單片機(jī)的 111 條指令仍比較陌生,只能記住一些特別常用的。對于此我的做法是,在分析實(shí)驗(yàn)程序的過程中,一遇到不熟悉的指令就百度搜索一下加深印象。在反復(fù)的搜索過程中我也記住了不少指令。通過課程的學(xué)習(xí),目前達(dá)到的水平是能夠基本看懂實(shí)驗(yàn)程序,能夠繪制簡單原理圖,但仍無法做到獨(dú)立編寫實(shí)驗(yàn)程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論