LCD12864显示程序.doc

上传人:wj 文档编号:7442920 上传时间:2023-05-11 格式:DOC 页数:3 大小:33KB
下载 相关 举报
LCD12864显示程序.doc_第1页
第1页 / 共3页
LCD12864显示程序.doc_第2页
第2页 / 共3页
LCD12864显示程序.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

LCD12864显示程序.doc

《LCD12864显示程序.doc》由会员分享,可在线阅读,更多相关《LCD12864显示程序.doc(3页珍藏版)》请在冰点文库上搜索。

LCD12864显示程序.doc

本例程为通过用AT89C52芯片操作LCD12864显示的程序,使用的晶振为12M。

/**********************************************************

程序说明:

LCD12864显示主程序

程序调试员:

莫剑辉

调试时间:

2010-6-7

**********************************************************/

#include

#include"12864.c"

voidmain()

{

Ini_Lcd(); //液晶初始化子程序

Disp(1,0,6,"莫剑辉");//显示数据到LCD12864子程序

while

(1);

}

这里我们通过调用下面的头文件就可以了,这样的做法方便我们以后要用到LCD12864的程序的调用。

/**********************************************************

程序说明:

LCD12864显示头文件

程序调试员:

莫剑辉

调试时间:

2010-6-7

**********************************************************/

//#include

#defineucharunsignedchar

#defineuintunsignedint

#defineDATAP2//数据输出端0~7

sbitRS=P0^0;//LCD12864RS端

sbitRW=P0^1;//LCD12864RW端

sbitE=P0^2;//LCD12864E端

sbitPSB=P0^3;

/*********************************************

延时子程序

*********************************************/

voidDelay_1ms(uintx)

{

uintj,i;

for(j=0;j

{

for(i=0;i<120;i++);//延时X乘以120

}

}

/*********************************************

LCD12864液晶测忙子程序(读状态)

*********************************************/

voidBusy()

{

ucharbusy;

do

{

E=0; //0为关闭使能端,1为打开使能端

RS=0; //1为指令,0为数据

RW=1; //1为读,0为写

Delay_1ms(20); //延时20乘以120时间

E=1; //0为关闭使能端,1为打开使能端

busy=P1; //读取P2状态

Delay_1ms(20); //延时20乘以120时间

E=0; //0为关闭使能端,1为打开使能端

}

while(busy&0x80);//判断BUSY位是否工作:

1为内部在工作,0为正常状态

}

/*********************************************

LCD12864液晶数据写入子程序

*********************************************/

voidWrite_Data(uchark)

{

Busy(); //测忙

E=1; //0为关闭使能端,1为打开使能端

RS=1; //1为指令,0为数据

RW=0; //1为读,0为写

DATA=k; //输入数据K到DATA

Delay_1ms(20); //延时20乘以120时间

E=0; //0为关闭使能端,1为打开使能端

Delay_1ms(20); //延时20乘以120时间

}

/*********************************************

LCD12864液晶命令写入子程序

*********************************************/

voidWrite_Cmd(ucharcmd)

{

Busy(); //测忙

E=1; //0为关闭使能端,1为打开使能端

RS=0; //1为指令,0为数据

RW=0; //1为读,0为写

DATA=cmd; //输入命令cmd到DATA

Delay_1ms(20); //延时20乘以120时间

E=0; //0为关闭使能端,1为打开使能端

Delay_1ms(20); //延时20乘以120时间

}

/*********************************************

LCD12864液晶数据显示子程序

*********************************************/

voidDisp(uchary,ucharx,uchari,uchar*z)

{

ucharAddress;

if(y==1){Address=0x80+x;} //Y判断第几行,X判断第几列,0x80为液晶行初始地址

if(y==2){Address=0x90+x;}

if(y==3){Address=0x88+x;}

if(y==4){Address=0x98+x;}

Write_Cmd(Address); //写入地址命令到LCD12864

while(i) //写入显示数据的大小

{

Write_Data(*(z++)); //写入显示数据到LCD12864

i--;

}

}

/*********************************************

LCD12864液晶初始化子程序

*********************************************/

voidIni_Lcd(void)

{

PSB=1;

Delay_1ms(20);

Write_Cmd(0x30);//基本指令集

Delay_1ms(20);

Write_Cmd(0x02);//地址归位

Delay_1ms(20);

Write_Cmd(0x0c);//整体显示打开,游标关闭

Delay_1ms(20);

Write_Cmd(0x06);//游标右移

Delay_1ms(20);

Write_Cmd(0x80);//设定显示的起始地址

Delay_1ms(20);

Write_Cmd(0x01);//清除显示

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2