丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>數(shù)碼管顯示驅動和鍵盤掃描控制器CH451及其應用

數(shù)碼管顯示驅動和鍵盤掃描控制器CH451及其應用

時間:2023-02-21 00:07:00 電子通信論文 我要投稿
  • 相關推薦

數(shù)碼管顯示驅動和鍵盤掃描控制器CH451及其應用

摘要:介紹一種新型的鍵盤顯示驅動芯片CH451的性能特點和工作原理,給出了CH451鍵盤顯示驅動芯片與MCS-51單片機的接口方法與相應的軟件驅動程序。

    關鍵詞:鍵盤顯示控制;單片機;CH451

數(shù)碼管顯示驅動和鍵盤掃描控制器CH451及其應用

單片機在開發(fā)過程中,常常會因為資源不足而不得不大量擴展接口芯片以滿足應用系統(tǒng)的需要,其中原因之一是人機界面中的鍵盤顯示占用了系統(tǒng)太多資源,從而造成系統(tǒng)龐大,同時降低了系統(tǒng)的可靠性。在單片機應用系統(tǒng)中,鍵盤顯示通常可采用以下幾種方式:

(1)采用并行接口的鍵盤顯示專用芯片8279。但8279所需外圍元件多(顯示驅動、譯碼等)、占用電路板面積大、綜合成本高,在中小系統(tǒng)中常常大材小用;

(2)采用通用并行I/O芯片擴展(如用8155等),但此方案同樣需要驅動顯示,同時鍵盤顯示掃描還需占用CPU大量時間;

(3)采用專用顯示控制器,并用CPU的I/O引腳完成鍵盤輸入(如MC14499、PS7219、MAX7219、ICM7218、TLC5921等,大多是串行接口并有顯示驅動能力,I/O占用少)。這種接口方式省去了顯示的掃描,而且電路大多也很簡單,通常在系統(tǒng)需要的按鍵較少時比較適用;

(4)采用帶I2C總線的鍵盤顯示芯片(如顯示用SAA1064,鍵盤用PCF8574),不過這種方式對于無I2C總線接口的CPU來說,編程顯得有些不便;

(5)采用串行接口的鍵盤顯示專用芯片,如BC7280/81、HD7279、CH451等。這類芯片占用CPU的資源少,傳輸速度較快,外圍器件要求也較少,在中小系統(tǒng)中都可得到廣泛的應用。BC7280/81與HD7279中已有介紹,本文著重介紹CH451的主要特性及接口應用方法。

1 CH451的功能與引腳介紹

CH451是一個整合了數(shù)碼管顯示驅動和鍵盤掃描控制以及μP監(jiān)控的多功能外圍芯片。CH451內置RC振蕩電路,可以直接動態(tài)驅動8位數(shù)碼管或者64位LED,具有BCD譯碼或不譯碼功能,可實現(xiàn)數(shù)據(jù)的左移、右移、左循環(huán)、右循環(huán)、各數(shù)字獨立閃爍等控制功能。CH451內置大電流驅動級,段電流不小于30mA,字電流不小于160mA,并有16 級亮度控制功能;在鍵盤控制方面,該器件內置64鍵鍵盤控制器,可實現(xiàn)8×8矩陣鍵盤掃描,并內置去抖動電路,可提供按鍵中斷與按鍵釋放標志位等功能;在外部接口方面,CH451可選擇簡潔的1線串行接口或高速4線串行接口,且內置上電復位,可提供高電平有效復位和低電平有效復位兩種輸出,同時內置看門狗電路Watch-Dog。CH451提供有28引腳的DIP28與SOP28封裝以及DIP24S封裝形式,28腳與24腳在功能上稍有差別,它們的引腳定義見表1所列。

表1 CH451的引腳說明

28腳引腳號 24腳引腳號 引腳名稱 類  型

引  腳  說  明

23 2 VCC 電源 正電源,持續(xù)電流不小于200mA 9 15 GND 電源 接地,持續(xù)電流不小于200mA 25 4 LOAD 輸入 4線串行接口的數(shù)據(jù)加協(xié),帶上拉 26 5 DIN 輸入 4線串行接口的數(shù)據(jù)輸入,帶上拉 27 6 DCLK 輸入 串行接口聽數(shù)據(jù)時鐘,帶上拉,可同時用于看門狗的清除輸入 24 3 DOUT 輸出 串行接口的數(shù)據(jù)輸出鍵盤中斷 22~15 1、24~18 DIG7~SEG0 三態(tài)輸出及輸入 數(shù)碼管的段驅動,高電平有效,鍵盤掃描輸入,高電平有效,帶下拉 1~8 7~14 DIG7~DIG0 輸出 數(shù)碼管的字驅動,低電平有效,鍵盤掃描輸入,高電平有效,帶下拉 12 不支持 RST 輸出 上電復位和看門狗復位,高電平有效 13 不支持 RST 輸出 上電復位和看門狗復位,低電平有效 28 不支持 RSTI 輸入 上電復位門限調整或手工復位輸入 14 不支持 ADJ 輸入 段電流上限調整,帶強下拉 10 不支持 CLK 輸入 外接阻容振蕩 11 不支持 CLKO 輸出 CLK引腳時鐘信號的二分頻輸出   17 NC   不連接,禁止使用

2。茫龋矗担钡牟僮髅

CH451的操作命令均為12位,其中高4位為標識碼,低8位為參數(shù),各操作命令如下:

●空操作:0000xxxxxxxxB(x可為任意值,下同)

空操作命令對CH451不產(chǎn)生任何影響。該命令可以在多個CH451級聯(lián)的應用中透過前級CH451向后級CH451發(fā)送操作命令而不影響前級CH451的狀態(tài)。例如,要將操作命令001000000001B發(fā)送給兩級級聯(lián)電路中的后級CH451(后級CH451的DIN引腳連接到前級CH451的DOUT引腳),只要在該操作命令后添加空操作命令000000000000B再發(fā)送,那么,該操作命令將經(jīng)過前級CH451到達后級CH451,而空操作命令留給了前級CH451。另外,為了在不影響CH451的前提下變化DCLK以清除看門狗計時器,也可以發(fā)送空操作命令。在非級聯(lián)的應用中,空操作命令可只發(fā)送高4位。

● 芯片內部復位:001000000001B

內部復位命令可將CH451的各個寄存器和各種參數(shù)復位到默認的狀態(tài)。芯片上電時,CH451均被復位,此時各個寄存器均復位為0,各種參數(shù)均恢復為默認值。

● 字數(shù)據(jù)移位:0011000000[D1][D0]B

字數(shù)據(jù)移位命令共有4個:開環(huán)左移、右移,閉環(huán)左移、右移。D0為0時為開環(huán),為1時為閉環(huán),D1為0時左移,為1時為右移。開環(huán)左移時?DIG0引腳對應的單元補00H,此時不譯碼方式顯示為空格,BCD譯碼方式時顯示為0;開環(huán)右移時,DIG7引腳對應的單元補00H;而在閉環(huán)時?DIG0與DIG7頭尾相接,閉環(huán)移位。

● 設定系統(tǒng)參數(shù):010000000[WDOG][KEYB][DISP]B

該命令用于設定CH451的系統(tǒng)級參數(shù)?如看門狗使能WDOG、鍵盤掃描使能KEYB、顯示驅動使能DISP等。各個參數(shù)均可通過1位數(shù)據(jù)來進行控制,將相應的數(shù)據(jù)位置為1可啟用該功能,否則關閉該功能(默認值)。

● 設定顯示參數(shù):0101[MODE][LIMIT][INTENSITY]B

此命令用于設定CH451的顯示參數(shù),如譯碼方式MODE(1位)、掃描極限LIMIT(3位)、顯示亮度INTENSITY(4位)等。譯碼方式MODE為1時選擇BCD譯碼方式,為0時選擇不譯碼方式。CH451默認工作于不譯碼方式,此時8個數(shù)據(jù)寄存器中字節(jié)數(shù)據(jù)的位7~位0分別對應8個數(shù)碼管的小數(shù)點和段G~段A,當數(shù)據(jù)位為1時,對應的數(shù)據(jù)段(或發(fā)光管)點亮;數(shù)據(jù)位為0時熄滅。CH451工作于BCD譯碼方式主要應用于數(shù)碼管驅動,單片機只要給出二進制數(shù)的BCD碼,便可由CH451將其譯碼并直接驅動數(shù)碼管以顯示對應的字符。BCD譯碼方式是對數(shù)據(jù)寄存器中字節(jié)數(shù)據(jù)的位4~位0進行兼容BCD的譯碼,可用于控制段驅動引腳SEG6~SEG0的輸出,它們對應于數(shù)碼管的段G~段A,同時可用字節(jié)數(shù)據(jù)的位7控制段來驅動引腳SEG7的輸出以對應數(shù)碼管的小數(shù)點,字節(jié)數(shù)據(jù)的位6和位5不影響BCD譯碼的輸出,它們可以是任意值。將位4~位0進行BCD譯碼可顯示以下28個字符,其中00000B~01111B分別對應于“0~F”、10000B~11010B分別對應于“ ”?空格? 、“+”?+或加號? 、“-”?負號或減號? 、“=”?等于號? 、“?"?左方括號? 、“?”?右方括號? 、“_”?下劃線? 、“H” 、“L” 、“P” 、“.”?小數(shù)點? 、其余值為空格。

掃描極限LIMIT控制位001B~111B和000B(默認值)可分別設定掃描極限1~7和8。顯示亮度INTENSITY控制位的0001B~1111B和0000B(默認值)則用于分別設定顯示驅動占空比1/16~15/16 和16/16,以實現(xiàn)16級顯示亮度控制。

●設定閃爍控制:0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B

設定閃爍控制命令用于設定CH451的閃爍顯示屬性,其中D7S~D0S 分別對應于8個字驅動DIG7~DIG0。閃爍屬性D7S~D0S分別通過1位數(shù)據(jù)控制,將相應的數(shù)據(jù)位置為1可使能閃爍顯示,否則為正常顯示,不閃爍(默認值)。

●加載字數(shù)據(jù):1[DIG_ADDR][DIG_DATA]B

加載字數(shù)據(jù)命令用于將字節(jié)數(shù)據(jù)DIG_DATA(8位)寫入DIG_ADDR(3位)指定的數(shù)據(jù)寄存器中。DIG_ADDR的000B~111B分別用于指定數(shù)據(jù)寄存器的地址0~7,并分別對應于DIG0~DIG7引腳驅動的8個數(shù)碼管。DIG_DATA為待寫入的字節(jié)數(shù)據(jù)。

●讀取按鍵代碼:0111xxxxxxxxB

讀取按鍵代碼命令用于獲得CH451最近檢測到的有效按鍵的按鍵代碼。該命令是唯一的具有數(shù)據(jù)返回的命令,CH451通常從DOUT引腳輸出按鍵代碼,按鍵代碼總是7位數(shù)據(jù),最高位是狀態(tài)碼,位5~位0是掃描碼。讀取按鍵代碼命令的位數(shù)據(jù)B7~B0可以是任意值,所以控制器可以將該操作命令縮短為4位數(shù)據(jù)B11~B8。例如,CH451檢測到有效按鍵并中斷時,如按鍵代碼是5EH,則先向CH451發(fā)出讀取按鍵代碼命令0111B,然后再從DOUT獲得按鍵代碼5EH。

CH451所提供的按鍵代碼為7位,位2~位0是列掃描碼,位5~位3是行掃描碼,位6是狀態(tài)碼(鍵按下為1,鍵釋放為0)。例如,連接DIG3與SEG4的鍵被按下時,按鍵代碼為63H,鍵被釋放后,按鍵代碼是23H。單片機可以在任何時候讀取按鍵代碼,但一般在CH451檢測到有效按鍵而產(chǎn)生鍵盤中斷時讀取按鍵代碼,此時按鍵代碼的位6總是1。另外,如果需要了解按鍵何時釋放,單片機可以通過查詢方式定期讀取按鍵代碼,直到按鍵代碼的位6為0。表2是連接在DIG7~DIG0與SEG7~SEG0之間的鍵被按下時,CH451所提供的按鍵代碼。這些按鍵代碼具有一定的規(guī)律,如果需要鍵被釋放時的按鍵代碼,可將表2中的按鍵代碼的位6 置0,也可將表中的按鍵代碼減去40H。應注意的是:CH451不支持組合鍵,也就是說,同一時刻,不能有兩個或者更多的鍵被按下。

表2 CH451的鍵盤編碼表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 串行接口應用電路

CH451與MCS-51單片機的連接如圖1所示,其中DOUT引腳最好連接到單片機的中斷輸入引腳,這樣可用中斷方式響應按鍵。如果連接到非中斷輸入引腳,則應該使用查詢方式確定CH451是否檢測到有效按鍵,同時還可向單片機提供復位信號RESET并帶Watch-Dog功能。CH451的段驅動引腳串接的電阻R1(200Ω)用于限制和均衡段驅動電流。在5V電源電壓下,串接200Ω電阻通常對應13mA段電流。CH451具有64鍵的鍵盤掃描功能,為了防止鍵被按下后在SEG信號線與DIG信號線之間形成短路而影響數(shù)碼管顯示,一般應在CH451的DIG0~DIG7引腳與鍵盤矩陣之間串接限流電阻R2,其阻值可以從1kΩ至10kΩ。

將P1.0與DIN連接可用于輸入串行數(shù)據(jù),串行數(shù)據(jù)輸入的順序是低位在前,高位在后。另外,在上電復位后,CH451 默認選擇1線串行接口,如需選擇4線串行接口,則應在DCLK輸出串行時鐘之前,先在DIN上輸出一個低電平脈沖,以通知CH451為4線串行接口。將P1.1與DCLK連接可提供串行時鐘,以使CH451在其上升沿從DIN輸入數(shù)據(jù),并在其下降沿從DOUT輸出數(shù)據(jù)。LOAD用于加載串行數(shù)據(jù),CH451一般在其上升沿加載移位寄存器中的12位數(shù)據(jù)以作為操作命令進行分析并處理。也就是說,LOAD的上升沿是串行數(shù)據(jù)幀的幀完成標志,此時無論移位寄存器中的12位數(shù)據(jù)是否有效,CH451都會將其當作操作命令來處理。應注意的是,在級聯(lián)電路中,單片機每次輸出的串行數(shù)據(jù)必須是單個CH451的串行數(shù)據(jù)的位數(shù)乘以級聯(lián)的級數(shù)。

下面是該電路的驅動程序:

;主程序需要定義的參數(shù)

DCLK BIT P1.1 ;串行數(shù)據(jù)時鐘,上升沿激活

DIN BIT P1.0 ;串行數(shù)據(jù)輸入

LOAD BIT P1.2 ;串行命令加載,上升沿激活

DOUT BIT P3.2 ;接INT0,鍵盤中斷和鍵值數(shù)據(jù)輸出

KEY DATA 7FH ;存放鍵盤中斷時讀取的鍵值

;******* 初始化子程序 *******

INIT? CLR DIN ;先低后高,輸出上升沿通知

CH451選擇4線串行接口

SETB DCLK ;置為默認的高電平

SETB DIN

SETB LOAD

SETB DOUT ;置為輸入

MOV B?#04H ;設置系統(tǒng)參數(shù)命令

MOV A?#07H ; Watch-Dog使能,開鍵盤、顯示功能

LCALL WRITE

MOV B?#03H ;設置移位命令

MOV A?#00H ;開環(huán)左移

LCALL WRITE

MOV B?#05H ;設置顯示參數(shù)

MOV A?#00H ;不譯碼,8位顯示,最亮

LCALL WRITE

MOV B?#06H ;設置閃爍控制

MOV A?#00H ;不閃爍

LCALL WRITE

CLR IT0 ;置外部信號為低電平觸發(fā)

CLR IE0 ;清中斷標志

SETB EX0 ;允許鍵盤中斷

SETB EA

RET

;******* 輸出命令子程序 ******

;入?yún)ⅲ海、ACC待寫的12位?shù)據(jù)? 低8位在ACC中? 高4位在B的低4位中

WRITE? CLR EX0 ;禁止鍵盤中斷

CLR LOAD ;命令開始,此命令可以放在后面

MOV R7?#08H ;將ACC中8位送出

WRITE_8?RRC A ;低位在前,高位在后

CLR DCLK

MOV DIN?C ;送出一位數(shù)據(jù)

SETB DCLK ;產(chǎn)生時鐘上升沿通知

CH451輸入位數(shù)據(jù)

DJNZ R7? WRITE 8 ;位數(shù)據(jù)未完,繼續(xù)

MOV A?B

MOV R7?#04H ;將B中4位送出

WRITE 4?RRC A ;低位在前?高位在后

CLR DCLK

MOV DIN?C

SETB DCLK

DJNZ R7? WRITE 4

SETB LOAD ;產(chǎn)生加載上升沿通知

CH451處理命令數(shù)據(jù)

SETB EX0 ;允許鍵盤中斷

RET

?******* 輸入鍵值子程序 ******

? 出參? ACC鍵值數(shù)據(jù)

READ? CLR EX0 ;禁止鍵盤中斷

CLR LOAD ;命令開始

MOV A?#07H ;讀取鍵值命令的高4

位0111B

MOV R7?#04H ;忽略12位命令的低

8位

READ 4? RRC A ;低位在前,高位在后

CLR DCLK

MOV DIN?C

SETB DCLK

DJNZ R7? READ 4

SETB LOAD ;產(chǎn)生加載上升沿通知

CH451處理命令數(shù)據(jù)

CLR A ;先清除鍵值單元以便移位

MOV R7?#07H ;讀入7位鍵值

READ_7? MOV C?DOUT ;讀入一位數(shù)據(jù)

CLR DCLK ;產(chǎn)生時鐘下降沿通知

CH451輸出下一位

RLC A ;數(shù)據(jù)移入ACC,高位

在前,低位在后

SETB DCLK

DJNZ R7? READ_7 ;位數(shù)據(jù)未完繼續(xù)

CLR IE0 ;清中斷標志,讀操作

過程中有低電平脈沖

SETB EX0 ;允許鍵盤中斷

RET

4 結束語

用CH451擴展鍵盤顯示接口,具有接口簡單、占用CPU資源少、外圍器件簡單、性能價格比高等優(yōu)點,可在各種單片機系統(tǒng)中得到廣泛的應用。


【數(shù)碼管顯示驅動和鍵盤掃描控制器CH451及其應用】相關文章:

工業(yè)設備中LED顯示和鍵盤掃描設計08-06

串行接口鍵盤控制器SK5278及其在單片機系統(tǒng)中的應用08-06

鍵盤事件的掛鉤監(jiān)控原理及其應用08-19

CAN控制器SJA1000及其應用08-06

初級啟動控制器UCC3960及其應用08-06

PDP數(shù)據(jù)驅動模塊STV7610A及其應用08-06

單端PWM控制器NCP1205及其應用08-06

串行通信控制器85C30及其應用08-06

液晶顯示模擬KS0713及其應用08-06