交通燈模擬控制系統(tǒng)_第1頁
交通燈模擬控制系統(tǒng)_第2頁
交通燈模擬控制系統(tǒng)_第3頁
交通燈模擬控制系統(tǒng)_第4頁
交通燈模擬控制系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱: 專業(yè)課程設(shè)計(jì) 課程設(shè)計(jì)題目: 交通燈模擬控制系統(tǒng) 學(xué) 院 名 稱: 信息工程學(xué)院 專業(yè): 電子信息工程 班級(jí): 110413 學(xué)號(hào): 11041327 姓名: 王爭(zhēng)盛 評(píng)分: 教師: 陶秋香 20 14 年 6 月 27 日 電子信息工程專業(yè) 課程設(shè)計(jì)任務(wù)書20 13 20 14學(xué)年第 2 學(xué)期分散1周 第 17 周 19 周集中 題目交通燈模擬控制系統(tǒng)內(nèi)容及要求1用單片機(jī)擴(kuò)展一片8255,用12個(gè)發(fā)光二極管模擬一個(gè)十字交叉路口的紅、綠、黃燈,并設(shè)置二個(gè)緊急放行按鍵;2正常行駛時(shí),東西或南北方向的燈按綠燈亮10秒,黃燈閃爍3秒,紅燈亮12秒控制;3當(dāng)東西或南北方

2、向的緊急放行按鍵按下時(shí),如果禁行方向?yàn)榧t燈,則紅燈繼續(xù)維持12秒;如果禁行方向?yàn)榫G燈,則立即變?yōu)辄S燈閃爍3秒;如果禁行方向?yàn)辄S燈,則黃燈繼續(xù)維持。進(jìn)度安排1. 分散1周:布置任務(wù)、查閱資料、選擇方案。注意:學(xué)生的設(shè)計(jì)方案需經(jīng)指導(dǎo)老師檢查通過后方可進(jìn)實(shí)驗(yàn)室進(jìn)行制作。2. 第17周:模塊訓(xùn)練,軟件設(shè)計(jì)及調(diào)試。3. 第18周-第19周:領(lǐng)元器件、制作、焊接、硬件調(diào)試、軟硬件調(diào)試調(diào)試、驗(yàn)收及測(cè)試并上交報(bào)告。學(xué)生姓名:王爭(zhēng)盛,徐淑艷指導(dǎo)時(shí)間 分散1周,集中指導(dǎo):2014.6.9-6.27指導(dǎo)地點(diǎn):E 樓 505室任務(wù)下達(dá)2014 年 5 月 21日任務(wù)完成2014 年 6 月 27日考核方式1.評(píng)閱 2

3、.答辯 3.實(shí)際操作 4.其它指導(dǎo)教師陶秋香系(部)主任賈杰注:1、此表一組一表二份,課程設(shè)計(jì)小組組長一份;任課教師授課時(shí)自帶一份備查。 2、課程設(shè)計(jì)結(jié)束后與“課程設(shè)計(jì)小結(jié)”、“學(xué)生成績單”一并交院教務(wù)存檔。 摘要 隨著計(jì)算機(jī)科學(xué)技術(shù)的不斷發(fā)展,單片微型機(jī)得到了廣泛的應(yīng)用,是人們利用計(jì)算機(jī)設(shè)計(jì)和開發(fā)各種應(yīng)用系統(tǒng)的基礎(chǔ)。同時(shí)單片機(jī)接口技術(shù)也是一門實(shí)踐性較強(qiáng)的課程,理論與實(shí)踐相結(jié)合可以更好的掌握知識(shí)這也是這次交通燈系統(tǒng)控制的設(shè)計(jì)目的。交通燈是交通安全的關(guān)鍵,已廣泛應(yīng)用于城鄉(xiāng)的十字路口,它的有無作為交通安全檢查的重要依據(jù),是交通秩序正常進(jìn)行的有力保障。 本次的交通燈控制系統(tǒng)主要由單片機(jī)結(jié)合8255A

4、并行口等芯片組成。整個(gè)課程設(shè)計(jì)使用單片機(jī)的P1口和P0口擴(kuò)張端口至8255芯片獲取編程的地址由8255的PA口和PB口實(shí)現(xiàn)交通燈的并由開關(guān)K1、K2實(shí)現(xiàn)東西、南北方向的緊急放行。這個(gè)系統(tǒng)看上去比較簡(jiǎn)單,但它運(yùn)用了單片機(jī)的定時(shí)功能、IO口的擴(kuò)展功能以及對(duì)8255A的熟悉運(yùn)用。 關(guān)鍵字8255A、緊急情況、定時(shí) 目錄第一章 設(shè)計(jì)內(nèi)容及要求1第二章 系統(tǒng)組成及工作原理22.1 AT89C52的工作原理22.2 8255的工作原理42.2.1 8255特性42.2.2 8255A的工作方式42.2.3 引腳信號(hào)42.3 發(fā)光二極管62.4 緊急放行按鍵62.5 74ALS5736第三章 硬件電路方案設(shè)

5、計(jì)73.1 方案選擇73.2 交通燈各部分功能分析及各邏輯器件描述83.2.1 單片機(jī)輸入輸出引腳83.2.2 時(shí)鐘定時(shí)控制部件93.2.3 LED數(shù)字顯示電路103.2.4 復(fù)位電路113.2.5 紅黃綠燈顯示電路123.2.6 擴(kuò)展并行I/O口8255123.2.7 74ALS573芯片簡(jiǎn)介133.2.8 緊急情況143.3 電路參數(shù)分析15第四章 軟件設(shè)計(jì)164.1 主程序流程圖164.2子程序流程圖174.3 程序詳細(xì)設(shè)計(jì)214.3.1 初始化定時(shí)器程序214.3.2 中斷程序214.3.3 紅綠燈控制程序214.3.4 延時(shí)程序23第五章 調(diào)試與測(cè)試結(jié)果分析245.1 硬件和軟件的測(cè)

6、試245.2 調(diào)試過程中遇到的問題245.3 實(shí)驗(yàn)結(jié)果分析24結(jié)論25參考文獻(xiàn)26附錄27附錄一27附錄二33附錄三34第一章 設(shè)計(jì)內(nèi)容及要求(1)用單片機(jī)擴(kuò)展一片8255,用12 個(gè)發(fā)光二極管模擬一個(gè)十字交叉路紅、綠、黃燈,并設(shè)置二個(gè)緊急放行按鍵。(2)正常行駛時(shí),東西或南北方向的燈按綠燈亮10 秒,黃燈閃爍3 秒,紅燈亮12秒控制。(3)當(dāng)東西或南北方向的緊急放行按鍵按下時(shí),如果禁行方向?yàn)榧t燈,則紅燈繼續(xù)維持12 秒;如果禁行方向?yàn)榫G燈,則立即變?yōu)辄S燈閃爍3 秒;如果禁行方向?yàn)辄S燈,則黃燈繼續(xù)維持。第二章 系統(tǒng)組成及工作原理2.1 AT89C52的工作原理89C52是INTEL公司MCS-

7、51系列單片機(jī)中基本的產(chǎn)品,它采用INTEL公司可靠的CHMOS工藝技術(shù)制造的高性能8位單片機(jī),基于標(biāo)準(zhǔn)的MCS-51單片機(jī)體系結(jié)構(gòu)和指令系統(tǒng),集成了時(shí)鐘輸出和向上或向下計(jì)數(shù)器等更多的功能。89C52內(nèi)置8位中央處理單元、256字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM、8K片內(nèi)程序存儲(chǔ)器(ROM)32個(gè)雙向輸入/輸出(I/O)口、3個(gè)16位定時(shí)/計(jì)數(shù)器和5個(gè)兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)時(shí)鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時(shí)器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時(shí)鐘振蕩停止,同時(shí)停止芯片內(nèi)其它功能

8、。下面介紹89C52各管腳圖及各引腳的功能與連接方法:89C52各管腳圖VCC:供電電壓。 GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故

9、。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,

10、可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口作為AT89C51的一些特殊功能口,管腳備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部

11、存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA / VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.2 8255的工作

12、原理2.2.1 8255特性(1)一個(gè)并行輸入/輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口。2)具有24個(gè)可編程設(shè)置的I/O口,即使3組8位的I/O口為PA口,PB口和PC口.它們又可分為兩組12位的I/O口,A組包括A口及C口(高4位,PC4PC7),B組包括B口及C口(低4位,PC0PC3).A組可設(shè)置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I/O3種模式;B組只能設(shè)置為基本I/O或閃控式I/O兩種模式,而這些操作模式完全由控制寄存器的控制字決定。2.2.2 8255A的工作方式方式0-基本輸入輸出方式;方式1-選通輸入輸出方式;方式2-雙向選通輸

13、入輸出方式。2.2.3 引腳信號(hào)8255A的引腳如圖2.1所示,分為數(shù)據(jù)線、地址線、讀/寫控制線、輸入/輸出端口線和電源線。圖2.1 8255管腳圖RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器均被清除,所有I/O口均被置成輸入方式。CS:芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/CS=0時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時(shí),8255無法與CPU做數(shù)據(jù)傳輸.RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即/RD=0且/CS=0時(shí),允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平

14、時(shí),即/WR=0且/CS=0時(shí),允許CPU將數(shù)據(jù)或控制字寫入8255。D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。PA0PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。PB0PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。PC0PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和

15、端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。A0,A1:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器。當(dāng)A0=0,A1=0時(shí),PA口被選擇;當(dāng)A0=0,A1=1時(shí),PB口被選擇;當(dāng)A0=1,A1=0時(shí),PC口被選擇;當(dāng)A0=1.A1=1時(shí),控制寄存器被選擇。2.3 發(fā)光二極管發(fā)光二極管簡(jiǎn)稱為LED。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當(dāng)電子與空穴復(fù)合時(shí)能輻射出可見光,因而可以用來制成發(fā)光二極管。在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。磷砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光。發(fā)光二極管正極接高電平時(shí),負(fù)極為低電平則

16、燈亮。2.4 緊急放行按鍵 本系統(tǒng)需兩個(gè)緊急按鍵,實(shí)現(xiàn)當(dāng)某個(gè)方向車流量較大時(shí)延長放行時(shí)間或緊急改變放行方向。2.5 74ALS573 74ALS573 鎖存器它構(gòu)成了外部數(shù)據(jù)存儲(chǔ)器與單片機(jī)的接口電路該鎖存器有以下特點(diǎn): 工作電壓電壓7.0V ; 工作溫度范圍0°到70°; 引腳數(shù)20 ;三態(tài)輸出 屬TTL工藝 ; 最大傳輸延遲時(shí)間:14ns 。第三章 硬件電路方案設(shè)計(jì)3.1 方案選擇方案一 利用89C52的P1口控制放行鍵,用8255控制交通燈及倒計(jì)時(shí)顯示圖3.1使用89C51和8255控制框圖方案二 用利兩片8255進(jìn)行端口擴(kuò)展,其中一片用于控制指示燈,另一片用于制控倒計(jì)

17、時(shí)顯示及矩陣式鍵盤控制,圖3.2利用兩8255擴(kuò)展I/O端口控制框圖 方案一優(yōu)點(diǎn): 直接用51系統(tǒng)控制開關(guān)控制緊急放行鍵,容易控制。在擴(kuò)展的8255芯片中控制LED和時(shí)間顯示。 缺點(diǎn):51系統(tǒng)利用少,8255要控制兩部分,操作復(fù)雜。方案二優(yōu)點(diǎn):利用的硬件源資源相對(duì)較多,但由于使用了兩片8255進(jìn)行I/O端口擴(kuò)展,所以有充足的端口資源,對(duì)系統(tǒng)的功能完善提供了方便的硬件資源。缺點(diǎn):若只是用于實(shí)現(xiàn)一般的控制功能,則存在一定的資源浪費(fèi),不利于產(chǎn)品的商業(yè)化。 方案選擇:選擇方案一,本次課程設(shè)計(jì)要求能做出實(shí)物功能和仿真圖,7279 protues仿真中沒有,而且方案一簡(jiǎn)單實(shí)際,所以選擇方案一。3.2 交通

18、燈各部分功能分析及各邏輯器件描述3.2.1 單片機(jī)輸入輸出引腳 (1) P1端口P0.0-P0.7 P0是一個(gè)8位漏極開路型雙向I/O端口,端口置1(對(duì)端口寫1)時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)TTL。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收指令字節(jié);校驗(yàn)程序時(shí)輸出指令字節(jié),要求外接上拉電阻。 在訪問外部程序和外部數(shù)據(jù)存儲(chǔ)器時(shí),P0口是分時(shí)轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。 (2) P1端口P1.0P1.7 P1是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程

19、時(shí),接收低8位地址信息。 (3) P2端口P2.0P2.7 P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。 (4) P3端口P3.0P3.7 P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時(shí)可驅(qū)動(dòng)4個(gè)TTL。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接控制信息。除此之外P3端口還用于

20、一些專門功能,具體請(qǐng)參看下表。P3引腳兼用功能P3.0串行通訊輸入(RXD)P3.1串行通訊輸出(TXD)P3.2外部中斷0( INT0)P3.3外部中斷1(INT1)P3.4定時(shí)器0輸入(T0)P3.5定時(shí)器1輸入(T1)P3.6外部數(shù)據(jù)存儲(chǔ)器寫選通WRP3.7外部數(shù)據(jù)存儲(chǔ)器寫選通RD3.2.2 時(shí)鐘定時(shí)控制部件 由于AT89C52單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,此放大器的輸入和輸出端分別是引腳XTAL1和XTAL2,在XTAL1和XTAL2上外接時(shí)鐘源即可構(gòu)成時(shí)鐘電路,該電路采用的是內(nèi)部方式,如圖3-3所示。圖3-3 時(shí)鐘定時(shí)電路 在XTAL1和XTAL2的兩端接石英晶體

21、振蕩器,與內(nèi)部反向器構(gòu)成穩(wěn)定的自激振蕩器,發(fā)出的時(shí)鐘脈沖直接進(jìn)入片內(nèi)定時(shí)定時(shí)控制部件。用以提供交通燈時(shí)鐘信號(hào)。 在該電路的設(shè)計(jì)過程中,C1、C2的選取對(duì)頻率有微調(diào)作用,選取值是22pF。為了減少寄生電容,保證振蕩器穩(wěn)定和可靠的工作,在接線時(shí)將晶振和電容的管腳接在單片機(jī)最近的地方。3.2.3 LED數(shù)字顯示電路顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有: 發(fā)光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LED顯示器是現(xiàn)在最常用的顯示器之一,如圖3-4所示。圖3-4 LED顯示器的符號(hào)圖發(fā)光二極管(LED)由特殊的半導(dǎo)體材料

22、砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8字型,每一段包含一個(gè)發(fā)光二極管。外加正向電壓時(shí)二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號(hào)。LED數(shù)碼管有共陽、共陰之分。圖3-5是共陽式、共陰式LED數(shù)碼管的原理圖和符號(hào)。表3-1是兩種數(shù)碼管段碼與顯示字形的關(guān)系。 圖3-5 數(shù)碼管原理圖和數(shù)碼管符號(hào)圖表3-1段碼與顯示字形的關(guān)系顯示字型0123456789段碼共陽C0HF9HA4HB0H99H92H82HF8H80H90H共陰3FH06H5BH4FH66H6DH7DH

23、07H7FH6FH3.2.4 復(fù)位電路在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在80C51的9(RST)引腳上時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0P3口均置1,引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開始運(yùn)行程序。復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)

24、位電路。當(dāng)時(shí)鐘頻率選用12MHz時(shí),C取10F,R約為10K。復(fù)位操作不會(huì)對(duì)內(nèi)部RAM有所影響。常用的復(fù)位電路如圖3-6所示: 圖3-6 單片機(jī)復(fù)位電路3.2.5 紅黃綠燈顯示電路 紅黃綠燈顯示電路如圖3-7所示。二極管的正極通過上拉電阻接+5v的電源VCC,負(fù)極分別接89C52單片機(jī)的外部接口P1.0、P1.1、P1.2、P1.3、P1.4、P1.5口,我們可以通過控制單片機(jī)P1口的數(shù)據(jù)輸出來控制二極管的亮滅。例如為P1口送值為#0DEH,則南北紅燈亮禁止通行,東西綠燈亮允許通行。交通燈電路如下圖所示。圖3-7 交通燈及數(shù)碼管倒計(jì)時(shí)顯示電路3.2.6 擴(kuò)展并行I/O口82558255A芯片是

25、一個(gè)采用NMOS工藝制造的、40引腳雙列直插式封裝組建的大規(guī)模集成電路,采用單一+5V電源供電。40個(gè)引腳中有24個(gè)為與外圍設(shè)備的口。(1)數(shù)據(jù)總線緩沖器 這是一個(gè)三態(tài)雙向緩沖器,其寬度是8位,用做8255的內(nèi)部數(shù)據(jù)總線與系統(tǒng)中的數(shù)據(jù)總線相連時(shí)的緩沖部件。緩沖器向數(shù)據(jù)總線送出數(shù)據(jù),或從數(shù)據(jù)總線接收數(shù)據(jù)都是CPU指令控制下進(jìn)行的。 (2)讀寫邏輯控制 這一部件用來管理所有的數(shù)據(jù)、控制字或狀態(tài)資的傳送。他接收來自CPU的各種控制信號(hào),并以此為依據(jù),控制數(shù)據(jù)總線緩沖器數(shù)據(jù)的傳送方向。與CPU相連的個(gè)引腳說明如下:1) CS:芯片選擇信號(hào)。來自地址譯碼器,低電平有效。2) RD:芯片讀出信號(hào)。來自系統(tǒng)

26、總線,低電平有效。3) WR:芯片寫入信號(hào)。來自系統(tǒng)總線,低電平有效。4) RESET復(fù)位信號(hào)。當(dāng)它為高電平時(shí),清除所有內(nèi)部寄存器的內(nèi)容,并將3 個(gè)數(shù)據(jù)端口PA,PB,PC置為輸入方式。5) A1,A0:端口地址選擇信號(hào)。用于選擇8255A的3個(gè)數(shù)據(jù)端口和1個(gè)控 制口。當(dāng)A1A0為00、01、10時(shí),分別選擇數(shù)據(jù)端口PA、PB、PC;當(dāng)A1A0 為11時(shí),選擇控制口。6) Vcc、GND:電源和地線。 (3) 端口PA、PB與PC 8255A有三個(gè)與外圍設(shè)備相連的端口PA,PB,PC。各端口可以獨(dú)立工作,由程序控制位將它設(shè)成各種不同的工作方式。端口A,B一般用做獨(dú)立的輸入或輸出端口,每個(gè)端口包

27、括一個(gè)四位瑣存器,分別與A口,B口配合使用,作為與外設(shè)之間的聯(lián)絡(luò)信號(hào)3.2.7 74ALS573芯片簡(jiǎn)介 74ALS573 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖3-9所示。其中:D0-D7為8個(gè)輸入端。 Q0-Q7為8個(gè)輸出端。 LE為數(shù)據(jù)打入端: 當(dāng)LE為“1”時(shí),鎖存器輸出狀態(tài)同輸入狀態(tài); 當(dāng)LE由“1”變“0”時(shí),數(shù)據(jù)打入鎖存器 為輸出允許端: 當(dāng)=0時(shí),三態(tài)門打開; 當(dāng)=1時(shí),三態(tài)門關(guān)閉,輸出為高阻狀態(tài)。圖3-8 74ALS573管腳封裝圖3.2.8 緊急情況 當(dāng)開關(guān)key_a(key_b)按下時(shí),即P1.0(P1.1)口變?yōu)榈碗娖剑藭r(shí)將P1.0(P1.1)口的狀態(tài)送至PA(PB

28、)口。12個(gè)LED燈的狀態(tài)會(huì)根據(jù)PAPB口的內(nèi)容發(fā)生相應(yīng)的變化。圖3-9緊急開關(guān)電路圖及元器件見附錄二3.3 電路參數(shù)分析 指示燈控制電路是用8255的PA口的低六位接十二個(gè)發(fā)光二極管組成,采用的是低電平點(diǎn)亮,因此發(fā)光二極管的正端通過一個(gè)510的提拉電阻接到5伏電源上。此時(shí)流過發(fā)光二極管的電流 I=(5-1.5-0.3)/5106.27(mA) 式3.1完全可滿足發(fā)光二極管點(diǎn)亮?xí)r的亮度問題。定時(shí)器初值分析:T0定時(shí)最長時(shí)間約為65ms,可用T0產(chǎn)生50ms的定時(shí),再通過計(jì)時(shí)10次產(chǎn)生半秒標(biāo)志、計(jì)時(shí)20次產(chǎn)生1S標(biāo)志。設(shè)定時(shí)初值為X,則有 (65536X)*1s=50ms 式3.2得X3CB0H

29、, 即 TH0=3CH, TL0=B0H 第四章 軟件設(shè)計(jì) 軟件在硬件平臺(tái)上構(gòu)筑,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由硬件和軟件共同實(shí)現(xiàn)的,由于軟件的可伸縮性,最終實(shí)現(xiàn)的系統(tǒng)功能可強(qiáng)可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設(shè)計(jì)方法,不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。同時(shí),對(duì)軟件進(jìn)行全面測(cè)試也是檢驗(yàn)錯(cuò)誤排除故障的重要手段。4.1 主程序流程圖軟件總體設(shè)計(jì)主要完成各部分的軟件控制和協(xié)調(diào)。本系統(tǒng)主程序模塊主要完成的工作是對(duì)系統(tǒng)的初始化,等待外部中斷,發(fā)送顯示數(shù)據(jù),以及根據(jù)所需要的功能進(jìn)行相應(yīng)的操作。其主流程圖如圖4-1所示。開始 8255初始化查表計(jì)數(shù)

30、器R0置為0調(diào)用LP1子程序查表計(jì)數(shù)器R0置為0調(diào)用LP2子程序圖4-1 程序主流程圖4.2子程序流程圖主程序中共調(diào)用了兩個(gè)子程序,分別為LP1和LP2,其中LP1子程序?yàn)闁|西方向綠燈亮9s+黃燈閃爍3s,南北方向紅燈亮12s禁止通行,LP2子程序則恰好和LP1子程序功能相反,為南北方向綠燈亮9s+黃燈閃爍3s,東西方向紅燈亮12s禁止通行。下面結(jié)合LP1和LP2畫出兩個(gè)子程序的流程圖,如圖4-2和圖4-3所示。開始R2=0調(diào)用K1子程序K1鍵是否按下 是 否 R2=0調(diào)用K2子程序K2鍵是否按下 是 是 否R0內(nèi)容送入A 標(biāo)志A 查表TAB1 否,轉(zhuǎn)至標(biāo)志B處查表結(jié)果代表東西方向亮燈狀態(tài),送

31、入P1口南北方向置為紅燈狀態(tài)調(diào)用XS顯示子程序數(shù)碼管顯示倒計(jì)時(shí)R0自加1R0=12否 是返回 圖4-2 子程序LP1流程圖 開始R2=0調(diào)用K1子程序K1鍵是否按下 是 否 R2=0調(diào)用K2子程序K2鍵是否按下 否 否 否R0內(nèi)容送入A 標(biāo)志B 查表TAB1 是,轉(zhuǎn)至標(biāo)志A處查表結(jié)果代表南北方向亮燈狀態(tài),送入P1口東西方向置為紅燈狀態(tài)調(diào)用XS顯示子程序數(shù)碼管顯示倒計(jì)時(shí)R0自加1R0=12否 是返回 圖4-3 子程序LP2流程圖 圖4-2和圖4-3兩個(gè)流程圖中都調(diào)用了K1和K2子程序,這個(gè)兩個(gè)程序?yàn)榫o急放行事件處理程序,用于判斷急行鍵按下后禁行方向的交通等狀態(tài);XS顯示子程序?yàn)閿?shù)碼管顯示倒計(jì)時(shí)程

32、序,動(dòng)態(tài)顯示。其流程圖如圖4-4所示。 開始R4賦值為250R1=0 否 是 選中南北方向倒計(jì)時(shí)顯示十位的數(shù)碼管選中東西方向倒計(jì)時(shí)顯示十位的數(shù)碼管顯示倒計(jì)時(shí)十位延時(shí)1.5msR1=0選中南北方向倒計(jì)時(shí)顯示個(gè)位的數(shù)碼管選中東西方向倒計(jì)時(shí)顯示個(gè)位的數(shù)碼管顯示倒計(jì)時(shí)個(gè)位延時(shí)1.5ms結(jié) 束R4減1=0 是 否 圖4-4 XS顯示子程序流程圖4.3 程序詳細(xì)設(shè)計(jì)4.3.1 初始化定時(shí)器程序void init() /定時(shí)器初始化 TMOD=0x01; /定時(shí)器0工作在方式1 TH0=(65536-50000)/256; /定時(shí)器0賦初值,50ms TL0=(65536-50000)%256; EA=1;

33、 /開總中斷 ET0=1; /開定時(shí)器0中斷 TR0=1; /啟動(dòng)定時(shí)器0中斷 模值和計(jì)數(shù)器工作方式有關(guān)。在方式1時(shí)M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過12分頻后,若采用方式最大延時(shí)只有8.129毫秒,采用方式最大延時(shí)也只有65.536毫秒。所以本程序采用50毫秒一次定時(shí)。(通過中斷程序可以使定時(shí)的時(shí)間達(dá)到10秒或更長)4.3.2 中斷程序void time0() interrupt 1 /中斷服務(wù)函數(shù) TH0=(65536-50000)/256; /重新賦初值 TL0=(65536-50000)%256; num+;

34、 num1+; 通過控制num num1的數(shù)值從而控制定時(shí)的時(shí)間,交通燈的循環(huán)時(shí)間是25秒,故num num1的最大值都為50 紅綠燈控制程序 void jiaotd() uchar djs1,djs2,djs3,djs4; PS=0x80; if(num>0&&num<180) /南北方向 /綠燈亮9s PA=0x14; djs1=9-num/20; djs2=0; display(djs1,djs2); /倒計(jì)時(shí)顯示 if(num>=180&&num<240) /黃燈閃3s PA=0x09; delayms(100);

35、PA=0x00; djs1=3-(num-180)/20; djs2=0; display(djs1,djs2); /倒計(jì)時(shí)顯示 if(num>=240&&num<480) /紅燈亮12秒 PA=0x22; djs1=(12-(num-240)/20)%10; djs2=(12-(num-240)/20)/10; display(djs1,djs2); /倒計(jì)時(shí)顯示 if(num1>0&&num1<240) /東西方向/紅燈亮12秒 PB=0x12; djs3=(12-num/20)%10;djs4=(12-num/20)/10;disp

36、lay1(djs3,djs4); /倒計(jì)時(shí)顯示 if(num1>=240&&num1<420) /綠燈亮9s PB=0x21; djs3=9-(num-240)/20; djs4=0; display1(djs3,djs4); /倒計(jì)時(shí)顯示 if(num1>=420&&num1<480) PB=0x0C; /黃燈閃3s delayms(100); PB=0x00; djs3=3-(num1-420)/20;djs4=0;display1(djs3,djs4); /倒計(jì)時(shí)顯示 num 控制的是南北紅綠燈,num1控制的是東西紅綠燈的情況,有

37、num num1的數(shù)值來控制紅綠燈的亮滅,實(shí)現(xiàn)定時(shí)的功能,這樣的定時(shí)是非常的準(zhǔn)確的。4.3.4 延時(shí)程序void delayms(uint z) /延時(shí)程序 uint y; while(z-) for(y=110;y>0;y-); 延時(shí)程序主要用在對(duì)鍵盤的消抖和黃燈的閃爍上。主程序見附錄一第五章 調(diào)試與測(cè)試結(jié)果分析5.1 硬件和軟件的測(cè)試 (1)利用萬用表測(cè)試單片機(jī)ALE腳的電壓值,觀察是否在1.7V左右, 在表示電路已經(jīng)起振,單片機(jī)部分電路是完全正確的。 (2)檢測(cè)按鍵的導(dǎo)通情況,保證按鍵的的有效性。 (3)將程序下載入單片機(jī)中,觀察交通燈的亮滅情況,改變程序中相應(yīng)的 數(shù)值,亮滅情況是

38、否發(fā)生改變。5.2 調(diào)試過程中遇到的問題 (1)燈的亮滅沒有按照預(yù)想的規(guī)律去實(shí)現(xiàn),之后通過改寫程序中對(duì)PA PB 口的賦值,將這一問題解決了。 (2)緊急情況的按鍵無效,按下鍵后,交通燈沒有變化,之后查找電路通 過更改了按鍵的IO口將問題解決了。5.3 實(shí)驗(yàn)結(jié)果分析 開始運(yùn)行時(shí),系統(tǒng)在工作狀態(tài)為東西方向?yàn)榧t,南北方向?yàn)榫G,紅燈保持12秒,綠燈保持10秒,并不斷遞減,當(dāng)綠燈減到0時(shí),南北方向路口由綠等切換成黃燈,黃燈閃爍時(shí)間為3秒,3秒過后,南北方向轉(zhuǎn)為紅燈,東西方向轉(zhuǎn)為綠燈。并不斷遞減,當(dāng)東西路口減到0時(shí),東西方向路口由綠等切換成黃燈,黃燈閃爍時(shí)間為3秒,之后的情況不斷重復(fù)。當(dāng)東西或南北方向的

39、緊急放行按鍵按下時(shí),對(duì)于放行方向若為紅燈,則禁行方向變黃燈閃爍三秒后變紅燈,放行方向變綠燈維持10秒。對(duì)于放行方向若為綠燈,則綠燈繼續(xù)維持10秒;則禁行方向紅燈繼續(xù)維持13秒。通過以上結(jié)果可以看出,該結(jié)果與實(shí)驗(yàn)要求一致,此次試驗(yàn)是完全正確的。結(jié)論本次課程設(shè)計(jì)是一次較系統(tǒng)的電路設(shè)計(jì),通過資料查找,硬件電路設(shè)計(jì)、PROTEL仿真,程序代碼設(shè)計(jì),電路排版與焊接,程序測(cè)試與調(diào)試,誤差分析,課設(shè)總結(jié)等過程,它將我們所學(xué)的51單片機(jī)的理論轉(zhuǎn)化為了對(duì)電子系統(tǒng)的設(shè)計(jì)與實(shí)踐。加深了51單片機(jī)的知識(shí),熟悉了電路設(shè)計(jì)的流程,增強(qiáng)了動(dòng)手實(shí)踐能力,鍛煉了網(wǎng)絡(luò)上收集所需電子文檔和查看英文PDF文檔的能力,同時(shí)提高了我們分

40、析問題,解決問題的能力。在課程設(shè)計(jì)過程中,首先了解了51最小系統(tǒng)板的知識(shí),加深了8255芯片的管腳、原理功能及應(yīng)用,設(shè)計(jì)中,設(shè)計(jì)了兩個(gè)放行鍵,可以實(shí)施緊急放行,使得交通指揮更流暢,設(shè)計(jì)了倒計(jì)時(shí)顯示,使得司機(jī)能夠準(zhǔn)確無誤的行駛車輛;接下來利用PROTEL軟件進(jìn)行仿真,在原理上驗(yàn)證了設(shè)計(jì)的正確性;焊接過程當(dāng)中,由于器件較少,很快就順利完成了;主要是調(diào)試過程遇到了很多問題,因?yàn)榈谝淮螌戇@么長的應(yīng)用程序,結(jié)構(gòu)上安排的不是很好,導(dǎo)致程序有點(diǎn)過長,有些模塊程序進(jìn)行了一定的參考;這次實(shí)踐認(rèn)識(shí)到現(xiàn)在所學(xué)的知識(shí)還有些欠缺,而電子產(chǎn)品發(fā)展飛速,作為專業(yè)生要在今后的學(xué)習(xí)中更加努力,不斷學(xué)習(xí)各種先進(jìn)的文化知識(shí),讓自己

41、在面對(duì)以后人生道路上的問題時(shí)有個(gè)堅(jiān)強(qiáng)的后盾。參考文獻(xiàn)1 張?chǎng)?單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版社,2005.2 楊居義.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京:清華大學(xué)出版社,2009.3 張有德.單片微機(jī)原理應(yīng)用與實(shí)驗(yàn).上海:復(fù)旦大學(xué)出版社,1995.4 萬福君.MCS-51單片機(jī)原理、系統(tǒng)設(shè)計(jì)與應(yīng)用.北京:清華大學(xué)出版社,2008.5 朱清慧等.Proteus教程電子線路設(shè)計(jì)、制版與仿真.北京:清華大學(xué)出 版社,2008.附錄附錄一主程序#include<reg52.h> #include<absacc.h> #define uint unsigned int #define

42、 uchar unsigned char #define PA XBYTE0x0000 /8255 A口地址#define PB XBYTE0x0001 /8255 B口地址#define PC XBYTE0x0002 /8255 C口地址#define PS XBYTE0x0003 /8255 控制口地址sbit key_a=P10; sbit key_b=P11;sbit dula=P31;sbit wei1=P32;sbit wei2=P33;sbit wei3=P34;sbit wei4=P35; uint num=0,num1=0; /num0為南北方向計(jì)時(shí),num1為東西方向計(jì)時(shí)u

43、char code table=/ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,/ 0x7f,0x6f,0x3f/ /數(shù)碼管顯示字形碼09,顯示占空比 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0, 0xfe,0xf6,0x3f; /數(shù)碼管顯示字形碼09,顯示倒計(jì)時(shí)(實(shí)物)void init() /定時(shí)器初始化 TMOD=0x01; /定時(shí)器0工作在方式1 TH0=(65536-50000)/256; /定時(shí)器0賦初值,50ms TL0=(65536-50000)%256; EA=1; /開總中斷 ET0=1; /開定時(shí)器0

44、中斷 TR0=1; /啟動(dòng)定時(shí)器0中斷 void delayms(uint z) /延時(shí)程序 uint y; while(z-) for(y=110;y>0;y-); void keyscan() /鍵盤掃描 if(key_b=0) /南北方向緊急放行按鍵 delayms(10); /延時(shí)10ms,消抖 if(key_b=0) if(num<180) /禁行方向?yàn)榫G燈,變?yōu)辄S燈 num=180; num1=180; if(num>240) /禁行方向?yàn)榧t燈,維持12s num=240; num1=240; if(key_a=0) /東西方向緊急放行按鍵 delayms(10); /延時(shí)10ms,消抖 if(key_a=0) if(num1<240) /禁行方向?yàn)榧t燈,維持12s num=0; num1=0; if(num1>240)&&(num1<420) /禁行方向?yàn)榫G燈,變?yōu)辄S燈 num=420; num1=420; void display(uchar ge,uchar shi) /南北方向倒計(jì)時(shí)顯示 wei1=0; dula=1; /顯示高位 P2=tableshi; delayms(2); dula=0; P2=0XFF; delayms(2); wei

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論