1. 需求分析
本系統(tǒng)的設計首先必須了解交通路燈的亮滅規(guī)律,。設有一個十字路口,,1、3 為南,,北方向,, 2、4 為東,,西方向,,初始態(tài)為4 個路口的紅燈全亮。之后,, 1,、3 路口的綠燈亮,2,、4 路口的紅燈亮, 1,、3 路口方向通車,。延遲一段時間后, 1,、3 路口的綠燈熄滅,,而1、3 路口的黃燈開始閃爍,。閃爍若干次后,, 1、3 路口的紅燈亮,, 同時 2,、4 路口的綠燈亮,, 2、4 路口方向開始通車,。延遲一段時間后,, 2、4 路口的綠燈熄滅,,而黃燈開始閃爍,。閃爍若干次后,再切換到1,、3 路口方向,。之后,重復上述過程,。對于各組燈的亮滅,,我們運用的是8255A 的輸入輸出功能。
2. 對于各組燈亮滅的時間控制方案
A 利用軟件 –程序來完成對時間延時的控制,。
此方案特點:軟件定時是最簡單的定時方法,,它不需要硬件支持,只要讓機器循環(huán)執(zhí)行某一條或一系列指令,,這些指令本身并沒有具體的執(zhí)行目的,,但由于執(zhí)行每條指令都需要一定的時間,重復執(zhí)行這些指令就會占用一段固定的時間,。因此,,習慣上將這種延時方法稱為軟件延時。通過正確的選取指令和改變定時時間,,靈活方便,,而且節(jié)省費用。這種方法的缺點明顯就是CPU 的利用律太低,,在指定的循環(huán)期,,CPU 不能去做任何其他有用的工作,而僅僅是在反復的循環(huán),,等待預定的定時時間到來,,在許多情況下這樣是不允許的[1]。比如,,對動態(tài)存儲器的定時刷新操作,,只要處于開機狀態(tài),就需要一直不停地進行下去,,顯然不能采用軟件延時,。
B.利用芯片8253 芯片定時控制紅綠燈的亮滅時間。
此方案特點:可編程定時器/計數(shù)器利用硬件電路和中斷的方法控制定時,,定時時間和范圍完全有軟件來確定和改變,,并有微處理器的時鐘信號提供時間基準,,因這種時鐘信號由晶體震蕩器產生,故計時精確穩(wěn)定,。但該時鐘信號頻率太高,,所以要把它送到專門的計數(shù)器/定時器芯片進行分頻后,才能產生個中所需要的定時信號,。用可編程定時器/計數(shù)器電路進行定時時,,先要根據(jù)預定的定時時間,用指令對計數(shù)器/定時器芯片設定計算初值,,然后啟動芯片進行工作,。計數(shù)器一旦開使工作后,CPU 就可以去做別的工作了,,等計數(shù)器到了預定的時間,,變自動形成一個輸出信號,該信號可以向CPU 提出中斷請求,,通CPU 定時時間已到,,使CPU 做相應的處理[2]?;蛘咧苯虞敵鲂盘枂釉O備去工作,。這種方法不但顯著提高了CPU 的利用率,而且定時時間由軟件來設置,,使用起來十分的靈活方便,,加上定時時間又很精確,所以獲得了廣泛的應用,。
由上可知,,該模擬系統(tǒng)設計的目的是控制車輛的有序流動,CPU 在程序執(zhí)行過程中并沒有其他的工作要做只是單一的使程序正常運行,,所以也就不用考慮其利用率的問題的,,在從節(jié)省資金的方面考慮第一種方案比第二種少用一個8253,而且第一種方案只用一個芯片在維修方面也比第二種方案方便,。綜合這些因素,,我們最終選擇第一種方案作為我們的設計方案。
3. 電路設計及功能
3.1 8255 原理及接線圖
8255 是一種通用可編程并行輸入輸出接口芯片,,通過對它進行編程,芯片可工作于不同的工作方式,,用8255 作接口時,,通常不需要附加外部邏輯電路就可直接為CPU 與外設之間提供數(shù)據(jù)通道,8255 內部包含3 個8 位輸入輸出端口A,,B,,C,,通過外部24 根輸入輸出線與外設交換數(shù)據(jù)或進行通信聯(lián)絡。端口A 和端口B 都可以用作一個8 位的輸入口或8 位的輸出口,,出口既可作8 位輸入輸出口又可分為兩個4 位輸入輸出口,,還常常用來配合A口和B 口工作,用來產生A 口和B 口的端口狀態(tài)信號,,8255A 有兩類控制字,,一類控制字用來定義各端口的工作方式,稱為方式選擇控制字,,另一類控制字用于對C 端口的任一位置進行置位或者復位操作,,稱為置位復位控制字對8255A 進行編程時這兩種控制字都要寫入控制字寄存器中,但方式選擇控制字的D7 位總是1,,而置位復位控制字的D7 位總是0[3],。
3.2 系統(tǒng)設計應注意的問題
A .程序中應設定好8255A 的工作模式,使三個端口均工作于方式0,,并處于輸出態(tài)[4],。
B. 8255A 的A 端口地址為:300H, B 端口地址為: 301H, C 端口地址為: 302H, 控制口地址為:303H
C.8255A 可編程并行接口芯片的特性和編程命令: 8255A 具有兩個人8 位(A 口和B 口)和兩個4 位(C 口高/低4 位)并行I/O 端口。
4. 軟件模擬界面
軟件模擬界面如圖1 所示,。
圖1 軟件模擬界面
5. 軟件模擬流程圖
軟件模擬流程圖如圖2 所示,。
圖 2 軟件模擬流程圖示意
6. 系統(tǒng)核心程序代碼
7. 測試與分析
編寫次程序的時候遇到的主要問題及解決方案:
A. 延時問題的解決:作者查閱了許多相關資料,最后選中程序中所用到的提取系統(tǒng)時間的這個方法,,其原因主要是因為這段語句比較短,,不容易出錯,但是有一個缺點就是不能使所添入的時間加上系統(tǒng)時間大于等于24:00,,要不就會出錯,,但是這個缺陷可以人工避免。
B. 循環(huán)問題的解決:針對該問題作者也嘗試了很多方法,,但最后選擇了GOTO 跳轉語句解決這個問題,。雖然在高級程序語言中我們并不提倡使用GOTO 語句,但由于我們在此使用的匯編語言需要經常性地與硬件交互[5],,使用該語句反而會使得問題解決起來最簡單,,最方便,程序易懂,,且不易出錯,。
8. 結論
電子設計正在當今社會發(fā)揮越來越重要的作用,其采用的軟硬件結合技術也逐漸成熟,,該模擬系統(tǒng)正是采用軟硬相結合的方法實現(xiàn)的[6],。該模擬交通紅綠燈的設計實現(xiàn)對于讀者了解在我們日常生活中發(fā)揮巨大作用的交通指揮系統(tǒng)很有幫助,其對于交通燈原理的揭示對于電子設計的探索研究提供了思路,相信隨著時代的發(fā)展,,我們能見證更多更好的電子設計產品問世,。