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

📄 lcd.c

📁 C51的LED显示程序 可以显示多种字符,里面有多种显示驱动,方便应用
💻 C
📖 第 1 页 / 共 5 页
字号:
//***********************************************************************
//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 + -