摘? 要:TM1620是一款LED數(shù)碼管驅動專用芯片,該芯片所實現(xiàn)的多位數(shù)碼管驅動方案與傳統(tǒng)方案相比,具有占用單片機IO口少、電路簡潔、輝度多級可調等優(yōu)點?,F(xiàn)階段,介紹TM1620的文獻還不多,為了便于設計者更好地開展對該芯片的學習和應用,本文較為詳細地說明了這款芯片驅動共陰極數(shù)碼管的電路方案、芯片指令和程序寫法。
關鍵詞:TM1620;數(shù)碼管;LED;驅動芯片
中圖分類號:TN141.6? ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)23-0042-02
Application of LED Digital Tube Driver Chip TM1620
WANG Shen
(Fujian Polytechnic School,F(xiàn)uzhou? 350002,China)
Abstract:TM1620 is a special chip for driving LED digital tube. Compared with the traditional scheme,the scheme of driving digital tube realized by TM1620 has many advantages,such as less IO port,simple circuit and multi-level adjustable brightness. At this stage,there are few papers about TM1620. In order to facilitate designers to study and apply TM1620 better,this paper describes in detail the circuit scheme,instructions and function code of driving common cathode digital tube by TM1620.
Keywords:TM1620;digital tube;LED;driver chip
0? 引? 言
在電子產品設計中,數(shù)碼管是一種常用的顯示器件,只要點亮特定的幾個LED段,它就能夠顯示出表示信息的數(shù)字或符號[1]。數(shù)碼管要正常顯示,驅動電路是不可或缺的,它起到了連接單片機與數(shù)碼管的橋梁作用。以驅動四位八段數(shù)碼管為例,傳統(tǒng)的驅動電路設計方案主要有以下三種。
(1)只使用分立元件構成:以單片機的8個IO口經限流電阻接到數(shù)碼管的段引腳(A~DP),用另外4個IO口經電阻、三極管控制數(shù)碼管的位選引腳。該方案要占用單片機的12個IO口,而使用較多的分立元件不利于減小PCB(印制電路板)的使用面積。
(2)使用74HC573構成[2]:74HC573是八路“并行輸
入,并行輸出”的鎖存器芯片。以單片機的8個IO口先后經一片74HC573、限流電阻接到數(shù)碼管的段引腳(A~ DP),用另外4個IO口經另一片74HC573控制數(shù)碼管的位選引腳。該方案并未改善對單片機IO口的占用情況,只是減少了分立元件的使用數(shù)量。
(3)使用74HC595構成:74HC595是“串行輸入,八路并行輸出”的移位寄存器芯片。以單片機的4個IO口分別連接74HC595的1個串行輸入引腳和3個控制引腳,74HC595的八路并行輸出端經限流電阻接到數(shù)碼管的段引腳,用另外4個IO口經電阻、三極管(或用一片74HC573)控制數(shù)碼管的位選引腳。該方案一定程度上改善了對單片機IO口的占用情況(占用8個),但仍需使用為數(shù)不少的分立元件。
現(xiàn)如今,許多款單片機產品的IO口幾乎都被“復用”了——不僅可以作為通用IO口使用,還可作為特殊功能引腳使用。因此,為了驅動數(shù)碼管而占用過多的IO口并不是電子產品設計者所樂見的情況,他們有時還為單片機的IO口不夠分配而苦惱。而TM1620正可以為他們提供一種更優(yōu)的方案,實現(xiàn)對數(shù)碼管顯示的可靠驅動。
1? TM1620的性能特點
TM1620是深圳天微電子公司的一款LED數(shù)碼管驅動專用芯片,采用CMOS工藝,封裝形式為SOP20,可工作于5V或3.3V的典型電壓環(huán)境(若是驅動藍光數(shù)碼管,則應選5V來供電),穩(wěn)定性好,抗干擾能力強。TM1620有三種顯示模式可供靈活選擇——十段四位、九段五位或八段六位,且輝度八級可調;內部自帶LED驅動電路,能夠自動進行多位數(shù)碼管的動態(tài)掃描,這樣就不再需要由單片機對數(shù)碼管的位選進行控制。
2? TM1620驅動四位共陰極數(shù)碼管的電路方案
以單片機的三個IO口分別接到TM1620的DIN引腳(串行數(shù)據輸入)、CLK引腳(時鐘輸入)和STB引腳(片選輸入);TM1620的SEG1~SEG8輸出引腳直接對應接到數(shù)碼管的A~DP引腳,GRID1~GRID4輸出引腳直接對應接到數(shù)碼管的四個位選引腳,SEG13/GRID6、SEG14/GRID5這兩個段/位復用輸出引腳在此不使用,懸空即可??梢?,用TM1620作為驅動芯片,只需占用單片機很少的IO口(3個),從而極大地改善了對單片機IO口的占用情況,這樣就可以留出更多的IO口用于系統(tǒng)其他功能的擴展。
3? TM1620的指令與驅動程序
3.1? TM1620的指令說明
正確理解芯片的使用方法,在此基礎上編寫出行之有效的驅動程序,這是實現(xiàn)驅動功能的必要前提。TM1620按字節(jié)接收指令或數(shù)據;設計者通過單片機,向TM1620寫入指令,從而實現(xiàn)對顯示模式、工作狀態(tài)、顯示輝度等的設置;而向TM1620寫入數(shù)據,則可以實現(xiàn)數(shù)字、符號等的顯示效果。TM1620以“在STB下降沿后,DIN輸入的第一個字節(jié)”作為指令,該字節(jié)的Bit7、Bit6用于區(qū)分不同的指令——“00”為顯示模式指令,“01”為數(shù)據指令,“10”為顯示控制指令,“11”為地址設置指令。詳述如下:
(1)顯示模式指令:用于設置所驅動數(shù)碼管的段數(shù)和位數(shù),寫入“0x00”設為十段四位,寫入“0x01”設為九段五位,寫入“0x02”設為八段六位;
(2)數(shù)據指令:用于設置與寫入顯示數(shù)據有關的地址增加模式等。例如,寫入“0x40”設為以“普通、顯存地址自加”模式寫顯示數(shù)據到顯存,寫入“0x44”設為以“普通、顯存地址固定”模式寫顯示數(shù)據到顯存。在地址固定模式下,必須按照“先設置顯存地址,后寫入顯示數(shù)據”的步驟控制各位數(shù)碼管的顯示;
(3)顯示控制指令:TM1620內部自帶了一個脈動信號發(fā)生器,由寫入的顯示控制指令對其工作狀態(tài)、輸出脈沖信號的占空比進行設置,從而實現(xiàn)開/關顯示和輝度調節(jié)。該指令的Bit3是開/關顯示的設置位,Bit2~Bit0是顯示輝度的設置位。例如,寫入“0x8F”對應“開顯示,輝度最高”的顯示效果;
(4)地址設置指令:用于設置顯存的當前地址。TM1 620顯存的有效地址有12字節(jié)(0xC0~0xCB),上電后默認設在0xC0。
3.2? 驅動程序的寫法
C語言中的一個重要觀念是:每個程序都應分割成許多小的函數(shù)[3],從而使程序的每一部分都較易于完成,也便于后續(xù)的管理和維護。因此,在對TM1620的驅動程序進行設計時,可將其分為SendByte、SendCmd、Display三個函數(shù),分別實現(xiàn)“向TM1620寫入一字節(jié)”“向TM1620寫入一個指令”和“數(shù)碼管顯示”三個功能。這里主要說明SendCmd函數(shù)和Display函數(shù)的寫法。
3.2.1? SendCmd 函數(shù)
void SendCmd(u8 command)
{
TM1620_STB=1;
Delay();
TM1620_STB=0;//完成一次輸入STB的下降沿
SendByte(command);
}
3.2.2? Display函數(shù)
void Display()
{
u8 i;
SendCmd(0x02);//設為八段六位模式
SendCmd(0x40);//設為普通,地址自加模式
SendCmd(0xC0);//設置顯存起始地址
for(i=0;i<6;i++)//逐位發(fā)送顯示數(shù)據
{ SendByte(DPY[disp[i]]);SendByte(0x00); }
SendCmd(0x8A);//設置輝度并顯示
}
可以看到,其中有一句“SendByte(0x00)”,這是因為TM1620的GRID1~GRID6各對應兩個字節(jié)的顯存地址。以GRID1為例,其顯存地址的低字節(jié)為0xC0,高字節(jié)為0xC1;而低字節(jié)地址Bit0~Bit7的8位內容分別對應SEG1~SEG8的輸出狀態(tài),高字節(jié)地址的Bit4、Bit5的內容分別對應SEG13、SEG14的輸出狀態(tài)。由此可知,對應于八段數(shù)碼管的顯示,必須向TM1620每位(GRID)的奇地址寫入“0x00”。
4? 結? 論
傳統(tǒng)的數(shù)碼管驅動方案都不免要占用較多的單片機IO口,在減小PCB使用面積方面也不具有優(yōu)勢。TM1620作為一款LED數(shù)碼管驅動專用芯片,所實現(xiàn)的驅動電路具有占用IO口少、電路簡潔等優(yōu)點。本文對這一驅動電路方案、芯片指令和程序寫法都作了說明,希望對后來的設計者有所助益。
參考文獻:
[1] 劉建清.輕松玩轉51單片機C語言 [M].北京:北京航空航天大學出版社,2011.
[2] 劉帥,周世杰,鄭凡非.基于單片機的數(shù)字電壓表設計實現(xiàn) [J].數(shù)字技術與應用,2019,37(2):166-167.
[3] Ivor Horton.C語言入門經典(第5版) [M].楊浩,譯.北京:清華大學出版社,2013.
作者簡介:王深(1985-),男,漢族,福建福州人,本科,助理講師,研究方向:電子技術應用。