王俊芳 王正歡
摘要本系統(tǒng)除了有基本交通燈功能外,還有對按鍵設(shè)置、緊急情況處理、分時段自動調(diào)整交通燈的點(diǎn)亮?xí)r間等功能。文章分析了各種設(shè)計(jì)方法,選取了一種設(shè)計(jì)思路新穎、效率較高的方案,并對其進(jìn)行了綜合性、創(chuàng)新性地設(shè)計(jì)。
關(guān)鍵詞中斷定時鍵盤LED顯示
中圖分類號:TM923文獻(xiàn)標(biāo)識碼:A
本設(shè)計(jì)基于上海航虹高科技有限公司AEDK5196的實(shí)驗(yàn)系統(tǒng),支持MCS-51系列和MCS-96系列微控制器實(shí)驗(yàn)和仿真開發(fā)。該設(shè)計(jì)可完成如下功能:利用單片機(jī)的定時器定時令十字路口的紅綠燈交替;通過按鍵對紅綠燈點(diǎn)亮?xí)r間進(jìn)行調(diào)整及設(shè)置;能對紅綠燈點(diǎn)亮?xí)r間進(jìn)行倒計(jì)時顯示;完成不同時間段交通燈顯示規(guī)則不同的軟件設(shè)計(jì);在異常情況時,可進(jìn)行緊急情況的人工處理控制;當(dāng)專用車輛通過十字路口后,交通燈恢復(fù)常態(tài)運(yùn)行規(guī)則。
1 方案比較和論證
1.1顯示界面方案
方案一:完全采用數(shù)碼管或完全采用點(diǎn)陣式LED 顯示。但前者只顯示有限的符號和字符,無法滿足實(shí)際應(yīng)用要求。后者雖可顯示各種字符、圖形等,但實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作。
方案二:采用數(shù)碼管與雙色LED 相結(jié)合的方法,因?yàn)樵O(shè)計(jì)既要求倒計(jì)時顯示,又要求有狀態(tài)燈輸出等,所以用數(shù)碼管與LED燈分別顯示時間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。
1.2鍵盤、顯示接口方案
方案一:采用8255和串行口擴(kuò)展的鍵盤顯示器電路。利用74LS164將單片機(jī)送來的8位串行數(shù)據(jù)變成并行數(shù)據(jù),經(jīng)驅(qū)動器送往鍵盤和顯示器,做鍵盤的列掃描信號和顯示器的位控制信號。鍵盤的行線與單片機(jī)的P1口相連接,提供行信號。8255的A口輸出的數(shù)據(jù)經(jīng)反相器送往顯示器,作段碼信號。這種方案硬件復(fù)雜,且軟件編程麻煩。
方案二:采用可編程鍵盤顯示器接口芯片8279,它能完成鍵盤輸入和顯示控制兩種功能。其鍵盤部分提供一種掃描工作方式,能對鍵盤不斷掃描,自動消抖,自動識別出按下的鍵并給出編碼,能對雙鍵或n鍵按下實(shí)行保護(hù);顯示部分為發(fā)光二極管,其提供了按掃描方式工作的顯示接口,并為顯示器提供多路復(fù)用信號,可顯示多達(dá)16位的字符或數(shù)字。
2 系統(tǒng)硬件設(shè)計(jì)
2.1總體實(shí)現(xiàn)框圖
系統(tǒng)采用74LS273作輸出,控制4個雙色LED模擬交通燈,采用8279同時完成鍵盤輸入和七段數(shù)碼管時間顯示控制兩個功能。
說明:鎖存器74LS373的片選端CS接譯碼器輸出端的8300H,為交通燈提供地址;開關(guān)K8接P3.2即外部中斷0,首先將其撥到“1”位置,再撥一個來回(即先低后高模擬上升沿觸發(fā)),即可產(chǎn)生中斷請求信號,模擬專用車輛通過十字路口時的“異常情況”。K1接P1.1,CPU通過查詢電平高低判斷交通燈是按常規(guī)情況下工作,還是按鍵盤設(shè)置的時間工作。
2.2雙色發(fā)光二極管的使用
雙色發(fā)光二極管是將一個紅色LED管芯和一個綠色LED管芯封裝在一起、公用負(fù)端的一個集成器件。設(shè)計(jì)中,采用4只雙色發(fā)光二極管(DLED)分別模擬安裝在東、西、南、北4個路口上的4只交通燈,LED1—LED4分別位于北西東南方向。每只雙色發(fā)光二極管由74LS240反向驅(qū)動器驅(qū)動,74LS240輸入控制端為DR和DG,分別控制DLED紅燈和黃燈的工作。電平高低與燈亮的具體控制如下:
DR示顏色紅+綠=黃紅綠不發(fā)光軟件的設(shè)計(jì)
設(shè)計(jì)思路:用到了兩個定時器T0和T1以及外部中斷0,系統(tǒng)初始化及開啟定時器T1中斷后,即調(diào)用顯示子程序,開始時鐘顯示;根據(jù)當(dāng)前的時間與軟件中規(guī)定的忙閑狀態(tài)判斷 交通狀態(tài)是否處于高峰期,低峰期,正常狀態(tài),是則進(jìn)入相應(yīng)的狀態(tài)處理子程序;根據(jù)K1的按鍵與否判斷是按常規(guī)還是按鍵盤設(shè)置來顯示紅綠燈;同時根據(jù)K8的按鍵即外部中斷0模擬的異常情況進(jìn)入異常情況處理。
3 結(jié)語
本系統(tǒng)設(shè)計(jì)基于AEDK5196實(shí)驗(yàn)系統(tǒng),下面就軟件實(shí)現(xiàn)過程中一些需要注意的問題作如下總結(jié):
3.1 對于資源利用
系統(tǒng)設(shè)計(jì)要求交通燈,倒計(jì)時顯示,24小時時鐘顯示同步工作同時又能處理外部中斷0模擬的異常情況處理,所以要求合理的利用資源以避免資源在使用過程中發(fā)生沖突而產(chǎn)生不可預(yù)料的結(jié)果。
3.2 對于中斷優(yōu)先級
系統(tǒng)用到了3個中斷:定時器0,定時器1,外部中斷0,此時中斷的優(yōu)先級尤為重要。定時器1是用來內(nèi)部24小時計(jì)時的,即要求在不受任何其它中斷的影響,所以要求其為最高中斷優(yōu)先級。為了避免中斷與中斷之間使用的混亂,盡量不用或少用中斷嵌套。
3.3 對于多項(xiàng)功能的同步
兩個定時器之間是相互獨(dú)立的,在保證其模式相同的條件下很容易實(shí)現(xiàn)同步;而要實(shí)現(xiàn)交通燈的紅綠燈狀態(tài)與倒計(jì)時顯示的同步,解決的方法是:在紅綠燈的定時器延時中調(diào)用倒計(jì)時顯示子程序。