Rowley CrossWorks和MAXQ2000评估板入
[09-13 17:04:35] 来源:http://www.88dzw.com 控制技术 阅读:8614次
文章摘要:现在可以演示MAXQ2000评估板的一个更有用的性能,即复位(RESET)按钮。在MAXQ2000评估板的左下侧有一个标注为SW2和RESET的开关。按下此按钮,观察LCD屏。读数应该立即从0重新开始。该RESET按钮连接至MAXQ2000的复位引脚。如果需要重新启动应用程序,就按此按钮。 初始化MAXQ2000的LCD控制器MAXQ2000提供一个液晶显示(LCD)硬件控制模块,可运行在全偏压、1/2偏压和1/3偏压模式下,实现静态、x2、x3或x4复用显示方式。也就是说,在x4复用显示器上,MAXQ2000-RAX (COM0到COM3,SEG0到SEG32)上可专用于LCD驱动功能的37
Rowley CrossWorks和MAXQ2000评估板入,标签:计算机控制技术,工厂电气控制技术,http://www.88dzw.com现在可以演示MAXQ2000评估板的一个更有用的性能,即复位(RESET)按钮。在MAXQ2000评估板的左下侧有一个标注为SW2和RESET的开关。按下此按钮,观察LCD屏。读数应该立即从0重新开始。该RESET按钮连接至MAXQ2000的复位引脚。如果需要重新启动应用程序,就按此按钮。
初始化MAXQ2000的LCD控制器
MAXQ2000提供一个液晶显示(LCD)硬件控制模块,可运行在全偏压、1/2偏压和1/3偏压模式下,实现静态、x2、x3或x4复用显示方式。也就是说,在x4复用显示器上,MAXQ2000-RAX (COM0到COM3,SEG0到SEG32)上可专用于LCD驱动功能的37条线最多可驱动132个LCD段(33段X 4个公共信号)。每个打开的LCD段都需要连续的电压波形来驱动,该电压波形由连接该段的段线和公用信号线提供。驱动电压波形使各段按要求打开或关闭,而不会产生可能损坏LCD的直流偏压。MAXQ2000的LCD控制器在后台自动产生这些电压波形。也就是说,当LCD的显示段发生改变时,只需要修改LCD控制器的寄存器内容。
如上例,第一步是初始化用于控制显示的LCD控制器寄存器。
void initLCD(void) { LCRA = 0x03E0; // Set LCD configuration LCFG = 0xF3; // Set up all segments as outputs, normal operation // mode, and enable display. }LCRA寄存器控制3项重要功能:显示形式,本例中为静态;VADJ和地之间的可调电阻,用来修改显示对比度;以及LCD段驱动波形的频率。LCFG寄存器控制LCD控制器的开/关,并控制哪些两用引脚作为端口引脚使用,哪些用作LCD段。
向显示器写入数值
各LCD段分别由一个LCD控制显示寄存器的一位进行控制,与使用的LCD类型和多路复用方式无关。此位置高就打开(黑)该段;清除此位就关闭(透明)该段。我们的MAXQ2000评估板所用的LCD段与存储器映射关系,如图6所示。图6. LCD段与LCD显示存储寄存器位的映射关系
LCD的各位占用一个LCD显示存储寄存器,各个位的分布形式相同。因此,我们可以使用查找表,找到各位0到9的段寄存器值,并将该数值写到LCD显示寄存器。
#define LCD_PATTERN_0 0x03F #define LCD_PATTERN_1 0x006 #define LCD_PATTERN_2 0x05B #define LCD_PATTERN_3 0x04F #define LCD_PATTERN_4 0x066 #define LCD_PATTERN_5 0x06D #define LCD_PATTERN_6 0x07D #define LCD_PATTERN_7 0x007 #define LCD_PATTERN_8 0x07F #define LCD_PATTERN_9 0x067 int PATTERNS[] = { LCD_PATTERN_0, LCD_PATTERN_1, LCD_PATTERN_2, LCD_PATTERN_3, LCD_PATTERN_4, LCD_PATTERN_5, LCD_PATTERN_6, LCD_PATTERN_7, LCD_PATTERN_8, LCD_PATTERN_9 }; /****************************************************************************** * Returns the value that will need to be placed in one of LCD0-LCD3 to display * a digit 0-9. No bounds checking is done here. If you ask for a digit other * than 0-9, you will get a bogus display. */ int getLCDDigit(int digit) { return PATTERNS[digit]; }这些程序准备好后,我们可以采用以下方法,向显示器写入计数器值(4位,特殊情况下“1”对应第5位):
int show(int value) { if (value >= 10000) LCD4 = 0x40; else LCD4 = 0; LCD3 = getLCDDigit((value / 1000) % 10); LCD2 = getLCDDigit((value / 100) % 10); LCD1 = getLCDDigit((value / 10) % 10); LCD0 = getLCDDigit((value) % 10); return 0; }
去抖按钮输入
按钮SW4和SW5是本应用程序的另外两个人机交互元件,分别通过DIP开关部件SW6与端口引脚P5.2和P7.1相连。(RESET开关不需要编程支持,它直接与MAXQ2000低电平有效复位引脚连接)。所有MAXQ2000端口引脚(对应JTAG 接口的P4.0到P4.3除外)的上电缺省模式都为输入模式,端口引脚和VDDIO之间具有内部弱上拉。SW4和SW5开关的连接方式是当按下时将端口引脚拉到地,因此端口引脚已经是我们需要的配置方式了。端口引脚状态可以非常简单地通过检查端口引脚输入位(SW4为PI5.2,SW5为PI7.1)来获得;位值为0时表示按钮按下,为1时表示按钮松开。
上一页 [1] [2] [3] [4] [5] [6] 下一页
Tag:控制技术,计算机控制技术,工厂电气控制技术,控制技术
- 上一篇:MAXQ微控制器的中断编程
《Rowley CrossWorks和MAXQ2000评估板入》相关文章
- › Rowley CrossWorks和MAXQ2000评估板入
- 在百度中搜索相关文章:Rowley CrossWorks和MAXQ2000评估板入
- 在谷歌中搜索相关文章:Rowley CrossWorks和MAXQ2000评估板入
- 在soso中搜索相关文章:Rowley CrossWorks和MAXQ2000评估板入
- 在搜狗中搜索相关文章:Rowley CrossWorks和MAXQ2000评估板入
分类导航
最新更新