天天被操天天被操综合网,亚洲黄色一区二区三区性色,国产成人精品日本亚洲11,欧美zozo另类特级,www.黄片视频在线播放,啪啪网站永久免费看,特别一级a免费大片视频网站

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

數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制器CH451及其應(yīng)用

時(shí)間:2023-02-21 00:07:00 電子通信論文 我要投稿
  • 相關(guān)推薦

數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制器CH451及其應(yīng)用

摘要:介紹一種新型的鍵盤顯示驅(qū)動(dòng)芯片CH451的性能特點(diǎn)和工作原理,給出了CH451鍵盤顯示驅(qū)動(dòng)芯片與MCS-51單片機(jī)的接口方法與相應(yīng)的軟件驅(qū)動(dòng)程序。

    關(guān)鍵詞:鍵盤顯示控制;單片機(jī);CH451

數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制器CH451及其應(yīng)用

單片機(jī)在開發(fā)過程中,常常會(huì)因?yàn)橘Y源不足而不得不大量擴(kuò)展接口芯片以滿足應(yīng)用系統(tǒng)的需要,其中原因之一是人機(jī)界面中的鍵盤顯示占用了系統(tǒng)太多資源,從而造成系統(tǒng)龐大,同時(shí)降低了系統(tǒng)的可靠性。在單片機(jī)應(yīng)用系統(tǒng)中,鍵盤顯示通?刹捎靡韵聨追N方式:

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

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

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

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

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

1 CH451的功能與引腳介紹

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

表1 CH451的引腳說明

28腳引腳號(hào) 24腳引腳號(hào) 引腳名稱 類  型

引  腳  說  明

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ù)時(shí)鐘,帶上拉,可同時(shí)用于看門狗的清除輸入 24 3 DOUT 輸出 串行接口的數(shù)據(jù)輸出鍵盤中斷 22~15 1、24~18 DIG7~SEG0 三態(tài)輸出及輸入 數(shù)碼管的段驅(qū)動(dòng),高電平有效,鍵盤掃描輸入,高電平有效,帶下拉 1~8 7~14 DIG7~DIG0 輸出 數(shù)碼管的字驅(qū)動(dòng),低電平有效,鍵盤掃描輸入,高電平有效,帶下拉 12 不支持 RST 輸出 上電復(fù)位和看門狗復(fù)位,高電平有效 13 不支持 RST 輸出 上電復(fù)位和看門狗復(fù)位,低電平有效 28 不支持 RSTI 輸入 上電復(fù)位門限調(diào)整或手工復(fù)位輸入 14 不支持 ADJ 輸入 段電流上限調(diào)整,帶強(qiáng)下拉 10 不支持 CLK 輸入 外接阻容振蕩 11 不支持 CLKO 輸出 CLK引腳時(shí)鐘信號(hào)的二分頻輸出   17 NC   不連接,禁止使用

2。茫龋矗担钡牟僮髅

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

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

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

● 芯片內(nèi)部復(fù)位:001000000001B

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

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

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

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

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

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

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

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

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

設(shè)定閃爍控制命令用于設(shè)定CH451的閃爍顯示屬性,其中D7S~D0S 分別對(duì)應(yīng)于8?jìng)(gè)字驅(qū)動(dòng)DIG7~DIG0。閃爍屬性D7S~D0S分別通過1位數(shù)據(jù)控制,將相應(yīng)的數(shù)據(jù)位置為1可使能閃爍顯示,否則為正常顯示,不閃爍(默認(rèn)值)。

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

加載字?jǐn)?shù)據(jù)命令用于將字節(jié)數(shù)據(jù)DIG_DATA(8位)寫入DIG_ADDR(3位)指定的數(shù)據(jù)寄存器中。DIG_ADDR的000B~111B分別用于指定數(shù)據(jù)寄存器的地址0~7,并分別對(duì)應(yīng)于DIG0~DIG7引腳驅(qū)動(dòng)的8?jìng)(gè)數(shù)碼管。DIG_DATA為待寫入的字節(jié)數(shù)據(jù)。

●讀取按鍵代碼:0111xxxxxxxxB

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

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

表2 CH451的鍵盤編碼表

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 串行接口應(yīng)用電路

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

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

下面是該電路的驅(qū)動(dòng)程序:

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

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

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

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

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

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

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

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

CH451選擇4線串行接口

SETB DCLK ;置為默認(rèn)的高電平

SETB DIN

SETB LOAD

SETB DOUT ;置為輸入

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

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

LCALL WRITE

MOV B?#03H ;設(shè)置移位命令

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

LCALL WRITE

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

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

LCALL WRITE

MOV B?#06H ;設(shè)置閃爍控制

MOV A?#00H ;不閃爍

LCALL WRITE

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

CLR IE0 ;清中斷標(biāo)志

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)生時(shí)鐘上升沿通知

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)生時(shí)鐘下降沿通知

CH451輸出下一位

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

在前,低位在后

SETB DCLK

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

CLR IE0 ;清中斷標(biāo)志,讀操作

過程中有低電平脈沖

SETB EX0 ;允許鍵盤中斷

RET

4 結(jié)束語(yǔ)

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


【數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制器CH451及其應(yīng)用】相關(guān)文章:

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

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

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

CAN控制器SJA1000及其應(yīng)用08-06

初級(jí)啟動(dòng)控制器UCC3960及其應(yīng)用08-06

PDP數(shù)據(jù)驅(qū)動(dòng)模塊STV7610A及其應(yīng)用08-06

單端PWM控制器NCP1205及其應(yīng)用08-06

串行通信控制器85C30及其應(yīng)用08-06

液晶顯示模擬KS0713及其應(yīng)用08-06