LCD12864汉字显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//在12864液晶上显示汉字和英文字符

/***********************头文件*********************/

#include "regx52.h"

typedef unsigned char uchar;

typedef unsignedintuint;

sbitlcdrs=P1^5; //12864:0写指令,1写数据

sbitlcdwr=P1^6; //12864读写信号

sbitlcden=P1^7; //12864片选信号

uchar code tab[]={" ATI-51S"};

uchari;

/***********************1ms延时函数**********************/ void delay(uint z)

{

uint y;

while(z--)

{

for(y=0;y<125;y++);

}

}

/***********************LCD写指令写数据**********************/ voidwrite_comdata(uchara,uchardatas)

{

lcdrs=a;

lcdwr=0;

delay(1);

P0=datas;

lcden=1;

delay(1);

lcden=0;

}

/***********************光标位置*********************/

void cursor(uchar x, uchar y )

{

uchar address;

switch(x){

case 0:

address=0x80+y;break;

case 1:

address=0x90+y;break;

case 2:

address=0x88+y;break;

case 3:

address=0x98+y;break;

default: break;

}

write_comdata(0,address);

delay(5);

}

/***********************写字符函数*********************/ voidwrite_hz(uchar x, uchar y, uchar code *hz)

{

cursor(x,y);

for(;*hz!='\0';hz++)

write_comdata(1,*hz);

}

/***********************LCD初始化*********************/ voidinit()

{

write_comdata(0,0x30);

write_comdata(0,0x0c);

delay(50);

write_comdata(0,0x01);

write_comdata(0,0x06);

}

/***********************主程序*********************/ void main()

{

init();

write_hz(0,2,"欢迎使用");

write_hz(1,2,"南拓教仪");

write_hz(3,2,tab);

while(1);

}

相关文档
最新文档