📄 lph7366.c
字号:
//LPH7366液晶应用 ISP总线
//文件包含
#include <config.h>
//参数定义
sbit SCLK=P2^3; //时钟信号
sbit SDIN=P2^2; //数据输入
sbit D_C=P2^1; //数据或指令
sbit RES=P2^0; //复位
sbit LED=P1^5;
#define COM 0 //指令
#define DAT 1 //数据
//-------------------
#define STR 1 //字符
#define HAN 2 //汉字
//--------------------------LPH7366指令集---------------------------
#define LPH7366_basic_fun_set 0x20 //基本功能设置
#define LPH7366_expand_fun_set 0x21 //扩展功能设置
// D7 D6 D5 D4 D3 D2 D1 D0
// 0 0 1 0 0 PD V H
// | | |_______1->扩展指令集 0->基本指令集
// | |___________1->垂直寻址 0->水平寻址
// |_______________1->低功耗模式 0->正常模式
//-------------------------------------------------------------------
//基本指令集
#define LPH7366_dis_set 0x0c//显示模式设置
// D7 D6 D5 D4 D3 D2 D1 D0
// 0 0 0 0 1 D 0 E
// | |_______0 0 1 1
// |_______________0 1 0 1
// 白屏 正常显示 全显 反转
//-------------------------------------------------------------------
#define LPH7366_add_Yset 0x40 //设置Y地址
// D7 D6 D5 D4 D3 D2 D1 D0
// 0 1 0 0 0 Y1 Y2 Y3
//-------------------------------------------------------------------
#define LPH7366_add_Xset 0x80 //设置X地址
// D7 D6 D5 D4 D3 D2 D1 D0
// 0 1 X6 X5 X4 X3 X2 X1
//-------------------------------------------------------------------
//扩展指令集
#define LPH7366_tem_set 0x06 //温度系数设置
// D7 D6 D5 D4 D3 D2 D1 D0
// 0 0 0 0 0 1 TC1 TC0
//-------------------------------------------------------------------
#define LPH7366_vot_set 0xD7 //电压系数设置
// D7 D6 D5 D4 D3 D2 D1 D0
// 1 vo6 vo5 vo4 vo3 vo2 vo1 vo0
//-------------------------------------------------------------------
//函数说明
void LPH7366_init(); //LPH7366初始化
void LPH7366_write(unsigned char type,unsigned char in_data); //LPH7366读函数
void LPH7366_clr(); //显示屏幕清屏
void LPH7366_flash(unsigned int delay_time); //LPH7366闪屏函数
void LPH7366_write_str(unsigned char line,unsigned char row,unsigned char str); //LPH7366任意写入字符函数
void LPH7366_write_han(unsigned char symbol_line,unsigned char symbol_row,unsigned char han); //LPH7366任意写入汉字函数
void LPH7366_write_doc(unsigned char symbol_line,unsigned char symbol_row,unsigned char doc); //LPH7366任意写入字节函数
void data_tick(unsigned char i_data); //数据拆分函数
void LPH7366_doc_move(unsigned char symbol_line); //屏幕上的任意一行水平移动
unsigned char row(unsigned char stye,unsigned char i); //计算屏幕的列地址 类型
bit data_flag=0; //是否动态显示数据标志位 0:不动态 1:动态
unsigned char ge,shi; //数据拆分
//外部函数说明
//********************delay.c********************
extern void delay(unsigned int delay_time); //延时子程序
//--------------------time.c--------------------------
extern bit second_flag; //秒信号标志位
//---------------------------------------
//--------------The standard ASCLL characters in a 5x7 dot format-------------
unsigned char code ASCLL[][5]=
{
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
{ 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
{ 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
{ 0xc4, 0xc8, 0x10, 0x26, 0x46 }, // %
{ 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
{ 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
{ 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
{ 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
{ 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
{ 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
{ 0x00, 0x00, 0x50, 0x30, 0x00 }, // ,
{ 0x10, 0x10, 0x10, 0x10, 0x10 }, // -
{ 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
{ 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
{ 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0
{ 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
{ 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
{ 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
{ 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
{ 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
{ 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
{ 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
{ 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
{ 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
{ 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
{ 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
{ 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
{ 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
{ 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
{ 0x02, 0x01, 0x51, 0x09, 0x06 }, // /
{ 0x32, 0x49, 0x59, 0x51, 0x3E }, // @
{ 0x7E, 0x11, 0x11, 0x11, 0x7E }, // A
{ 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
{ 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
{ 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
{ 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
{ 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
{ 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
{ 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
{ 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
{ 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
{ 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
{ 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
{ 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
{ 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
{ 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O
{ 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P
{ 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
{ 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
{ 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
{ 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
{ 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
{ 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
{ 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W
{ 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
{ 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
{ 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
{ 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [
{ 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55
{ 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]
{ 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
{ 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
{ 0x00, 0x01, 0x02, 0x04, 0x00 }, // '
{ 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
{ 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b
{ 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
{ 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
{ 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
{ 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
{ 0x0C, 0x52, 0x52, 0x52, 0x3E }, // g
{ 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
{ 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
{ 0x20, 0x40, 0x44, 0x3D, 0x00 }, // j
{ 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
{ 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
{ 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
{ 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
{ 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
{ 0x7C, 0x14, 0x14, 0x14, 0x08 }, // p
{ 0x08, 0x14, 0x14, 0x18, 0x7C }, // q
{ 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
{ 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
{ 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
{ 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
{ 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
{ 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y
{ 0x44, 0x64, 0x54, 0x4C, 0x44 } // z
};
//-------------------------汉字字库----------------------------------
unsigned char code HZK[][24]={
//气
{0X80,0X40,0Xb0,0Xa0,0Xa0,0Xa0,0Xa0,0Xa0,0Xa0,0Xa0,0X00,0X00,
0X00,0X02,0X02,0X02,0X02,0X02,0X02,0X02,0X02,0X3e,0X40,0X60},
//温
{0X90,0X20,0X00,0X00,0Xf0,0X50,0X50,0X50,0X50,0Xf0,0X00,0X00,
0X78,0X07,0X40,0X7c,0X45,0X7d,0X45,0X7d,0X45,0X7d,0X40,0X00},
};
//---------------------------------------------------------
/***************************LPH7366初始化函数**************************/
/*函数原型:void LPH7366_init()
/*函数功能:LPH7366初始化
/*输入参数:无
/*输出参数:无
/*调用模块:LPH7366_clr(),delay(),LPH7366_write()
/*建立时间:2005/10/31
/*作者:丁霄
/**********************************************************************/
void LPH7366_init()
{
RES=1;
D_C=1;
SDIN=1;
SCLK=1;
delay(1000);
RES=0;
delay(1000);
RES=1; //模块复位
LPH7366_write(COM,LPH7366_expand_fun_set); //显示模块扩展指令
LPH7366_write(COM,LPH7366_vot_set); //显示模块对比度电压设置
LPH7366_write(COM,LPH7366_tem_set); //显示模块温度参数设置
LPH7366_write(COM,LPH7366_basic_fun_set); //显示模块基本指令
LPH7366_write(COM,LPH7366_dis_set); //显示模块显示模式设置
LPH7366_write(COM,LPH7366_add_Yset); //显示模块行地址设置
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -