📄 lcd.c
字号:
#include "Device.h"
#include "zk.h"
#define KEYVAL (*( volatile Uint16 *)0x2c00);
//LCDK控制位选 574
#define LCD_CS1 0x01
#define LCD_CS2 0x02
#define LCD_RS 0x04
#define LCD_WR 0x08
#define LCD_EN 0x10
#define LCD_RESET 0x40
#define LCD_LIGHT 0x80
//LCD指令
#define LCD_ON 0x3F
#define LCD_OFF 0x3E
#define LCD_REG 0x0
#define LCD_RAM 0x1
#define LCD_PAGE_START 0xb8
#define LCD_ROW_START 0xc0
#define LCD_COL_START 0x40
#define LCD_STATE_TIMEOUT 1000 //100
#define SelLeftSrn() LcdCtrl |= LCD_CS2; LcdCtrl&= ~LCD_CS1; LCDCTRL = LcdCtrl
#define SelRightSrn() LcdCtrl |= LCD_CS1; LcdCtrl&= ~LCD_CS2; LCDCTRL = LcdCtrl
#define SetLcdPage(page) WriteLcd(0,LCD_PAGE_START+(page))
#define SetLcdCol(col) WriteLcd(0,LCD_COL_START+(col))
#define SetLcdZ(z) WriteLcd(0,LCD_ROW_START+(z))
#define SetLcdData(d) WriteLcd(1,d)
#define LCDCTRL (*( volatile Uint16 *)0x4000)
Uint16 LcdCtrl;
Uint16 PortValue;
unsigned char Text[13];
//unsigned char TempText[13];
const STMENUITEM* pMenuItem;
#pragma DATA_SECTION(DispBuf, "DispBufFile");
#pragma DATA_SECTION(StoreBuf, "StoreBufFile");
Uint16 DispBuf[1024];
Uint16 StoreBuf[1024];
typedef enum
{
ITEM0,
ITEM1,
ITEM11,
ITEM12,
ITEM111,
ITEM112,
ITEM113,
ITEM114
//ITEM1111
/*ITEM0,
ITEM11,
ITEM12,
ITEM13,
ITEM14,
ITEM15,
ITEM16,
ITEM17,
ITEM18,
ITEM19,
ITEM1A,
ITEM1B,
ITEM111,
ITEM112,
ITEM113,
ITEM114,
ITEM115,
ITEM116,
ITEM117,
ITEM118,
ITEM121,
ITEM131,
ITEM132,
ITEM133,
ITEM134,
ITEM1311,
ITEM1321,
ITEM1331,
ITEM1341,
ITEM141,
ITEM142,
ITEM1411,
ITEM1421,
ITEM1422,
ITEM1423,
ITEM1424,
ITEM14211,
ITEM151,
ITEM161,
ITEM171,
ITEM181,
ITEM182*/
} MENUITEM_IDBM;
#define BLK_START 0x8000
#define BLK_END 0x9000
#define WIN_END 0xffff
#define CHN 0x100
//#define CHAR 0x20
/*const Uint16 WinStr0[]=
{ BLK_START+(6<<8)+16,_FU,_HE,_GUANG,_LI,_ZHONG,_DUAN,
WIN_END
};
const Uint16 WinStr1[]=
{ BLK_START+(0<<8)+32,_SHU,_JU,_LIU,_LAN,
BLK_START+(2<<8)+32,_YAO,_XIN,_PEI,_ZHI,
BLK_START+(4<<8)+32,_JI,_BEN,_CAN,_SHU,
BLK_START+(6<<8)+32,_DIAN,_BIAO,_CAN,_SHU,
WIN_END
};
const Uint16 WinStr111[]=
{ BLK_START+(0<<8)+16,_SAN,_XIANG,_DIAN,_YA,_DIAN,_LIU1,
BLK_START+(2<<8)+0,'A',':',' ','2','2','0','.','0','V',' ',' ','1','.','2','3','A',
BLK_START+(4<<8)+0,'B',':',' ','2','2','0','.','1','V',' ',' ','2','.','3','4','A',
BLK_START+(6<<8)+0,'C',':',' ','2','2','0','.','2','V',' ',' ','5','.','6','7','A',
WIN_END
};*/
extern const STMENUITEM MenuItem0;
extern const STMENUITEM MenuItem11;
extern const STMENUITEM MenuItem111;
extern const STMENUITEM MenuItem112;
extern const STMENUITEM MenuItem12;
extern const STMENUITEM MenuItem113;
extern const STMENUITEM MenuItem114;
//extern const STMENUITEM MenuItem1111;
/*extern const STMENUITEM MenuItem11;
extern const STMENUITEM MenuItem12;
extern const STMENUITEM MenuItem13;
extern const STMENUITEM MenuItem14;
extern const STMENUITEM MenuItem15;
extern const STMENUITEM MenuItem16;
extern const STMENUITEM MenuItem17;
extern const STMENUITEM MenuItem18;
extern const STMENUITEM MenuItem19;
extern const STMENUITEM MenuItem1A;
extern const STMENUITEM MenuItem1B;
extern const STMENUITEM MenuItem111;
extern const STMENUITEM MenuItem112;
extern const STMENUITEM MenuItem113;
extern const STMENUITEM MenuItem114;
extern const STMENUITEM MenuItem115;
extern const STMENUITEM MenuItem116;
extern const STMENUITEM MenuItem117;
extern const STMENUITEM MenuItem118;
extern const STMENUITEM MenuItem121;
extern const STMENUITEM MenuItem131;
extern const STMENUITEM MenuItem132;
extern const STMENUITEM MenuItem133;
extern const STMENUITEM MenuItem134;
extern const STMENUITEM MenuItem1311;
extern const STMENUITEM MenuItem1321;
extern const STMENUITEM MenuItem1331;
extern const STMENUITEM MenuItem1341;
extern const STMENUITEM MenuItem141;
extern const STMENUITEM MenuItem142;
extern const STMENUITEM MenuItem1411;
extern const STMENUITEM MenuItem1421;
extern const STMENUITEM MenuItem1422;
extern const STMENUITEM MenuItem1423;
extern const STMENUITEM MenuItem1424;
extern const STMENUITEM MenuItem14211;
extern const STMENUITEM MenuItem151;
extern const STMENUITEM MenuItem161;
extern const STMENUITEM MenuItem171;
extern const STMENUITEM MenuItem181;
extern const STMENUITEM MenuItem182;*/
const STMENUITEM MenuItem0=
{ ITEM0,
0,
0,
0,
0, //WinPage0,
NULL,
NULL,
NULL,
NULL,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem11=
{ ITEM11,
1,
0,
4,
1, //WinPage0, //1页
NULL,
&MenuItem12,
NULL,
NULL,
&MenuItem111,
&MenuItem0,
};
const STMENUITEM MenuItem12=
{ ITEM12,
2,
0,
4,
1, //WinPage0, //1页
&MenuItem11,
NULL,
NULL,
NULL,
&MenuItem111,
&MenuItem0,
};
const STMENUITEM MenuItem111= //2页
{ ITEM111,
0,
1,
1,
2, //WinPage0,
&MenuItem111,
&MenuItem111,
&MenuItem111,
&MenuItem111,
&MenuItem11,
&MenuItem11,
};
/*const STMENUITEM MenuItem112= // 2页
{ ITEM112,
0,
2,
1,
2, //WinPage0,
&MenuItem112,
&MenuItem112,
&MenuItem112,
&MenuItem112,
&MenuItem11,
&MenuItem11,
};
const STMENUITEM MenuItem113= // 2页
{ ITEM113,
0,
3,
1,
2, //WinPage0,
&MenuItem113,
&MenuItem113,
&MenuItem113,
&MenuItem113,
&MenuItem11,
&MenuItem11,
};
const STMENUITEM MenuItem114= // 2页
{ ITEM114,
0,
2,
4,
2, //WinPage0,
&MenuItem114,
&MenuItem114,
&MenuItem114,
&MenuItem114,
&MenuItem11,
&MenuItem11,
};*/
/*const STMENUITEM MenuItem1111= //.3
{ ITEM1111,
0,
1,
1,
3, //WinPage0,
NULL,
NULL,
NULL,
NULL,
NULL,
&MenuItem111,
};*/
/*const STMENUITEM MenuItem0=
{ ITEM0,
0,
0,
0,
0, //WinPage0,
NULL,
NULL,
NULL,
NULL,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem11=
{ ITEM11,
1,
0,
4,
1, //WinPage1,
&MenuItem1B,
&MenuItem12,
NULL,
NULL,
&MenuItem111,
&MenuItem0,
};
const STMENUITEM MenuItem12=
{ ITEM12,
2,
4,
//WinStr1,
1, // WinPage1,
&MenuItem11,
&MenuItem13,
&MenuItem0,
&MenuItem121,
};
const STMENUITEM MenuItem13=
{ ITEM13,
3,
4,
//WinStr1,
1, //WinPage1
&MenuItem12,
&MenuItem14,
&MenuItem0,
&MenuItem131,
};
const STMENUITEM MenuItem14=
{ ITEM14,
4,
4,
//WinStr1,
1, // WinPage1,
&MenuItem13,
&MenuItem15,
&MenuItem0,
&MenuItem141,
};
const STMENUITEM MenuItem15=
{ ITEM15,
1,
4,
2, // WinPage1,
&MenuItem14,
&MenuItem16,
&MenuItem0,
&MenuItem151,
};
const STMENUITEM MenuItem16=
{ ITEM16,
2,
4,
2, // WinPage1,
&MenuItem15,
&MenuItem17,
&MenuItem0,
&MenuItem161,
};
const STMENUITEM MenuItem17=
{ ITEM17,
3,
4,
//WinStr1,
2, // WinPage1,
&MenuItem16,
&MenuItem18,
&MenuItem0,
&MenuItem171,
};
const STMENUITEM MenuItem18=
{ ITEM18,
4,
4,
2, // WinPage1,
&MenuItem17,
&MenuItem19,
&MenuItem0,
&MenuItem181,
};
const STMENUITEM MenuItem19=
{ ITEM19,
1,
2,
3, // WinPage1,
&MenuItem18,
&MenuItem1A,
&MenuItem0,
NULL,
};
const STMENUITEM MenuItem1A=
{ ITEM1A,
2,
3,
3, // WinPage1,
&MenuItem19,
&MenuItem1B,
&MenuItem0,
NULL,
};
const STMENUITEM MenuItem1B=
{ ITEM1B,
3,
3,
3, // WinPage1,
&MenuItem1A,
&MenuItem11,
&MenuItem0,
NULL,
};
const STMENUITEM MenuItem111= //电压
{ ITEM111,
0,
3,
4, // 4 页
&MenuItem118,
&MenuItem112,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem112= //电流
{ ITEM112,
0,
3,
5, // 5
&MenuItem111,
&MenuItem113,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem113= //有功功率
{ ITEM113,
0,
4,
6, //6页
&MenuItem112,
&MenuItem114,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem114= //无功功率
{ ITEM114,
0,
4,
7, // 7
&MenuItem113,
&MenuItem115,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem115= //有功电量
{ ITEM115,
0,
4,
8, //8
&MenuItem114,
&MenuItem116,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem116= //无功电量
{ ITEM116,
0,
4,
9, // 9
&MenuItem115,
&MenuItem117,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem117= //功率因数
{ ITEM117,
0,
4,
10, // 10
&MenuItem116,
&MenuItem118,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem118= //相角
{ ITEM118,
0,
4,
11, // 11
&MenuItem117,
&MenuItem111,
&MenuItem11,
NULL,
};
const STMENUITEM MenuItem121= //遥信配置_遥信状态
{ ITEM121,
0,
4,
12, // 12
NULL,
NULL,
&MenuItem12,
NULL,
};
const STMENUITEM MenuItem131= //脉冲配置_子菜单
{ ITEM131,
1,
4,
13, // 13
&MenuItem134,
&MenuItem132,
&MenuItem13,
&MenuItem1311,
};
const STMENUITEM MenuItem132= //脉冲配置_子菜单
{ ITEM132,
2,
4,
13, // 13
&MenuItem131,
&MenuItem133,
&MenuItem13,
&MenuItem1321,
};
const STMENUITEM MenuItem133= //脉冲配置_子菜单
{ ITEM133,
3,
4,
13, // 13
&MenuItem132,
&MenuItem134,
&MenuItem13,
&MenuItem1331,
};
const STMENUITEM MenuItem134= //脉冲配置_子菜单
{ ITEM134,
4,
4,
13, // 13
&MenuItem133,
&MenuItem131,
&MenuItem13,
&MenuItem1341,
};
const STMENUITEM MenuItem1311= //脉冲配置_一级菜单_2级菜单
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -