|
摘要: 交通燈是交通安全的關(guān)鍵,它的有無作為交通安全檢查的重要依據(jù),是交通秩序正常進(jìn)行的有力保障。現(xiàn)代交通的發(fā)展,對技術(shù)也提出較高的要求,已成為一項(xiàng)社會課題。通過本次設(shè)計,掌握8086,8259,8255,7424等芯片的使用方法和編程方法,利用8086微處理器完成了8086交通燈設(shè)計。同時了解綜合問題的程序設(shè)計。 關(guān)鍵詞: 交通燈;8086; 軟硬件設(shè)計 目 錄 1概述.............................................................. 3 1.1課題背景.................................................... 3 1.2 研究意義.................................................... 3 2 硬件電路設(shè)計.................................................... 3 2.1相關(guān)芯片簡介................................................ 3 2.2 仿真電路總體設(shè)計............................................ 6 3 軟件編程設(shè)計.................................................... 8 3.1系統(tǒng)概述.................................................... 8 3.2 程序流程圖設(shè)計.............................................. 8 3.3 按鍵控制................................................. 10 3.4 字符動態(tài)顯示.............................................. 12 4 系統(tǒng)實(shí)現(xiàn)........................................................ 12 4.1 proteus仿真實(shí)驗(yàn).......................................... 12 5 結(jié)論............................................................ 13 5.1 收獲與體會................................................. 13 5.2 缺點(diǎn)與不足................................................. 13 參考文獻(xiàn)....................................................... 14 1概述1.1課題背景隨著社會經(jīng)濟(jì)的發(fā)展,城市交通問題越來越引起人們的關(guān)注。人、車、路三者關(guān)系的協(xié)調(diào),已經(jīng)成為交通管理部門需要解決的重要問題之一。城市交通控制系統(tǒng)是用于城市交通數(shù)據(jù)監(jiān)測、交通信號燈控制與交通疏導(dǎo)的計算機(jī)綜合管理系統(tǒng)。如何采用合適的控制方法,最大限度利用好耗費(fèi)巨資修建的城市道路,緩解城市道路壓力,越來越成為交通運(yùn)輸管理和城市規(guī)劃部門有待解決的主要問題。人們希望通過增加技術(shù)含量的方法提高現(xiàn)有道路的利用率,提高道路交通的安全程度和道路使用的舒適性,所以對交通燈的設(shè)計和采納做了相關(guān)的研究和建模。 1.2 研究意義在安全行車方面,交通燈在安全行車過程中起著十分重要的作用,現(xiàn)在交通燈一般設(shè)在十字路口的醒目位置用紅、綠。黃三種顏色的指示燈。加一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車、車輛分流發(fā)揮著作用,但根據(jù)實(shí)際行車過程中出現(xiàn)的情況,主要有一下缺點(diǎn):1、車道輪流放行時間相對固定,不能根據(jù)實(shí)際情況中兩個車道的車輛多少來設(shè)置改變通行時間;2、沒有考慮緊急車輛通過時,兩車道應(yīng)采取的措施。如,有消防車通過執(zhí)行緊急任務(wù)時,兩車道都應(yīng)停止,讓緊急車輛通過。因此如何合理高效利用交通燈指示交通情況,是一個需要解決的問題。 2 硬件電路設(shè)計2.1相關(guān)芯片簡介1. 8086 file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif Intel 8086擁有四個16位的通用寄存器,也能夠當(dāng)作八個8位寄存器來存取,以及四個16位索引寄存器(包含了堆棧指標(biāo))。資料寄存器通常由指令隱含地使用,針對暫存值需要復(fù)雜的寄存器配置。它提供64K 8 位元的輸出輸入(或32K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個內(nèi)存位址,所以其中一個操作數(shù)必須是一個寄存器。運(yùn)算結(jié)果會儲存在操作數(shù)中的一個寄存器。 2. 8255A
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif |
8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。 3. 74273
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif |
由于8086運(yùn)行速度過快,數(shù)碼管動態(tài)顯示出現(xiàn)顯示不全的現(xiàn)象,因此PC0,PC1輸出經(jīng)過2-4譯碼器之后,再激活數(shù)碼管,起到緩沖作用。 4. 16位數(shù)碼管 16位數(shù)碼管的數(shù)碼管,由16個引腳控制,低電平有效,其中A-H控制外圈0,K-M控制內(nèi)部, S1-s4是通道控制,高電平有效。
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif |
2.2 仿真電路總體設(shè)計
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image009.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif
本實(shí)驗(yàn)設(shè)計中,硬件部分涉及到了8086CPU、可編程并行接口8255A,并配合74LS373鎖存器、74LS245緩沖器、74LS138譯碼器等基本元器件,實(shí)現(xiàn)了設(shè)想的電子密碼鎖。 8255A:如圖2-6,8255A的D0~D7端口與CPU數(shù)據(jù)線ADO~AD7相接,CPU通過控制線的片選、讀、寫信號接口對8255A進(jìn)行讀、寫與片選操作。外設(shè)接口端的A0-A7八個開關(guān)連接245的A0-A7端口,將外設(shè)信息傳送到245中,鍵入密碼輸入、密碼確定、修改密碼等多種功能。 file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif 圖2-6 開關(guān)功能 如圖2-7,A口的PA0-PA7端口通過鎖存器與數(shù)碼管相連用于外圈顯示,B口的PB0-PB7端口通過74LS373鎖存器與數(shù)碼管進(jìn)行連接用于內(nèi)部“米”字格的顯示。 3 軟件編程設(shè)計3.1系統(tǒng)概述密碼鎖是一種通過密碼輸入來控制電路或芯片工作,從而控制機(jī)械的開關(guān)和閉合,完成開鎖閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品,F(xiàn)在運(yùn)用較廣的電子密碼鎖是以芯片為核心,通過編程來實(shí)現(xiàn)的,其性能和安全性已大大超過機(jī)械鎖。其特點(diǎn)是保密性好,隨機(jī)開鎖成功率幾乎為零。密碼可變,用戶可隨時更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降。無活動零件,不會磨損,壽命長。使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開鎖。 3.2 程序流程圖設(shè)計 密碼的輸入與判定
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image013.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif 位數(shù)+1
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image015.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gifN
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif |
Y
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image019.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif N
|
|
|
|
|
|
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image021.gif |
|
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif |
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image023.gif |
Y
|
|
|
|
|
| |
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif |
圖3-1 密碼的輸入與判定 密碼的更改
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image025.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif 位數(shù)+1
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gifN
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif |
Y
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image027.gif |
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif N
|
|
|
|
|
|
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image021.gif |
|
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif |
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image023.gif |
Y
|
|
|
|
|
| |
|
| file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image029.gif |
圖3-2 密碼的更改 3.3 按鍵控制(1)、控制字 給8255A輸入端口控制字: void fun82531() { __asm { mov dx, 0x8006 mov al, 0x37 out dx, al } outp(GATE0,0x02); outp(GATE0,0x00); } void fun82532() { __asm { mov dx, 0x8006 mov al, 0x77 out dx, al } outp(GATE0,0x99); outp(GATE0,0x99); } (2)、密碼鍵入控制 整個過程中主要是對是否有按鍵信息輸入進(jìn)行掃描判斷,并將所得信息與燈管編號進(jìn)行比對,確定所選擇要鍵入數(shù)字的燈管。當(dāng)目前的燈管數(shù)字被選出后,自動跳到下一個燈管,直到四位數(shù)字全部選擇完畢。 3.4 字符動態(tài)顯示四位密碼選出后,顯示四位選定數(shù)字,然后檢測密碼正確性,8255A通過端口A、B、C讀取指令,根據(jù)檢測結(jié)果,密碼正確則輸出代碼顯示*YES,錯誤則顯示ERRO。 見附錄:檢測密碼正確性 更改密碼,鍵入“更改密碼”控制字后,與輸入密碼的流程相同,先選擇燈管,待選定數(shù)字后跳至下一個,直到四位數(shù)字全部選定,然后鍵入“確認(rèn)更改”指令,則密碼更改成功。 見附錄:密碼更改。 4 系統(tǒng)實(shí)現(xiàn)4.1 proteus仿真實(shí)驗(yàn)file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image031.gif 圖4-1 Proteus仿真圖 如圖4-1,為本實(shí)驗(yàn)的Proteus仿真模擬圖,整個實(shí)驗(yàn)共用到8086CPU一個、74LS245一個、可編程并行接口8255A一個,74LS273鎖存器三個、74LS138譯碼器一個、數(shù)碼管一個、與非門兩個、開關(guān)八個、電阻八個。 5 結(jié)論通過對電子密碼鎖的設(shè)計,從設(shè)計硬件電路到編寫代碼,再到對程序的調(diào)試,在整個的設(shè)計過程中學(xué)到了很多。例如,我們用到了8255A的并行接口,將二進(jìn)制的控制信息傳入8086CPU中處理,選擇對密碼是否正確進(jìn)行調(diào)整。與此同時,我們又通過這次產(chǎn)品的設(shè)計加深了對硬件知識的理解以及常用芯片功能的掌握。在使用8255A和8253的時候,要對其進(jìn)行初始化,這初始化程序的編寫,有助于對這些接口芯片的工作原理的理解。總之,在實(shí)驗(yàn)中自己動手,把理論知識用于實(shí)踐,從中能夠?qū)W到很多。 5.1 收獲與體會通過這一個多月以來對電子密碼鎖的硬件電路的設(shè)計,以及對軟件程序的編寫,我們又對計算機(jī)硬件技術(shù)基礎(chǔ)這門課程有了更深一層的理解。與此同時,我們還有如下收獲: 首先,我們能熟練掌握計算機(jī)硬件技術(shù)知識,其中包括硬件電路設(shè)計和軟件編程設(shè)計等內(nèi)容。計算機(jī)硬件技術(shù)基礎(chǔ)是比較難學(xué)的科目,尤其是對那些沒有過編程基礎(chǔ)的學(xué)員來說,剛開始接觸時感覺力不從心。但是,通過設(shè)計這個電子密碼鎖,我組成員都能對硬件設(shè)計以及軟件編程熟練掌握,并且能實(shí)現(xiàn)原計劃的功能,效果比較顯著。 其次,增強(qiáng)了我們組員之間的團(tuán)結(jié)協(xié)作的能力。通過實(shí)驗(yàn),我們明白了團(tuán)隊力量的強(qiáng)大,只有一個團(tuán)隊能夠齊心協(xié)力、合理分工,工作才能有條不紊的高效開展。 5.2 缺點(diǎn)與不足雖然在這次電子密碼鎖的制作中我們收獲了很多,但是也不乏問題存在。 首先,剛開始的時候分工不明確,導(dǎo)致制作進(jìn)程比較緩慢。由于剛接觸一門全新的課程,再加上對程序的編寫不是很熟悉,所以大家都不知道從何入手,沒有明確的分工。隨著教員對硬件知識的講解,再結(jié)合平時的小組討論與自我學(xué)習(xí),有主攻硬件設(shè)計的,有軟件編程的,也有PPT制作和論文編寫的,以此提高了我們的效率。 其次,由于我們知識積累不足,導(dǎo)致大家在制作中遇到很多困難,期出現(xiàn)厭煩心理,抱怨聲音較多,甚至出現(xiàn)了分歧與爭吵。當(dāng)然,對于一個團(tuán)隊來說,出現(xiàn)矛盾是在所難免的,這時候作為組長更應(yīng)該起到穩(wěn)定軍心的作用。大家在一起,從頭來過,尋找解決問題的辦法,一起攻克難關(guān)。
|