nba季后赛赛程排名-nba历史得分榜季后赛-意甲球队排名-nba季后赛2016|www.hrvt.cn

 
資訊中心
公司新聞
行業(yè)動(dòng)態(tài)
技術(shù)文章
產(chǎn)品資訊
MORE推薦產(chǎn)品
首頁 > 資訊中心 > 產(chǎn)品資訊

圖形液晶顯示模塊在嵌入式系統(tǒng)中的應(yīng)用

作者:瑞祥微電子    點(diǎn)擊:1781    時(shí)間:2012/12/16
     摘要:本文以一種由ST7902驅(qū)動(dòng)的點(diǎn)陣液晶顯示模塊OCM4×8C為例,給出了其在基于DSP的嵌入式便攜儀表中與DSP芯片(TMS320F2812)的硬件接口電路和C語言顯示子程序,實(shí)現(xiàn)了多層菜單和動(dòng)態(tài)波形的顯示。
 
      關(guān)鍵詞:圖形點(diǎn)陣液晶顯示;DSP;C語言程序
 
      中圖分類號:TP368 文獻(xiàn)標(biāo)識碼:B
Abstract: In this paper ,we take an example of A Liquid Crystal Display(LCD) module OCM4×8C,which is driven by ST7902,the hardware interface circuit and C language subprogram with DSP(TMS320F2812)applied in the embedded portable instrument is proposed, multi-menu and dynamic waveform display is realized.
Key words: Graphic lattice LCD; DSP; C language program
      圖形點(diǎn)陣式液晶顯示模塊具有尺寸小、功耗低、壽命長、成本低、可顯示各種圖像與文本信息等優(yōu)點(diǎn),因此在各種儀器儀表、電子設(shè)備、移動(dòng)通訊及家用電器中得到廣泛的應(yīng)用[1]。本文結(jié)合筆者在“便攜式電力故障錄波儀”項(xiàng)目中的實(shí)踐經(jīng)驗(yàn),著重介紹如何把液晶顯示模塊應(yīng)用做嵌入式DSP系統(tǒng)人機(jī)界面的問題,僅用四個(gè)按鍵相互配合,通過軟件編程實(shí)現(xiàn)多層菜單和動(dòng)態(tài)波形的顯示。軟件部分采用C語言編制,模塊化設(shè)計(jì),具有很強(qiáng)的可移植性,可以直接應(yīng)用到其他的嵌入式系統(tǒng)中。

1. 模塊的工作原理

1.1 基本功能

      OCM4×8C液晶顯示模塊是128×64點(diǎn)陣的漢字圖形型液晶顯示模塊,內(nèi)置國標(biāo)GB2312碼簡體中文字庫(16×16點(diǎn)陣)、126個(gè)字符(8×16點(diǎn)陣)及32×128點(diǎn)陣顯示RAM(GDRAM)。可與CPU直接接口,提供兩種界面來連接微處理機(jī):8位并行及串行兩種連接方式。具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式、反白顯示等。

1.2 引腳定義

      OCM4x8c液晶顯示模塊的引腳說明如表1所示。該模塊對液晶顯示的控制和驅(qū)動(dòng)都由模塊內(nèi)部的芯片及電路來完成,因此它與外部的連接只有數(shù)據(jù)線和控制線。主控CPU通過這些數(shù)據(jù)線和控制線來設(shè)置所需要的顯示方式,其它功能均由模塊自動(dòng)完成。

1.3 指令系統(tǒng)

      當(dāng)ST7902在接受指令前,微處理器必須先確認(rèn)ST7902內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志位時(shí)BF需為0,方可接受新的指令;如果在送入一個(gè)指令前并不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長的時(shí)間,即等待前一個(gè)指令執(zhí)行完成。
ST7902提供兩套控制命令,基本指令和擴(kuò)充指令,RE為基本指令與擴(kuò)充指令集的選擇控制位,當(dāng)改變RE位后,往后的指令集將維持在最后的狀態(tài),除非再次改變RE,否則使用相同的指令集時(shí),不需每次重設(shè)RE位。下面舉例說明指令格式,如進(jìn)入點(diǎn)設(shè)定(指令代碼為0x02H):
CODE  RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
0
0
0
1
0
0

功能:游標(biāo)右移,DDRAM位址計(jì)數(shù)器(AC)加1
ST7920A提供硬體游標(biāo)及閃爍控制電路,由地址計(jì)數(shù)器(address counter)的值來指定DDRAM中的游標(biāo)或閃爍位置。
1 液晶顯示OCM4x8c模塊的引腳功能
Tab.1 pin function of LCD OCM4x8c module

2. OCM4×8c和TMS320F2812并行接口設(shè)計(jì)

2.1 硬件電路設(shè)計(jì)[2,3]

     利用F2812PA口的PA0~PA10作為和ST7902并行連接的接口,其中PA0~PA7對應(yīng)ST7902的八位數(shù)據(jù)線端口,PA8~PA10對應(yīng)控制器的控制線端口,ST7902的復(fù)位端口 F2812的復(fù)位端口XRS相連,背光燈的陽極LA接5V電源,負(fù)極LK接地,PSB管腳通過上拉電阻接高電平,使芯片工作在并行連接方式。利用F2812PB口的低四位PB0~PB3作為與外部四個(gè)按健的接口,四個(gè)按鍵分別為返回,向上/下,確認(rèn)。這四個(gè)按鍵相互配合可以實(shí)現(xiàn)多層菜單和數(shù)據(jù)、波形的動(dòng)態(tài)顯示。其硬件連接圖如圖1所示:
Fig.1 Diagram of the parallel interface of TMS320F2812 and ST7902
    圖1中還包含DSP最小系統(tǒng)的時(shí)鐘電路和復(fù)位電路,時(shí)鐘電路由晶體和諧振電容組成,復(fù)位電路由RC充放電組成,為了便于調(diào)試,復(fù)位電路中增加了一個(gè)跳線器(J2),用于手動(dòng)復(fù)位。筆者在設(shè)計(jì)過程中遇到一個(gè)問題,需要特別注意,液晶模塊驅(qū)動(dòng)器ST7902的工作電壓為2.7~5.5V,但是OCM4×8c的工作電壓為4.5~5.5V,所以兩者配合的使用時(shí)電壓需在4.5~5.5V之間,不然液晶顯示將無法正常工作,所以不能為了方便用DSP芯片電源3.3V。

2.2軟件程序設(shè)計(jì)[3-5]

下面給出與上述硬件電路配套的C語言顯示子程序。包括初始化子程序、主程序、延時(shí)子程序、漢字、字符顯示子程序、動(dòng)態(tài)顯示數(shù)據(jù)子程序、清屏子程序、按鍵掃描子程序等,多層菜單功能利用事件觸發(fā)方式實(shí)現(xiàn)。可根據(jù)顯示需要在主程序的相應(yīng)位置調(diào)用,即可實(shí)現(xiàn)相應(yīng)的顯示功能。
Fig.2 Main program flow chart

初始化子程序:
void init_lcd (void) {
wr_lcd (COMM,0x30);  /* 30---基本指令動(dòng)作 */
delay(2000);
wr_lcd (COMM,0x30);  /* 30---基本指令動(dòng)作 */
delay(1000);
wr_lcd (COMM,0x0c);  /* 開顯示,關(guān)游標(biāo) */
delay(2000);
wr_lcd (COMM,0x01);  /* 清屏,地址指針指向00H */
delay(20000);
wr_lcd (COMM,0x06);  /* 光標(biāo)的移動(dòng)方向 */
}
/***  主程序  ***/
void main(void) {
    InitSysCtrl();
    // Disable and clear all CPU interrupts:
    DINT;
    IER = 0x0000;
    IFR = 0x0000;
    // Initialize Pie Control Registers To Default State:
    InitPieCtrl();
    // Initialize the PIE Vector Table To a Known State:
    InitPieVectTable();   
    InitGpio();
    init_lcd();
    for(o=0;o<10;o++)
    {welcome();}
    show_items(tab0,4,0);
    while(1) {
    display();
    while(!key_scan());
    key_server();}
}
寫數(shù)據(jù)或指令子程序:
/* 寫指令或數(shù)據(jù)
 * data_comm : 1寫數(shù)據(jù),0寫指令,data : 數(shù)據(jù)或指令內(nèi)容 */
void wr_lcd (Uchar data_comm,Uchar data){
delay(50);
GpioDataRegs.GPADAT.bit.GPIOA9=data_comm; /* 置rs=data_comm */
    GpioDataRegs.GPADAT.bit.GPIOA8=0; /* 置rw=0 */
    GpioDataRegs.GPADAT.all&=0xff00;   /* 輸入數(shù)據(jù) */
    data&=0x00ff;
    GpioDataRegs.GPADAT.all|=data;
GpioDataRegs.GPADAT.bit.GPIOA10=1 ; /* e=1 */
delay(50);
GpioDataRegs.GPADAT.bit.GPIOA10=0 ; /* e=0 */
}
清屏子程序:
void clear(void){
    wr_lcd(COMM,0x30);
    wr_lcd(COMM,0x01);
}
漢字、字符顯示子程序:
void chn_disp (Uchar *chn,Uint16 rows,Uint16 cur_row) {
int16 row_num,offset,i,j;
clear();
row_num = (rows > 4) ? 4 : ((rows < 1) ? 1 : rows); /* 要顯示的行數(shù) */
if (cur_row >= rows) cur_row = rows-1;
offset = (cur_row > 3) ? (cur_row-3)*16 : 0; /* 第一行數(shù)據(jù)的數(shù)組下標(biāo) */
wr_lcd (COMM,0x30);
for(i=0; i<row_num;i++) {
     wr_lcd(COMM,addr[i]);
     for(j=0;j<16;j++)
         wr_lcd(DATA,chn[offset+j]);
     offset += 16;
}
wr_lcd (COMM,0x0c);
delay(50000);
}
/* 動(dòng)態(tài)顯示數(shù)據(jù) * tab :要顯示的數(shù)據(jù)數(shù)組 */
void dyna_disp_value(Uchar *tab,float *tf,float factor){
while(1){
    clear_tab(tab,16,64); /* 清除數(shù)值,但保留屏幕第一行的提示信息 */
     float_to_char(tab,16,(*tf)*factor); /* 將動(dòng)態(tài)數(shù)值存入數(shù)組 */
     chn_disp(tab,4,0);
     delay(5000);
     if(key_scan() && (GpioDataRegs.GPBDAT.all|0xFFF0)==0xFFF8) break; /* 監(jiān)聽返回鍵 */
}
disp_menu(); /* 顯示主菜單 */
}
延時(shí)子程序:
void delay (Uint16 us)
{ Uint16 i,j;
  for(i=0;i<us;i++)
    for(j=0;j<50;j++);
}
按鍵掃描子程序:
int key_scan(void) {
int16 i;
if((GpioDataRegs.GPBDAT.all|0xFFF0) == 0xFFF0) return 0 ; /* 沒有按鍵被按下 */
for(i=2000; i>0; --i); /* 延時(shí)消除按鍵抖動(dòng) */
    return (((GpioDataRegs.GPBDAT.all|0xFFF0) == 0xFFF0) ? 0 : 1);
}

3. 結(jié)語

以上程序均在TMS320C2X系列的軟件環(huán)境CCS下調(diào)試通過并運(yùn)行成功。液晶屏能夠通過四個(gè)簡單按鍵,以多層菜單的模式動(dòng)態(tài)顯示漢字、字符、數(shù)字和圖形,用作便攜式嵌入式儀表的人機(jī)界面。通過移植本文的程序,經(jīng)過適當(dāng)修改,可以完成各種不同組合的功能,縮短開發(fā)周期,適用于各種便攜式設(shè)備的人機(jī)界面系統(tǒng),如手機(jī)、便攜儀表、PDA等。因此,該模塊為嵌人式系統(tǒng)人機(jī)界面設(shè)計(jì)提供了一種較好的解決方案,提供十分簡單、方便、功能強(qiáng)大的LCD顯示功能。

本文由深圳LCDLCM液晶模塊液晶顯示屏液晶模組點(diǎn)陣模塊筆段模塊液晶面板廠家瑞祥微電子搜集整理,轉(zhuǎn)載請注明出處,如有侵權(quán)請聯(lián)系刪除,Q:381867214!
收縮
  • 電話咨詢

  • 075527212675
網(wǎng)頁聊天
live chat