⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 此代码应用与f2812的通讯程序!!方便用户编程!
💻 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 + -