根据提供的文件信息,我们可以归纳出以下几个关键的知识点: ### 1. 12864 LCD 显示器介绍 12864 LCD 显示器是一种常用的字符与图形混合显示模块,具有128×64像素的分辨率,能够显示中文、英文字符以及自定义的图形。它广泛应用于各种嵌入式系统中,如手持设备、仪表盘等。 ### 2. MSP430X14X 微控制器简介 MSP430X14X 是德州仪器(TI)推出的一款超低功耗微控制器系列的一部分。该系列微控制器具有多种型号,支持不同的功能需求,特别适合于电池供电的便携式应用。本实例中的代码是在此微控制器上运行的。 ### 3. 12864 LCD 显示器控制指令 在代码中,可以看到对12864 LCD 显示器的一系列控制指令定义。例如: - `CLEAR_SCREEN`: 清除屏幕。 - `AC_INIT`: 初始化地址计数器(Address Counter)。 - `CURSE_ADD`: 设置光标位置。 - `FUN_MODE`: 设置功能模式,其中`FUN_MODE1` 和 `FUN_MODE2` 分别表示不同的显示模式。 - `DISPLAY_ON`: 开启显示器显示。 - `DISPLAY_OFF`: 关闭显示器显示。 - `CURSE_DIR`: 设置光标的移动方向。 - `SET_CG_AC`: 设置自定义图形区域的地址计数器。 - `SET_DD_AC`: 设置数据区地址计数器。 这些指令用于初始化显示器并控制其显示内容。 ### 4. 嵌入式编程基础 - **宏定义**: 在代码中通过宏定义来简化操作,如设置延时时间(`delay_us` 和 `delay_ms`)、定义无符号整型变量类型(`uchar`, `uint`, `ulong`)等。 - **端口配置**: 通过直接操作微控制器的端口来实现LCD的控制。例如,通过设置`P5OUT`寄存器的不同位来控制RS、RW、EN、PSB、RST等信号线的状态。 - **数据传输**: 使用`DataPort`寄存器来发送数据到LCD模块,实现文字和图形的显示。 - **自定义图形**: 代码中定义了一个数组`image`,其中包含了预设的图形数据,通过向LCD发送这些数据可以在屏幕上绘制特定的图案。 ### 5. 实例特点解析 - **读写速度快**: 通过优化代码和硬件接口设计,确保了数据的快速传输,使得屏幕上的内容可以迅速刷新。 - **清晰不闪烁**: 通过对显示参数的精确调整和良好的硬件设计,实现了稳定且清晰的画面显示效果。 - **动态更新**: 代码支持动态地更新显示内容,这意味着用户可以在程序运行过程中实时更改屏幕上的显示内容,比如移动光标位置、更新文本或图形等。 本实例通过MSP430X14X微控制器实现了对12864 LCD 显示器的有效控制,并展示了如何通过简单的编程技巧实现实时更新屏幕内容的功能。这对于初学者理解和掌握嵌入式系统的显示控制技术具有很好的参考价值。
//DM430-L型最小系统板控制带字库型12864液晶模块显示测试程序
//显示模式为汉字模式,直接将12864插入12864接口即可
//注意选择液晶的电源,位于电位器附近,可选5V或3.3V,根据液晶电压进行选择
//调试环境:EW430 V5.30
//作者:阿迪 www.avrgcc.com
//时间:2011.09.19
********************************************************************/
#include <msp430x14x.h>
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
/*12864应用指令*/
#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H
#define AC_INIT 0x02 //将AC设置为00H。且游标移到原点位置
#define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
#define FUN_MODE 0x30 //工作模式:8位基本指令集
#define FUN_MODE1 0x32
#define FUN_MODE2 0x36
#define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白
#define DISPLAY_OFF 0x08 //显示关
#define CURSE_DIR 0x14 //游标向右移动:AC=AC+1
#define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH
#define SET_DD_AC 0x80
#define P50 0
#define P51 1
#define P55 5
#define P56 6
#define P57 7
#define RS_CLR P5OUT &= ~(1 << P55) //RS置低
#define RS_SET P5OUT |= (1 << P55) //RS置高
#define RW_CLR P5OUT &= ~(1 << P56) //RW置低
#define RW_SET P5OUT |= (1 << P56) //RW置高
#define EN_CLR P5OUT &= ~(1 << P57) //E置低
#define EN_SET P5OUT |= (1 << P57) //E置高
#define PSB_CLR P5OUT &= ~(1 << P50) //PSB置低,串口方式
#define PSB_SET P5OUT |= (1 << P50) //PSB置高,并口方式
#define RST_CLR P5OUT &= ~(1 << P51) //RST置低
#define RST_SET P5OUT |= (1 << P51) //RST置高
#define DataPort P4OUT //P4口为数据口
#define DataPort2 P4IN //P4口为数据口
const uchar gimage[512] = {
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XF8,0X00,0X00,0X00,
0X00,0X00,0X03,0XC0,0X07,0X80,0X00,0X00,0X00,0X00,0X1C,0X00,0X00,0X70,0X00,0X00,
0X00,0X00,0X60,0X00,0X00,0X0C,0X00,0X00,0X00,0X00,0X80,0X00,0X00,0X02,0X00,0X00,
0X00,0X03,0X00,0X3F,0XF8,0X01,0X80,0X00,0X00,0X04,0X01,0XC0,0X07,0X00,0X40,0X00,
剩余22页未读,继续阅读
- 天才楽2014-05-27很不错的资源,很好
- HWironman2014-06-01资源不错,帮了我大忙了
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助