首頁(yè) > 評(píng)測(cè) > 基于DP5020點(diǎn)陣屏的顯示驅(qū)動(dòng)
基于DP5020點(diǎn)陣屏的顯示驅(qū)動(dòng)
- [導(dǎo)讀]
- #申請(qǐng)?jiān)瓌?chuàng)# @21小跑堂 在以往的點(diǎn)陣屏中,多使用74HC595作為串并轉(zhuǎn)換的芯片,它所處理的數(shù)據(jù)寬度只有8位。而現(xiàn)在的顯示面板設(shè)計(jì)多使用16位的驅(qū)動(dòng)IC,例如DP5020就是其中的一種,這樣就可以有效地縮減芯片的使用量
#申請(qǐng)?jiān)瓌?chuàng)# @21小跑堂
復(fù)制代碼
復(fù)制代碼
復(fù)制代碼
復(fù)制代碼
復(fù)制代碼
復(fù)制代碼
復(fù)制代碼
在以往的點(diǎn)陣屏中,多使用74HC595作為串并轉(zhuǎn)換的芯片,它所處理的數(shù)據(jù)寬度只有8位。而現(xiàn)在的顯示面板設(shè)計(jì)多使用16位的驅(qū)動(dòng)IC,例如DP5020就是其中的一種,這樣就可以有效地縮減芯片的使用量并可以大幅地化簡(jiǎn)電路的設(shè)計(jì)復(fù)雜度。此外,該芯片還有一大特點(diǎn)就是其輸出端口提供了2~60mA的恒定電流驅(qū)動(dòng),因而使得LED的發(fā)光亮度更均勻且能精確控制,該芯片的內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 內(nèi)部結(jié)構(gòu)
該芯片的引腳排列如圖2所示,各引腳的功能則如圖3所示。
圖2 引腳排列
圖3 引腳功能
該芯片在顯示面板的設(shè)計(jì)中,其典型的應(yīng)用方式見(jiàn)圖4所示。
圖4 典型應(yīng)用
DP5020的工作時(shí)序如圖5 所示,這是后續(xù)對(duì)其進(jìn)行驅(qū)動(dòng)的主要基礎(chǔ)。
圖5時(shí)序關(guān)系
前面之所以對(duì)DP5020作這么詳細(xì)的介紹,就在于所驅(qū)動(dòng)紅色P4.75點(diǎn)陣屏就是基于該芯片來(lái)設(shè)計(jì)的,這塊點(diǎn)陣屏的規(guī)格為16*64,其外觀如圖6所示。
在線路構(gòu)成上,除使用芯片DP5020(4片)之外,還用到的芯片有SM245(2片)和SM5166(2片)。
圖6 點(diǎn)陣屏外觀
該點(diǎn)陣屏所使用的接口為HUB08,各引腳的名稱如圖7所示。
圖7 HUB08接口
為驅(qū)動(dòng)該點(diǎn)陣屏,所使用的是N76E003最小系統(tǒng)開(kāi)發(fā)板,調(diào)試下載工具為MU_LINK,連接方式如圖8所示。
圖8 開(kāi)發(fā)板及下載工具
點(diǎn)陣屏與開(kāi)發(fā)板的連接關(guān)系為:
A---P0.0
B---P0.1
C---P0.2
D---P0.3
R1 ---P1.4
OE ---P0.5
LAT ---P0.6
CLK ---P0.7
所做的相應(yīng)定義為:
sbit LA=P0^0;
sbit LB=P0^1;
sbit LC=P0^2;
sbit LD=P0^3;
sbit LSCL=P0^7; // CLK
sbit LSTB=P0^6; // LAT
sbit LR1=P1^4; // R1
sbit LEN=P0^5; // OE
UINT8 ScanRow=0;
使用DP5020發(fā)送16位數(shù)據(jù)的函數(shù)為:
- void DP5020_OutByte(UINT16 dat)
- {
- UINT8 i=0 ;
- for(i=0;i<16;i++)
- {
- LSCL=0;
- if(dat&0x8000)
- {
- LR1=1;
- }
- else
- {
- LR1=0;
- }
- dat=dat<<1;
- LSCL=1;
- }
- }
進(jìn)行輸出行選擇的函數(shù)為:
- void SeleRow(UINT8 Nd)
- {
- UINT8 N=Nd;
- N=N%16;
- if(N&0x01) LA=1;
- else LA=0;
- if (N&0x02) LB=1;
- else LB=0;
- if (N&0x04) LC=1;
- else LC=0;
- if (N&0x08) LD=1;
- else LD=0;
- }
實(shí)現(xiàn)指定寬度的數(shù)據(jù)發(fā)送函數(shù)為:
- void DisCol(UINT16 *dat,UINT16 len)
- {
- while(len--)
- {
- DP5020_OutByte(dat);
- }
- }
進(jìn)行顯示驅(qū)動(dòng)的函數(shù)為:
- void Display(void)
- {
- DisCol(0x5555,4);
- LEN=1;
- LSTB=1;
- LSTB=0;
- SeleRow (ScanRow)
- LEN=0;
- ScanRow++;
- if(ScanRow>15) ScanRow=0;
- }
實(shí)現(xiàn)驅(qū)動(dòng)測(cè)試的主程序?yàn)椋?/font>
- void main (void)
- {
- Set_All_GPIO_Quasi_Mode;
- set_CLOEN;
- ScanRow=0;
- while(1)
- {
- Display();
- }
- }
經(jīng)測(cè)試,其顯示效果如圖9所示,說(shuō)明驅(qū)動(dòng)正常。
圖9 驅(qū)動(dòng)測(cè)試
在以上驅(qū)動(dòng)程序的基礎(chǔ)上,將測(cè)試的固定數(shù)值改為讀取字庫(kù)中的字模即可實(shí)現(xiàn)字符或漢字的顯示。
以工具軟件PCtoLCD2002來(lái)提取字模的方式如圖10所示,是垂直鏡像字。
圖10 字模提取方式
將字模存放到數(shù)組的格式為:
UINT8 code tab[]={
0x00,0x00,0xF8,0x23,0x00,0x10,0x00,0x10,0x00,0x00,0xFC,0x07,0x20,0xF1,0x20,0x11,
0x20,0x11,0x20,0x11,0x24,0x11,0x24,0x12,0x24,0x12,0x1C,0x14,0x00,0x28,0xFE,0x47,/*"遠(yuǎn)",0*/
...
};
實(shí)現(xiàn)滿屏顯示的函數(shù)為:
- void DisCol(UINT16 lenght)
- {
- UINT16 dat,n;
- UINT8 m=8;
- n= lenght-2
- while(lenght--)
- {
- dat=( tab [m*32+ScanRow*2+1]<<8)+ tab [m*32+ScanRow*2];
- DP5020_OutByte(dat);
- m=m+1;
- }
- }
其顯示的效果如圖11所示,說(shuō)明顯示效果正確。
圖11 漢字顯示效果
若在屏上想實(shí)現(xiàn)單字顯示,則其顯示函數(shù)應(yīng)修改為:
- void DisCol(UINT16 lenght)
- {
- UINT16 dat,n;
- UINT8 m=8;
- n= lenght-2;
- while(lenght--)
- {
- if(lenght>n) dat=( tab [m*32+ScanRow*2+1]<<8)+ tab [m*32+ScanRow*2];
- else dat=0x0;
- DP5020_OutByte(dat);
- m=m+1;
- }
- }
其顯示的效果如圖12所示,當(dāng)然通過(guò)修改變量n的表達(dá)式也能指定其它數(shù)量的顯示字?jǐn)?shù)。
圖12 單字顯示效果
這樣就解決了基于DP5020點(diǎn)陣屏的顯示驅(qū)動(dòng)問(wèn)題,并得到了良好的顯示效果。感興趣的話,還可參考前面介紹74HC595的驅(qū)動(dòng)方法來(lái)實(shí)現(xiàn)數(shù)值的顯示及電子時(shí)鐘功能。
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
行業(yè)新聞
熱門標(biāo)簽
論壇活動(dòng)
more+
公開(kāi)課
more+
項(xiàng)目外包
more+
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前