430微控制器驱动OCM12864-9液晶显示
该资源是关于使用德州仪器(TI)的MSP430微控制器驱动金鹏(Jinpeng)OCM12864-9液晶显示模块的代码示例。OCM12864-9是一款128x64点阵图形液晶显示器,常用于嵌入式系统中的用户界面显示。 正文: 在嵌入式系统设计中,显示设备的驱动程序是至关重要的组成部分,它允许系统与用户进行交互。在这个例子中,开发者使用MSP430系列微控制器(具体型号可能是MSP430x14x)来驱动OCM12864-9液晶屏。MSP430是TI公司的一款低功耗、高性能的16位微控制器,适合于各种嵌入式应用。 代码中定义了一系列宏,这些宏是与OCM12864-9通信的关键操作。例如,`set_rs()`和`clear_rs()`分别用于设置或清除RS(寄存器选择)信号,这在向LCD发送数据或命令时至关重要。类似地,`set_en()`和`clear_en()`控制EN(使能)信号,`set_rw()`和`clear_rw()`控制RW(读/写)信号,而`set_cs()`和`clear_cs()`则用于片选信号,以选择或取消选择液晶模块。`set_reset()`和`clear_reset()`则用于执行LCD的复位操作。 `delay()`函数可能是一个延时函数,用于在某些操作之间插入必要的等待时间,以确保正确的时序。`check_busy()`函数可能是用来检测液晶屏是否处于忙碌状态,防止在处理过程中发生冲突。 `write_data()`和`write_command()`函数分别用于向LCD发送数据和命令。在驱动程序中,这两个函数会根据RS信号的设置来正确地发送信息。`reset()`函数执行初始化时的复位操作,`clear_screen()`函数用于清空屏幕,而`lcd_initial()`函数则包含了LCD模块的初始化步骤,这通常包括设置显示模式、光标位置、对比度等。 此外,`adj_page`数组可能是用来调整页面地址的,`ASCIIchardot`可能包含ASCII字符的点阵数据,而`tab`数组可能用于存储特定的字符或图形数据。由于提供的代码不完整,具体的功能和用途需要参考完整的驱动程序或相关的应用说明。 这个资源提供了一个使用MSP430微控制器驱动OCM12864-9 LCD的框架,对于那些需要在MSP430平台上开发嵌入式系统的工程师来说,这是一个非常实用的参考。开发者可以在此基础上进行修改和扩展,以适应他们的具体应用需求。
#include<msp430x14x.h>
#include<math.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define lcddata_out P5OUT
#define lcddata_in P5IN
#define set_rs() (P3DIR|=BIT0, P3OUT|=BIT0)
#define clear_rs() (P3DIR|=BIT0, P3OUT&=~BIT0)
#define set_rw() (P3DIR|=BIT1, P3OUT|=BIT1)
#define clear_rw() (P3DIR|=BIT1, P3OUT&=~BIT1)
#define set_en() (P3DIR|=BIT2, P3OUT|=BIT2)
#define clear_en() (P3DIR|=BIT2, P3OUT&=~BIT2)
#define set_cs() (P3DIR|=BIT3, P3OUT|=BIT3)
#define clear_cs() (P3DIR|=BIT3, P3OUT&=~BIT3)
#define set_reset() (P1DIR|=BIT4, P1OUT|=BIT4)
#define clear_reset() (P1DIR|=BIT4, P1OUT&=~BIT4)
#define colse_led() (P4DIR|=BIT1, P4OUT&=~BIT1)
#define open_led() (P4DIR|=BIT1, P4OUT|=BIT1)
const uchar adj_page[]={7,6,5,4,3,2,1,0};
const uchar ASCIIchardot[16*96];
const uchar tab[5*32];
////*****************////
////*****函数声明****////
////*****************////
void delay(unsigned long v);
void check_busy();
void write_data(uchar dat);
void reset(void);
void clear_screen(uchar m);
void lcd_initial();
void set_page_address(uchar page);
void set_colume_address(uchar colume);
void disp_word(uchar col,uchar pag,uchar ascii);
void disp_chn(uchar col,uchar pag,uchar ascii);
void disp_str(uchar col,uchar page,uchar *cn);
void clk_initial();
void point(uchar x,uchar y);
void disp_bmp( uchar const *puts );
////*****************////
////*****延时函数****////
////*****************////
void delay(unsigned long v)
{
while(v--);
}
////*****************////
////*****判忙函数****////
////*****************////
void check_busy()
{
uchar read_data=0xff;
clear_rs();
set_rw();
clear_cs();
剩余12页未读,继续阅读
- 粉丝: 0
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP+SSM科研管理系统响应式网站设计案例
- 推荐一款超级好用的嵌入式串口调试工具
- PHP域名多维查询平台:高效精准的域名搜索工具
- Citypersons目标检测数据集:Yolo格式下载指南
- 掌握MySQL面试必备:程序员面试题解析集锦
- C++软件开发培训:核心技术资料深度解读
- SmartSoftHelp二维码工具:生成与解析条形码
- Android Spinner控件自定义字体大小的方法
- Ubuntu Server on Orangepi3 LTS 官方镜像发布
- CP2102 USB驱动程序的安装与更新指南
- ST-link固件升级指南:轻松更新程序步骤
- Java实现的质量管理系统Demo功能分析与操作
- Everything高效文件搜索工具:快速精确定位文件
- 基于B/S架构的酒店预订系统开发实践
- RF_Setting(E22-E90(SL)) V1.0中性版功能解析
- 高效转换M3U8到MP4:免费下载工具发布