課程設計交通燈指揮系統(tǒng)_第1頁
課程設計交通燈指揮系統(tǒng)_第2頁
課程設計交通燈指揮系統(tǒng)_第3頁
課程設計交通燈指揮系統(tǒng)_第4頁
課程設計交通燈指揮系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 摘要:紅綠交通燈是我們?nèi)粘I罱?jīng)常見到也是必不可少的,隨著城市社會經(jīng)濟的發(fā)展 ,城市道路交通供給和需求的矛盾日益突出,并引發(fā)很多交通問題。當今,紅綠燈安裝在各個交通路口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。綠燈是通行信號, 面對綠燈的車輛可以直行、 左轉(zhuǎn)彎和右轉(zhuǎn)彎。 面對黃燈的車輛不能越過停車線, 但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。 我們設計的交通燈就是依據(jù)上述思路控制十字路口南北東西四個方向車輛通行的。經(jīng)過上學期的基礎以及前一階段的學習,利用彩燈我們做出了一個簡單的交通燈指揮系統(tǒng),通過控制彩燈的亮滅來達到紅綠燈的效果,從而控制交通。之前我們學習了微機原理與接

2、口技術這門課程,課上我們學到了一些計算機硬件工作的基本原理, 以及一些簡單的匯編語言程序設計方法并了解了一些芯片的功能。根據(jù)題目以及老師上課的要求,我用微機原理與接口實驗儀來進行交通燈指揮系統(tǒng)的設計。實驗中用到芯片8253、芯片 8255、芯片 8279、led燈、數(shù)碼管等,利用這些器件的工作原理以及通過組合可以模仿各種彩燈的正常工作亮滅,特殊情況下的手動鍵盤開關以及恢復等一系列過程。在實現(xiàn)運行的過程中, 通過匯編語言,利用上述幾種芯片, 進行編程設計,最終順利完成了實驗, 并進行了書本上的理論與實踐完美結合,獲益匪淺。2 交通燈指揮系統(tǒng)1、需求分析與總體設計方案. 51.1 需求分析 . 5

3、1.2 總體設計方案 . 52、硬件說明 . 52.1 硬件使用說明 . 6 2.2 芯片簡介 . . 6 2.2.1 8253芯片簡介 . 62.2.1.1 8253功能介紹 . 62.2.1.2 8253工作原理 . 82.2.1.3 8253內(nèi)部結構 . 82.2.1.4 8253的通道的工作方式 . 122.2.1.5 讀取計數(shù)器的當前值 . 132.2.1.6 8253的級聯(lián)和地址分配 . 132.2.2 8255芯片簡介 . 142.2.2.1 8255基本工作原理 . 142.2.2.2 8255基本結構 . 162.2.2.3 8255 引腳功能說明 . 162.2.2.4 8

4、255的讀寫控制 . 172.2.3 8279芯片簡介 . 172.2.3.1 8279功能介紹 . 192.2.3.2 8279內(nèi)部結構 . 192.2.3.3 8279管腳簡介 . 192.2.3.4 8279工作方式 . 202.2.3.5 8279命令功能表 . 213、硬件連接說明與程序流程. 233.1 硬件連接說明 . 233 3.2 硬件連接圖 . 234、程序代碼 . 244.1 程序流程圖 . 244.2 程序代碼及說明 . 255、問題分析與解決方案 . 376、程序測試與分析 . 376.1 實驗連線圖 . 386.2 程序測試結果 . 386.3 結果分析 . 387

5、、心得體會 . 398、參考文獻 . 41 4 1、需求分析與總體設計方案1.1 需求分析交通燈是我們?nèi)粘I罱?jīng)常見到也是必不可少的。隨著城市社會經(jīng)濟的發(fā)展 ,城市道路交通供給和需求的矛盾日益突出,并引發(fā)很多交通問題?,F(xiàn)今,交通指揮燈已成為疏導交通車輛最常見和最有效的手段。交通燈使得人們出行更加的方便、安全、有序。因此,對交通指揮燈的研究已變成一個十分重要的課題。1.2 總體設計方案十字路口的交通燈包括東西南北四個方向,而通常情況下東西路口的交通燈的亮滅情況是相同的,南北方向交通燈的亮滅情況是相同的,所以將十字路口的交通燈簡化為:東西方向的交通燈為同一組,南北方向的交通燈為同一組。 交通指揮燈

6、的設計不僅需要滿足平常情況下指揮交通的作用,還需滿足緊急情況的手動閘。正常情況下:狀態(tài)一:南北紅燈,東西綠燈狀態(tài)二:南北紅燈,東西黃燈狀態(tài)三:南北綠燈,東西紅燈狀態(tài)四:南北黃燈,東西紅燈狀態(tài)五:重復以上四種狀態(tài)緊急情況下(鍵盤控制) :數(shù)字 0:恢復數(shù)字 1:南北紅燈,東西綠燈5 數(shù)字 2:南北綠燈,東西紅燈數(shù)字 4:東西南北全紅數(shù)字 5:東西南北全綠數(shù)字 6:東西南北全黃2、硬件說明2.1. 硬件使用說明 用實驗箱中提供的二極管作為南北路口和東西路口的模擬交通燈; 用可編程并行接口芯片8255 控制模擬交通燈的亮與滅; 用可編程定時器 / 計數(shù)器芯片 8253 實現(xiàn)模擬交通燈亮與滅的時間延遲

7、的控制; 用可編程邏輯器件8279 實現(xiàn)交通燈倒計時的顯示。2.2. 芯片簡介2.2.1 8253芯片簡介2.2.1.1 8253 功能介紹intel8253是 nmos 工藝制成的可編程計數(shù)器/ 定時器,有幾種芯片型號,外形引腳及功能都是兼容的, 只是工作的最高計數(shù)速率有所差異,例如 8253(2.6mhz ) ,8253-5(5mhz)。6 圖 2-1 8253 引腳圖8253 內(nèi)部有三個計數(shù)器, 分別稱為計數(shù)器 0、計數(shù)器 1 和計數(shù)器 2,他們的機構完全相同。 每個計數(shù)器的輸入和輸出都決定于設置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸

8、入端clk ,一個為門控信號輸入端gate ,另一個為輸出端 out 。每個計數(shù)器內(nèi)部有一個8 位的控制寄存器,還有一個16位的計數(shù)初值寄存器cr 、 一個計數(shù)執(zhí)行部件ce和一個輸出鎖存器 ol 。執(zhí)行部件實際上是一個16 位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設置的。輸出鎖存器的值是通過程序設置的。輸出鎖存器ol用來鎖存計數(shù)執(zhí)行部件ce的內(nèi)容,從而使 cpu可以對此進行讀操作。順便提一下,cr 、ce和 ol都是 16位寄存器,但是也可以作8 位寄存器來用。7 2.2.1.2 8253工作原理8253 具有 3 個獨立的計數(shù)通道, 采用減 1 計數(shù)方式。在

9、門控信號有效時,每輸入 1 個計數(shù)脈沖,通道作1 次計數(shù)操作。當計數(shù)脈沖是已知周期的時鐘信號時,計數(shù)就成為定時。2.2.1.3 8253內(nèi)部結構8253 芯片有 24 條引腳,封裝在雙列直插式陶瓷管殼內(nèi)。圖 2-2 8253 內(nèi)部結構框圖(1)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8 位雙向,與 cpu 交換信息的通道。這是 8253 與 cpu之間的數(shù)據(jù)接口,它由8 位雙向三態(tài)緩沖存儲器構成,是 cpu 與 8253 之間交換信息的必經(jīng)之路。(2)讀/ 寫控制8 表 2.1 8253 端口選擇讀/ 寫控制分別連接系統(tǒng)的ior#和 iow# , 由 cpu 控制著訪問 8253的內(nèi)部通道

10、。接收 cpu 送入的讀 / 寫控制信號,并完成對芯片內(nèi)部各功能部件的控制功能, 因此, 它實際上是 8253芯片內(nèi)部的控制器。 a1a0 :端口選擇信號, 由 cpu 輸入。8253 內(nèi)部有 3 個獨立的通道, 加上控制字寄存器,構成 8253 芯片的 4 個端口, cpu 可對 3 個通道進行讀 / 寫操作3 對控制字寄存器進行寫操作。這 4 個端口地址由最低2 位地址碼 a1和 a0來選擇。如表所示。(3)通道選擇cs 片選信號,由cpu輸入,低電平有效,通常由端口地址的高位地址譯碼形成。rd 、wr 讀/ 寫控制命令,由 cpu 輸入, 低電平有效。 rd效時,cpu 讀取由 a1、a

11、0所選定的通道內(nèi)計數(shù)器的內(nèi)容。wr 有效時,cpu 將計數(shù)值寫入各個通道的計數(shù)器中,或者是將方式控制字寫入控制字寄存器中。 cpu 對 8253的讀/ 寫操作。9 (4)計數(shù)通道 02 每個計數(shù)通道內(nèi)含1 個 16 位的初值寄存器、減1 計數(shù)器和 1 個 16位的(輸出)鎖存器。 8253 內(nèi)部包含 3 個功能完全相同的通道,每個通道內(nèi)部設有一個 16 位計數(shù)器,可進行二進制或十進制(bcd 碼)計數(shù)。采用二進制計數(shù)時,寫入的初值范圍為0000h0ffffh,最大計數(shù)值是0000h , 代表 65536。采用 bcd 碼計數(shù)時,寫入的初值范圍為00009999 ,最大計數(shù)值是 0000,代表

12、10000。與此計數(shù)器相對應,每個通道內(nèi)設有一個 16 位計數(shù)值鎖存器。必要時可用來鎖存計數(shù)值。(特別說明: 8253計數(shù)器的值先減 1 再判斷是否為 0,為 0 就中斷了,所以最大初始值為0,這樣減 1 以后,不為 0,所以為最大的,取決于cf標志位)當某通道用作計數(shù)器時, 應將要求計數(shù)的次數(shù)預置到該通道的計數(shù)器中、被計數(shù)的事件應以脈沖方式從clk端輸入,每輸入一個計數(shù)脈沖,計數(shù)器內(nèi)容減“ 1”,待計數(shù)值計到“ 0”。 out端將有輸出。表示計數(shù)次數(shù)到。當某個通道用作定時器時。由 clk輸入一定頻率的時鐘脈沖。根據(jù)要求定時的時間長短確定所需的計數(shù)值。并預置到計數(shù)器中,每輸入一個時鐘脈沖,計數(shù)

13、器內(nèi)容減“1”, 待計數(shù)值計到“ 0”。out將有輸出,表示定時時間到。允許從clk輸入的時鐘頻在 12mhz 范圍內(nèi)。因此,任一通道作計數(shù)器用或作定時器用,其內(nèi)部操作完全相同,區(qū)別僅在于前者是由計數(shù)脈沖進行減“1”計數(shù)。 而后者是內(nèi)時鐘脈沖進行減“ 1”計數(shù)。作計數(shù)器時,要求計數(shù)的次數(shù)可直接作為計數(shù)器的初值預置到減“ 1”計數(shù)器中。作定時器時,計數(shù)器的初值即定時系數(shù)應根據(jù)要求定時的時間進行如下運算才能得到:10 定時系數(shù) =需要定時的時間 / 時鐘脈沖周期設置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設置的通道及工作方式;計數(shù) / 定時:向通道寫入計數(shù)值,啟動計數(shù)操作;讀取當

14、前的計數(shù)值: 向指定通道讀取當前計數(shù)器值時,8253 將計數(shù)器值存入鎖存器,從鎖存器向外提供當前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。計數(shù)到:當計數(shù)器減1 為 0 時,通過引腳 out 向外輸出“到”的脈沖信號。計數(shù)初值輸入存放在初值寄存器中,計數(shù)開始或重裝入時被復制到計數(shù)器中。鎖存器在非鎖存狀態(tài),其值隨計數(shù)器的變化而變化;一旦鎖存了計數(shù)器的當前值,直到鎖存器值被讀取后才能解除鎖存狀態(tài)。(5)方式選擇控制字圖 2-3 8253 方式控制字8253的初始化編程就是對其工作方式的確定。 具體實現(xiàn)就是在 8253上電后,由 cpu 向 8253 的控制寄存器寫入一個控制字, 就可以規(guī)定 825311

15、的工作方式、計數(shù)值的長度以及計數(shù)所用的數(shù)制等,另外根據(jù)要求將計數(shù)值寫入 8253的相應通道。8253 的一個方式控制字只決定一個技術通道的工作模式。2.2.1.4 8253的通道工作方式8253 中各通道可有 6 種可供選擇的工作方式, 以完成定時、 計數(shù)或脈沖發(fā)生器等多種功能。在這次設計中我們只用到了方式2 和方式 3,8253 的這兩種工作方式如下:(1) 方式 2:速率波發(fā)生器工作方式 2 被稱作速率波發(fā)生器。 進入這種工作方式, out輸出高電平,裝入計數(shù)值 n 后如果 gate 為高電平, 則立即開始計數(shù), out 保持為高電平不變;待計數(shù)值減到“ 1”和“0”之間, out將輸出寬

16、度為一個 clk周期的負脈沖,計數(shù)值為“0”時,自動重新裝入計數(shù)初值n,實現(xiàn)循環(huán)計數(shù), out 將輸出一定頻率的負脈沖序列,其脈沖寬度固定為一個 clk周期, 重復周期為 clk周期的 n 倍。如果在減“ 1”計數(shù)過程中, gate 變?yōu)闊o效(輸入 0 電平) ,則暫停減“1”計數(shù),待 gate 恢復有效后,從初值n 開始重新計數(shù)。這樣會改變輸出脈沖的速率。如果在操作過程中要求改變輸出脈沖的速率,cpu可在任何時候,重新寫人新的計數(shù)值,它不會影響正在進行的減“1”計數(shù)過程,而是從下一個計數(shù)操作用期開始按新的計數(shù)值改變輸出脈沖的速率。(2)方式 3:方波發(fā)生器工作方式 3 被稱作方波發(fā)生器。 任

17、一通道工作在方式3, 只在計數(shù)12 值 n 為偶數(shù),則可輸出重復周期為n、占空比為 1:1 的方波。進入工作方式3,out輸出低電平,裝入計數(shù)值后, out 立即跳變?yōu)楦唠娖健?如果當 gate 為高電平, 則立即開始減“ 1”計數(shù), out 保持為高電平,若 n 為偶數(shù),則當計數(shù)值減到n/2 時,out跳變?yōu)榈碗娖?,一直保持到計?shù)值為“ 0”,系統(tǒng)才自動重新置入計數(shù)值n,實現(xiàn)循環(huán)計數(shù)。這時 out 端輸出的周期為 nclk周期,占空比為 1:1 的方波序列;若 n 為奇 數(shù) ,則 out端 輸 出 周 期為nclk 周 期 , 占空 比 為(n+1)/2)/(n-1)/2)的近似方波序列。如

18、果在操作過程中, gate變?yōu)闊o效, 則暫停減“ 1”計數(shù)過程, 直到 gate 再次有效,重新從初值n 開始減“ l ”計數(shù)。如果要求改變輸出方波的速率,則 cpu可在任何時候重新裝入新的計數(shù)初值 n,并從下一個計數(shù)操作周期開始改變輸出方波的速率。2. 2.1.5 讀取計數(shù)器的當前值直接讀計數(shù)器: 輸出鎖存器在非鎖存狀態(tài)會跟隨計數(shù)器計數(shù)的變化而變化,直接讀計數(shù)器是從鎖存器得到計數(shù)器的當前值。但由于計數(shù)器處于工作狀態(tài),讀出值不一定能穩(wěn)定。先鎖存再讀?。和ㄟ^方式選擇控制字對指定通道(sc1、sc0)的計數(shù)值鎖入鎖存器(rl1rl0=00), 鎖存器一旦鎖存了當前計數(shù)值,就不再隨計數(shù)器變化直到被讀

19、取。讀計數(shù)器通道(有鎖存器) 。2. 2.1.6 8253的級聯(lián)和地址分配13 8353 采用級聯(lián)方式。此實驗中使用8253 的 0 通道和 1 通道以實現(xiàn)級聯(lián)。通道 0 的工作在實驗中起到的作用是在out0端輸出一個比較合適的時鐘頻率,然后用通道1 進行時間的控制。通道1 在控制燈閃爍的時候采用的工作方式是方式3, 這樣可以讓 8255 的 a端口檢測到輸出端的方波信號。2.2.2. 8255芯片簡介2.2.2.1 8255的基本工作原理8255 是 intel公司生產(chǎn)的可編程輸入輸出接口芯片,它是具有3個 8 位的并行 i/o 端口,具有三種工作方式,被廣泛地使用于單片機的并行 i/o 端

20、口。工作方式 0:基本輸入輸出方式工作方式 1:選通輸入輸出方式工作方式 2:雙向傳送方式65412345678910111213141516171819204039383736353433323130292827262524232221p a3p a2p a1p a0rdcsgnda0a1p a7p a6p a5p a4p a0p a1p a2p a3p b0p b1p b2p a5p a6p a7p a0wrresetd0d1d2d3d4d5d6d7vccp a7p a6p b5p b4p b38255圖 2-4 8255引腳圖14 圖 2-5 8255工作方式控制字圖 2-6 8255

21、c口按位置位控制字d7d6d5d4d3d2d1d01c 口(低4位)b 口方式選擇010101輸出輸入輸出輸入方式0方式1b 組控制輸入1方式選擇方式1方式000c 口(低4位)輸入輸出輸出a 組控制a 口100方式2101xd7d6d5d4d3d2d1d01c 口(低4位)b 口方式選擇010101輸出輸入輸出輸入方式0方式1b 組控制輸入1方式選擇方式1方式000c 口(低4位)輸入輸出輸出a 組控制a 口100方式2101x15 2.2.2.2 8255 的內(nèi)部結構圖 2-7 8255 內(nèi)部結構2.2.2.3 8255引腳功能說明reset: 復位輸入線,當該輸入端外于高電平時, 所有內(nèi)

22、部寄存器(包括控制寄存器)均被清除,所有i/o 口均被置成輸入方式。pa0 pa7:端口 a輸入輸出線,一個 8 位的數(shù)據(jù)輸出鎖存器 / 緩沖器,一個 8 位的數(shù)據(jù)輸入鎖存器。pb0 pb7:端口 b輸入輸出線,一個 8 位的 i/o 鎖存器, 一個 8 位的輸入輸出緩沖器。pc0 pc7:端口 c輸入輸出線,一個 8 位的數(shù)據(jù)輸出鎖存器 / 緩沖器,16 一個 8 位的數(shù)據(jù)輸入緩沖器。 端口 c可以通過工作方式設定而分成2 個4 位的端口,每個 4 位的端口包含一個4 位的鎖存器,分別與端口a和端口 b配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。cs:片選信號線,當這個輸入引腳為低電平時

23、,表示芯片被選中,允許 8255與 cpu 進行通訊。rd:讀信號線,當這個輸入引腳為低電平時,允許8255 通過數(shù)據(jù)總線向 cpu 發(fā)送數(shù)據(jù)或狀態(tài)信息,即cpu 從 8255 讀取信息或數(shù)據(jù)。wr: 寫入信號,當這個輸入引腳為低電平時,允許cpu將數(shù)據(jù)或控制字寫 8255。d0d7:三態(tài)雙向數(shù)據(jù)總線,8255與 cpu 數(shù)據(jù)傳送的通道,當 cpu 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8 位數(shù)據(jù)的讀 / 寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 2.2.2.4 8255的讀寫控制8255 的讀/ 寫控制邏輯電路接受cpu 發(fā)來的控制口號 rd 、 wr 、 reset和地址信號 a1a0 。然后

24、根據(jù)命令端口,控制信號的要求,將端口的數(shù)據(jù)讀出選信 cpu 或者將 cpu 送來的數(shù)據(jù)寫入端口,各端口的工作狀態(tài)。如表所示。通過用輸出指令對8255a的控制字寄存器編程, 寫入設定工作方式的控制字,可以讓 3 個數(shù)據(jù)口以不同的方式工作,端口a可工作于 3 種方式的任一種,端口b只能工作于方式0 和方式 1,端口 c除了用于輸入輸出端口外,還能配合a口和 b口工作,為這兩個端口的輸入輸出操17 作提供聯(lián)系信號。2.2.3 8279芯片簡介2.2.3.1 8279功能介紹8279 是可編程的鍵盤、 顯示接口芯片。 它既具有按鍵處理功能,又具有自動顯示功能,在單片機系統(tǒng)中應用很廣泛。8279 內(nèi)部有

25、鍵盤 fifo (先進先出堆棧) / 傳感器,雙重功能的 8*8=64b ram,鍵盤控制部分可控制 8*8=64 個按鍵或 8*8 陣列方式的傳感器。該芯片能自動消抖并具有雙鍵鎖定保護功能。顯示 ram容量為 16*8 ,最大配置可達 16 位 led 數(shù)碼顯示。圖 2-8 8279芯片管腳圖18 2.2.3.2 8279內(nèi)部結構圖 2-9 8279 內(nèi)部結構圖2.2.3.3 8279管腳簡介(1)數(shù)據(jù)線db0 db7 是雙向三態(tài)數(shù)據(jù)總線,在接口電路中與系統(tǒng)數(shù)據(jù)總線相連,用以傳送 cpu 和 8279 之間的數(shù)據(jù)和命令。(2)地址線cs=0 選中 8279,當 a0=1 時,為命令字及狀態(tài)字

26、地址;當a0=0 時,為片內(nèi)數(shù)據(jù)地址,故 8279 芯片占用 2 個端口地址。(3)控制線19 clk :8279 的時鐘輸入線。irq:中斷請求輸出線,高電平有效。/rd、/wr :讀、寫輸入控制線。sl0-sl3 :掃描輸出線,用來作為掃描鍵盤和顯示的代碼輸出或直接輸出線。rl0-rl7:回復輸入線,它們是鍵盤或傳感器矩陣的信號輸入線。shift:來自外部鍵盤或傳感器矩陣的輸入信號,它是 8279 鍵盤數(shù)據(jù)的次高位即 d6 位的狀態(tài),該位狀態(tài)控制鍵盤上/ 下檔功能。在傳感器方式和選通方式中,該引腳無用。cntl/s :控制 / 選通輸入線,高電平有效。鍵盤方式時,鍵盤數(shù)據(jù)最高位( d7)的

27、信號輸入到該引腳,以擴充鍵功能;選通方式時,當該引腳信號上升沿到時,把 rl0-rl7 的數(shù)據(jù)存入 fifo ram 中。outa0-outa3 :通常作為顯示信號的高 4 位輸出線。outb0-outb3 :通常作為顯示信號的低 4 位輸出線。/bd:顯示熄滅輸出線,低電平有效。當/bd=0 時將顯示全熄滅。2.2.3.4 8279的工作方式8279 有三種工作方式:鍵盤方式、顯示方式和傳感器方式。(1)鍵盤工作方式8279 在鍵盤工作方式時, 可設置為雙鍵互鎖方式和 n 鍵循回方式。20 雙鍵互鎖方式: 若有兩個或多個鍵同時按下時,不管按鍵先后順序如何,只能識別最后一個被釋放的鍵,并把該鍵

28、值送入 fifo ram中。n 鍵循回方式:一次按下任意個鍵均可被識別,按鍵值按掃描次序被送入 fifo ram 中。(2)顯示方式8279 的顯示方式又可分為左端入口和右端入口方式。顯示數(shù)據(jù)只要寫入顯示 ram ,則可由顯示器顯示出來, 因此顯示數(shù)據(jù)寫入顯示ram 的順序,決定了顯示的次序。左端入口方式即顯示位置從顯示器最左端 1 位(最高位)開始,以后顯示的字符逐個向右順序排列;右端入口方式即顯示位置從顯示器最右端 1 位(最低位)開始,已顯示的字符逐個向左移位。但無論左右入口,后輸入的總是顯示在最右邊。(3)傳感器方式傳感器方式是把傳感器的開關狀態(tài)送入傳感器 ram 中。當 cpu 對傳

29、感器陣列掃描時,一旦發(fā)現(xiàn)傳感器狀態(tài)發(fā)生變化就發(fā)出中斷請求 (irq 置 1) , 中斷響應后轉(zhuǎn)入中斷處理程序。2.2.3.5 8279命令功能表21 表 2.2 8279 命令功能表22 3、硬件連接說明與程序流程3.1 硬件連接說明8253 通道 0 的地址端口為 208h ,通道 1 的地址端口為 209h ,通道2 的地址端口為 20ah ,8253 的控制端口的地址為20bh ,通道 0 和通道 1級聯(lián),用來得到實驗所需的頻率,out1 與 8255 的 pa0口連接。8255 a口地址為 200h,b口地址為 201h,控制口地址為 203h ,8255的 pa0口接入 8253的脈

30、沖, b 口用于輸出,連接彩燈。8279 芯片的地址為 210h ,用于顯示彩燈的倒計時。3.2 硬件連接圖圖 3-1 硬件連接圖23 4、程序代碼4.1 程序流程圖24 4.2 程序代碼與說明z8279 equ 212h d8279 equ 210h code segment assume cs:code ds:data data segment a db 1 dup(?) b db 1 dup(?) c db 1 dup(?) count1 db 0 count2 db 0 data ends start: mov dx,20bh mov al,00110111b out dx,al mo

31、v dx,208h mov al,00h out dx,al mov al,50h 25 out dx,al mov dx,20bh mov al,01110111b out dx,al mov dx,209h mov al,00h out dx,al mov al,02h out dx,al ;8253 初始化mov dx,203h mov al,10010000b out dx,al ;8255 初始化l0: mov a,19h mov b,14h mov c,05h l1: mov dx,201h 26 mov al,01111011b ;南北紅,東西綠out dx,al mov cl,

32、a call show call yanshi call shoudong dec a cmp a,05h jnz l1 pp: mov dx,201h mov al,01110111b ;南北紅,東西黃out dx,al mov cl,a call show call yanshi call shoudong 27 dec a cmp a,00h jnz pp l4: mov dx,201h mov al,11001111b ;南北綠,東西紅out dx,al mov cl,b call show call yanshi call shoudong dec b cmp b,00h jnz l

33、4 l5: mov dx,201h mov al,10101111b ;南北黃,東西紅out dx,al 28 mov cl,c call show call yanshi call shoudong dec c cmp c,00h jnz l5 jmp l0 yanshi proc mov count1,0ffh mov count2,0ffh secd: dec count2 jnz secd dec count1 jnz secd ret yanshi endp 29 show proc near mov dx,z8279 mov al,00h out dx,al mov al,38h

34、out dx,al; 初始化8279 mov dx,d8279 mov al,00h out dx,al out dx,al out dx,al out dx,al out dx,al out dx,al out dx,al out dx,al; 熄滅 8279 mov al,cl mov ah,0 mov dl,10 30 div dl ;al/dl=al.bh mov bl,ah ; 將余數(shù)(即秒的個位)放在bl 中mov bh,al ; 將商(即秒的十位)放在bh 中call trans ; 調(diào)用 8279 顯示秒的個位mov bl,bh call trans ; 調(diào)用 8279 顯示秒

35、的十位ret show endp trans proc near ; 數(shù)碼管顯示程序one: cmp bl,1 jnz two mov al,00000110b two: cmp bl,2 jnz tri mov al,01011011b tri: cmp bl,3 jnz for 31 mov al,01001111b for: cmp bl,4 jnz fiv mov al,01100110b fiv: cmp bl,5 jnz six mov al,01101101b six: cmp bl,6 jnz sev mov al,01111101b sev: cmp bl,7 jnz eit

36、 mov al,00000111b eit: cmp bl,8 jnz nin mov al,01111111b nin: 32 cmp bl,9 jnz zro mov al,01101111b zro: cmp bl,0 jnz shw mov al,00111111b shw: mov dx,d8279 out dx,al ret trans endp shoudong proc near ;手動開關mov dx,z8279 in al,dx and al,0fh cmp al,00h je jieshu mov al,40h out dx,al mov dx,d8279 33 in a

37、l,dx nhdl: cmp al,02d jnz nldh mov dx,201h;8255b mov al,01111011b ;南北紅東西綠out dx,al call huifu nldh: cmp al,10d jnz hh mov dx,201h;8255b mov al,11001111b ;南北綠東西紅out dx,al call huifu hh: cmp al,01d jnz ll mov dx,201h;8255b 34 mov al,01101111b ;紅紅out dx,al call huifu ll: cmp al,09d jnz yy mov dx,201h;8

38、255b mov al,11011011b ;綠綠out dx,al call huifu yy: cmp al,33d jnz jieshu mov dx,201h;8255b mov al,10110111b ;黃黃out dx,al call huifu jieshu: ret 35 shoudong endp huifu proc near waits: mov dx,z8279 in al,dx and al,0fh cmp al,00h je waits mov al,40h out dx,al mov dx,d8279 in al,dx cmp al,03d jnz waits

39、ret huifu endp code ends end start 36 5、問題分析與解決方案在實驗過程中遇到過一些問題,也通過查資料或者問老師、同學得到了解決。在此列舉:(1) 在數(shù)碼管顯示數(shù)字時,數(shù)字跳轉(zhuǎn)的周期太短,不到一秒;解決辦法:重新設計了延時小程序,mov count1,0ffh mov count2,0ffh secd dec count2 jnz secd dec count1 jnz secd ret (2) 在設置紅黃綠燈的時間時,遇到了麻煩,由于原程序設置的時間太短,所以需要延長各個燈的時間;解決辦法:先通過查閱書籍等,仔細地看了整個程序,并畫了程序流程圖,認真地了解

40、了整個代碼,然后根據(jù)對程序的了解將彩燈的時間改成了自己滿意的時長。6、 程序測試與分析37 6.1 實驗連線圖圖 6-1 實驗連線圖6.2 程序測試結果拿到實驗箱,我首先對所要用的芯片做簡單的檢查,將試驗箱連接電腦,發(fā)現(xiàn)沒有問題,便繼續(xù)做實驗。然后將試驗箱按照上述的硬件連接要求將其連接,并調(diào)試程序。設計按照題目的要求順利地完成了以下各種功能。(1)運行程序,小燈泡按照之前設定的規(guī)則依次亮滅,并且數(shù)碼管顯示亮燈的倒計時。(2)特殊情況下的鍵盤控制,也按照之前設定的發(fā)揮各自的功能。6.3 結果分析實驗表明我的硬件連接以及程序都沒有出問題,實驗結果很好。38 7、心得體會在設計交通指揮燈系統(tǒng)的過程中, 我認真查閱資料 , 學習關于這方面的知識 , 比如 8279 芯片的使用, 如何使之顯示所需的倒計時

溫馨提示

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

評論

0/150

提交評論