趙立輝
摘 要:本文以單片機(jī)為核心,首先指出了設(shè)計(jì)十字路口交通燈系統(tǒng)需要解決的關(guān)鍵技術(shù)并給出了解決方法,然后分別從硬件電路和軟件兩個(gè)方面進(jìn)行了設(shè)計(jì),把兩者綜合在一起構(gòu)成了一個(gè)十字路口交通燈系統(tǒng)。在Proteus環(huán)境中進(jìn)行了仿真,并制造了樣機(jī)在學(xué)生課程設(shè)計(jì)中得到了使用,實(shí)現(xiàn)了十字路口交通燈系統(tǒng)設(shè)計(jì)。最后說明了使用效果及發(fā)現(xiàn)的問題,明確了進(jìn)一步改進(jìn)和完善的方向。
關(guān)鍵詞:單片機(jī);交通燈;Proteus仿真
當(dāng)今理工科高校計(jì)算機(jī)或相關(guān)專業(yè)都開設(shè)了《單片機(jī)原理及應(yīng)用》課程。這門課程除了理論教學(xué)外,一般還有10學(xué)時(shí)左右的實(shí)驗(yàn)教學(xué)。本門課程結(jié)束之后,還會安排一到兩周的課程設(shè)計(jì),通過課程設(shè)計(jì),提高學(xué)生綜合應(yīng)用單片機(jī)技術(shù)的能力。本文以單片機(jī)為核心,首先指出了設(shè)計(jì)十字路口交通燈系統(tǒng)需要解決的關(guān)鍵技術(shù)并給出了解決方法,然后分別從硬件電路和軟件兩個(gè)方面進(jìn)行了設(shè)計(jì),把兩者綜合在一起構(gòu)成了一個(gè)十字路口交通燈系統(tǒng)。在Proteus環(huán)境中進(jìn)行了仿真,并制造了樣機(jī)在學(xué)生課程設(shè)計(jì)中得到了使用,實(shí)現(xiàn)了十字路口交通燈系統(tǒng)設(shè)計(jì)。最后說明了使用效果及發(fā)現(xiàn)的問題,明確了進(jìn)一步改進(jìn)和完善的方向。
1 十字路口交通燈系統(tǒng)設(shè)計(jì)需要解決的關(guān)鍵技術(shù)及解決方法
1.1 需要解決的關(guān)鍵技術(shù)
1) 如何合理分配單片機(jī)的輸出端口來控制12個(gè)交通燈和數(shù)碼管到計(jì)時(shí)顯示。
2) 選擇單片機(jī)內(nèi)部的定時(shí)器還是選擇外置定時(shí)器如8254,如果選擇外置定時(shí)器怎樣設(shè)計(jì)地址譯碼電路?地址如何分配?
3) 定時(shí)時(shí)間是否可以動態(tài)調(diào)整?如何調(diào)整?
1.2 解決方法
1) 用單片機(jī)的P0口和P2口來控制12個(gè)交通燈顯示,每個(gè)輸出端口使用6位,1(高電平)亮,0(低電平)滅。用單片機(jī)的串行輸出端口P3.0和P3.1控制數(shù)碼管到計(jì)時(shí)顯示[1]。
2) 選擇單片機(jī)內(nèi)部的定時(shí)器,這樣可以不用考慮設(shè)計(jì)地址譯碼電路和地址如何分配的問題。
3) 定時(shí)時(shí)間設(shè)計(jì)為到計(jì)時(shí)1分鐘,用兩位數(shù)碼管顯示,在到計(jì)時(shí)小于等于5秒時(shí)黃燈每0.5秒亮和滅切換一次,在到計(jì)時(shí)顯示0秒時(shí)兩個(gè)方向的紅色燈和綠色燈切換。定時(shí)時(shí)間可以通過軟件設(shè)計(jì)實(shí)現(xiàn)動態(tài)調(diào)整。
2 十字路口交通燈硬件電路設(shè)計(jì)
根據(jù)十字路口交通燈系統(tǒng)設(shè)計(jì)需要解決的關(guān)鍵技術(shù)及解決方法,設(shè)計(jì)出硬件電路框圖,見圖1。
3 十字路口交通燈軟件設(shè)計(jì)
根據(jù)十字路口交通燈系統(tǒng)設(shè)計(jì)需要解決的關(guān)鍵技術(shù)及解決方法,設(shè)計(jì)出軟件流程圖,見圖2。
4 綜合設(shè)計(jì)并在Proteus環(huán)境中進(jìn)行仿真
首先根據(jù)硬件設(shè)計(jì)框圖在Proteus軟件中畫出硬件設(shè)計(jì)電路圖,然后根據(jù)軟件設(shè)計(jì)流程圖在Keil軟件中編寫程序并編譯成HEX目標(biāo)代碼,最后在Proteus軟件中仿真和調(diào)試成功。根據(jù)仿真的結(jié)果,達(dá)到了設(shè)計(jì)的目標(biāo)。
5 研制實(shí)驗(yàn)板檢驗(yàn)設(shè)計(jì)的效果及發(fā)現(xiàn)的問題
為了檢驗(yàn)仿真的真實(shí)效果,學(xué)生用面包板和器件在實(shí)驗(yàn)室完成了十字路口交通燈系統(tǒng)設(shè)計(jì)。結(jié)果表明,本設(shè)計(jì)達(dá)到了十字路口交通燈系統(tǒng)的設(shè)計(jì)要求。但也發(fā)現(xiàn)了下面一些問題:
1) 因?yàn)閿?shù)碼管顯示的時(shí)間是通過單片機(jī)的串行口輸出的,因此影響了數(shù)據(jù)輸出的速度,造成數(shù)碼管顯示閃爍??梢钥紤]用單片機(jī)的并行口如在本次設(shè)計(jì)中沒有用到的P1或P3來輸出,這樣數(shù)碼管顯示閃爍的問題就解決了。
2)定時(shí)時(shí)間只能在程序中設(shè)置,不能在程序執(zhí)行期間動態(tài)調(diào)整??梢钥紤]增加一個(gè)小鍵盤,以便在程序執(zhí)行期間利用鍵盤進(jìn)行定時(shí)的動態(tài)調(diào)整。
6 結(jié)語
Proteus是一個(gè)很好的單片機(jī)仿真軟件,它既可以繪制以單片機(jī)為核心的電路圖,也可以執(zhí)行Keil軟件編寫的C51程序或基于單片機(jī)的A51匯編程序。我們在設(shè)計(jì)基于單片機(jī)的電路時(shí),可以先在Proteus中設(shè)計(jì)和仿真,然后再用面包板和器件真正實(shí)現(xiàn),這樣可以達(dá)到事半功倍的效果。
參考文獻(xiàn)
[1] 胡杰.51單片機(jī)C語言應(yīng)用于開發(fā).北京航空航天大學(xué)出版社 [M].北京:2010.
[2] 徐愛鈞.單片機(jī)原理與應(yīng)用——基于Proteus虛擬仿真技術(shù).機(jī)械工業(yè)出版社 [M].北京:2010.