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