MSP430与图形液晶显示模块接口应用

发布者:JoyfulHarmony最新更新时间:2021-03-30 来源: eefocus关键字:MSP430  图形液晶显示  模块接口 手机看文章 扫描二维码
随时随地手机看文章

概述


MSP430F149是德州仪器公司最近推出的MSP430系列超低功耗控制器中的一种,电源电压范围为1.8V至3.6V,可以用电池工作,而且使用时间长,适用于电池供电的手持设备使用。另外,液晶显示器具有功耗低、体积小、重量轻等特点,图形LCD除了显示字符、数字外,还可以显示汉字、图形、曲线等LED无法显示的功能,用途广泛。因此以MSP430为核心的LCD在智能仪器仪表和低功耗电子产品行业有广泛的发展前途。


本文在简单介绍液晶显示器LM12864FBC的驱动器KS0108B和KS0107B的结构和功能基础上,介绍了MSP430F149的LCD硬件接口和软件编程特点。


硬件设计


KS0108B的接口信号


KS0108B和KS0107B是LM12864FBC的共同驱动芯片,其中KS0107B是公共行驱动芯片,KS0108B是通过它产生的时序控制的。二片KS0108B是列驱动及控制芯片,KS0108B与微处理器的接口信号如下:

DB0-DB7:数据总线;

CSA、CSB:芯片选择信号A、B,CSA(B)=1,选通列驱动左、右半部分,CSA(B)=0,不选通列驱动左、右半部分;

D/I:D/I=1操作数据,D/I=0操作指令代码;

R/W:R/W=1读操作,R/W=0写操作;

E:输入使能。


LM12864FBC模块的引脚说明


MSP430F149与LM12864FBC接口电路


本液晶显示模块是128 64的LCD,利用P3.0-P3.4作为LCD的CSA、CSB、D/I、R/W和E的控制线,P4为LCD的数据线。由于MSP430的I/O口都是复用端口,因此必须将用到的引脚设为输入/出口。此外,MSP430是3.3V供电,而LCD是5V驱动的。


软件设计


KS0108B指令集


KS0108B一共有七条指令,从作用上可分为两类。第一条和第二条指令为显示状态设置类;其余指令为数据读/写操作指令。


LM12864FBC的软件编程

(1)读液晶显示器状态子程序

void lcdstate(int cs) //cs代表液晶的边csa,csb

{

int csflag;

P4DIR=0x00;//P4口为输入口

while(1)

{ if(cs==1)

{P3OUT|=BIT0;

P3OUT&=~BIT1;

P3OUT&=~BIT2;

P3OUT|=BIT3; //CSA=1,CSB=0,D/I=0,R/W=1,以便读液晶状态

}

else

{ P3OUT&=~BIT0;

P3OUT|=BIT1;

P3OUT&=~BIT2;

P3OUT|=BIT3; //CSA=1,CSB=0,D/I=0,R/W=1,以便读液晶状态

}

P30UT&=~BIT4;

delay(3);

P30UT|=BIT4;

delay(3);

P30UT&=~BIT4; //E信号低-高-低满足时序要求

csflage=P4DIR&0x80;

if(csflag=0) break;//若液晶空闲,停止等待

}

}


(2)对液晶显示器发指令子程序

void transport(trans,cs) //该函数采用形参和实参传送数据,trans为一个形参

int trans,cs;

{

lcdstate(cs);//判断液晶是否忙?

P4DIR= 0xFF;//P4口为输出口

delay(3);

if(cs==1)

{P3OUT|=BIT0;

P3OUT&=~BIT1;

P3OUT&=~BIT2;

P3OUT&=~BIT3; //CSA=1,CSB=0,D/I=0,R/W=0,以便写入指令

}

else

{ P3OUT&=~BIT0;

P3OUT|=BIT1;

P3OUT&=~BIT2;

P3OUT&=~BIT3;//CSA=0,CSB=1,D/I=0,R/W=0,以便写入指令

}

P4DIR=0xFF|trans; //需要写入的命令字送数据线

P30UT&=~BIT4;

delay(3);

P30UT|=BIT4;

delay(3);

P30UT&=~BIT4; //E信号低-高-低满足时序要求

}


(3) 写数据子程序

void wdata(write,clmadd,cs) //write为需写入的数据,clmadd为列地址

int write,clmadd,cs;

{ transport(clmadd,cs);//设置列地址

lcdstate(cs) ;//判断液晶是否忙?

P4DIR= 0xFF;//P4口为输出口

delay(3);

if(cs==1)

{P3OUT|=BIT0;

P3OUT&=~BIT1;

P3OUT|=BIT2;

P3OUT&=~BIT3; //CSA=1,CSB=0,D/I=1,R/W=0,以便写入要显示的数据

}

else

{ P3OUT&=~BIT0;

P3OUT|=BIT1;

P3OUT|=BIT2;

P3OUT&=~BIT3; //CSA=1,CSB=0,D/I=1,R/W=0,以便写入要显示的数据

}

P4DIR=0xFF|write; //需要写入的命令字送数据线

P30UT&=~BIT4;

delay(3);

P30UT|=BIT4;

delay(3);

P30UT&=~BIT4; //E信号低-高-低满足时序要求

}


(4)开,关,清屏子程序

void dison(cs) //显示开(关)

int cs;

{ int csflage;

while(1)

{transport(0x03e,cs);//发送控制命令,若关显示则为transport(0x03f,cs)

lcdstate(cs);

P4DIR=0x00;//P4口为输入口

while(1)

if(cs==1)

{P3OUT|=BIT0;

P3OUT&=~BIT1;

P3OUT&=~BIT2;

P3OUT|=BIT3; //CSA=1,CSB=0,D/I=0,R/W=1,以便读液晶状态

}

else

{ P3OUT&=~BIT0;

P3OUT|=BIT1;

P3OUT&=~BIT2;

P3OUT|=BIT3; //CSA=1,CSB=0,D/I=0,R/W=1,以便读液晶状态

}

P30UT&=~BIT4;

delay(3);

P30UT|=BIT4;

delay(3);

P30UT&=~BIT4; //E信号低-高-低满足时序要求

csflage=P4DIR&0x80;

if(csflag=0) break;//若液晶空闲,停止等待

}

}

void clear(int cs) //清屏子程序

{ int pagenum,pageadd,clmadd,clmsum;//定义局部变量

for(pagenum=0x08,pageadd=0x0b8;pagenum>0;pagenum--,pageadd++)

{ transport(pageadd,cs);

for(clmsum=0x40;clmsum<0x7f;clmsum++)

{lcdstate(cs) ;//判断液晶是否忙?

wdata(0x00,clmsum,cs);

}

}

}


有了上述各子程序后,就可以在显示屏上任意位置显示汉字、字符、数字和其他图形。


结束语

上述部分只是我们在开发输电线测量变频电源系统时使用的显示模块部分,已经在MSP430仿真器fet_r304上调试通过,在整个系统中效果不错。本系统体积小、功耗少、接口简单,值得在智能仪器仪表和低功耗电子产品行业推广。

关键字:MSP430  图形液晶显示  模块接口 引用地址:MSP430与图形液晶显示模块接口应用

上一篇:嵌进式RTOS在MSP430单片机上的实现
下一篇:如何来为MSP430单片机加密?

推荐阅读最新更新时间:2024-11-03 12:56

MSP430单片机——定时器
昨天调了MSP430单片机的定时器,犯了个比较傻的错误。 定时器有四种模式,停止模式,增模式,连续模式,增减模式。 定时器中断也有四个,CCR0,CCR1,CCR2及溢出中断,四个。 在学习过程中,我想用下溢出中断,然后定时器又设置在了增模式,因为不希望产生比较/捕捉中断,就没有设置CCR0,原本的想法是不设置CCR0,那么定时器就会自动计数到0xFFFF后产生溢出重新计数。结果程序没有这样想象的执行。定时器进不了溢出中断。最后才发现,如果定时器工作在了增模式,那么就一定要设置CCR0,因为不论是比较中断还是溢出中断,都是定时器的计数值与CCR0相关,此时的溢出中断,也是定时器计数到CCR0,然后产生溢出,又重新开始计数。 然
[单片机]
<font color='red'>MSP430</font>单片机——定时器
MSP430与PCF8576驱动程序(可以借鉴IIC的使用方法)
#i nclude msp430x14x.h #define uint unsigned int #define uchar unsigned char #define Num_of_Results 8 unsigned int results ; uchar PCF8576=0x70;//器件地址 //内存数据定义 uchar ByteCnt; //I2C 数据字节计数器 uchar SlvAdr; //被控器地址 uchar SubAdr; //被控器单元地址 uchar XmtDat ; //发送数据缓冲区 uchar MODE2=0xCD; uchar B
[单片机]
MSP430G2553默认的MCLK、SMCLK、ACLK时钟频率
摘要:   本文将介绍如何从手册中查找出G2553各个时钟的默认时钟频率,以及使用定时器中断方法测出各个时钟频率。实验所用平台是MSP-EXP430G2 LaunchPad,MCU为MSP430G2553。 1、查阅datasheet。   手册原文:After a PUC,MCLK and SMCLK are sourced from DCOCLK at ~1.1Mhz (see the device-specific data sheet for parameters) and ACLK is sourced from LFXT1CLK in LF mode with an internal load capacita
[单片机]
<font color='red'>MSP430</font>G2553默认的MCLK、SMCLK、ACLK时钟频率
MSP430F1611上 实现周期图谱分析及校正
引 言 基于FFT的频谱分析方法可以从含有噪声的信号中提取有用的信息,在仪器仪表的数据处理中具有重要的应用价值。为了保证频谱分析的精度,往往进行多点的FFT运算,例如,1024点、2048点等,这样运算量大、所占内存也大,只有采用DSP(数字信号处理器)才能实现实时的处理。目前,在工业现场普遍使用的两线制、低功耗自动化仪表,由于仪表本身消耗电流必须控制在4 mA之内,所以无法采用DSP等运算能力强的芯片,只能采用低功耗单片机;而低功耗单片机的运算速度和内存容量都很有限,所以,至今未见用其进行多点数FFT运算的报道。为了能够用低功耗单片机实时做FFT运算,以提高自动化仪表信息处理的能力,我们用汇编语言编制FFT程序,在程序中用定点
[测试测量]
在<font color='red'>MSP430</font>F1611上 实现周期图谱分析及校正
MSP430F169(二)——UART波特率
串口通信 1. 什么叫串口 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。 与并行接口相比,其优点也非常明显: 成本低,最少需要一根线就可以完成传输; 没有数据的相互干扰,误码率相对较低; 缺点:传输速率相对较低。 2. 串口如何建立通信 对单片机有所了解的人都应该知道,串口通信是通过调配单片机内部的寄存器来控制速率。而MSP430F169内部最重要的几个配置无非是波特率的设置和多机通信。 2.1什么是波特率 在讲波特率之前我们要区分两个概念:波特率和比特率。 比特率: 比特率是指每秒传送
[单片机]
<font color='red'>MSP430</font>F169(二)——UART波特率
S7-200的常见接口模块有哪些
S7-200的接口模块主要有数字量I/O模块、模拟量I/O模块和通信模块。下面分别介绍这些模块。 (一)数字量I/O模块 数字量I/O模块是为了解决本机集成的数字量输入/输出点不能满足需要而使用的扩展模块。S7-200PLC目前总共可以提供3大类,共9种数字量I/O模块。 1.EM221数字量输入扩展模块 8DI,DC24V(直流输入) 2.EM222数字量输出扩展模块 8DO,DC24V(直流输出) 8DO,Relay(DC24V/ AC24~230V)(继电器输出) 3.EM223数字量混合模块 4DI(DC24V),4DO(DC24V/2A) 4DI(DC24V),4DO(Relay 2A) 8DI(DC24V),8DO
[嵌入式]
MSP430——UART(四)
最近由于在做去年送药小车国赛题,需要使用到MSP430和OPENMV之间的通信,故着手看看MSP430的串口模式。 第一步:IO口配置 我使用的这款芯片是MSP430F5529,他的TX端设置在P3.3,RX端设置在P3.4,故首先第一步开启两个IO口的输入。 //P3.3 = USCI_A0 TXD GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P3, GPIO_PIN3|GPIO_PIN4 ); 第二步:串口配置 USCI_A_UART_initParam param1 = {0}; param1.selectClockS
[单片机]
<font color='red'>MSP430</font>——UART(四)
基于MSP430的多探头核辐射剂量率仪研制
摘要:为满足核辐射探测仪便携化,智能化的要求,探讨了以MSP430F169单片机为核心的多探头核辐射剂量率仪的软硬件实现方法。在介绍了整个系统的基础上,对仪器设计中的关键问题进行了详细说明,重点讨论了通过单片机给多个探头供高压电的原理和分别连接多个探头后数据传输的实现方法,并给出了单片机外围电路的原理图。试验证明,该仪器完全可以用于核辐射探测领域,且具有小型化、数字化、低功耗等优点。 关键词:MSP430;便携化;智能化;核辐射;多探头 目前国内的辐射防护仪表无论是便携式的还是固定监测式的仪器都是采用一个探头对应一个主机的形式,而国外已经有多个探头对应一个主机的机型,这种多探头辐射测量仪具有的最大优势就是在主机不变的情况下只需
[单片机]
基于<font color='red'>MSP430</font>的多探头核辐射剂量率仪研制
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved