89C2051單片機在鍵盤(pán)顯示裝置中的應用
1引言
本文引用地址:http://dyxdggzs.com/article/171950.htm在嵌入式計算機系統設計中,經(jīng)常要考慮鍵盤(pán)顯示裝置的設置問(wèn)題。盡管有多種方案可以滿(mǎn)足鍵盤(pán)顯示的要求,但是這些方案都各有其優(yōu)缺點(diǎn),比如采用專(zhuān)用的鍵盤(pán)顯示器管理芯片8279,在系統的按鍵及顯示器位數較多時(shí)是一種好的方案,但目前鍵盤(pán)的設置趨于簡(jiǎn)單化(即采用一鍵多用方式或利用增加鍵和減少鍵來(lái)取代數字鍵等),因此,一般系統按鍵不多,其顯示器的位數一般也不超過(guò)8位。這樣,采用 8279由于需要較多的外圍電路器件,因此顯得不是很方便了。而14499是顯示器管理芯片,它雖然可以管理四位顯示器,但它沒(méi)有按鍵管理功能。此外, PS7219是高性能的多位LED顯示驅動(dòng)器,可管理8位顯示器,并有很強的顯示管理功能,如位閃、復位等功能,但其售價(jià)較高,且不能獨立管理鍵盤(pán)。鑒于上述幾個(gè)芯片的情況,筆者用89C2051單片機設計了織機監測器鍵盤(pán)顯示裝置來(lái)對織機生產(chǎn)數據進(jìn)行處理與顯示。以下詳細描述為該織機監測器設計的鍵盤(pán)顯示裝置。
2硬件電路設計
鍵盤(pán)顯示裝置主要由89C2051單片機、譯碼驅動(dòng)器、按鍵、LED顯示器組成,其原理電路如圖1所示。
89C51單片機P1口的每個(gè)引腳都有20mA的吸電流能力,該電流足以驅動(dòng)共陰極LED顯示器的段片選端,因此可將P1口作為L(cháng)ED的段選線(xiàn),P3.3、P3.4、P3.5經(jīng)譯碼驅動(dòng)后作LED的位選線(xiàn),同時(shí)也可作為鍵盤(pán)的掃描線(xiàn),另外,鍵盤(pán)的回饋線(xiàn)接INT0引腳。由于掃位選線(xiàn)(掃描線(xiàn))為低電平有效,當有鍵按下時(shí),回饋線(xiàn)INT0端將產(chǎn)生低電平信號以申請中斷,從而使其在中斷程序中判別鍵值并執行鍵處理程序;RXD、TXD引腳與監測器單片機的串行通信線(xiàn)相連。通過(guò)它們可在接收到按鍵命令后向監測器發(fā)送鍵盤(pán)命令,或在接收到監測器發(fā)送的數據后,將數據送入顯示緩沖區。
2.2按鍵設置
這種鍵盤(pán)顯示系統所需要設置的八個(gè)按鍵分別是:
?。?)打緯數據鍵:該鍵壓合時(shí)可用于顯示當前打緯數(六位)。
?。?)加時(shí)打緯數鍵:該鍵壓合可用于顯示當前的加時(shí)打緯數據(六位)。
?。?)斷緯次數鍵:該鍵壓合以顯示當前斷緯數及斷緯時(shí)間,該數據亦為六位,其中前三位是斷緯數據,后三位是斷緯時(shí)間。
?。?)斷經(jīng)次數鍵:該鍵壓合顯示當前斷經(jīng)數及斷經(jīng)時(shí)間,該數據為六位,其中前三位是斷經(jīng)數,后三位是斷經(jīng)時(shí)間。
?。?)斷邊次數鍵:該鍵壓合顯示當前斷邊數及斷邊時(shí)間,共六位。前三位是斷邊數,后三位是斷邊時(shí)間。
?。?)停車(chē)次數鍵:該鍵壓合顯示當前的停車(chē)時(shí)間,該數據共六位。前三位是停車(chē)數,后三位是停車(chē)時(shí)間。
?。?)查日歷鍵:該鍵壓合可顯示當前時(shí)間“年、月、日、時(shí)、分、秒”,分兩屏顯示,第一屏是年、月、日,顯示2秒;第二屏是時(shí)、分、秒,各占兩個(gè)顯示位,顯示2秒。
?。?)初始化鍵:可用于對機臺的串行EEPROM進(jìn)行初始化,同時(shí)顯示本機臺的ID號。
2.3 LED顯示器
LED顯示電路用了8個(gè)LED顯示器,其中1位是顯示標志,1位是標志與數據間的分隔符,其余六 位用來(lái)顯示數字。
2.4譯碼驅動(dòng)電路
譯碼驅動(dòng)電路輸入端與89C2051的引腳P3.3、P3.4和P3.5相連,其8個(gè)輸出端可作LED的位選信號(同時(shí)也是鍵盤(pán)的掃描信號)。
3應用軟件設計
該鍵盤(pán)顯示裝置的主要程序是LED顯示程序、鍵盤(pán)掃描程序和鍵值處理程序。各顯示器的顯示時(shí)間可調整定時(shí)器T0的定時(shí)值來(lái)設定。在T0中斷程序中,可通過(guò)判斷顯示標志的狀態(tài)來(lái)決定向哪個(gè)LED發(fā)送數據、更改位選線(xiàn)或更新顯示標志。程序中設有2EH和2FH兩個(gè)顯示標志單元;其中2EH為下一次顯示標志單元,該單元中有下一次應選中哪一位LED的信息;2FH為當前顯示標志單元,該單元中存有當前是哪個(gè)LED被選中的信息,如在T0中斷中判知2EH的值為#80H,則表明這次應選中的是最左邊的LED,而下一次應選中的是最左邊的第二個(gè)LED。因此,通常設定2EH中的值為#40H,2FH中的值為#80H,以表明當前顯示的是最左邊的LED。下面是在T0中斷程序中判定應使哪個(gè)LED位選線(xiàn)有效的程序段,其中標號為Y1~Y8的程序是各LED的顯示處理程序。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
評論