- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word
PIC 单片机 C 语言编程实例 —— 液晶显示模块编程
15.2.2 MG-12232 模块的编程
下面以图 15.1 的接口电路为例。 液晶显示区域分成 E1 边和 E2 边, 下面只含 E1 边的程序 (表 15.1
中 E1=1,E2=0),E2 边(表 15.1 中 E1=0,E2=1) 类推。
在系统程序的初始化局部,应对程序中用到的存放器和临时变量作说明,如:
unsigned char TRANS ;
unsigned char PAGEADD ; //存放页地址存放器
unsigned char PAGENUM ; //存放总页数存放器
unsigned char CLMSUM ; //存放总列数存放器
unsigned char CLMADD ; //存放列地址存放器
unsigned char WRITE ; //存放显示数据存放器
unsigned char row; //存放显示起始行存放器
unsigned char i,k; //通用存放器
//系统各口的输入输出状态初始化子程序
void INITIAL()
{
ADCON1=0X87 ; //设置 PORTA 口和 PORTE 口为数字 I/O 口
TRISA3=0 ;
TRISB0=0 ;
TRISE=0X00 ; //设置液晶的 4 个控制脚为输出
}
//读液晶显示器状态子程序
void LCDSTA1()
{
while(1){
TRISD=0XFF ; //设置 D 口为输入
RB0=1; RA3=0; RE0=1;
RE1=0;
//E1=1
//E2=0
//R/W=1
//A0=0
if(RD7==0) break ; //为忙状态,如此继续等待其为空闲
}
}
//对液晶显示器发指令子程序 void TRANS1()
{
(指令保存在 TRANS 存放器中 )
LCDSTA1() ; //判断液晶是否为忙
TRISD=0X00 ; //置 D 口为输出
RB0=1; RA3=0; RE0=0;
RE1=0;
//E1=1
//E2=0
//R/W=0
//A0=0
PORTD=TRANS ; //需要写入的命令字送入数据线
RB0=0; //E1=0 写入指令
1 / 24
word
RE0=1; //R/W=1
}
//对液晶显示器写数据子程序 void WRITE1()
{
(数据保存在 WRITE 存放器中 )
TRANS=CLMADD ; //设置列地址
TRANS1() ;
LCDSTA1() ; //查询液晶是否为空闲
TRISD=0X00 ; //D 口为输出
RB0=1; //E1=1
RA3=0; //E2=0
RE0=0; //R/W=0
RE1=1; //A0=1
PORTD=WRITE ; //需要写入的数据放入 D 口
RB0=0; //E1=0, 写入数据
CLMADD++ ; //列地址加 1
RE0=1; //R/W=1
}
//开 E1 显示子程序
void DISP1()
{
while(1)
{
TRANS=0XAF ;
TRANS1() ; //送出控制命令
LCDSTA1() ; //判断液晶是否为空闲
TRISD=0XFF ; //设置 D 口为输入
RB0=1; RA3=0; RE0=1;
RE1=0;
//E1=1
//E2=0
//R/W=1
//A0=0
if(RD5==0) break ; //如果液晶没被关闭,如此继续关
}
}
//E1 边清屏子程序
void CLEAR1()
{
PAGEADD=0xB8 ; //设置页地址代码
for(PAGENUM=0X04 ; PAGENUM0 ; PAGENUM-){
TRANS=PAGEADD ;
TRANS1() ;
CLMADD=0x00 ; //设置起始列
for(CLMSUM=0X50 ; CLMSUM0 ; CLMSUM-){
LCDSTA1() ; //判断液晶是否为空闲
2 / 24
word
WRITE=0X00 ;
WRITE1() ; //写入 00H 以清屏
}
PAGEADD++ ; //页号增 1
}
}
//关 E1 显示子程序
void DISOFF1()
{
while(1)
{
TRANS=0XAE ;
TRANS1() ; //发出
您可能关注的文档
- 初中化学酸碱盐知识归纳.docx
- 汽车专业维修实习报告范本.docx
- 临沂生态园大酒店开业庆典策划案.docx
- 宋娇娇简历-参赛作品.docx
- 刮泥机分项工程质量检验评定表.docx
- 钢筋质量防治施工方案.docx
- 2016年计算机二级c语言题库及问题详解.docx
- 保育员工作手册.docx
- 玻璃幕安全施工方案.docx
- 高一目标检测详解物理必修1.docx
- (高清版)DB4403∕T 489-2024 《0岁~6岁儿童营养配餐指南》.docx
- (高清版)DB4403∕T 513-2024 《妇幼保健住院病历质量评价规范》.docx
- (高清版)DB63∕T 2451-2025 《天然气加气站计量工作管理规范》.docx
- (高清版)DB4403∕T 406-2023 《食品快速检测服务能力评价通用要求》.docx
- (高清版)DB4403∕T 411-2023 《烟火树栽培养护技术规程》.docx
- (高清版)DB13∕T 6128-2025 《户外装置区石油化工装置雷电防护装置检测技术规范》.docx
- (高清版)DB54∕T 0479-2025 《高海拔地区充气式开关柜选型技术规范》.docx
- (高清版)DB42∕T 2385-2025 《浅水莲藕种植机械化作业技术规程》.docx
- (高清版)DB42∕T 2393-2025 《矿产资源管理数据资源目录编制规范》.docx
- 扁平风格PPT演示模版38.pptx
文档评论(0)