LCD12864汉字显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);
}