电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:图形液晶显示模块在嵌入式系统中的应用
来源:   时间: 2007-12-11 3:07:54    

摘要:本文以一种由ST7902驱动的点阵液晶显示模块OCM4×8C为例,给出了其在基于DSP的嵌入式便携仪表中与DSP芯片(TMS320F2812)的硬件接口电路和C语言显示子程序,实现了多层菜单和动态波形的显示。

关键词:图形点阵液晶显示;DSP;C语言程序

中图分类号:TP368  文献标识码: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 DSPTMS320F2812)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

图形点阵式液晶显示模块具有尺寸小、功耗低、寿命长、成本低、可显示各种图像与文本信息等优点,因此在各种仪器仪表、电子设备、移动通讯及家用电器中得到广泛的应用[1]本文结合笔者在“便携式电力故障录波仪”项目中的实践经验,着重介绍如何把液晶显示模块应用做嵌入式DSP系统人机界面的问题,仅用四个按键相互配合,通过软件编程实现多层菜单和动态波形的显示。软件部分采用C语言编制,模块化设计,具有很强的可移植性,可以直接应用到其他的嵌入式系统中。

1. 模块的工作原理

1.1 基本功能

OCM4×8C液晶显示模块是128×64点阵的汉字图形型液晶显示模块,内置国标GB2312码简体中文字库(16×16点阵)、126个字符(8×16点阵)及32×128点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式、反白显示等

1.2 引脚定义

OCM4x8c液晶显示模块的引脚说明如表1所示。该模块对液晶显示的控制和驱动都由模块内部的芯片及电路来完成,因此它与外部的连接只有数据线和控制线。主控CPU通过这些数据线和控制线来设置所需要的显示方式,其它功能均由模块自动完成。

1.3 指令系统

ST7902在接受指令前,微处理器必须先确认ST7902内部处于非忙碌状态,即读取BF标志位时BF需为0,方可接受新的指令;如果在送入一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令执行完成。

ST7902提供两套控制命令,基本指令和扩充指令,RE为基本指令与扩充指令集的选择控制位,当改变RE位后,往后的指令集将维持在最后的状态,除非再次改变RE,否则使用相同的指令集时,不需每次重设RE位。下面举例说明指令格式,如进入点设定(指令代码为0x02H):

CODE  RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0

0

0

0

0

0

0

1

0

0


功能:游标右移,DDRAM位址计数器(AC)加1

ST7920A提供硬体游标及闪烁控制电路,由地址计数器(address counter)的值来指定DDRAM中的游标或闪烁位置。

1 液晶显示OCM4x8c模块的引脚功能

Tab.1 pin function of LCD OCM4x8c module


2. OCM4×8c和TMS320F2812并行接口设计

2.1 硬件电路设计[2,3]

利用F2812PA口的PA0~PA10作为和ST7902并行连接的接口,其中PA0~PA7对应ST7902的八位数据线端口,PA8~PA10对应控制器的控制线端口,ST7902的复位端口 F2812的复位端口XRS相连,背光灯的阳极LA5V电源,负极LK接地,PSB管脚通过上拉电阻接高电平,使芯片工作在并行连接方式。利用F2812PB口的低四位PB0~PB3作为与外部四个按健的接口,四个按键分别为返回,向上/下,确认。这四个按键相互配合可以实现多层菜单和数据、波形的动态显示。其硬件连接图如图1所示:

Fig.1 Diagram of the parallel interface of TMS320F2812 and ST7902

    图1中还包含DSP最小系统的时钟电路和复位电路,时钟电路由晶体和谐振电容组成,复位电路由RC充放电组成,为了便于调试,复位电路中增加了一个跳线器(J2),用于手动复位。笔者在设计过程中遇到一个问题,需要特别注意,液晶模块驱动器ST7902的工作电压为2.7~5.5V,但是OCM4×8c的工作电压为4.5~5.5V,所以两者配合的使用时电压需在4.5~5.5V之间,不然液晶显示将无法正常工作,所以不能为了方便用DSP芯片电源3.3V。

2.2软件程序设计[3-5]

下面给出与上述硬件电路配套的C语言显示子程序。包括初始化子程序、主程序、延时子程序、汉字、字符显示子程序、动态显示数据子程序、清屏子程序、按键扫描子程序等,多层菜单功能利用事件触发方式实现。可根据显示需要在主程序的相应位置调用,即可实现相应的显示功能

Fig.2 Main program flow chart


初始化子程序:

void init_lcd (void) {

wr_lcd (COMM,0x30);  /* 30---基本指令动作 */

delay(2000);

wr_lcd (COMM,0x30);  /* 30---基本指令动作 */

delay(1000);

wr_lcd (COMM,0x0c);  /* 开显示,关游标 */

delay(2000);

wr_lcd (COMM,0x01);  /* 清屏,地址指针指向00H */

delay(20000);

wr_lcd (COMM,0x06);  /* 光标的移动方向 */

}

/***  主程序  ***/

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();}

}

写数据或指令子程序:

/* 写指令或数据

 * data_comm : 1写数据,0写指令,data : 数据或指令内容 */

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;   /* 输入数据 */

    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); /* 要显示的行数 */

if (cur_row >= rows) cur_row = rows-1;

offset = (cur_row > 3) ? (cur_row-3)*16 : 0; /* 第一行数据的数组下标 */

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);

}

/* 动态显示数据 * tab :要显示的数据数组 */

void dyna_disp_value(Uchar *tab,float *tf,float factor){

while(1){

    clear_tab(tab,16,64); /* 清除数值,但保留屏幕第一行的提示信息 */

     float_to_char(tab,16,(*tf)*factor); /* 将动态数值存入数组 */

     chn_disp(tab,4,0);

     delay(5000);

     if(key_scan() && (GpioDataRegs.GPBDAT.all|0xFFF0)==0xFFF8) break; /* 监听返回键 */

}

disp_menu(); /* 显示主菜单 */

}

延时子程序:

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); /* 延时消除按键抖动 */

    return (((GpioDataRegs.GPBDAT.all|0xFFF0) == 0xFFF0) ? 0 : 1);

}

3. 结语

以上程序均在TMS320C2X系列的软件环境CCS下调试通过并运行成功。液晶屏能够通过四个简单按键,以多层菜单的模式动态显示汉字、字符、数字和图形,用作便携式嵌入式仪表的人机界面。通过移植本文的程序,经过适当修改,可以完成各种不同组合的功能,缩短开发周期,适用于各种便携式设备的人机界面系统,如手机、便携仪表、PDA等。因此,该模块为嵌人式系统人机界面设计提供了一种较好的解决方案,提供十分简单、方便、功能强大的LCD显示功能。

相关信息
发表评论
打印本页 关闭本页
基于TMS320F2812的变频调压功率信号源设计
    摘要:研究了一种基于TMS320F2812数字控制的变频调压交流电源设计,应用TMS320F2812控制DC/DC和DC/AC两级,通过两级联合调节实现高精度的宽范围变频调压交流电源。给出了设计方案、参数和实验结果。  关键词:DSP控制:变频调压:交流电源 0 引言  本文介绍应用于仪器和设备测试的高精度宽频率功率信号源的设计。传统的功率信号源一般采用线性电源或模拟控制的功率开关变换电源...
>>详细内容
基于TMS320F2812的DSP控制器设计及应用
    摘 要:基于DSP芯片TMS320F2812的电机控制器设计,描述了其引导加载ROM、AD转换单元、传感器接口、cpld等电机控制外设电路的技术关键。还简单介绍了其在调速系统中的应用。  关键词:电机控制;DSP;外设;传感器  在电机控制领域, TI公司推出了2000系列电机控制嵌入式DSP。其中的TMS320F2812属于高端产品,适合于工业控制、机床控制等高精度应用。目前涉及到2000序列的芯片在电...
>>详细内容
AD7674与TMS320F2812 McBSP之间的串口通信
  1 引言 随着数字信号处理技术的发展,人们对嵌入式数据采集系统的采样精度和传输速度要求越来越高,本文介绍的嵌入式数据采集系统设计方案采用了ADI公司的高精度18位SAR型ADC AD7674与TI公司32位定点主频高达150 MHz的DSPTMS320F2812构成一个数据采集系统,并利用McBSP的时钟停止模式实现与AD7674之间的高速数据传输。 2 AD7674简介 AD7674是一款高精度18位逐次逼近(SAR)型ADC,它具有...
>>详细内容
TMS320F2812扩展正交解码脉冲接口的设计
  1 引言 在机器人和其他精密仪器的控制系统中,位置检测是需要解决的重要问题之一,位置检测的精度和稳定性对控制系统起着关键作用。计量光栅传感器、旋转编码器、激光陀螺等测量系统的输出一般为两路相位差90°的正交解码脉冲信号。根据正交解码信号之间相位的超前与滞后关系,把正交信号转换为另外两路信号,分别为代表正交信号任一路脉冲数的脉冲序列以及代表正交信号相位关系的...
>>详细内容
基于TMS320F2812 DSP的磁悬浮控制器的设计
  基于TMS320F2812 DSP的磁悬浮控制器的设计 国防科学技术大学磁悬浮中心 邹东升 佘龙华 引言DSP芯片是专门为快速实现各种数字信号处理算法而设计的、具有特殊结构的微处理器。随着信息技术革命的深入和计算机技术的飞速发展,数字信号处理技术已经逐渐发展成为一门关键的技术学科。在当今数字化时代背景下,DSP已成为通信、计算机、控制器类产品等领域的基础器件,已成为信息...
>>详细内容
TMS320F2812在电力系统多通道同步交流采样中的应用
  摘要:电力系统中经常需要测量多路电压及电流信号,当电网频率变化时,必须彩同步技术才能保证采样计算的精度。结合发电机励磁控制装置采样模块的实现,介绍了利用新型DSP芯片TMS320F2812实现多通道同步交流采样的硬件电路及软件程序,通过试验进一步验证了新型DSP在电力系统自动化控制中的适用性和优越性。所提出的方案对交流电参量微机测量装置的软、硬件设计具有一定的...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com