将LCD仿真器与MAX-IDE和IAR嵌入式工作台开发环境配合使用

描述

本应用笔记介绍如何在MAX-IDE和IAR嵌入式工作台上使用LCD仿真器,并说明如何创建LCD存储器图和LCD显示面板。本文假设读者了解MAXQ20内核,并且知道MAX-IDE和IAR嵌入式工作台。在本应用笔记结束时,用户将了解LCD仿真器在两种开发环境中的工作原理。

介绍

LCD模拟器是在Windows平台上开发的,其GUI模拟LCD控制器的数字行为,而不是模拟行为。

概述

LCD模拟器模拟LCD控制器的数字属性,包括:静态、1/2多路复用、1/3多路复用和1/4多路复用显示模式;启用/禁用液晶屏操作;并使用显示内存模式更新液晶屏。LCD模拟器忽略模拟属性变化,包括:LCD驱动电压变化,显示对比度调整,帧频效果。

LCD模拟器需要两个输入:

LCD段配置,用于静态,1/2,1/3和1/4显示模式

用于静态、1/2、1/3 和 1/4 显示存储器的 LCD 引脚配置

液晶显示器模拟器的开发环境设置

LCD模拟器可用于两种环境,即MAX-IDE和IAR嵌入式工作台。

MAX-IDE设置
某些MAXQ设备是在MAX-IDE安装过程中配置和安装的。您可以从“设备→选项”菜单中获取这些设备的列表。在这些器件中,MAXQ2000和MAXQ3210具有LCD控制器外设。按照以下步骤创建用于模拟的项目。®

创建一个项目。此过程在MAX-IDE仿真器上的应用笔记3905(见上文)中进行了说明。

添加用于测试 LCD 控制器功能的文件。文件代码如表 1 所示。

选择器件→MAXQ2000→确定

在“设备”菜单下,单击“LCD 模拟器”,将显示 LCD GUI,如图 1 所示。

IAR IDE 设置
在IAR嵌入式工作台安装过程中,一些MAXQ器件的DDF(设备描述文件)、SFR和ROM文件安装在$TOOLKIT_DIR$config目录下。按照以下步骤创建用于模拟的项目。

创建一个项目。IAR编译器的应用笔记3378(见上文)对此过程进行了说明。

添加用于测试 LCD 控制器功能的文件。代码如表 2 所示。

打开项目→选项并转到C Spy调试器面板。

从显示的选项中选择设备模拟器

选择要模拟的设备的 ddf 文件。在此示例中,文件是 $TOOLKIT_DIR$config 下的 maxq200x.ddf。

如果程序是汇编程序,请取消选中“运行到主”选项并选中库中的XLINK→包括→忽略C STARTUP

选择要仿真的器件的实用程序ROM例程(.hex),即maxq200x.hex

确定

按调试以调试程序。

模拟的外围设备可以在“视图菜单”选项下看到。

选择液晶屏外设,液晶屏GUI将显示如图1所示。

下面列出了LCD GUI快照以及MAX-IDE和IAR中包含的汇编文件:

存储器

图1.液晶模拟器图形用户界面。

存储器

以上源代码可供下载。

 

存储器

以上源代码可供下载。

使用 LCD 模拟器

如上所述,LCD 模拟器依赖于两个 XML 输入文件:

分段配置文件

引脚配置文件

段配置文件

此文件将 LCD 显示面板的类型定义为 7 段或字母数字。用户可以通过编辑XML文件来设计LCD显示类型。该文件将每个段详细说明为静态、1/2 复用器、1/3 多路复用器和 1/4 多路复用器的线条或点或任何其他形状(线条的所有倍数)。如果没有此输入文件,LCD 模拟器将不会更新 GUI。

引脚配置文件

每个带有LCD外设的MAXQ控制器都有不同的引脚配置,为静态、1/2多路复用器、1/3多路复用器和1/4多路复用器分配不同的引脚号。此外,一些段引脚多路复用,具有两种不同的功能:

I/O 功能

外部中断,I/O 具有低优先级,外部中断具有较高优先级。

选择MAXQ2000器件后,这两个文件将自动加载到MAX-IDE环境中。或者,您可以在 IAR 的 maxq200x.sfr 文件中的 [LCDConfigFiles] 选项下提供这些文件,如下所示:

[LCDConfigFiles]
配置文件 = configlcd_config.xml
PinConfigFile = configlcd_pin_config.xml

用户可以使用 GUI 的“文件→打开”选项覆盖这些文件。

LCD寄存器及其仿真

LCD 寄存器调整 (LCRA):选择一种显示模式:静态、1/2 多路复用器、1/3 多路复用器和 1/4 多路复用器。对此寄存器的更改将反映在液晶屏 GUI 的状态栏上。

LCD 配置寄存器 (LCFG):每个位设置和 GUI 状态描述如下:

 

 

位设置 图形用户界面更改
DPE = 1 显示:开
DPE = 0 显示:关闭
OPM = 1 OPM:正常
OPM = 0 OPM:挂起

 

LCDDx 寄存器:当 DPE = 0/1 时,可以更新 LCDDx 寄存器。当 DPE = 1 且 OPM = 1 时,LCDDx 寄存器的内容将在 GUI 上更新。红色表示来源的液晶屏;黑色表示存在但当前未采购的液晶屏。液晶屏不是来源的,可能由以下几个因素造成:

LCFG寄存器的PCFx位不是SET,这使得SEG引脚用作I/O引脚。

具有中断功能的多路复用的LCD SEG引脚使能。

LCDDx 寄存器在该位位置包含 0。

在显示屏上移动 PC 鼠标会更新 COM 和 SEG。

示例程序的 GUI 更改

MAXQ2000提供三种不同的引脚排列封装:56、68和100引脚。测试程序(见上表1和表2)测试MAXQ2000 68引脚封装的功能。从器件编号列表中选择MAXQ2000 68引脚配置,然后执行测试程序。请注意 GUI 更改。

 move LCRA,        #08FFh      : Mode: 1/2 Mux 
    move LCFG.0,      #0h        : Display: OFF
    move LCFG.1,      #01h       : OPM: Normal 
    move LCFG.4,      #01h       : PCF0: Configures I/O pins as segment pins
    move LCFG.5,      #01h       : PCF1: Configures I/O pins as segment pins
    move LCFG.6,      #01h       : PCF2: Configures I/O pins as segment pins
    move LCFG.7,      #01h       : PCF3: Configures I/O pins as segment pins

    move EIE0.7,      #01h       : Enables Interrupt Function of INT7, Comment
                                 : /uncomment to see the MUX behavior of SEG pins

显示图案从LCDD0寄存器移动到LCDD8寄存器。1 表示要源的段,0 表示不会源的段。

  move LCFG.0,       #1h          : Display: ON

禁用 EIE0.7(注释移动 EIE0.7,#01h)并执行“移动 LCFG.0, #1”语句后,GUI 显示将如图 3 所示。

存储器

图2.MAXQ2000 64针液晶面板

执行后

move LCD0, #0ffh
move LCD1, #0ffh

GUI 将如下所示:

存储器

图3.MAXQ2000 64引脚LCD面板显示随DPE = 1而变化。

您会注意到,不同之处在于 COM0:SEG2、COM0:SEG3、COM0:SEG6 和 COM0:SEG7 的颜色从黑色变为红色,这表明 LCD 是来源的。

启用 EIE0.7(SEG31 与 INT7 多路复用)后,GUI 将如下所示:

存储器

图4.MAXQ2000 64引脚LCD面板,带SEG多路复用INT模块。

将图 2 与图 4 进行比较。COM0:SEG31 和 COM1:SEG31 不是作为 LCD 段采购的。

:用户可以设计/修改LCD显示面板和LCD模拟器的MAXQ引脚输入。XML 输入文件可以在任何编辑器中打开,使用的 XML 标记名称是不言自明的。

结论

MAXQ器件仿真器可用于开发和调试MAXQ10和MAXQ20微控制器的LCD仿真器。然后,开发的应用程序就可以在硬件上运行了。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分