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