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

📄 lcd.c

📁 C51的LED显示程序 可以显示多种字符,里面有多种显示驱动,方便应用
💻 C
📖 第 1 页 / 共 5 页
字号:
// /*--  文字:  6  --
const  unsigned char code NB6[14]= { 0x07,0x08,0x08,0x08,0x08,0x07,0x00,0xE0,0x90,0x48,0x48,0x48,0x98,0x00 };

// /*--  文字:  7  --
const  unsigned char code NB7[14]= { 0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x38,0x08,0x88,0x68,0x18,0x00 };

// /*--  文字:  8  --
const  unsigned char code NB8[14]= { 0x07,0x08,0x08,0x08,0x08,0x07,0x00,0x30,0xC8,0x88,0x88,0xC8,0x30,0x00 };

// /*--  文字:  9  --
const  unsigned char code NB9[14]= { 0x0C,0x09,0x09,0x09,0x04,0x03,0x00,0xF0,0x08,0x08,0x08,0x88,0xF0,0x00 };

// /*--  文字:  0  --
const  unsigned char code NB0[14]= { 0x03,0x04,0x08,0x08,0x04,0x03,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00 };

const	unsigned char code NBK[14]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

/*--  文字:  前  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const  unsigned char code Qian[32] = {
0x00,0x00,0x00,0x3F,0x20,0x18,0x06,0x01,0x10,0x20,0x7D,0x20,0x10,0x00,0x00,0x00,
0x00,0x02,0x02,0xFE,0x02,0x02,0x00,0x80,0x60,0x18,0xB6,0x00,0x00,0x00,0x00,0x00 };

/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const  unsigned char code Zhong[64] = {
0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x0F,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

/*--  文字:  后  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const  unsigned char code Hou[32] = {
0x00,0x00,0x6D,0x30,0x0C,0x03,0x00,0x48,0x50,0x7F,0x50,0x48,0x00,0x00,0x00,0x00,
0x00,0x00,0xB6,0x00,0x00,0x00,0xC0,0x30,0x0C,0xFE,0x00,0x00,0x00,0x00,0x00,0x00 };

const	unsigned char code Kong[32] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

/*--  文字:  通  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const unsigned char code Tong[32] = {
0x40,0x20,0x1F,0x20,0x40,0x5F,0x42,0x42,0x42,0x5F,0x4A,0x52,0x4F,0x40,0x40,0x00,
0x40,0x41,0xC6,0x00,0x00,0xF2,0x52,0x52,0x56,0xFA,0x5A,0x56,0xF2,0x00,0x00,0x00 };

/*--  文字:  信  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const unsigned char code Xin[32] = {
0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,
0x80,0x40,0x30,0xFC,0x07,0x0A,0xA8,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00 };

/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const unsigned char code Zong[32] = {
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00 };

/*--  文字:  断  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
const unsigned char code Duan[32] = {
0x00,0x3F,0x24,0x23,0x20,0x3F,0x61,0x22,0x18,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,
0x00,0xFE,0x44,0x58,0xC0,0xFF,0x50,0x4C,0x00,0xFC,0x44,0x44,0xC2,0x42,0x42,0x00 };


//剪线
const unsigned char code JianXian[32] = {
0x00,0x3C,0x42,0x42,0x32,0x0A,0x05,0x01,0x02,0x05,0x0A,0x32,0x42,0x42,0x3C,0x00,
0x46,0x4C,0x58,0x70,0x60,0xC0,0xC0,0x40,0x40,0xC0,0xC0,0x60,0x70,0x58,0x4C,0x46 };

//抬压脚
const unsigned char code TaiYaJiao[32] = {
0x02,0x24,0x2C,0x2C,0x2C,0x2C,0x2F,0x2F,0x2C,0x2C,0x2D,0x2C,0x2C,0x2C,0x24,0x02,
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0x08,0xFC,0x08,0x00,0x00,0x00,0x00 };

//上停针
const unsigned char code ShangTing [32] = {
0x00,0x00,0x40,0x40,0x40,0x40,0x44,0x48,0x5F,0x48,0x44,0x40,0x40,0x40,0x40,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

//下停
const unsigned char code XiaTing [32] = {
0x00,0x00,0x04,0x04,0x04,0x04,0x14,0x20,0x7F,0x20,0x14,0x04,0x04,0x04,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
//自动
const unsigned char code ZiDong [32] = {
0x00,0x07,0x09,0x12,0x24,0x44,0x41,0x42,0x62,0x51,0x4C,0x20,0x10,0x08,0x07,0x00,
0x00,0xE0,0x10,0x08,0x04,0x32,0x8A,0x46,0x42,0x82,0x22,0x24,0x48,0x90,0xE0,0x00 };	*/

// ------ Private variables ----------------------------------------

/*xdata int Begin0=0;
xdata int Begin1=0;
xdata int Begin2=0;
xdata int Begin3=0;
xdata int Begin4=0;
xdata int Begin5=0;
xdata int Begin6=0;
xdata int Middle0=0;
xdata int Middle1=0;
xdata int Middle2=0;
xdata int Middle3=0;
xdata int Middle4=0;
xdata int Middle5=0;
xdata int Middle6=0;
xdata int Middle7=0;
xdata int Middle8=0;
xdata int Middle9=0;
xdata int Middle10=0;
xdata int Middle11=0;
xdata int Middle12=0;
xdata int End0=0;
xdata int End1=0;
xdata int End2=0;
xdata int End3=0;
xdata int End4=0;
xdata int End5=0;
xdata int End6=0;

xdata int beginDelay1 = 0;
xdata int beginDelay4 = 0;
xdata int endDelay1 = 0;
xdata int endDelay3 = 0; */




/*void RSTINIdata()
{

Data_H = 3000 ;		  //50--9999	  0X8000 0X8001
Data_PSL = 85;//1--100		  0X8002
Data_CNR = 1;					 // 0X8003
Data_N = 1800;	  //50 --8000		  0X80 04 0X8005
Data_V	=1800;	  //50 --8000	  0X8006 0X8007
Data_B =1800;	  //50 --8000		   0X8008/9
Data_S =400;  //50 --2000		   0X800A/B
Data_SLS = 2;//0-99			   0X800C
Data_A = 2000 ;//50---8000			   0X800D/E
Data_ACD = 1;//1 off 2 on			   0X800F
Data_RVM = 1;//						   0X8010
Data_SMS = 1;//1A/2M/3SU/4SD		   0X8011
Data_TYS = 1; //1 CON /2:STP/3:TRM	   0X8012
Data_SBT = 1; //1ON 2OFF				0X8013
Data_SBA = 3; //0--15					0X8014
Data_SBB = 3; //0--15					0X8015
Data_SBN = 2;						   //0X8016
Data_BT1 = 4; //0--15				   0X8017
Data_BT2 = 3; //0--15				   0X8018
Data_SME = 1; //1A 2SU 3SD			   0X8019
Data_EBT = 1; //1 ON,2 OFF			   0X801A
Data_EBC = 3;  //1--15				   0X801B
Data_EBD = 3;  //1--15				   0X801C
Data_EBN = 2;	//0--4				   0X801D
Data_BT3 = 2; //0--15				   0X801E
Data_BT4 = 1; //0--15				   0X801F
Data_CT  = 50; //0 --990			   0X8020/1
Data_SB5 = 2; //1ON 2OFF			   0X8022
Data_SB9 = 0;//0--99				   0X8023
Data_BCC = 2;//1 on 2 off			   0X8024
Data_SMB = 1;//1A/2 M /3SU /4SD		   0X8025
Data_BAR = 2;//1 ON 2 OFF			   0X8026
Data_BRC = 4; //0 --99 				   0X8027
Data_BRN = 4; //0 --15				   0X8028
Data_BT5 = 4; //0--15				   0X8029
Data_BT6 = 3; // 0-15				   0X802A
Data_SMP = 2; // 1AUTO 2 MANUAL		   0X802B
Data_PM	 = 2; //1 ON //2 OFF		   0X802C
//Data_PS[0]= 15;//,<250				   0X802D
Data_PS[1]= 15;//,<250				   0X802E
Data_PS[2]= 15;//,<250				   0X802F
Data_PS[3]= 15;//,<250				   0X8030
Data_PS[4]= 15;//,<250				   0X8031
Data_PS[5]= 0;//,<250				   0X8032
Data_PS[6]= 0;//,<250				   0X8033
Data_PS[7]= 0;//,<250				   0X8034
Data_PS[8]= 0;//,<250				   0X8035
Data_PS[9]= 0;//,<250	0X8036
Data_PS[10]= 0;//,<250	0X8037
Data_PS[11]= 0;//,<250	0X8038
Data_PS[12]= 0;//,<250	0X8039
Data_PS[13]= 0;//,<250	0X803A
Data_PS[14]= 0;//,<250	0X803B
Data_PS[15]= 0;//,<250	0X803C
Data_WON = 1;//1 ON	,0 OFF	 0X803D
Data_TM = 1;// 1ON 0 OFF	  0X803E
Data_CUD =0; //0 NOP 1U/2D/3US/4UT/5DTS/   0X803F
Data_UD = 99;//0 --9999;  0X8040/1
Data_PN = 0; //0--9999	  0X8042/3
Data_SP = 0;		 //	  0X8044
Data_DIR = 0;		 //	  0X8045
Data_MAC = 0 ;// 0 - 91	  0X8046
Data_N12 = 0; //0 OFF 1 ON 	0X8047
Data_SPD = 75; //1-250MM   0X8048
Data_MPD = 75; //1-250MM   0X8049
Data_PL =0 ;//0 OFF 1 ON   0X804A
Data_BT = 200;//150- 250 MS	 0X804B
Data_POL = 1; //0 OFF ,1 ON  0X804C
Data_BK = ON ; //ON OFF		 0X804D
Data_SRA = 60 ; //1--360 degree	  0X804E/F
Data_TRU = OFF;//ON OFF		  0X8050
Data_TR8 = 40; //1-360		  0X8051/2
Data_M =800; //LOW TO 8000SPM  0X8053/4
Data_L = 250; //50 --500	   0X8055/6
Data_T = 200; //50 -- 500	   0X8057/8
Data_HPM = 1; //0 ALT ,1 MON  0X8059
Data_FTP = 0;//0 M IS THE NORMAL SETING ,1 A	0X805A
Data_FO = 350; //0-990 MS		0X805B/C
Data_FC = 26 ;//10--90%		0X805D
Data_FD = 0 ; //0 --990MS		0X805E/F
Data_FPM = ON ; //ON ,OFF		0X8060
Data_FP = 3000  ;//0 -9900X 0.1 second	0X8061/2
Data_HD = 100 ; //0 -990 MS	  NUMBER 69	  0X8063
Data_HHC = OFF; //ON OFF				  0X8064
Data_FL = OFF ; //OFF ON 				  0X8065
Data_FHC = ON ; //ON /OFF				  0X8066
Data_NTC = OFF; // ON  OFF				  0X8067
Data_FRV = OFF ;						 //0X8068
Data_SFM = 1; // 0 N.C.	N.O.			 0X8069
Data_TCL = OFF;//ON OFF				 0X806A
Data_ILC = OFF;//ON OFF					 0X806B
Data_TRM = 1;//1 LK /2 RK /3 KA/4KB/5KC		  0X806C
Data_LTM = 6; //1 T1, 2 T2,3 T3,4 T4,5 TK ,6 TS ,7 T7 	0X806D
Data_LLM = 6; //L1,L2,L3 ,L4,LK,LS ,L7			0X806E
Data_TS = 0 ;//0-360 DEGREES			  0X806F/0X8070
Data_T1 = 0 ; //0 -990MS 				  0X8071/2
Data_T2 = 0 ;// 0 -990MS				  0X8073/4
Data_TE = 0 ;//0 -360 degrees			  0X8075/6
Data_LS = 0 ; //0 -360 degrees			  0X8077/8
Data_L1 = 0; //0 --990 ms				  0X8079/A
Data_L2 = 0; //0 --1500 MS				  0X807B/C
Data_LE = 0; //0 --360 degrees			  0X807D/E
Data_D1 = 30;//0 --990MS				  0X807F
Data_D2 = 90; //0 --2500ms
Data_D3 = 120;//0- 990MS
Data_W1 = 10; //0 -980 MS
Data_W2 = 70 ;//0 -9990MS
Data_WF = 50 ; // 0 -990 MS
Data_CSF = OFF;//ON OFF
Data_WN3 = 10;//0 -99 STITCHES
Data_TK3 = 100;//10-990MS
Data_MST = 1;//0 T 1 C
Data_SEN = OFF;//ON OFF
Data_SRS = 1;// 0-99MS
Data_CMS = 3;//0-99MS,STITCHES
Data_SE = 6;//1-999 STITCHES
Data_SET = OFF; //ON OFF
Data_PSU = 6; //1--99STICHES
Data_PSD = 6; // 1- 99 STITCHES
Data_PSN = ON ;//ON OFF
Data_S7U = OFF;//ON /OFF
Data_S7D = ON ;// ON OFF//
Data_ROF = OFF ;//ON OFF
Data_TB = OFF; // ON /OFF
Data_COR = 2;//1/2
Data_WMD =1;//1W. 2,O,3AND,
Data_DEG=12;//5-180degrees
Data_UEG =12; //5 - 180 degrees
Data_PMD = OFF;// ON /OFF
Data_DRU = 180;//1- 360 degrees
//Data_ER ;//10 SET FIFO
Data_NOS = OFF ;//ON OFF
Data_DD = ON ; // ON OFF
Data_FHM = 1;//1FU ;/2NU/ 3NO /4NUF/5EFF
Data_ANU = OFF;//ON OFF
Data_HL = 4200;//50 -9999 SPM
//Data_FASET;						   //123
Data_PG = 1;//1 NOP .2LOAD /3 SAVE
Data_USM = 1;//1A ,2 B,3C, 4D ,5E ,6F,7G
Data_USA = OFF;//ON OFF
Data_MAV = 0;
Data_MIV = 0 ;
Data_PV = 0 ;
Data_OVD = 305; //170 -315 VAC
 Data_LVD = 100; // 70 --160 VAC
 Data_UPG = 0 ; //0 -4
 Data_CHS = 5;//1-99
 Data_KLK = OFF;//ON  OFF
 Data_TOT = 1;//1-168;
 Data_TM1 = 20;//1-250x0.1 s;
 Data_TM2 = 20; // 1-250X0.1S
 Data_UTD = OFF ; //ON  OFF
 Data_CK = 505;//
 Data_OSE = OFF; // ON / OFF
 Data_BC3 = OFF;//ON OFF
 Data_EFK = OFF; //ON OFF
 Data_AT = OFF; //ON OFF
 Data_IN1 = 1;//0 NOP ,1IO1,2S4,3CR
 Data_IN2 = 0;//U 1USR.2NOP
 Data_IN3 = 0;//0HT 1WL
 Data_INA = 0;//0PSU 1BCR /2 NOP /3SPL
 Data_INC = 0; //0 SH/IO1/IO2/CW
 Data_IND = 1;//0TL/.1ES/2NOP 
 Data_INE = 0;//0S7/ 1IO1/IO2/CW
 Data_INF = 0;//0F /HP
 Data_INI = 0;//0CRS /FAW
 Data_INK = 0;// HP /F
 Data_OA = 0 ;//TM KS1
 Data_OB = 0 ; //WP/ML/FK
 Data_OD = 0; //ML/KS1/KS2/KS3/KS4/NCL
 Data_O1 = 0 ;//OT1/KS1/PUL/CSL
 Data_O3 = 0;//HP/KS1/KS2
 Data_O4 = 0;//BUZ/OT4
 Data_O5 = 0;//HPL/OT5
 Data_O6 = 0 ;//STL/OT6
 Data_BD = 70;//70 -990
 Data_MXI = 10;// 5-19A
 Data_WKT = 2; //1--5
 Data_ACT =140;//60--990
 Data_DCT =160; //60-990
 Data_HKP = 40; //5--400
 Data_LKP = 50; //5--400
 Data_KP = 40 ;//5--150
 Data_KI = 1800;//100-3000
 Data_KS = 18; //1-40
 Data_QSK = 100 ;//30 -999
 Data_QSP =100 ; //50 -500
 Data_HV = OFF;//ON OFF
 Data_WWWA = 3;
 Data_WWWB = 3;
 Data_WWWC = 3;
 Data_WWWD = 3;
}
*/

/* 打开 ISP,IAP 功能 */
void ISP_IAP_enable(void)
{
	EA	=	0;	/* 关中断 */
	ISP_CONTR	=	ISP_CONTR & 0x18;       /* 0001,1000 */
	ISP_CONTR	=	ISP_CONTR | WAIT_TIME;
	ISP_CONTR	=	ISP_CONTR | 0x80;       /* 1000,0000 */
}

/* 关闭 ISP,IAP 功能 */
void ISP_IAP_disable(void)
{
	ISP_CONTR	=	ISP_CONTR & 0x7f;	/* 0111,1111 */
	ISP_TRIG	=	0x00;
	EA			=   1;                	/* 开中断 */
}
/*扇区擦除*/
void sector_erase(unsigned int sector_addr)
{
	unsigned int get_sector_addr	=	0;
	get_sector_addr			=	(sector_addr & 0xfe00); // 1111,1110,0000,0000; 取扇区地址 
	ISP_ADDRH        		=	(unsigned char)(get_sector_addr >> 8);
	ISP_ADDRL		        =	0x00;

	ISP_CMD	=	ISP_CMD	&	0xf8;	// 1111,1000 
	ISP_CMD	=	ISP_CMD	|	SECTOR_ERASE_AP_and_Data_Memory_Command;	// 0000,0011 

	ISP_IAP_enable();
	ISP_TRIG	=	0x46;        // 触发ISP_IAP命令 
	ISP_TRIG	=	0xb9;        // 触发ISP_IAP命令 
	 _nop_();

	ISP_IAP_disable();

}

unsigned char RDEEPROM(unsigned int byte_addr)
{
	ISP_ADDRH	=	(unsigned char)(byte_addr >> 8);
	ISP_ADDRL	=	(unsigned char)(byte_addr & 0x00ff);

	ISP_CMD		=	ISP_CMD	&	0xf8;       
	ISP_CMD		=	ISP_CMD	|	READ_AP_and_Data_Memory_Command;       

	ISP_IAP_enable();

	ISP_TRIG	=	0x46;
	ISP_TRIG	=	0xb9;
	_nop_();

	ISP_IAP_disable(); 
	return (ISP_DATA);
//	byte_addr=0;
//	return 20;
}

//字节编程
void WREEPROM(unsigned char original_data, unsigned int byte_addr)
{
	ISP_ADDRH	=	(unsigned char)(byte_addr >> 8);
	ISP_ADDRL	=	(unsigned char)(byte_addr & 0x00ff);

	ISP_CMD		=	ISP_CMD	&	0xf8;        // 1111,1000 
	ISP_CMD		=	ISP_CMD	|	PROGRAM_AP_and_Data_Memory_Command;		// 0000,0010 
	ISP_DATA	=	original_data;

	ISP_IAP_enable();
	ISP_TRIG	=	0x46;       // 触发ISP_IAP命令 
	ISP_TRIG	=	0xb9;        // 触发ISP_IAP命令 
	_nop_();

	ISP_IAP_disable();

}
/***********************************************************************
***	 函 数 名:	void InitialPowerOn()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -