首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   ARM微控制器LPC210X的LCD接口技术      ★★★ 【字体: 】  
ARM微控制器LPC210X的LCD接口技术
收集整理:佚名    来源:本站整理  时间:2009-01-11 00:03:44   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
摘要:本文分别以GPI0口直接连接、串行转换连接、CPLD分部连接三种方法阐述了无外部总线的Philips ARM微控制器LPC210X与点阵图形液晶显示器的接口设计,并给出硬件电路框图和主要程序。

    关键词:ARM LPC210X LCD接口 串并转换 CPLD

引言

Philips最近推出了其第一款基于ARM内核的控制器LPC210X,但由于LPC210X外部总线不开放,无法扩展内存、驱动液晶显示器等,给它的推广带来了一定的影响。笔者最近在一工控板项目中采用了该系列芯片,项目后斯应客户要求需对几个参量进行显示并扩展键盘,不得已之下,采用了CPLD,并利用了GPIO口模拟总线和液晶时序与点阵图形液日模块HS12864-16建立了连接。下面详细探讨包括该种连接的三种接口方式。

1 LPC210X的GPI0口和HS12864-16A介绍

LPC210X控制器包含LPC2104、LPC2105、LPC2106,除了片内静态RAM不同外,其他完全相同。该系列器件具有32个GPIO口(P0.0~P0.31),没有外部总线,大多GPIO口是复用口,所以它一般不适合连接大屏幕液晶显示器,但驱动小规模液晶模块进行工业控制上的参量显示还是非常合适的。

GPIO包含四个寄存器,如表1所列。

表1 配置GPI0口的四个寄存器

名  称地  址

描     述

IOPIN0xE0028000引脚值寄存器,引脚当前状态都从该寄存器读出
IOSET0xE0028004输出置位寄存器,只能写1,对应引脚输出高电平
IOCLR0xE0028008输出清零寄存器,只能写1,对应引脚输出低电平
IODIR0xE002800C方向控制寄存器。控制每个I/O方向

另外GPIO口还包含两个引脚连接模块寄存器PINSEL0、PINSEL1,用来为32个引脚配置I/O功能或其他特殊功能。

HS12864-16A是内部不带字符发生器的3V液晶模块(LPC210X可直接驱动5V液晶模块俣考虑到功耜耗,不赞成连接),其主要引脚如表2所列)。

表2 HS12864-16A引脚525252

引 脚 号引 脚 名 称

描     述

1、23、VSS、VDD、V0电源(3.3V)、电源地、驱动负太
4D/I数据指令选择
5R/W读写选择
6E使能,R/W=0,下降沿锁存DB7DB0
7~14DB0~DB7数据线
15、16CS1、CS2左、右半屏选择
17RET复位,低电平复位
18VoutLCD驱动负压,-10V,分压接3脚
19、20EN、NO背光电源

显示屏由128×64点阵组成,共有64行,分为8页,每页8行,每行128列。写指令规则如下:当D/I=0、R/W=0,所有指令由传输到数据线的8位二进制数据决定,开显示为0x3f,并显示为0x3e,传输行、列地址由2低6位决定,传输页地址为低3位决定。

2 三种接口设计

2.1 直接连接法

连接框图如图1所示。

该种方式占用GPIO口较多,对于要大量应用GPIO口复用功能的系统并不合适。为便于说明,图1将LPC210X的P0.0~P0.12选为连接的13个口,具体到设计系统中,可根据系统用到功能对应GPIO口复用功能进行选取和配置。HS12864-16A的数据线为8条,所以存在于Flash中的字模也是按8位存的,可由字模软件得出,传输数据进行显示的时候要满足以下时序:首先使D/I为高电平,R/W为低电平,接着将Flash里的某个8位二进制字模传送到8个I/O口上,然后使能E模拟下降沿时序,把数据锁存到液晶显示器内部的显示存储器中即可显示。

程序由ADS1.2编译器编译。

GPIO口配置:

#define LCD_DI 0x00000100 ;指令选择线P0.8

#define LCD_RW 0x00000200 //读写选择线P0.9

#define LCD_E 0x00000400 //使能线P0.10

#define LCD_CS1 0x00000800 //左屏选择线P0.11

#define LCD_CS1 0x00000800 //左屏选择线P0.11

#define IO_USE 0x00001FFF //13个GPIO口传输方向

传输字模数值到液晶显示器数据上的子程序如下:

void SendData(unsigned char date){

IOSET=data;

IOCLR=~data&0x000000FF;

}

备注:以上子程序为并行传输,也可以用串行移位进行传输,具体代码如下:

unsigned char i;

for(i=0;i<8;i++){ //依次发送8位数据

if((data&0x80)!=0) //最高位为1,对应口线置1

IOSET=IO_TURN;

Else

IOCLR=IO_TURN; //否则置0

data<<=1; //移到下一数据线

}

IO_TURN=0x00000080; //8位数据传输完毕后,仍然将P0.7设为起始线

}

下面以左半屏来说明如何在屏幕上任意显示16×16点阵汉字。

传送指令子程序如下:

void wcodel(unsigned char code){ //送指令

IOSET=LCD_CS1; //开左屏

IOCLR=LCD_CS2; //关右屏

IOCLR=LCD_RW; //写选择

IOCLR=LCD_DI; //指令选择

SendData(code); //依次将指令代码传到数据线上

IOSET=LCD_E; //模拟使能E下降沿

IOCLR=LCD_E;

}

同理,只要把IOCLR=LCD_DI改为IOSET=LCD_DI便成传送数据了。为便于区分,可将函数名改为wdata1(data)。

显示左屏汉字子程序如下:

void hzleft(unsigned char page,unsigned charrow,unsigned char number){ //形参分别为页、列、汉字序号

unsigned char i,j;

wcode1(0xc0); //设置12864从第1行显示

wcode1(0x3f); //开显示器

for(j=page;j<page+2;j++){

wcode1(row); //设置显示列

wcode1(0xb8+j); //设置显示页

for(i=16*(j-page);i<16*(j+1-page);i++)//依次取字模传输

wdata1(hangzi[32*a+i]);

}

}

每个汉字字模由32个字节组成,前16个字节显示汉字上半部分,后16个字节显示汉字下半部分,构成完整的16×16点

[1] [2]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:基于VW2010芯片的嵌入式多媒体监控系统压缩/解压卡设计 2

  • 下一篇文章:数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010
  • 返回上一页】【打 印】【关闭窗口
    中查找“ARM微控制器LPC210X的LCD接口技术”更多相关内容 5VAR论文频道
    中查找“ARM微控制器LPC210X的LCD接口技术”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››ARM微控制器LPC210X的LCD接口技术
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .