//----------------------------------------------------
//
// 拓普微内置ST7586液晶显示模块系列演示程序-V0.2
// (应用液晶显示控制器ST7586)
//
// 本程序文件是应用手册中各功能程序的应用演示
// 使用时要先根据使用环境修改接口地址和信号端口定义
// (以LM240160c为例)
// 深圳市拓普微科技开发有限公司
// Shenzhen TOPWAY Technology Co.,Ltd.
//
// by Guo Qiang 2012-01-12
// note: update PIN define of serial interface
//--------------------------------------------------
#include <stdio.h>
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char // 0~255
#define uint unsigned int // 0~65535
#define ulong unsigned long // 32bit, 0 ~ 4,294,967,295
uint ContrastLevel; // for contrast setting level
// 数据格式转换表
uchar ChangeTab[]={0x00,0x03,0x1c,0x1f,0xe0,0xe3,0xfc,0xff};
// 横向排列ASCII字符字模数据
uchar code ASCIITAB[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//
0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x00,//!
0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,//"
0x0a,0x0a,0x1f,0x0a,0x1f,0x0a,0x0a,0x00,//#
0x04,0x0f,0x14,0x0e,0x05,0x1e,0x04,0x00,//$
0x18,0x19,0x02,0x04,0x08,0x13,0x03,0x00,//%
0x0c,0x12,0x14,0x08,0x15,0x12,0x0d,0x00,//&
0x0c,0x04,0x08,0x00,0x00,0x00,0x00,0x00,//'
0x02,0x04,0x08,0x08,0x08,0x04,0x02,0x00,//(
0x08,0x04,0x02,0x02,0x02,0x04,0x08,0x00,//)
0x00,0x04,0x15,0x0e,0x15,0x04,0x00,0x00,//*
0x00,0x04,0x04,0x1f,0x04,0x04,0x00,0x00,//+
0x00,0x00,0x00,0x00,0x0c,0x04,0x08,0x00,//,
0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,//-
0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,//.
0x00,0x01,0x02,0x04,0x08,0x10,0x00,0x00,///
0x0e,0x11,0x13,0x15,0x19,0x11,0x0e,0x00,//0
0x04,0x0c,0x04,0x04,0x04,0x04,0x0e,0x00,//1
0x0e,0x11,0x01,0x02,0x04,0x08,0x1f,0x00,//2
0x1f,0x02,0x04,0x02,0x01,0x11,0x0e,0x00,//3
0x02,0x06,0x0a,0x12,0x1f,0x02,0x02,0x00,//4
0x1f,0x10,0x1e,0x01,0x01,0x11,0x0e,0x00,//5
0x06,0x08,0x10,0x1e,0x11,0x11,0x0e,0x00,//6
0x1f,0x01,0x02,0x04,0x04,0x04,0x04,0x00,//7
0x0e,0x11,0x11,0x0e,0x11,0x11,0x0e,0x00,//8
0x0e,0x11,0x11,0x0e,0x01,0x02,0x0c,0x00,//9
0x00,0x0c,0x0c,0x00,0x0c,0x0c,0x00,0x00,//:
0x00,0x0c,0x0c,0x00,0x0c,0x04,0x08,0x00,//;
0x02,0x04,0x08,0x10,0x08,0x04,0x02,0x00,//<
0x00,0x00,0x1f,0x00,0x1f,0x00,0x00,0x00,//=
0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x00,//>
0x0e,0x11,0x01,0x02,0x04,0x00,0x04,0x00,//?
0x0e,0x11,0x01,0x0d,0x15,0x15,0x0e,0x00,//@
0x0e,0x11,0x11,0x11,0x1f,0x11,0x11,0x00,//a
0x1e,0x09,0x09,0x0e,0x09,0x09,0x1e,0x00,//b
0x0e,0x11,0x10,0x10,0x10,0x11,0x0e,0x00,//c
0x1e,0x09,0x09,0x09,0x09,0x09,0x1e,0x00,//d
0x1f,0x10,0x10,0x1f,0x10,0x10,0x1f,0x00,//e
0x1f,0x10,0x10,0x1e,0x10,0x10,0x10,0x00,//f
0x0e,0x11,0x10,0x13,0x11,0x11,0x0f,0x00,//G
0x11,0x11,0x11,0x1f,0x11,0x11,0x11,0x00,//H
0x0e,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,//I
0x07,0x02,0x02,0x02,0x02,0x12,0x0c,0x00,//J
0x11,0x12,0x14,0x18,0x14,0x12,0x11,0x00,//K
0x10,0x10,0x10,0x10,0x10,0x10,0x1f,0x00,//L
0x11,0x1b,0x15,0x11,0x11,0x11,0x11,0x00,//M
0x11,0x19,0x19,0x15,0x13,0x13,0x11,0x00,//N
0x0e,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,//O
0x1e,0x11,0x11,0x1e,0x10,0x10,0x10,0x00,//P
0x0e,0x11,0x11,0x11,0x15,0x12,0x0b,0x00,//Q
0x1e,0x11,0x11,0x1e,0x14,0x12,0x11,0x00,//R
0x0e,0x11,0x10,0x0e,0x01,0x11,0x0e,0x00,//S
0x1f,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//T
0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x00,//U
0x11,0x11,0x11,0x11,0x11,0x0a,0x04,0x00,//V
0x11,0x11,0x11,0x15,0x15,0x1b,0x11,0x00,//W
0x11,0x11,0x0a,0x04,0x0a,0x11,0x11,0x00,//X
0x11,0x11,0x11,0x0a,0x04,0x04,0x04,0x00,//Y
0x1f,0x01,0x02,0x04,0x08,0x10,0x1f,0x00,//Z
0x0e,0x08,0x08,0x08,0x08,0x08,0x0e,0x00,//[
0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,//"\"
0x0e,0x02,0x02,0x02,0x02,0x02,0x0e,0x00,//]
0x04,0x0a,0x11,0x00,0x00,0x00,0x00,0x00,//^
0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,//_
0x10,0x08,0x04,0x00,0x00,0x00,0x00,0x00,//'
0x00,0x00,0x0e,0x01,0x0f,0x11,0x0f,0x00,//a
0x10,0x10,0x16,0x19,0x11,0x11,0x1e,0x00,//b
0x00,0x00,0x0e,0x11,0x10,0x11,0x0e,0x00,//c
0x01,0x01,0x0d,0x13,0x11,0x11,0x0f,0x00,//d
0x00,0x00,0x0e,0x11,0x1f,0x10,0x0e,0x00,//e
0x02,0x05,0x04,0x0e,0x04,0x04,0x04,0x00,//f
0x00,0x0d,0x13,0x13,0x0d,0x01,0x0e,0x00,//g
0x10,0x10,0x16,0x19,0x11,0x11,0x11,0x00,//h
0x04,0x00,0x0c,0x04,0x04,0x04,0x0e,0x00,//i
0x02,0x00,0x06,0x02,0x02,0x12,0x0c,0x00,//j
0x08,0x08,0x09,0x0a,0x0c,0x0a,0x09,0x00,//k
0x0c,0x04,0x04,0x04,0x04,0x04,0x0e,0x00,//l
0x00,0x00,0x1a,0x15,0x15,0x15,0x15,0x00,//m
0x00,0x00,0x16,0x19,0x11,0x11,0x11,0x00,//n
0x00,0x00,0x0e,0x11,0x11,0x11,0x0e,0x00,//o
0x00,0x16,0x19,0x19,0x16,0x10,0x10,0x00,//p
0x00,0x0d,0x13,0x13,0x0d,0x01,0x01,0x00,//q
0x00,0x00,0x16,0x19,0x10,0x10,0x10,0x00,//r
0x00,0x00,0x0f,0x10,0x1e,0x01,0x1f,0x00,//s
0x08,0x08,0x1c,0x08,0x08,0x09,0x06,0x00,//t
0x00,0x00,0x12,0x12,0x12,0x12,0x0d,0x00,//u
0x00,0x00,0x11,0x11,0x11,0x0a,0x04,0x00,//v
0x00,0x00,0x11,0x11,0x15,0x15,0x0a,0x00,//w
0x00,0x00,0x11,0x0a,0x04,0x0a,0x11,0x00,//x
0x00,0x00,0x11,0x11,0x13,0x0d,0x01,0x0e,//y
0x00,0x00,0x1f,0x02,0x04,0x08,0x1f,0x00,//z
0x02,0x04,0x04,0x08,0x04,0x04,0x02,0x00,//{
0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x00,//|
0x08,0x04,0x04,0x02,0x04,0x04,0x08,0x00,//}
0x08,0x15,0x02,0x00,0x00,0x00,0x00,0x00,//~
0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,//
};
//-----中文字库----------------------------------
// 汉字数据格式:汉字左右字节排序,16行数据顺序排列
uchar code CCTAB[]={
/*-- 文字: 深 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x47,0xFE,0x24,0x02,0x15,0x12,0x05,0x08,0x82,0x04,0x64,0x44,
0x30,0x40,0x0F,0xFE,0x10,0x60,0x10,0xD0,0x21,0x58,0x22,0x4C,0x2C,0x42,0x40,0x40,
/*-- 文字: 圳 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x7A,0x22,0x22,0x22,
0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x2E,0x22,0x12,0x22,0x64,0x22,0x04,0x22,
/*-- 文字: 市 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7F,0xFC,0x01,0x00,0x1F,0xF8,0x21,0x04,
0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x64,0x00,0x18,
/*-- 文字: 拓 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x10,0x00,0x10,0x00,0x13,0xFE,0x10,0x40,0x38,0x80,0x10,0x80,0x10,0x80,
0x14,0xFE,0x19,0x82,0x72,0x82,0x12,0x82,0x14,0x82,0x10,0x82,0x10,0x82,0x70,0xFC,
/*-- 文字: 普 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x08,0x10,0x08,0x10,0x7F,0xFE,0x04,0x40,0x24,0x44,0x14,0x48,0x14,0x48,
0x7F,0xFE,0x00,0x00,0x1F,0xF8,0x20,0x08,0x3F,0xF8,0x20,0x08,0x20,0x08,0x1F,0xF8,
/*-- 文字: 微 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x11,0x00,0x11,0x50,0x29,0x50,0x29,0x5E,0x57,0xD2,0x10,0x12,0x17,0xF2,
0x20,0x14,0x67,0x94,0x24,0x8C,0x24,0x8C,0x24,0x84,0x24,0xAC,0x24,0xD2,0x28,0x22,
/*-- 文字: 科 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x7C,0x84,0x10,0x44,0x10,0x24,0x10,0x14,0x7F,0x0C,0x18,0x84,
0x14,0x44,0x34,0x24,0x32,0x04,0x50,0x0E,0x13,0xF4,0x10,0x04,0x10,0x04,0x10,0x04,
/*-- 文字: 技 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x10,0x40,0x13,0xFE,0x10,0x40,0x7C,0x40,0x10,0x40,0x13,0xFC,
0x11,0x04,0x19,0x08,0x30,0x88,0x50,0x50,0x10,0x60,0x10,0xD0,0x13,0x08,0x7C,0x06,
/*-- 文字: 开 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x3F,0xFC,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,
0x7F,0xFE,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x10,0x10,0x10,0x20,0x10,
/*-- 文字: 发 --*/
/*-- 幼圆12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x01,0x00,0x11,0x30,0x21,0x08,0x22,0x00,0x3F,0xFE,0x02,0x00,0x02,0x00,
0x07,0xFC,0x05,0x08,0x08,0x88,0x08,0x90,0x10,0x60,0x20,0x60,0x41,0