基于单片机设计微功耗中文人机界面

发布者:真实幻想最新更新时间:2013-07-03 来源: dzsc关键字:MSP430  单片机  人机界面 手机看文章 扫描二维码
随时随地手机看文章
    在现代便携式智能仪器或手持设备中,中文人机界面成为一种事实上的行业标准。能显示汉字的图形点阵液晶和可输入数字的小键盘已成为智能设备必不可少的组成部分。同时作为便携式设备基本要求的低功耗特性也贯穿于中文人机界面的设计始终。

  这种低功耗中文人机交互界面需要设计者在选取MCU和具体元器件上有特殊考虑。微功耗、小体积应作为选择相关器件的首要要求。

  设计中,笔者采用MSP430F149单片机作为系统的MCU,通过选择合适的液晶显示模块在3V电平构建了一个低功耗的中文人机界面。此中文人机界面构成了微功耗数据采集系统的重要组成部分。

一、MSP430系列FLASH型单片机的微功耗特点
  德州仪器公司(TI)推出的MSP430F14x系列是超低功耗Flash型16位RISC指令集单片机。它采用"冯-纽曼"结构,RAM、ROM和全部外围模块都位于同一个地址空间内。其具有丰富的片内外围,性价比极高。

  MSP430F14x系列是TI的MSP430F1x系列(FLASH存储器型)单片机中功能最强大的子系列。F14x具有更大的程序和数据存储区、更多的外围模块,其片内甚至还包括一个硬件乘法器。同时F14x系列单片机开发工具简便,固化于FLASH存储器内的程序易于在线升级和调试,非常适合于开发消费类便携式电子产品。

  MSP430F14x单片机集中体现了现代单片机先进的低功耗设计理念。其设计结构完全以系统低功耗运行为核心。

  这种低功耗结构具体体现在以下四点:

(1)高集成度的完全单片化设计。
  将很多外围模块集成到了MCU芯片中,增大硬件冗余。内部以低功耗、低电压的原则设计,这样系统不仅功能强、性能可靠、成本降低,而且便于进一步微型化和便携化。

(2)内部电路可选择性工作。
  F14x单片机可以通过特殊功能寄存器选择使用不同的功能电路,即依靠软件选择其中不同的外围功能模块,对于不使用的模块使其停止工作,以减少无效功耗。

(3)具有高速和低速两套时钟。
  系统运行频率越高,电源功耗就会相应增大。为更好地降低功耗,F14x单片机可采用三套独立的时钟源:高速的主时钟、低频时钟(如32.768kHz)以及DCO片内时钟。可在满足功能需要的情况下按一定比例降低MCU主时钟频率,以降低电源功耗。在不需要高速运行的情况下,可选用副时钟低速运行,进一步降低功耗。通过软件对特殊功能寄存器赋值可改变CPU的时钟频率,或进行主时钟和副时钟切换。

(4)具有多种节能工作模式。
  F14x单片机具有五种节能模式:LPM0、LPM1、LPM2、LPM3、LPM4。这五种模式为其功耗管理提供了极好的性能保证。图1显示了活动状态(AM)与各种节能模式下消耗的实际工作电流大小。


图1 F14x的工作模式与工作电流关系

  由于MSP430F14x系列是专为超低功耗的便携式应用开发的。利用先进的集成电路技术和生产工艺,其功耗已经跨越了毫安级,真正进军到了微安级。

  不仅如此,F14x的软件结构也针对低功耗而设计。如从备用模式唤醒MCU仅需6μS。其中断和子程序调用无层次限制,这种丰富的中断能力减少了系统查询的需要,可以方便地设计出中断程序结构的控制程序。

  利用F14x系列单片机,可以方便地构建一个低电压的工作平台。通过各功能模块的智能运行管理和MCU的节能模式相结合,可以解决运行速度、数据流量与低功耗设计的矛盾,将各功能模块的电流消耗降至最低状态,限制活动状态至最低要求。经过这样优化,可以实现单片机的极低功耗。如在1MHz工作频率下,F14x只消耗0.1~400μA电流(1.8~3.6V供电),如1.8V供电时,执行时仅消耗160uA的电流,备用时0.1uA,这时RAM中的数据还能有效保持。

  概括来说,MSP430F14x单片机具有极低的功耗、强大的处理能力、丰富的片上外围模块,方便高效的开发方式。

  本系统采用的MSP430F149单片机,是F14x系列中功能最强大的一款。它具有一个硬件乘法器、6个I/O端口(每个有8个I/O口)、1个精确的模拟比较器、2个具有捕捉/比较寄存器的定时器、8路12位A/D转换器、片内看门狗定时器、2个串行通信接口和60KB的FlashROM,2KB RAM。

  F149还具有强大的扩展功能,其具有48个I/O引脚,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使得功能口和通用I/O口可以复用,大大增强了端口功能和灵活性,提高了对外围设备的开发能力。

  MSP430F149的以上特点,使其非常适合于构成一个全功能的便携式单片机应用系统。

二、液晶显示模块与接口电路
  图形点阵式液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。支持汉字显示的图形点阵液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是图形点阵液晶。它与行列式小键盘组成了现代单片机应用系统中最常用的人机交互界面。

  采用图形点阵式液晶显示较之其它显示方式主要有以下优点:
(1)工作电压低、功耗极低。工作电压3~5V,工作电流≤10uA/cm2,特别适用于便携式的仪器仪表中。
(2)液晶显示属被动显示,受外界光线干扰小。
(3)图形点阵式液晶可显示的信息量大,分辨率高。
(4)不产生电磁干扰。
(5)可靠性高。使用寿命长。

  在设计中,笔者采用了信利(TRULY)公司的MG-12232液晶显示模块。MG-12232模块供电电压的典型值为3V,工作电流的典型值为0.3mA,很适合本系统3V电平的低功耗环境。其可显示范围为122×32点阵,即能实现所谓的"双排汉显"。MG-12232采用的控制器是两片SED1520,一片SED1520控制器可以驱动16行×80列。SED1520控制器可以在3V逻辑下正常工作,因而避免了与MSP430单片机逻辑电平不匹配的问题。其具体结构框图见图2。 [page]


图2 SED1520的引脚定义和结构框图

  SED1520控制器作为液晶显示屏与MCU的接口,它直接驱动MG-12232液晶,控制字符、汉字以及图形的显示。由于MSP430F149具有48个I/O引脚,借助SED1520,可以直接利用MSP430的I/O口模拟液晶的读写和控制时序。使得MCU对液晶的操作实际上变为MCU对液晶显示控制器SED1520的操作,因而接口电路的的硬件连接和软件编程都简单了很多。

  图2中"V5"引脚提供MG-12232液晶的对比度电压,可以通过一个-12V电压发生电路(如MAX765)产生,经一个100K电位器分压后即可使用。

  MCU可以通过SED1520的一些控制引脚和13条常用指令来访问液晶显示模块。如"RST"用于重启动SED1520,"E1"和"E2"分别用于使能两片SED1520。"R/W"控制对SED1520的读或写。"A0"决定此次操作是指令读写还是数据读写。

  一个SED1520显示控制器能控制80×16点阵液晶的显示,其显示RAM共16行,分2页,每页8行,每一页的数据寄存器分别对应液晶屏幕上的8行点。当设置了页地址和列地址后就确定了显示RAM中的唯一单元。屏幕上的每一列对应一个显示RAM的字节内容,且每列最下面一位为MSB,最上面一位为LSB,即该RAM单元字节数据由低位到高位的各个数据位对应于显示屏上某一列的由高到低的8个数据位。对显示RAM的一个字节单元赋值就是对当前列的8行(一页)像素点是否显示进行控制。

  如图3,MSP430F149单片机的P5口用作与液晶显示模块通信的数据口。


图3 MSP430F149与MG-12232的电路连接示意图

  MG-12232显示模块有多个型号,不同型号都采用相同的SED1520控制器,操作及使用方法完全相同,只是尺寸不同。常用的如MG-12232-5(76×29.1×5.7mm)、MG-12232-6(45.05×22.32×6.3mm)、MG-12232-7(84×44×10mm)等,可以分别用在大小不同的便携式仪器或设备上。

  对液晶显示模块还需着重考虑其背光类型,不同的背光类型消耗电流大不相同。一般可选的背光类型有LED(发光二极管)、EL(电致发光灯)以及CCFL型(冷阴极灯管)。EL是一种面发光的冷光源,在结构上可以做得很大很薄,虽然亮度较低,但发光非常均匀而且无光斑,尤其是功耗很低。缺点是需要一个高压交流电压来驱动,故需要一个专门的电压变换电路(如IMP803)。CCFL照明面积更大,适用于需要大面积液晶显示界面的仪器或设备中。

三、键盘接口
  MSP430F149的P1、P2口除了支持输入、输出以外,还支持硬件中断。P1、P2口的8个引脚都有各自的控制寄存器,每个引脚可以单独控制,并且每个引脚都可以作为中断源,每一引脚都可以单独选择中断触发沿,单独允许中断。P1、P2口各使用一个中断向量,P1.0~P1.7产生同一个中断,P2.0~P2.7也产生同一个中断。P1、P2口的这种结构非常适合实现基于中断的键盘输入响应程序。

  本系统中使用2×2的行列式键盘。键盘程序采用行扫描法。即P1.0、P1.1接两根列线,列线定义为输出口,P1.2、P1.3接两根行线,行线定义为输入口。两根行线需接10K上拉电阻。

  基于对系统低功耗要求的考虑,键盘输入响应程序应设计为中断方式运行的。即有键按下时,产生中断把MCU从休眠状态唤醒,并启动定时12ms的定时器,随后MCU又进入休眠状态。当定时器产生中断时再次将MCU从休眠状态唤醒,此时扫描键盘,若有键按下,则计算出键值,并执行该键值对应的功能程序。执行完该程序后,MCU再次进入休眠状态。

四、汉字显示的原理与部分程序实例

1、图形点阵液晶的汉字字模
  与在DOS中显示汉字不同的是,图形点阵液晶并不是简单地用画点的方式来描出汉字。直接从中文系统汉字字库中提取的汉字字模并不能直接在液晶上显示,通常都必须经过格式上的调整和转换。标准16点阵汉字(如希望汉字的HZK16)字模数据的排列形式如图4。

  由于一个SED1520显示控制器能控制80×16点阵液晶的显示,其显示RAM共16行,分2页,每页8行。连续16列相邻2页的32字节显示RAM就可以控制一个汉字的显示区域(如图5)。对这些显示RAM赋以相应值就可以显示出一个汉字。


  图4 标准汉字字模排列形式         图5 SED1520汉字字模排列形式

  由图4和图5所示可见,SED1520图形点阵液晶显示控制器汉字字模的排列顺序和方式与标准汉字字模完全不同。液晶字模数据可以通过对标准字模数据进行位运算后得到。

  实际编程中,具体汉字的液晶字模数据应存放在MSP430F149单片机的FLASH存储器中。

2、液晶显示器初始化流程
  在液晶显示信息之前,必须先对液晶进行初始化。

  初始化的流程如下:

  需注意,MG-12232模块内虽然一片SED1520控制器实际控制区域为61列,但清除显示RAM时,仍应按80个RAM单元清除。 [page]

3、部分程序实例
  程序是在MSP430单片机的开发平台IAR Embedded Workbench下采用汇编语言编写,仿真机采用了TI公司的MSP-FET430P410。

  由于本系统中选用了MSP430F149单片机,对源程序编译前需对IAR Embeded WorkBench平台进行以下设置:

A. 点击Project菜单下的Options…命令进入设置窗口,对左边Category框内的"XLINK"选项下的"Include"页面进行设置,把"XCL file name"框的内容设置为"C:\\Program Files\\IAR Systems\\ew23\\430\\icc430\\msp430F149A.xcl"。

B. 点击Project菜单下的Options…命令进入设置窗口,对左边Category框内的"C-SPY"选项下的"Setup"页面进行设置,把"Chip Description"框的内容设置为"C:\\Program Files\\IAR Systems\\ew23\\430\\cw430\\msp430F149.ddf"。

  以下给出了一些常量定义和发送命令字子程序(SEND_COM)、发送数据子程序(SEND_DATA)及液晶状态查询子程序(LCD_STE)的源代码。

#include       "msp430x14x.h"
;程序在液晶上显示"汉字液晶"。
;---------定义LCD的引脚
LCD_RST   EQU  04H    ;P4.2
LCD_E1    EQU  40H     ;P4.6
LCD_E2    EQU   20H    ;P4.5
LCD_RW    EQU   10H    ;P4.4
LCD_A0    EQU   08H    ;P4.3
;----------定义LCD使用的数据寄存器
LCD_PAGE   EQU   0200h          ;定义显示页面
LCD_ORDER  EQU   0201h          ;暂存液晶控制指令
LCD_DATA   EQU  0202h          ;暂存液晶数据
LCD_CNT   EQU   0203h           ;液晶计数存储器
LCD_ROW   EQU   0204h           ;存放列地址数据
LCD_LINE   EQU   0205h           ;存放行地址数据
LCD_CHAR   EQU   0206h           ;存放当前字符数据的首地址
LCD_BYTECNT EQU  0207h           ;存放要显示的字节数
LCD_STATUS  EQU   0208h          ;存放液晶当前状态的数据
SEND_COM  ;发送命令字子程序,以LCD_ORDER为入口参数
       BIS.B  #LCD_E1,&P4OUT        ;SET E1=1 ,使能CHIP1
       CALL  #LCD_STE
       BIC.B  #LCD_A0,&P4OUT        ;A0=0,SEND OUT INSTRUCTION
       BIC.B  #LCD_RW,&P4OUT       ;R/W=0,WRITABLE
       BIS.B  #0FFH,&P5DIR         ;SET P5 PINS OUTPUT
       MOV.B  LCD_ORDER,&P5OUT     ;SEND ORDER BYTE TO LCD
       BIC.B  #LCD_E1,&P4OUT       ;SET E1=0
       RET
;发送数据子程序,以LCD_DATA为入口参数
SEND_DATA  BIS.B  #LCD_E1,&P4OUT       ;SET E1=1
        CALL   #LCD_STE
        BIS.B  #LCD_A0,&P4OUT      ;A0=1,SEND OUT DATA
        BIC.B  #LCD_RW,&P4OUT     ;R/W=0,WRITABLE
        BIS.B  #0FFH,&P5DIR       ;SET P5 PINS OUTPUT
        MOV.B  LCD_DATA,&P5OUT    ;SEND DATA BYTE TO LCD
        BIC.B  #LCD_E1,&P4OUT     ;SET E1=0
        RET
;读液晶当前状态的子程序LCD_STE
LCD_STE   BIC.B  #LCD_A0,&P4OUT      ;A0=0,SEND OUTINSTRUCTION
        BIS.B #LCD_RW,&P4OUT      ;R/W=1,READABLE
        BIC.B  #0FFH,&P5DIR       ;SET P5 PINS INPUT
STE_AGN   MOV.B  &P5IN,LCD_STATUS    ;GET STATUS DATA FROM LCD
       BIT.B  #80H,LCD_STATUS     ;如状态存储器第7位为1,忙,则等待
       JC    STE_AGN
       RET

五、结束语
  本系统利用MSP430F149单片机、MG-12232图形点阵液晶模块和行列式键盘接口构建了基于3V电平的低电压、微功耗的中文人机界面。实际使用中,此人机界面消耗电流不足1mA,这种设计方案取得了很好的微功耗效果。

参考文献:

[1]. MSP430F149 datasheet http://www.dzsc.com/datasheet/MSP430F149_.
[2]. MSP430 datasheet http://www.dzsc.com/datasheet/MSP430_490166.html.
[3]. RISC datasheet http://www.dzsc.com/datasheet/RISC_1189725.html.
[4]. ROM datasheet http://www.dzsc.com/datasheet/ROM_1188413.html.
[5]. SED1520 datasheet http://www.dzsc.com/datasheet/SED1520_603299.html.
[6]. MAX765 datasheet http://www.dzsc.com/datasheet/MAX765_1058099.html.
[7]. CCFL datasheet http://www.dzsc.com/datasheet/CCFL_1862812.html.
[8]. IMP803 datasheet http://www.dzsc.com/datasheet/IMP803_404123.html.
[9]. HZK16 datasheet http://www.dzsc.com/datasheet/HZK16_391805.html.

关键字:MSP430  单片机  人机界面 引用地址:基于单片机设计微功耗中文人机界面

上一篇:基于MSP430F449的数据存储和USB串行通信实现
下一篇:基于单片机和DSP的被动声目标探测平台设计

推荐阅读最新更新时间:2024-03-16 13:26

单片机与嵌入式系统有什么区别与联系
  随着电子信息科学技术信息化,智能化,网络化的发展,单片机与嵌入式也获得了广阔的应用空间。本文简单分析了单片机与嵌入式系统的联系、组成结构对比等基础知识,并列举了几种适用于PIC18F系列单片机的几种嵌入式实时操作系统。   单片机与嵌入式系统组成结构对比   (1)单片机基本结构   单片机由运算器、控制器、存储器、输入输出设备构成。   (2)嵌入式系统成部分:   嵌入式系统一般由以下几组嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定的应用程序。   嵌入式系统设计的第一步是结合具体的应用,综合考虑系统对成本、性能、可扩展性、开发周期等各个方面的要求,确定系统的主控器件,并以之为核心搭建系统硬件平台。   单
[单片机]
<font color='red'>单片机</font>与嵌入式系统有什么区别与联系
AVR单片机教程——DAC
单片机的应用场景时常涉及到模拟信号。我们已经会使用ADC把模拟信号转换成数字信号,本讲中我们要学习使用DAC把数字信号转换成模拟信号。我们还将搭建一个简单的功率放大器电路,用DAC通过扬声器播放音乐。 SPI总线 集成DAC的单片机不多,ATmega系列就不在此列。我们将要使用的10位ADC是通过SPI总线通信的,因此我们先来学习SPI总线。 SPI是一种同步串行通信总线,支持全双工通信。所谓同步,就是有时钟信号,类似上一讲中的595和165,并且硬件实现上相似;所谓全双工,就是收发可以同时进行,事实上SPI的收发是必须同时进行的,不过你可以有选择地忽略其中一个。 一次SPI通信涉及到两个设备,分别是主机和从机。区分主
[单片机]
AVR<font color='red'>单片机</font>教程——DAC
如何设计一个以PIC单片机为核心的医用呼叫对讲系统
医用呼叫系统是病员需要获得护理或诊断时发出请求的呼叫工具,可将病员的请求快速传达给值班医生或护士,是提高医院护理水平的必需设备之一。它作为病员与护士及医生之间联系的桥梁,正日益显现出其实用性和优越性。它在提升医院的综合水平,提高服务质量和服务效率,解决因陪护引起的医患矛盾等方面扮演了相当重要的角色。早期的医用呼叫系统大多采用集中式结构,各个病房单独通过信号电缆和护士室相连,此类系统具有成本高、安装调试困难、故障率较高等缺点。 本文介绍了一种新型的呼叫系统,主机与病房分机均采用PIC系列单片机实现,主机和分机之间不采用计算机通信口连接,而是采用电源载波技术,通过主机向各分机提供的电源线实现数据通信和语音通信。整个系统安装简单、维
[单片机]
如何设计一个以PIC<font color='red'>单片机</font>为核心的医用呼叫对讲系统
STC89C52单片机的UART串行通信设计
对于单片机来说,通信则与传感器、存储芯片、外围控制芯片等技术紧密结合,成为整个单片机系统的“神经中枢”。 1、初步认识 一位一位的发送出去的,要发送 8 次才能发送完一个字节。 STC89C52有两个引脚是专门用来做 UART串行通信的,一个是 P3.0一个是 P3.1,它们还分别有另外的名字叫做 RXD和TXD,由它们组成的通信接口就叫做串行接口,简称串口。 波特率:发送二进制数据位的速率,习惯上用 baud 表示;即我们发送一位二进制数据的持续时间=1/baud。 通信过程:在UART 通信的时候,一个字节是 8 位,规定当没有通信信号发生时,通信线路保持高电平,当要发送数据之前,先发一位 0 表示起始位,然后发送 8
[单片机]
STC89C52<font color='red'>单片机</font>的UART串行通信设计
基于51单片机的室内甲醛测试系统
甲醛是一种具有刺激气味的无色气体,也是一种潜在的致癌物质,对人体健康有较大的危害,许多疾病的诱发都与甲醛有关,如哮喘,白血病等。甲醛浓度在每立方米空气中达到0.06-0.07mg/m3时,儿童就会发生轻微气喘。当室内空气中甲醛含量为0.1mg/m3时,就有异味和不适感。达到0.5mg/m3时,可刺激眼睛,引起流泪,它对人体健康的危害不容忽视。单片机具有通用性强、体积小、价格低、稳定可靠等突出优点,在智能产品、测控系统等领域得到广泛的应用。本文设计的测试仪可现场可直接显示甲醛浓度值。当其浓度值小于国家规定的标准值(可按键修改)时绿灯亮,可以入住,当超过规定的室内居住标准值时红灯亮开始报警提醒人们暂时不要入住。 1 硬件介绍
[单片机]
基于51<font color='red'>单片机</font>的室内甲醛测试系统
飞思卡尔微控制器可简化车身电子网络并减轻汽车重量
汽车行业正在快速变化,以应对复杂的挑战,包括增加网络带宽、提高数据安全性、实现功能安全和降低整体能耗等。飞思卡尔半导体正在扩展其 Qorivva 和 S12 MagniV 车身网络微控制器 (MCU) 组合,以应对这些挑战,并将汽车车身应用的集成和功能提高到一个新水平。 随着汽车中的电子控制单元数量不断增加,所需的连接数量也相应地增加了。普通汽车用于车载网络的铜线长达几英里,重达 150 磅,甚至更高。将更多功能集成到汽车的主要 ECU 里,并增加其卫星节点(即车门或电机中的模块)的智能,可减少 ECU 的数量及相关的布线数,减轻了汽车线束的重量,有助于改善汽车的燃油效率。 除了对环保型汽车的需求外,由于汽车车身模块支持的
[嵌入式]
恩智浦推出全球最小集成微控制器的单芯片SoC
为满足广阔的市场需求,恩智浦一直致力于扩展自己的8位微控制器系列产品,打造片上系统(SoC)便属于这个战略的一部分;该款SoC包含MOSFET前置驱动器,可提供超高电压性能,低物料(BOM)成本和高集成度 恩智浦半导体NXP Semiconductors N.V.(纳斯达克代码:NXPI)今天宣布推出全球最小的单芯片SoC解决方案——MC9S08SUx微控制器(MCU)系列,该超高压解决方案集成了18V至5V 低压差线性稳压器(LDO)和MOSFET前置驱动器,适合无人机、机器人、电动工具、直流风扇、健康保健以及其他低端无刷直流电机控制 (BLDC)应用。这一强大的的8位MC9S08SUx微控制器系列进一步拓展了恩智浦的S08 M
[单片机]
51单片机控制步进电机-让电机转起来
摘要: 本节介绍用简单的方式,让步进电机转起来。其目的之一是对电机转动有直观的感受,二是熟悉整个开发流程 本系列教程必要的51单片机基础包括IO口操作、中断、定时器三个部分,相关基础教程网上很多,可以自行学习 一、软件清单 需要用到的软件有keil5编译软件、STC程序烧录软件 二、控制原理 根据TB6600驱动器原理,向PUL口发送脉冲,每发送一个脉冲,电机就转一步。通过单片机延时的方式,切换PUL口电平产生脉冲,从而控制电机转动。 三、程序代码 //毫秒延时函数 void delay(unsigned int z) { unsigned int x,y; for(x=z;x 0;x--) for(y
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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