📄 lcd12864a.c
字号:
/****************清达光电HGO12864A测试程序**************************************************/
/******************************************************************/
#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "LCD12864A.h"
/* 西文字符库定义 */
unsigned char code success[16]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*" "=00H*/
0x00,0x00,0x00,0x4F,0x00,0x00,0x00,0x00, /*"!"=01H*/
};
/*---16*16数字字库定义------------*/
unsigned char code largedigtal[360]={ 0x00,
0x00,0x07,0x08,0x10,0x10,0x10,0x08,0x07, /* 0 入口地址0*/
0x00,0xf0,0x08,0x04,0x04,0x04,0x08,0xf0,
0x00,0x08,0x18,0x1f,0x00,0x00,0x00,0x00, /* 1 入口地址1*/
0x00,0x04,0x04,0xfc,0x04,0x04,0x00,0x00,
0x00,0x0e,0x10,0x10,0x10,0x11,0x0e,0x00, /* 2 入口地址2*/
0x00,0x1c,0x34,0x64,0xc4,0x84,0x0c,0x00,
0x00,0x0c,0x10,0x10,0x10,0x11,0x0e,0x00, /* 3 入口地址3*/
0x00,0x18,0x04,0x04,0x84,0x88,0x70,0x00,
0x00,0x01,0x02,0x04,0x08,0x1f,0x00,0x00, /* 4 入口地址4*/
0x00,0xe0,0x20,0x24,0x24,0xfc,0x24,0x20,
0x00,0x1f,0x10,0x11,0x11,0x11,0x10,0x00, /* 5 入口地址5*/
0x00,0x88,0x84,0x04,0x04,0x08,0xf0,0x00,
0x00,0x07,0x08,0x11,0x11,0x11,0x11,0x08, /* 6 入口地址6*/
0x00,0xf0,0x88,0x04,0x04,0x04,0x08,0xf0,
0x00,0x18,0x10,0x10,0x10,0x11,0x1c,0x10, /* 7 入口地址7*/
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,
0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00, /*"8",入口地址8*/
0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,
0x00,0x00,0x8C,0x44,0x44,0x88,0xF0,0x00, /*"9",入口地址9*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*"00",入口地址10*/
0x00,0x00,0x00,0x0E,0x0E,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*"°",入口地址11*/
0x01,0x01,0x00,0x01,0x00,0x01,0x01,0x01,
0xF0,0x0C,0x30,0xC0,0x30,0x0C,0xF0,0x00, /*"w",入口地址12*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00, /*".",入口地址13*/
0x00,0x01,0x01,0x0F,0x11,0x11,0x11,0x18,
0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00, /*"f",入口地址14*/
0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,
0x01,0x81,0x71,0x0E,0x18,0x60,0x80,0x00, /*"y",入口地址15*/
0x00,0x01,0x01,0x07,0x01,0x01,0x00,0x00,
0x00,0x00,0x00,0xF8,0x04,0x04,0x00,0x00, /*"t",入口地址16*/
0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,
0x00,0xF8,0x04,0x04,0x04,0x04,0xF8,0x00, /*"o",入口地址17*/
0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,
0x00,0x70,0x88,0x04,0x04,0x04,0x88,0x00, /*"c",入口地址18*/
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
0x04,0xFC,0x04,0x00,0xFC,0x04,0x00,0xFC, /*"m",入口地址19*/
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00, /*":",入口地址20*/
0x0E,0x11,0x0F,0x01,0x06,0x19,0x00,0x00,
0x00,0x10,0x60,0x80,0xE0,0x10,0xE0,0x00, /*"%",入口地址21*/
};
/* 中文菜单定义 */
/* 16*16汉字定义*/
unsigned char code hanzi[1100]={ 0x00,
0x00,0x00,0x08,0x08,0x0B,0x7F,0x09,0x00,0x08,0x09,0x49,0x39,0x09,0x09,
0x08,0x08,0x00,0x00,0x10,0x60,0x80,0xFF,0x00,0x81,0x06,0xF8,0x00,0x00,
0x00,0xFE,0x01,0x01, /*"杭",入口地址 0*/
0x00,0x00,0x00,0x03,0x00,0x00,0x7F,0x02,0x01,0x00,0x3F,0x04,0x03,0x00,
0x00,0x7F,0x00,0x00,0x40,0x80,0x03,0x0C,0xF0,0x00,0x80,0x00,0xFF,0x00,
0x00,0xC0, 0x00,0xFF, /*"州",入口地址 1*/
0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x03,0x04,
0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,
0x18,0x84,0x42,0x01, /*"飞",入口地址 2*/
0x00,0x00,0x08,0x08,0x08,0x7F,0x09,0x0A,0x28,0x20,0x23,0x3C,0x20,0x20,
0x20,0x20,0x00,0x00,0x20,0x21,0x40,0xFF,0x00,0x08,0x10,0x60,0xFF,0x82,
0x82,0x82, 0x82,0xFF, /*"拓",入口地址 3*/
0x00,0x00,0x04,0x24,0x24,0x27,0x3F,0x45,0x44,0x00,0x22,0x19,0x00,0x00,
0x7F,0x00,0x00,0x00,0x10,0x20,0xC0,0x00,0xFF,0x00,0x90,0x10,0x10,0xA0,
0x20,0x20,0xFF,0x40, /*"科",入口地址 4*/
0x00,0x00,0x08,0x08,0x08,0x7F,0x09,0x0A,0x00,0x09,0x09,0x09,0x7F,0x09,
0x09,0x09,0x00,0x00,0x40,0x41,0x80,0xFF,0x00,0x01,0x01,0x82,0x64,0x18,
0x18,0x24,0xC2,0x03, /*"技",入口地址 5*/
0x00,0x00,0x02,0x42,0x3A,0x12,0x02,0x02,0xFE,0x02,0x0A,0x72,0x22,0x03,
0x00,0x00,0x00,0x00,0x04,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
0x44,0xFE,0x00,0x00, /*"当",入口地址 6*/
0x10,0x10,0x17,0x15,0x95,0x75,0x57,0x10,0x10,0x13,0x30,0xD0,0x57,0x10,
0x10,0x00,0x00,0x00,0xFE,0x20,0x24,0x22,0xFC,0x00,0x00,0xF8,0x02,0x01,
0xFE,0x00, 0x00,0x00, /*"前",入口地址 7*/
0x00,0x00,0x04,0x42,0x30,0x07,0x00,0x3F,0x29,0x29,0x29,0x29,0x29,0x3F,
0x00,0x00,0x00,0x00,0x20,0x3F,0xC0,0x01,0x7F,0x41,0x41,0x7F,0x41,0x41,
0x7F,0x41, 0x41,0x7F, /*"温",入口地址 8*/
0x00,0x00,0x00,0x00,0x1F,0x10,0x12,0x12,0x1F,0x52,0x32,0x12,0x1F,0x12,
0x12,0x12,0x00,0x00,0x00,0x03,0xFC,0x00,0x00,0x21,0xB1,0xAA,0xA4,0xA4,
0xAA,0x32,0x21,0x01, /*"度",入口地址 9*/
0x00,0x70,0x50,0x70,0x07,0x08,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x1C,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x10,0x08,0x08,0x08,0x08,0x08,
0x10,0x20,0x00,0x00, /*"℃",入口地址 10*/
};
/* 中文菜单定义 */
/* 16*16汉字定义 */
unsigned char code hanzibig[1025]={
0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0F,0x0C,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x04,0x04,0x0E,0x12,0x63,0xC1,0x81,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0x80,0xC0,0xE0,0x60,
0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x70,0x30,0x18,0x18,
0x0C,0x0C,0x0C,0xFC,0x1C,0x00,0x00,0x00, /*"飞", 入口地址0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x1F,0x10,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x06,0x02,
0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0xFF,0xFF,0x20,0x21,0x41,0x42,0x00,0x00,0x00,0x07,0x1E,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x18,0x30,0x30,0x60,0xFF,0xFF,0x80,0x01,0x02,0x0C,0x18,0x70,0xC0,0xFF,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x0C,0x0E,0xFC,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFC,0x08,0x08,0x08,0x08,0x08,0x08,
0x08,0x08,0xFC,0xFC,0x00,0x00,0x00,0x00, /*"拓",入口地址1*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xFF,0xFF,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFE,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
0x04,0x04,0x04,0x8C,0x7C,0x08,0x00,0x00, /*"电",入口地址2*/
0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x0B,0x0E,0x0E,0x1C,0x0C,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x31,0x41,0x41,0x81,0x01,0x01,0x01,0x01,0x01,0x03,0x07,
0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x08,0x08,0x0C,0x0E,0xFE,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*"子",入口地址3*/
0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x00,0x00,0x00,0x03,0x1F,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x03,0x01,0x03,0x1F,0xF8,0xC0,0x00,0x01,0x06,0x38,0xE0,0xA0,0x21,0x2F,0x2F,0x20,0x20,0x20,0x2C,0x70,0xE0,
0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x1C,0xF0,0xE0,0x70,0x1C,0x0F,0x03,0x00,0x00,0x00,0x03,0x0E,0xF8,0xC0,0xC0,0x3C,0x07,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x88,0x10,0x20,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0x60,0x38,0x18,0x10,0x00,0x00,0x00, /*"欢",入口地址4*/
0x00,0x00,0x00,0x00,0x00,0x10,0x0C,0x0F,0x07,0x00,0x00,0x00,0x03,0x01,0x02,0x02,0x04,0x0C,0x1C,0x08,0x03,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x00,0x00,
0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x1F,0x08,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFF,0x01,0x00,0x00,0x00,0xF8,0xFC,0x18,0x30,0x20,0x20,0x40,0x00,0xFF,0x00,0x00,0x08,0x08,0x0C,
0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0xC0,0x80,0x00,0x00,0x00,0x80,0x40,0x60,0x20,0x30,0x30,0x30,0x10,0x10,0x10,0x10,0x90,0x10,0x10,0x10,
0x18,0x18,0x18,0x10,0x20,0x20,0x00,0x00, /*"迎",入口地址5*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1E,0x1C,0x00,0x00,0x00,0x01,0x07,0x1F,0x19,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x60,0xC0,0xFF,0x00,0x00,0x00,0x10,0x61,0xC7,0x1E,0x0C,0x00,0x00,0x00,0x7F,0x00,0x00,0x08,0x04,0x66,0xC3,0x81,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x47,0x87,0x84,0x00,0x48,0x4C,0x67,0x73,0x70,0xE0,0x00,0x00,0x01,0x00,0x04,0x83,
0xC1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x60,0xC0,0x00,0x00,0x00,0xF0,0xF8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x18,
0x10,0x00,0x80,0xE0,0x40,0x00,0x00,0x00, /*"您",入口地址6*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x83,0xF3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*"!", 入口地址7*/
};
/*************************************************/
/*延时*/
/*************************************************/
void delay(void)
{unsigned char i,j;
for(i=32;i>0;i--)
for(j=255;j>0;j--);
}
/*************************************************/
/*延时*/
/*************************************************/
void delay1(void)
{unsigned char i,j;
for(i=255;i>0;i--)
{
for(j=255;j>0;j--)
{nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();}
}
}
/*************************************************/
//初始化
/*************************************************/
void lcd_init(void)
{
rst=0;
delay();
rst=1;
delay();
wcom(0xa3); //LCD BIAS SET ( A2 1/8;A3 1/65DUTY)
wcom(0xa0); //ADC select,NORMAL 0-->127
wcom(0xaf); // DISPLAY ON/OFF
wcom(0x2f); //power control(VB,VR,VF=1,1,1)
wcom(0x23); // VOLT REGULATOR RADIO SET
wcom(0x81); //ELECTRONIC VOLUME mode setting 100B 对比度命令
wcom(0x28); //REFERENCE VOLT REG set
wcom(0xc0); //SHL SELECT
wcom(0xaf); //DISPLAY ON/OFF
wcom(0x40); // DISPLAY START LINE SET
nop();
nop();
}
/*************************************************/
//写命令
/*************************************************/
void wcom(unsigned char com)
{
cs1=0;
nop();
a0=0; //a0='0',写入命令
nop();
write(com);
nop();
nop();
cs1=1;
}
/*************************************************/
//写数据
/*************************************************/
void wdata(unsigned char dat)
{
cs1=0;
nop();
a0=1; //a0='1',写入数据
nop();
write(dat);
nop();
nop();
cs1=1;
}
/*************************************************
//串口移位输出, SPI方式写入8bit 数据
/*************************************************/
void write(unsigned char dat)
{ unsigned char s,temp;
int i;
sclk=0;
s=dat;
for(i=8;i>0;i--)
{sclk=0;
nop();
nop();
temp=s & 0x80; //先送高位,再送低位
if(temp)
{di=1;}
else {di=0;}
sclk=1;
s=s<<1;
}
}
/********************************************/
/* 西文字符写入函数:CW_PR 8*8 */
void cwpr(unsigned char cod,unsigned char page,unsigned char seg)
{ unsigned char zmseg;
wcom(0xaf);// 开显示
wcom(0xb0+page); // 设定页地址,设定page命令是0xB0,共 9 page
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -