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