📄 lcd.c
字号:
//***********************************************************************
//FILE: lcd.c
//功能:128x64,LCD的显示 ST
//***********************************************************************
//***********************************************************************
#include "REG51.h"
#include <intrins.h> /* use _nop_() function */
#include "Port.h"
/* 新增特殊功能寄存器定义 */
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;
/* 定义命令 */
#define READ_AP_and_Data_Memory_Command 0x01 /* 字节读数据存储区 */
#define PROGRAM_AP_and_Data_Memory_Command 0x02 /* 字节编程数据存储区 */
#define SECTOR_ERASE_AP_and_Data_Memory_Command 0x03 /* 扇区擦除数据存储区 */
typedef unsigned char INT8U; /* 8 bit 无符号整型 */
typedef unsigned int INT16U; /* 16 bit 无符号整型 */
#define DELAY_CONST 60000
/* 定义常量 */
#define ERROR 0
#define OK 1
/* 定义Flash 操作等待时间 */
#define MCU_CLOCK_40MHz
//#define MCU_CLOCK_20MHz
//#define MCU_CLOCK_10MHz
//#define MCU_CLOCK_5MHz
#ifdef MCU_CLOCK_40MHz
#define WAIT_TIME 0x00
#endif
#ifdef MCU_CLOCK_20MHz
#define WAIT_TIME 0x01
#endif
#ifdef MCU_CLOCK_10MHz
#define WAIT_TIME 0x02
#endif
#ifdef MCU_CLOCK_5MHz
#define WAIT_TIME 0x03
#endif
/* 调试控制项 */
#define DEBUG_STC89C_LE58RD+
//#define DEBUG_STC89C_LE52RC
//#define USED_BYTE_QTY_IN_ONE_SECTOR 1
//#define USED_BYTE_QTY_IN_ONE_SECTOR 2
//#define USED_BYTE_QTY_IN_ONE_SECTOR 4
//#define USED_BYTE_QTY_IN_ONE_SECTOR 8
//#define USED_BYTE_QTY_IN_ONE_SECTOR 16
//#define USED_BYTE_QTY_IN_ONE_SECTOR 32
//#define USED_BYTE_QTY_IN_ONE_SECTOR 64
//#define USED_BYTE_QTY_IN_ONE_SECTOR 128
//#define USED_BYTE_QTY_IN_ONE_SECTOR 256
#define USED_BYTE_QTY_IN_ONE_SECTOR 512
#define DDwarn1 0x10
#define DDwarn2 0x11
#define DDbegin0 0x20
#define DDbegin1 0x21
#define DDbegin2 0x22
#define DDbegin3 0x23
#define DDbegin4 0x24
#define DDbegin5 0x25
#define DDbegin6 0x26
#define DDend0 0x28
#define DDend1 0x29
#define DDend2 0x2a
#define DDend3 0x2b
#define DDend4 0x2c
#define DDend5 0x2d
#define DDend6 0x2e
#define DDmiddle0 0x30
#define DDmiddle1 0x31
#define DDmiddle2 0x32
#define DDmiddle3 0x33
#define DDmiddle4 0x34
#define DDmiddle5 0x35
#define DDmiddle6 0x36
#define DDmiddle7 0x37
#define DDmiddle8 0x38
#define DDmiddle9 0x39
#define DDmiddle10 0x3a
#define DDmiddle11 0x3b
#define DDmiddle12 0x3c
#define D_A 10
#define D_B 11
#define D_C 12
#define D_D 13
#define D_E 14
#define D_F 15
#define D_G 16
#define D_H 17
#define D_I 18
#define D_J 19
#define D_K 20
#define D_L 21
#define D_M 22
#define D_N 23
#define D_O 24
#define D_P 25
#define D_Q 26
#define D_R 27
#define D_S 28
#define D_T 29
#define D_U 30
#define D_V 31
#define D_W 32
#define D_X 33
#define D_Y 34
#define D_Z 35
#define ON 1
#define OFF 0
//extern int LcdST;
//extern int LcdData;
extern xdata unsigned char CEcut;
extern xdata unsigned char CEspeed;
extern xdata unsigned char CEWW;
extern xdata unsigned char CEbegin;
extern xdata unsigned char CEend;
extern xdata unsigned char CEauto;
extern xdata unsigned char CEP1D;
extern xdata unsigned char CEFF;
extern xdata unsigned char CEPP;
extern xdata unsigned char CEPP_Sign;
extern xdata unsigned char CElamp;
extern xdata unsigned char LEDFF;
extern xdata unsigned char LEDPP;
extern xdata unsigned char DCEFF[];
extern xdata char CEPP_39_;
xdata unsigned int Data_H ; //50--9999
xdata unsigned char Data_PSL ;//1--100
xdata unsigned char Data_CNR;
xdata unsigned int Data_N ; //50 --8000
xdata unsigned int Data_V ; //50 --8000
xdata unsigned int Data_B ; //50 --8000
xdata unsigned int Data_S ; //50 --2000
xdata unsigned char Data_SLS;//0-99
xdata unsigned int Data_A ;//50---8000
xdata unsigned char Data_ACD ;//1 off 2 on
xdata unsigned char Data_RVM ;//
xdata unsigned char Data_SMS ;//1A/2M/3SU/4SD
xdata unsigned char Data_TYS ; //1 CON /2:STP/3:TRM
xdata unsigned char Data_SBT ; //1ON 2OFF
xdata unsigned char Data_SBA ; //0--15
xdata unsigned char Data_SBB ; //0--15
xdata unsigned char Data_SBN ;
xdata unsigned char Data_BT1 ; //0--15
xdata unsigned char Data_BT2 ; //0--15
xdata unsigned char Data_SME ; //1A 2SU 3SD
xdata unsigned char Data_EBT ; //1 ON,2 OFF
xdata unsigned char Data_EBC ; //1--15
xdata unsigned char Data_EBD ; //1--15
xdata unsigned char Data_EBN ; //0--4
xdata unsigned char Data_BT3 ; //0--15
xdata unsigned char Data_BT4 ; //0--15
xdata unsigned char Data_CT ; //0 --990
xdata unsigned char Data_SB5 ; //1ON 2OFF
xdata unsigned char Data_SB9 ;//0--99
xdata unsigned char Data_BCC ;//1 on 2 off
xdata unsigned char Data_BCD ;//
xdata unsigned char Data_BAR ;//1 ON 2 OFF
xdata unsigned char Data_BRC ; //0 --99
xdata unsigned char Data_BRN ; //0 --15
xdata unsigned char Data_BT5 ; //0--15
xdata unsigned char Data_BT6 ; // 0-15
xdata unsigned char Data_BT7 ; // 0-99
xdata unsigned char Data_BT8 ; //0-99
xdata unsigned char Data_PS[16];//0-250
xdata unsigned char Data_WON ;//1 ON ,0 OFF
xdata unsigned char Data_TM ;// 1ON 0 OFF
xdata unsigned char Data_CUD ; //0 NOP 1U/2D/3US/4UT/5DTS/
xdata unsigned int Data_UD ;//0 --9999;
xdata unsigned int Data_PN ; //0--9999
xdata unsigned char Data_SP;
xdata unsigned char Data_DIR;
xdata unsigned char Data_MAC ;// 0 - 91
xdata unsigned char Data_N12 ; //0 OFF 1 ON
xdata unsigned char Data_SPD ; //1-250MM
xdata unsigned char Data_MPD ; //1-250MM
xdata unsigned char Data_PL ;//0 OFF 1 ON
xdata unsigned char Data_BT ;//150- 250 MS
xdata unsigned char Data_POL ; //0 OFF ,1 ON
xdata unsigned char Data_BK ; //ON OFF
xdata unsigned char Data_SRM ;
xdata unsigned int Data_SRA ; //1--360 degree
xdata unsigned char Data_TRU ;//ON OFF
xdata unsigned int Data_TR8 ; //1-360
xdata unsigned int Data_M ; //LOW TO 8000SPM
xdata unsigned int Data_L ; //50 --500
xdata unsigned int Data_T ; //50 -- 500
xdata unsigned char Data_HPM ; //0 ALT ,1 MON
xdata unsigned char Data_FTP;//0 M IS THE NORMAL SETING ,1 A
xdata unsigned int Data_FO ; //0-990 MS
xdata unsigned char Data_FC ;//10--90%
xdata unsigned int Data_FD ; //0 --990MS
xdata unsigned char Data_FPM ; //ON ,OFF
xdata unsigned int Data_FP ;//0 -9900X 0.1 second
xdata unsigned int Data_HD ; //0 -990 MS NUMBER 69
xdata unsigned char Data_HHC ; //ON OFF
xdata unsigned char Data_FL ; //OFF ON
xdata unsigned char Data_FHC ; //ON /OFF
xdata unsigned char Data_NTC ; // ON OFF
xdata unsigned char Data_FRV ;
xdata unsigned char Data_SFM ; // 0 N.C. N.O.
xdata unsigned char Data_TCL ;//ON OFF
xdata unsigned char Data_ILC ;//ON OFF
xdata unsigned char Data_TRM ;//1 LK /2 RK /3 KA/4KB/5KC
xdata unsigned char Data_LTM ; //1 T1, 2 T2,3 T3,4 T4,5 TK ,6 TS ,7 T7
xdata unsigned char Data_LLM ; //L1,L2,L3 ,L4,LK,LS ,L7
xdata unsigned int Data_TS ;//0-360 DEGREES
xdata unsigned int Data_T1 ; //0 -990MS
xdata unsigned int Data_T2 ;// 0 -990MS
xdata unsigned int Data_TE ;//0 -360 degrees
xdata unsigned int Data_LS ; //0 -360 degrees
xdata unsigned int Data_L1 ; //0 --990 ms
xdata unsigned int Data_L2 ; //0 --1500 MS
xdata unsigned int Data_LE ; //0 --360 degrees
xdata unsigned int Data_D1 ;//0 --990MS
xdata unsigned int Data_D2 ; //0 --2500ms
xdata unsigned int Data_D3 ;//0- 990MS
xdata unsigned int Data_W1 ; //0 -980 MS
xdata unsigned int Data_W2 ;//0 -9990MS
xdata unsigned int Data_WF ; // 0 -990 MS
xdata unsigned char Data_CSF ;//ON OFF
xdata unsigned char Data_WN3 ;//0 -99 STITCHES
xdata unsigned int Data_TK3 ;//10-990MS
xdata unsigned char Data_MST ;//0 T 1 C
xdata unsigned char Data_SEN ;//ON OFF
xdata unsigned char Data_SRS ;// 0-99MS
xdata unsigned char Data_CMS ;//0-99MS,STITCHES
xdata unsigned int Data_SE ;//1-999 STITCHES
xdata unsigned char Data_SET ; //ON OFF
xdata unsigned char Data_PSU ; //1--99STICHES
xdata unsigned char Data_PSD ; // 1- 99 STITCHES
xdata unsigned char Data_PSN ;//ON OFF
xdata unsigned char Data_S7U ;//ON /OFF
xdata unsigned char Data_S7D ;// ON OFF//
xdata unsigned char Data_ROF ;//ON OFF
xdata unsigned char Data_TB ; // ON /OFF
xdata unsigned char Data_COR ;//1/2
xdata unsigned char Data_WMD ;//1W. 2,O,3AND,
xdata unsigned char Data_DEG;//5-180degrees
xdata unsigned char Data_UEG ; //5 - 180 degrees
xdata unsigned char Data_PMD ;// ON /OFF
xdata unsigned int Data_DRU ;//1- 360 degrees
xdata unsigned char Data_ER ;//10 SET FIFO
xdata unsigned char Data_NOS ;//ON OFF
xdata unsigned char Data_DD ; // ON OFF
xdata unsigned char Data_FHM ;//1FU ;/2NU/ 3NO /4NUF/5EFF
xdata unsigned char Data_ANU ;//ON OFF
xdata unsigned int Data_HL ;//50 -9999 SPM
xdata unsigned char Data_FASET; //123
xdata unsigned char Data_PG ;//1 NOP .2LOAD /3 SAVE
xdata unsigned char Data_USM ;//1A ,2 B,3C, 4D ,5E ,6F,7G
xdata unsigned char Data_USA ;//ON OFF
xdata unsigned char Data_MAV ;
xdata unsigned char Data_MIV ;
xdata unsigned char Data_PV ;
xdata unsigned char Data_OVD ; //170 -315 VAC
xdata unsigned char Data_LVD ; // 70 --160 VAC
xdata unsigned char Data_UPG ; //0 -4
xdata unsigned char Data_CHS ;//1-99
xdata unsigned char Data_KLK ;//ON OFF
xdata unsigned char Data_TOT ;//1-168;
xdata unsigned char Data_TM1 ;//1-250x0.1 s;
xdata unsigned char Data_TM2 ; // 1-250X0.1S
xdata unsigned char Data_UTD ; //ON OFF
xdata unsigned char Data_CK ;//
xdata unsigned char Data_OSE ; // ON / OFF
xdata unsigned char Data_BC3 ;//ON OFF
xdata unsigned char Data_EFK ; //ON OFF
xdata unsigned char Data_AT ; //ON OFF
xdata unsigned char Data_IN1 ;//0 NOP ,1IO1,2S4,3CR
xdata unsigned char Data_IN2 ;//U 1USR.2NOP
xdata unsigned char Data_IN3 ;//0HT 1WL
xdata unsigned char Data_INA ;//0PSU 1BCR /2 NOP /3SPL
xdata unsigned char Data_INC ; //0 SH/IO1/IO2/CW
xdata unsigned char Data_IND ;//0TL/.1ES/2NOP
xdata unsigned char Data_INE ;//0S7/ 1IO1/IO2/CW
xdata unsigned char Data_INF ;//0F /HP
xdata unsigned char Data_INI ;//0CRS /FAW
xdata unsigned char Data_INK ;// HP /F
xdata unsigned char Data_OA ;//TM KS1
xdata unsigned char Data_OB ; //WP/ML/FK
xdata unsigned char Data_OD ; //ML/KS1/KS2/KS3/KS4/NCL
xdata unsigned char Data_O1 ;//OT1/KS1/PUL/CSL
xdata unsigned char Data_O3 ;//HP/KS1/KS2
xdata unsigned char Data_O4 ;//BUZ/OT4
xdata unsigned char Data_O5 ;//HPL/OT5
xdata unsigned char Data_O6 ;//STL/OT6
xdata unsigned char Data_O7 ;//STL/OT6
xdata unsigned int Data_BD ;//70 -990
xdata unsigned char Data_MXI ;// 5-19A
xdata unsigned char Data_WKT ; //1--5
xdata unsigned int Data_ACT ;//60--990
xdata unsigned int Data_DCT ; //60-990
xdata unsigned int Data_HKP ; //5--400
xdata unsigned int Data_LKP ; //5--400 //值要设定
xdata unsigned int Data_KP ;//5--400
xdata unsigned int Data_KI ;//100-3000
xdata unsigned char Data_PDW ; //1-40
xdata unsigned int Data_QSK ;//30 -999
xdata unsigned int Data_QSP ; //50 -500
xdata unsigned char Data_HV ;//ON OFF
xdata unsigned char Data_WWWA ;
xdata unsigned char Data_WWWB ;
xdata unsigned char Data_WWWC ;
xdata unsigned char Data_WWWD ;
//xdata unsigned char DispData=0;
unsigned char code DecodeTab[]= //LCD上的8段译码表
{
0xfc,0x60,0xDA,0xF2,0x66, //"0"到"4"
0xB6,0xBE,0xE0,0xfe,0xf6, //"5"到"9"
0xee,0x3e,0x9c,0x7a,0x9e, //AbCdE--
0x8e,0XBC,0X6E,0X20,0X78, //F G H I J
0X1E,0X1C,0XEC,0X2A,0X3A, //KLMNO
0XCE,0XE6,0X0A,0XB6,0X8C, //PQRST
0X7C,0X38,0X7E,0X6C,0X4E,0X92, //U VWXYZ
};
unsigned char code PPCodeTab[][3]=
{
0,0,0,
50,D_H,50,//H
D_P,D_S,D_L,
D_C,D_N,D_R,
50,D_N,50,
50,D_V,50,
50,D_B,50,
50,D_S,50,
D_S,D_L,D_S,
50,D_A,50,
D_A,D_C,D_D,
D_R,D_V,D_M,
D_S,D_M,D_S,
D_T,D_Y,D_S,
D_S,D_B,D_T,
D_S,D_B,D_A,
D_S,D_B,D_B,
D_S,D_B,D_N,
D_B,D_T,1,
D_B,D_T,2,
D_S,D_M,D_E,
D_E,D_B,D_T,
D_E,D_B,D_C,
D_E,D_B,D_D,
D_E,D_B,D_N,
D_B,D_T,3,
D_B,D_T,4,
D_C,D_T,50,
D_S,D_B,5,
D_S,D_B,9,
D_B,D_C,D_C,
D_B,D_C,D_D,
D_B,D_A,D_R,
D_B,D_R,D_C,
D_B,D_R,D_N,
D_B,D_T,5,
D_B,D_T,6,
D_B,D_T,7,
D_B,D_T,8,
D_P,D_S,50,
D_W,D_O,D_N,
D_T,D_M,50,
D_C,D_U,D_D,
D_U,D_D,50,
D_P,D_N,50,
D_S,D_P,50,
D_D,D_I,D_R,
D_M,D_A,D_C,
D_N,1,2,
D_S,D_P,D_D,
D_M,D_P,D_D,
D_P,D_L,50,
D_B,D_T,50,
D_P,D_O,D_L,
D_B,D_K,50,
D_S,D_R,D_M,
D_S,D_R,D_A,
D_T,D_R,D_U,
D_T,D_R,8,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -