一種基于TM1638的智能儀表鍵盤顯示電路設(shè)計
引言
對于智能儀表人機交互化實現(xiàn)媒介,我們通常使用LCD液晶或者LED數(shù)碼管來作為顯示器件。其中LCD價格比較昂貴,醒目程度較低,可視角度也比較小;而LED數(shù)碼管亮度高,更醒目,而且價格低,因此,LED數(shù)碼管具有更好的性價比。但是,若采用一般的顯示方案,其所用元器件多而且復(fù)雜,系統(tǒng)可靠性低,成本較大。而若選用價格低廉的鍵盤顯示驅(qū)動芯片TM1638,那么只需3根線就可與單片機(MCU)相連接,而且占用單片機(MCU)的I/O口資源少,硬件連接簡單,可靠性高。
1 硬件電路設(shè)計
1.1 TM1638芯片介紹
TM1638是帶鍵盤掃描接口的LED驅(qū)動控制專用芯片。該芯片內(nèi)部集成MCU數(shù)字接口、數(shù)據(jù)鎖存器、LED高壓驅(qū)動和鍵盤掃描等電路。TM1638可以同時驅(qū)動8個共陰極數(shù)碼管,可掃描24個矩陣式按鍵。
TM1638芯片的邏輯電源電壓為5V±10%,SEG1?10為P管開漏輸出,在使用時只能接LED的陽極,驅(qū)動輸出電流最大為一50mA。GRID1?8為N管開漏輸出,只能接LED的陰極,最大驅(qū)動輸出電流為+200mA。驅(qū)動數(shù)碼管時,不需再加電阻限流,可通過改變顯示控制命令的后三位數(shù)來改變顯示亮度。
1.2 鍵盤和顯示主電路設(shè)計
圖1所示是筆者給出的實用智能儀表鍵盤顯示電路原理圖,其中的鍵盤和顯示驅(qū)動芯片為TM1638,顯示部分為2片4位一體共陰極數(shù)碼管,鍵盤部分為9個按鈕(也可以擴成24個)??刂菩酒瑸镾TC11F02,該芯片是單時鐘/機器周期(1T)的單片機,指令代碼完全兼容8051,但速度比8051快8?12倍。內(nèi)部集成了高可靠復(fù)位電路,主要針對高速通信,智能控制和強干擾場合的應(yīng)用。
在圖1中,TM1638與STC11F02單片機相連只需用到單片機的3個I/O口,因而可大大減少占用單片機的I/O口資源。TM1638芯片可直接驅(qū)動數(shù)碼管,也可直接接按鈕,而不需再加上拉電阻或限流電阻,整個電路用到的電子元器件很少,而且結(jié)構(gòu)簡單,可靠性強,成本低。
TM1638的SEG1—SEG10引腳是顯示和按鍵掃描復(fù)用的,若系統(tǒng)要用到組合鍵時,可以在硬件上將需要同時按下的鍵設(shè)置在不同的K線上;但同一個K與不同的SEG引腳不能做成組合鍵使用。
2 軟件設(shè)計
2.1 顯示單元
TM1638內(nèi)部帶有顯示寄存器,該顯示寄存器存儲通過串行接口從MCU接收顯示的數(shù)據(jù),該TM1638顯示寄存器地址從00H-0FH共16字節(jié)單元,在寫LED顯示數(shù)據(jù)時,一般從顯示地址的低位到高位,并從數(shù)據(jù)字節(jié)的低位到高位進行操作。
2.2 顯示和掃描按鍵單元
讀鍵時,先發(fā)讀鍵命令,開始讀取按鍵數(shù)據(jù)BYTE1-BYTE4字節(jié),讀數(shù)據(jù)從低位開始輸出;TM1638芯片的K和KS引腳對應(yīng)的按鍵按下時,相對應(yīng)的字節(jié)內(nèi)的BIT位為1。DIO口輸出數(shù)據(jù)為N管開漏輸出,在讀鍵的時候,需要外接1?10k。的上拉電阻。DIO在時鐘的下降沿控制N管動作,但此時讀數(shù)時可能不穩(wěn)定,只有在時鐘的上升沿讀數(shù)才是穩(wěn)定的。
單片機向TM1638發(fā)送顯示數(shù)據(jù)時,在第一個STB片選信號后發(fā)送的是命令,寫完命令后才能發(fā)送要顯示的數(shù)據(jù)。單片機讀按鍵時,先給TM1638發(fā)送讀按鍵命令42H,然后等待一個最小等待時間(最小13)后,再讀取按鍵數(shù)據(jù)。讀取和接受1個比特都在時鐘的上升沿操作。其操作代碼如下:
發(fā)送數(shù)據(jù)子程序
Send_data:
MOV A,R0
CLR STB
MOV R7,#8H
DLL2: CLR CLK
RRC A
MOV DIO,C
SETB CLK
DJNZ R7,DLL2
RET
讀數(shù)據(jù)子程序
Read_data:
SETB DIO
CLR STB
MOV R7,#8H
NEXT1: CLR CLK
MOVC,DIO
RLC A
SETB CLK
DJNZ R7,NEXT1
RET
圖2所示是顯示和掃描按鍵的程序流程圖。
3 結(jié)語
TM1638作為鍵盤及顯示管理器件與單片機或其他微處理器相連接時,無論是硬件接口還是軟件編程都非常簡單。更重要的是,TM1638價格低廉,整個硬件成本很低,而且結(jié)構(gòu)簡單,功能強大、通用性強??沈?qū)動8個數(shù)碼管,并可掃描24個矩陣式按鍵,完全能滿足大多數(shù)智能化儀表人機交互功能的要求。目前,筆者已將TM1638應(yīng)用在所設(shè)計的產(chǎn)品當中,并取得了滿意的效果。