📄 lcd12864.c
字号:
/*****************************************************************/
/* */
/*名称: LCD12864显示程序 */
/*功能: 显示英文,数字,符号,图片。 */
/*难度等级: 高 */
/* 作者: 51kaifa */
/* 版权: http://www.51kaifa.com */
/*编写日期: 2006.05.20 */
/*****************************************************************/
#include <reg52.h>
#include <string.h>
#define uchar unsigned char
/**********引脚定义*********/
sbit lck = P3^5;//锁存信号
/********常用命令及参数定义********/
#define DISPON 0x3f
#define DISPOFF 0x3e
#define DISPFIRST 0xc0
#define SETX 0x40
#define SETY 0xb8
#define LCDBUZY 0x80
#define L 0x00
#define R 0x40
#define LIMIT 0x80
/**********全局变量************/
uchar cbyte;
uchar data statu;
bit xy;
/**************函数******************/
void WrL(uchar x);
void WrR(uchar x);
void Lcmcls(void);
void delay1s(void);
void Lcminit (void);
void Putpicture(uchar flag);
void delay(unsigned int time);
void VtoH8x16change(uchar *hzbuf);
void Puthalf(uchar *strch,uchar row,uchar col);
void Wrdata(uchar x,uchar row,uchar col);
void Locatexy(uchar row,uchar col);
void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag);
void vWrite8x16String(uchar *str,uchar col, uchar row, bit flag);
extern uchar code picture1[];
extern uchar code picture2[];
extern uchar code char_Table[95][16];
/***********主程序***************/
void main(void)
{
Lcminit();
while(1){
Putpicture(0);
delay1s();
Lcmcls();
Putpicture(1);
delay1s();
Lcmcls();
vWrite8x16String("abcdefghijklmn" ,0, 8,0);
vWrite8x16String("ABCDEFGHIJKLMN", 2, 8,0);
vWrite8x16String("12345678901234", 4, 8,0);
vWrite8x16String("+-*/!@#$%^&*()", 6, 8,0);
delay1s();
Lcmcls();
}
}
/***************微秒级延时*****************/
void delay(unsigned int time)
{ unsigned int i;
for(i=0;i<time;i++);
}
/***************约5S延时********************/
void delay1s(void)
{
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
}
//***********初始化LCD*******************/
void Lcminit (void)
{
cbyte=DISPOFF;
WrL(cbyte);
WrR(cbyte);
cbyte=DISPON;
WrL(cbyte);
WrR(cbyte);
cbyte=DISPFIRST;
WrL(cbyte);
WrR(cbyte);
Lcmcls();
Locatexy(0,0);
}
/***************LCD清屏********************/
void Lcmcls(void)
{ uchar i,j;
for(i=0;i<8;i++){
delay(6);
for(j=0;j<LIMIT;j++){
delay(6);
Wrdata(0x0,i,j);
}
}
}
/**************写左区***************/
void WrL(uchar x)
{
P0=0xFF;//P0口送FF,准备读
lck = 0;
P1 = 0x2a;//ELCD=1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -