LCD12864显示程序.doc
- 文档编号:7442920
- 上传时间:2023-05-11
- 格式:DOC
- 页数:3
- 大小:33KB
LCD12864显示程序.doc
《LCD12864显示程序.doc》由会员分享,可在线阅读,更多相关《LCD12864显示程序.doc(3页珍藏版)》请在冰点文库上搜索。
本例程为通过用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);//清除显示 }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD12864 显示 程序