□李 瑋 陳 紅
隨著城市化的發(fā)展,高層建筑無論是從高度還是數(shù)量上都有著驚人的增長速度??v觀我國的電梯發(fā)展歷程,電梯行業(yè)形成了一個(gè)從無到有,從有到多,從多到精的發(fā)展歷程。而作為電梯的顯示控制則是電梯內(nèi)部組成不可或缺的一部分。現(xiàn)在的直行電梯種類很多,而其顯示屏類型大致有兩種,數(shù)碼管顯示和LED點(diǎn)陣屏;其顯示控制系統(tǒng)大多為單片機(jī),只不過單片機(jī)種類不同。本文將仿真以AT89C51單片機(jī)為基礎(chǔ)驅(qū)動(dòng)4個(gè)8*8的LED顯示屏組成的16*16大小的屏來完成16層電梯在升降運(yùn)行中的基本顯示。
在實(shí)際應(yīng)用過程中,電梯因當(dāng)滿足的使用要求為:當(dāng)按鍵按下,判斷當(dāng)前樓層與被按下按鍵的樓層數(shù)(目標(biāo)樓層)的具體位置,然后滾動(dòng)顯示上(下)行樓層數(shù)、方向箭頭,并在到達(dá)目標(biāo)樓層后停止。因此,實(shí)際電路應(yīng)該由按鍵模塊、顯示模塊、控制模塊(即89C51單片機(jī))三個(gè)模塊組成。其中按鍵模塊要實(shí)現(xiàn)16層的按鍵需求;顯示模塊要滿足兩位16層按鍵及方向箭頭的顯示;控制模塊則是要提供數(shù)據(jù)的輸入以及對(duì)按鍵、顯示屏的掃描。如圖1所示。
圖1 系統(tǒng)組成
本設(shè)計(jì)采用Proteus仿真軟件進(jìn)行硬件電路設(shè)計(jì),硬件電路部分主要由樓層選擇按鍵模塊、單片機(jī)核心控制模塊、數(shù)據(jù)傳輸及掃描模塊、LED點(diǎn)陣顯示屏等組成。電梯升降系統(tǒng)可以通過16個(gè)樓層選擇按鍵確定電梯樓層編號(hào),單片機(jī)接收到樓層編號(hào)與當(dāng)前所在樓層編號(hào)進(jìn)行比對(duì),確定電梯上升或下降,然后將上升或下降的樓層圖案通過數(shù)據(jù)傳輸及掃描模塊傳輸至LED點(diǎn)陣顯示屏上顯示。
系統(tǒng)的電梯顯示屏由4個(gè)8*8的LED點(diǎn)陣屏組成,具有行列各8個(gè)共16個(gè)管腳,通過動(dòng)態(tài)掃描行列管腳從而實(shí)現(xiàn)單個(gè)LED芯片點(diǎn)亮,進(jìn)而實(shí)現(xiàn)字符的顯示。而在對(duì)實(shí)際電路的應(yīng)用分析時(shí)發(fā)現(xiàn),使用4個(gè)8*8的LED點(diǎn)陣屏組合成16*16的顯示屏所需要的管腳過多,實(shí)際顯示過程中,16*16的顯示屏共有64個(gè)管腳,要完成全部的掃描,對(duì)于只有32個(gè)I/O口的51單片機(jī)并不現(xiàn)實(shí),所以對(duì)于行列的掃描需要添加具有特定功能的擴(kuò)展芯片。在該程序設(shè)計(jì)中選取了兩個(gè)74HC595(8位移位寄存器)與一個(gè)74HC154(4~16位譯碼器)來完成I/O口的擴(kuò)展。電梯升降電路如圖2所示。第一,矩陣按鍵的設(shè)置取P1口作為矩陣按鍵的端口,其中P1.0~P1.4為列端口,P1.5~P1.7為行端口,并在其端口邊空白處進(jìn)行矩陣按鍵的排布。第二,行數(shù)據(jù)輸出端,選取P0口作為其端口,行數(shù)據(jù)輸出端口只需要3個(gè)I/O口并選取P0.5、P0.6、P0.7;向點(diǎn)陣屏輸入需要16位的端口,采用兩個(gè)74HC595級(jí)聯(lián)的方式,將16位的信號(hào)輸入點(diǎn)陣屏。第三,選取P2端口作為列輸入與74HC154連接,其中P2.0~P2.3為數(shù)據(jù)輸入,P2.5為使能控制端;由于74HC154輸出為低電平,而向點(diǎn)陣屏輸入必須為高電平,因此在與點(diǎn)陣屏連接之前,必須要加反向器與上拉電阻。第四,點(diǎn)陣屏的排放以及管腳的選擇,根據(jù)程序要求,上半屏選取上半屏為同列(1~8列),下半屏同列(9~16列),左半屏同行(1~8行),右半屏同行(9~16行)。
圖2 電梯升降電路圖
(一)程序設(shè)計(jì)方案。當(dāng)電梯通電時(shí),電梯顯示屏點(diǎn)亮默認(rèn)顯示為1層;有人下某層按鍵時(shí)電梯向該樓層方向移動(dòng)(向上或向下,1層只能向上,16層只能向下),此時(shí)電梯顯示屏開始滾動(dòng)顯示當(dāng)前樓層數(shù)已經(jīng)電梯運(yùn)行方向;到達(dá)目標(biāo)樓層時(shí)電梯停止運(yùn)行,顯示當(dāng)前樓層并等待響應(yīng)下次按鍵,如此循環(huán)。
圖3 主程序流程圖
(二)程序流程圖。如圖3所示,16層高層建筑在顯示屏控制上需要16個(gè)按鍵控制,即1~16層的樓層按鍵。在軟件編寫中以矩陣式鍵盤的方式來編寫,將16個(gè)按鍵看成是4*4的矩陣按鍵,通過對(duì)該矩陣進(jìn)行行列掃描的方式來確定被按下的按鍵具體是哪一個(gè)。這種方法的優(yōu)點(diǎn)在于只需要占用8個(gè)I/O口就可以控制16個(gè)按鍵,減少了對(duì)I/O口的使用提高了硬件使用效率,并且4*4的矩陣按鍵恰好占用51單片機(jī)上一組I/O口。
在電梯升降過程中,LED顯示的畫面是通過滾動(dòng)的形式進(jìn)行樓層顯示的切換,整個(gè)滾動(dòng)顯示函數(shù)塊的運(yùn)行過程是:每次掃描一列,左右半屏同時(shí)輸入一行數(shù)據(jù),共掃描15次,保持往復(fù)循環(huán)直到激勵(lì)信號(hào),根據(jù)樓層位置向上(下)運(yùn)行,此時(shí)開始每掃描一列,輸入的行數(shù)據(jù)就讀取原有數(shù)據(jù)的后(前)一行,顯示時(shí)就會(huì)表現(xiàn)出圖像整體上移(下移)一行;偏移8次后即顯示出上(下)一樓的樓層數(shù)此時(shí)加(減)1;如此循環(huán)至達(dá)到目標(biāo)樓層后繼續(xù)保持當(dāng)前數(shù)值的掃描直到下次激勵(lì)信號(hào)的到來。程序仿真的效果圖如圖4所示。
圖4 電梯升降顯示仿真圖
本文設(shè)計(jì)的程序是通過Proteus軟件進(jìn)行仿真,經(jīng)過軟硬件仿真實(shí)現(xiàn)預(yù)期的目標(biāo),實(shí)現(xiàn)了采用LED點(diǎn)陣顯示電梯升降的畫面,該程序在實(shí)際應(yīng)用方面仍存在缺陷:在電梯運(yùn)行過程中無法響應(yīng)臨時(shí)出現(xiàn)的激勵(lì)信號(hào),即在到達(dá)目標(biāo)樓層之前無法改變目標(biāo)。若想實(shí)現(xiàn)對(duì)突發(fā)信號(hào)的響應(yīng),需要在原有中斷的基礎(chǔ)上繼續(xù)添加二級(jí)中斷。