曹振華,吳健,劉靖陽
(蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院機(jī)電與信息技術(shù)學(xué)院,蘇州 215009)
多按鍵與指示燈混編系統(tǒng)設(shè)計與實現(xiàn)
曹振華,吳健,劉靖陽
(蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院機(jī)電與信息技術(shù)學(xué)院,蘇州215009)
指示燈和按鍵式嵌入式領(lǐng)域內(nèi)最常見的元素,指示燈常用來提示用戶程序運行的狀態(tài)、電源工作狀態(tài)、工作進(jìn)展等,經(jīng)常用LED實現(xiàn)。LED具有使用壽命長、功耗低、體積小、易控制等優(yōu)點;按鍵則是用戶向嵌入式系統(tǒng)輸入信息的最常用手段。
LED作為最常用的指示燈,在嵌入式領(lǐng)域被廣泛使用,根據(jù)使用數(shù)量的不同,可以分為以下幾種控制策略。
(1)I/O直接驅(qū)動法
當(dāng)LED使用數(shù)量較少,例如三兩個或者7-8個的情況下,使用的控制端口比較少,特別是三兩個的情況下,僅使用極少的I/O口即可完成[1],所以這時候通常使用直接驅(qū)動法,電路如圖1所示。
圖1 直接驅(qū)動電路
圖1中,R?為限流電阻,電流通過VCC供給LED,經(jīng)過限流電阻后流向單片機(jī)的I/O,當(dāng)I/O為高電平時,由于LED兩側(cè)電平相等,則無電流經(jīng)過LED,所以LED不亮,當(dāng)I/O為低電平時,電流從VCC流向I/O,從而導(dǎo)致LED點亮,因此起到用I/O控制LED亮滅的功能,即狀態(tài)指示的功能。如果LED的功率較大,則還需要增加三極管進(jìn)行驅(qū)動功率的放大。
直接驅(qū)動法中每個LED對應(yīng)特定的單片機(jī)I/O口,因此程序編寫較容易,但是端口復(fù)用性差,比較浪費硬件資源,對于I/O口較少的單片機(jī)不適合用該法做較多的指示燈。
(2)掃描驅(qū)動法
掃描驅(qū)動法中,每個LED指示燈對應(yīng)兩個I/O口,一個負(fù)責(zé)輸入,一個負(fù)責(zé)輸出,但是一個I/O口,可以接入到多個指示燈上[2],如圖2所示。
圖2中,分別用到I/O_A、I/O_B、、I/O_C、I/O_1、I/ O_2和I/O_3共計6個I/O口,可以控制9個LED指示燈。比如控制LED_B2亮起時,只需要將I/O_B口拉高電平,I/O_2拉低電平即可實現(xiàn),I/O_B和I/O_2的其它電平組合都會使該LED指示燈熄滅。對于9個LED指示燈的控制是按照行或者列為單位進(jìn)行控制的,例如要想控制9個LED燈中的LED_A1、LED_A2、LED_B1和LED_C3亮,按照行的順序控制則需要三個步驟:(注1代表高電平,0代表低電平)
第一步,I/O_A=1、I/O_B=0、I/O_C=0、I/O_1=0、I/ O_2=0、I/O_3=1、延時;
第二步,I/O_A=0、I/O_B=1、I/O_C=0、I/O_1=0、I/ O_2=1、I/O_3=1、延時;
第三步,I/O_A=0、I/O_B=0、I/O_C=1、I/O_1=1、I/ O_2=1、I/O_3=0、延時;
第三步完成后,上述四個LED小燈就完成了每個瞬間亮一次的任務(wù),但是如果想讓四個LED燈保持一直亮,就必須持續(xù)重復(fù)三個步驟,利用人眼的視覺暫留原理,人的眼睛就感覺四個燈一直在亮[1]。
掃描驅(qū)動法中,利于了6個I/O就可以驅(qū)動9個LED燈,比直接驅(qū)動法節(jié)約了3個I/O,因此,合理安排LED的數(shù)量可以大幅度節(jié)約I/O口硬件資源,但是編程難度較直接驅(qū)動法大,而且需要持續(xù)掃描,浪費單片機(jī)的寶貴資源。
圖2 直掃描驅(qū)動電路
按鍵的驅(qū)動法與LED燈的驅(qū)動法及其相似,常用的也是直接驅(qū)動法和掃描驅(qū)動法,不同之處在于鍵盤驅(qū)動法中需要加上拉或者下拉電阻,保持按鍵在沒有被按下時處于穩(wěn)定的電平狀態(tài),電路圖與1-1、1-2相似,只是在靠近后端I/O口的位置加上拉電阻或者下拉電阻即可,不贅述。
本節(jié)需要設(shè)計126個LED指示燈的亮滅,并且采集63個按鍵的狀態(tài),原則上每片TM1638可以實現(xiàn)80 個LED燈,64個按鍵狀態(tài)的同時控制和采集,為了產(chǎn)品的模塊化生產(chǎn)并利于設(shè)備安裝維修,本文將126個LED指示燈和63個按鍵分為7個PCB設(shè)計制作,每個PCB使用一片TM1638,所有PCB與單片機(jī)之間僅用10個I/O口設(shè)計完成。
TM1638是帶鍵盤掃描接口的LED(發(fā)光二極管顯示器)驅(qū)動控制專用電路,內(nèi)部集成有MCU數(shù)字接口、數(shù)據(jù)鎖存器、LED高壓驅(qū)動、鍵盤掃描等電路。主要應(yīng)用于冰箱、空調(diào) 、家庭影院等產(chǎn)品的高段位顯示屏驅(qū)動。采用SOP28封裝設(shè)計[3],引腳如圖3所示。
圖3 TM1638引腳圖
TM1638也是基于掃描驅(qū)動法的原理實現(xiàn)的,TM1638可以實現(xiàn)自動掃描驅(qū)動,掃描過程無需單片機(jī)干預(yù),單片機(jī)只需要通過類IIC接口告訴TM1638需要哪些LED燈亮,然后獲取按鍵信息即可,所以大大降低了對單片機(jī)性能的要求,圖3中SEGn相當(dāng)于掃描驅(qū)動法中的輸出引腳,而GRIDn相當(dāng)于驅(qū)動掃描法中的輸入引腳,LED燈的電流從SEGn中來,流向GRIDn;按鍵的電流是從KSn中來,如果有按鍵按下,則流向GRIDn,否則電路短路,GRIDn無電流回流。
STB引腳為片選信號,CLK和DI/O兩個引腳構(gòu)成通信口,在多個TM1638形成的網(wǎng)絡(luò)中,CLK和DI/O是共用的,只要單獨設(shè)立STB片選信號即可。
經(jīng)過分組設(shè)計后,每片TM1638PCB只需要控制18個LED指示燈和采集9個按鍵的信息,I/O口資源需要用到一個STB,一個CLK和一個DI/O,另外配備5v電源接口,使用5pin的插針接口,電路圖如圖4所示。在通信口及片選口上加18pf的電容,可以有效提高信號的穩(wěn)定性,據(jù)測試,通信線在80cm以內(nèi)都可以穩(wěn)定通信,電容必須緊靠TM1638芯片放置。
圖4 接口電路圖
18個LED指示燈,通過掃描法的原理可以推斷,只需要用SEG1-SEG9作為輸出線,GRID1和GRID2作為輸入線,即可完成9×2=18的掃描矩陣,因此本文采用此方法進(jìn)行設(shè)計如圖5所示。
圖5 LED燈驅(qū)動電路圖
TM1638芯片的KS引腳只有8個,所以9個按鍵使用一個GRID無法實現(xiàn),因此本文采用KS1-KS3和GRID1-GRID3,形成3×3=9的掃描矩陣,驅(qū)動電路圖如圖6所示。為了防止多個按鍵同時按下時信號可能出現(xiàn)混亂的情況,設(shè)計中必須在SEG引腳與按鍵之間加二極管進(jìn)行電流約束,這樣各個SEG信號之間就不會出現(xiàn)電流回流的現(xiàn)象,避免了按鍵的誤判。
圖6 鍵盤驅(qū)動電路圖
在單片機(jī)端,除了要設(shè)計DI/O和SCK兩個I/O作為通信口之外,還要設(shè)計7路片選信號,即總計占用9 個I/O,接口電路如圖7所示。
圖7中,STBn為第n路的片選信號,對應(yīng)單片機(jī)的7個I/O口。
圖7 單片機(jī)端接口電路圖
根據(jù)第二節(jié)的設(shè)計思路制作成的單片PCB成品如圖8所示,7片PCB級聯(lián)之后的產(chǎn)品如圖9所示。
圖8中,粉色部分位于電路板的keepoutlayer,用于固定電路板及按鍵板用,TM1638及級聯(lián)接線端子位于電路板右側(cè),按鍵與LED指示燈位于電路板背面。
圖10中,左側(cè)引出線即為級聯(lián)線,每根為5pin杜邦線,共7組,另一端連接至控制中心單片機(jī)上。
圖8 單片PCB成品
圖9 七片PCB級聯(lián)圖
圖10 系統(tǒng)顯示效果圖
產(chǎn)品用于蘇州攜手智能科技有限公司與蘇州城時實業(yè)有限公司推出的券達(dá)人賣券機(jī)上,經(jīng)過1年的市場推廣和應(yīng)用,獲得了用戶的一致好評,產(chǎn)品在吉祥餛飩連鎖機(jī)構(gòu)、果果咖喱連鎖及面勉面餐飲連鎖機(jī)構(gòu)等大型餐飲連鎖機(jī)構(gòu)獲得認(rèn)可,運行穩(wěn)定,產(chǎn)品如圖10所示。圖中,產(chǎn)品為了體現(xiàn)層次感和系統(tǒng)功能分區(qū),上面兩排按鍵和指示燈全部使用,而下面5排的按鍵和指示燈只用了一部分。
[1]胡全.51單片機(jī)的數(shù)碼管動態(tài)顯示技術(shù)[J].中國新技術(shù)新產(chǎn)品,2009(13).
[2]王宜懷.嵌入式系統(tǒng)原理與實踐[M].北京:電子工業(yè)出版社,2012.
[3]天徽.TM1638_Ver1.2.pdf[M].深圳:www.titanmec.com.Titan Micro Electronics,2009.
曹振華(1980~),男,山東臨沂人,碩士,研究方向為嵌入式應(yīng)用技術(shù)
吳建(1984-),男,江蘇蘇州人,本科,工程師,研究方向為嵌入式系統(tǒng)應(yīng)用
劉靖陽(1993-),男,廣東河源人,大專,在校學(xué)生,研究方向為嵌入式應(yīng)用技術(shù)
Many Keys;Many Lights;TM1638;Scanning Matrix
Design and ImplementatI/On of Hybrid System Composed of Many Buttons and Lights
CAO Zhen-hua,WU Jian,LIU Jing-yang
(Department of Mechatronics&Information,Suzhou Institute of Trade&Commerce,Suzhou 215009)
1007-1423(2015)28-0065-05
10.3969/j.issn.1007-1423.2015.28.016
2015-09-11
2015-09-22
在嵌入式領(lǐng)域內(nèi)經(jīng)常用到按鍵和指示燈,如果數(shù)量較少,可以直接用單片機(jī)的I/O口驅(qū)動,編程容易,但需要充足的I/ O;如果使用數(shù)量較多,單片機(jī)的I/O口不夠用,則需要用矩陣掃描驅(qū)動,此種方法編程復(fù)雜,需要及時掃描刷新,占用單片機(jī)資源較多;如果使用數(shù)量很多,上述常規(guī)方法已經(jīng)不能勝任,采用天徽公司生產(chǎn)的TM系列芯片,設(shè)計實現(xiàn)一個126個LED指示燈+63個按鍵的混編顯示控制面板。
多按鍵;多指示燈;TM1638;矩陣掃描
2015年大學(xué)生實踐創(chuàng)新訓(xùn)練計劃項目(No.201512685002Y)
Buttons and lights are often used in embedded system,if the quantity is less,can be directly driven by microcontroller I/O port,the pro-gramming is relatively easy in this condition,but need more I/O port.If uses more number of buttons and lights and microcontroller I/O port is not enough,we need drive it by the scanning matrix,although it needs complex programming,timely scanning refresh,more system resource occupancy is used in this way.If uses a large number of buttons and lights,those conventional methods can't be competent,uses a chip of TM,designs a 126 lights and 63 keys mixed display panel.