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

📄 lib.c

📁 一款收款机C源代码!因为是几年前的代码了
💻 C
📖 第 1 页 / 共 2 页
字号:
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\C8FB-him_1224.bmp
;  宽×高(像素): 12×24
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/48字节
;  数据转换日期  : 03-11-29 15:47:58
------------------------------------------------------------------------------*/
0x00,0x00,0x00,0x40,0x1C,0x40,0x00,0x40,0x00,0x40,0x7F,0x40,0x00,0x40,0x1C,0x40,
0x3E,0x40,0x66,0x40,0x62,0x40,0x62,0x40,0x36,0x40,0x3E,0x40,0x00,0x00,0x3F,0xC0,
0x30,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x3F,0xC0,0x3F,0xC0,0x30,0x40,0x00,0x00
}
	
	};

// 16 * 16
const byte krn_02[10][32] = {
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\B0A4-gad_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:42:18
------------------------------------------------------------------------------*/
0x00,0x00,0x3F,0x88,0x3F,0x88,0x01,0x88,0x03,0x08,0x07,0x0F,0x0E,0x08,0x3C,0x08,
0x78,0x08,0x1F,0xF8,0x1F,0xF8,0x18,0x00,0x18,0x00,0x1F,0xFC,0x1F,0xFC,0x00,0x00
},
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\B0B5-gaen_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:42:57
------------------------------------------------------------------------------*/
0x00,0x00,0x00,0x48,0x7F,0x48,0x06,0x48,0x06,0x48,0x06,0x48,0x0C,0x78,0x18,0x48,
0x38,0x48,0x60,0x48,0x58,0x48,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xFC,0x00,0x00
},
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\B0C9-geol_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:43:32
------------------------------------------------------------------------------*/
0x00,0x00,0x7F,0x88,0x7F,0x88,0x03,0x08,0x03,0xF8,0x06,0x08,0x1C,0x08,0x78,0x08,
0x60,0x00,0x1F,0xF8,0x00,0x08,0x1F,0xF8,0x10,0x00,0x1F,0xFC,0x1F,0xFC,0x00,0x00
},
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\B1A6-goen_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:44:04
------------------------------------------------------------------------------*/
0x00,0x00,0x7F,0x68,0x7F,0x68,0x03,0x68,0x1B,0x68,0x1B,0x78,0x1B,0x78,0x18,0x68,
0x7F,0xE8,0x78,0x68,0x18,0x68,0x18,0x08,0x18,0x00,0x18,0x00,0x1F,0xFC,0x00,0x00
},
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\B1EB-ging_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:44:43
------------------------------------------------------------------------------*/
0x00,0x00,0x3F,0x88,0x01,0x08,0x01,0x08,0x02,0x08,0x04,0x08,0x08,0x08,0x70,0x08,
0x40,0x08,0x03,0xC0,0x08,0x30,0x10,0x08,0x10,0x08,0x18,0x10,0x07,0xC0,0x00,0x00
},
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\B2C8-ggodz_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:45:23
------------------------------------------------------------------------------*/
0x00,0x00,0x3E,0xF8,0x06,0x08,0x06,0x18,0x06,0xD8,0x0C,0xD8,0x00,0xC0,0x7F,0xFE,
0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x03,0x80,0x07,0xE0,0x1E,0x78,0x38,0x1C,0x00,0x00
},

//unsigned char code Bmp039[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\C1A9-jel_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:45:58
------------------------------------------------------------------------------*/
0x00,0x00,0x7F,0x68,0x7F,0x68,0x0C,0x68,0x1D,0xE8,0x1E,0x68,0x37,0x68,0x63,0xE8,
0x40,0x68,0x1F,0xF8,0x00,0x08,0x1F,0xF8,0x18,0x00,0x18,0x00,0x1F,0xFC,0x00,0x00
},

//unsigned char code Bmp042[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\C8E7-hueon_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:46:50
------------------------------------------------------------------------------*/
0x00,0x00,0x07,0xE0,0x3F,0xFC,0x00,0x00,0x0F,0xF0,0x0C,0x30,0x0C,0x30,0x0F,0xF0,
0x00,0x00,0x7F,0xFE,0x00,0x00,0x18,0x00,0x18,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00
},

//unsigned char code Bmp045[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\C8F7-hi_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:47:26
------------------------------------------------------------------------------*/
0x00,0x0C,0x0F,0x08,0x0F,0x08,0x00,0x08,0x7F,0xE8,0x00,0x08,0x1F,0x88,0x39,0xC8,
0x30,0xC8,0x30,0xC8,0x1F,0x88,0x0F,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00
},

//unsigned char code Bmp048[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字 : C:\WINDOWS\Desktop\1\C8FB-him_1616.bmp
;  宽×高(像素): 16×16
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
;  数据转换日期  : 03-11-29 15:48:07
------------------------------------------------------------------------------*/
0x00,0x00,0x0F,0x0C,0x00,0x08,0x7F,0xE8,0x00,0x08,0x1F,0x88,0x31,0xC8,0x30,0xC8,
0x3F,0x88,0x0F,0x08,0x1F,0xF8,0x18,0x08,0x18,0x08,0x1F,0xF8,0x1F,0xF8,0x00,0x00
}
	
	};

/******************************************************************************
* Describe:	convert Double width string (Korean Char) to dot-matrix buffer
* Input :	void
* Output:	void
* return:	void
******************************************************************************/
void CvtDbWidthKrn(void)
{
	byte 	i, j, k;
	byte	temp[72];
	byte	idx;

	// convert dot-matrix to buffer : Prn_Dot_Ring[idx][7] ~ Prn_Dot_Ring[idx][54]
	idx = phead;
	for (j=0; j<16; j++)
	{
		memset(Prn_Dot_Ring[idx], 0, 55);
		idx++;
	}

	for (i = 0; i < 10; i++)
	{
		memcpy(temp, krn_02[i], 32);

		idx = phead;
		k = i * 2 + 7 + 6 * 2;
		for (j=0; j<16; j++)
		{
			Prn_Dot_Ring[idx][k] = temp[j*2];
			Prn_Dot_Ring[idx][k+1] = temp[j*2+1];
			idx++;
		}
	}

	for (i=0,idx=phead; i<16; i++,idx++)
	{
		Prn_Dot_Ring[idx][0] = NM_DOT_FD_CNTR;
	}
}

/******************************************************************************
* Describe:	convert Normal string (Chinese Char) to dot-matrix buffer
*			12 * 24 (16 * 24)
* Input :	void
* Output:	void
* return:	void
******************************************************************************/
void CvtNormalKrn(void)
{
	byte 	i, j, k;
	byte	temp[48];
	byte	idx;

	idx = phead;
	for (j=0; j<24; j++)
	{
		memset(Prn_Dot_Ring[idx], 0, 55);
		idx++;
	}

	// convert dot-matrix to buffer : Prn_Dot_Ring[idx][7] ~ Prn_Dot_Ring[idx][54]
	for (i = 0; i < 10; i++)
	{
		memcpy(temp, krn_01[i], 48);

		idx = phead;
		k = i * 2 + 7 + 6 * 2;
		for (j=0; j<24; j++)
		{
			Prn_Dot_Ring[idx][k] = temp[j*2];
			Prn_Dot_Ring[idx][k+1] = temp[j*2+1];
			idx++;
		}
	}

	for (i=0,idx=phead; i<24; i++,idx++)
	{
		Prn_Dot_Ring[idx][0] = NM_DOT_FD_CNTR;
	}
}

/******************************************************************************
* Describe:	convert Double Height string (Chinese Char) to dot-matrix buffer
* Input :	void
* Output:	void
* return:	void
******************************************************************************/
void CvtDbHeigtKrn(void)
{
	byte 	i, j, k;
	byte	temp[72];
	byte	idx;

	idx = phead;
	for (j=0; j<24; j++)
	{
		memset(Prn_Dot_Ring[idx], 0, 55);
		idx++;
	}

	// convert dot-matrix to buffer : Prn_Dot_Ring[idx][7] ~ Prn_Dot_Ring[idx][54]
	for (i = 0; i < 10; i++)
	{
		memcpy(temp, krn_00[i], 72);

		idx = phead;
		k = i * 3 + 7 + 3 * 3;
		for (j=0; j<24; j++)
		{
			Prn_Dot_Ring[idx][k] = temp[j*3];
			Prn_Dot_Ring[idx][k+1] = temp[j*3+1];
			Prn_Dot_Ring[idx][k+2] = temp[j*3+2];
			idx++;
		}
	}

	for (i=0,idx=phead; i<24; i++,idx++)
	{
		Prn_Dot_Ring[idx][0] = NM_DOT_FD_CNTR;
	}
}

/******************************************************************************
* Describe:	convert Double Height & Double Width string to dot-matrix buffer
* Input :	void
* Output:	void
* return:	void
******************************************************************************/
void CvtDbHtWdKrn(void)
{
	byte idx1, idx2;
	byte i;
	
	CvtDbHeigtKrn();
	
	idx1 = phead + 15;
	idx2 = phead + 31;
	
	for (i=0; i<16; i++)
	{
		memcpy(&Prn_Dot_Ring[idx2][0], &Prn_Dot_Ring[idx1][0], 55);
		idx2--;
		memcpy(&Prn_Dot_Ring[idx2][0], &Prn_Dot_Ring[idx1][0], 55);
		idx2--;
		idx1--;  
	} 
}

void clr_Prn_Buf_Krn(void)
{
	byte i;
	for (i=1; i < PRN_BUF_KRN_LEN; i++)
	{
		Prn_Data_Krn[i] = ' ';
	}
	Prn_Data_Krn[0] = NM_FONT_PRN;
}

/******************************************************************************
* Describe:	convert print string (Korean Char) to dot-matrix buffer
* Input :	void
* Output:	void
* return:	void
******************************************************************************/
void prn_Str_Krn(void)
{
	byte idx,i,bufNum;
	byte *pdotBuf;

	// judge whether paper feed
	if (Flag_Key_Feed_Papr)
	{
		Flag_Key_Feed_Papr = 0; 
		while ((phead + 1) == prear)		// dot buffer full
		{
		}
		// Fill one dot line with the FC to NM_CHA_SP_CNTR and A field is 0.
		Prn_Dot_Ring[phead][0] = NM_CHA_SP_CHN_CNTR;
		Prn_Dot_Ring[phead][1] = 0;

		phead ++;
		clr_Prn_Buf_Krn();
		return;
	}

	switch (Prn_Data_Krn[0] & 0x0f)
	{
	case NM_FONT_PRN:	bufNum = 12;	break;
	case DB_HEIGT_PRN:	bufNum = 24;	break;
	case DB_WIDTH_PRN:	bufNum = 16;	break;
	case DB_HTWDT_PRN:	bufNum = 32;	break;
	default:	clr_Prn_Buf_Krn();	return;
	}

	// Get needed buffer: 24 or 48 line
	idx = phead + 1;
	for (i=0; i<bufNum; )
	{
		if (idx != prear)
		{
			idx++;
			i++;
		}
	}
 
//	// clear dot matrix buffer
//	idx = phead + 1;
//	for (i=0; i<bufNum; i++, idx++)
//	{
//		memset(Prn_Dot_Ring[idx], 0, 55);
//	}

	switch ( Prn_Data_Krn[0] & 0x0f )
	{
	case NM_FONT_PRN:	CvtNormalKrn();		phead += 24;
		break;
	case DB_HEIGT_PRN:	CvtDbHeigtKrn();	phead += 24;
		break;
	case DB_WIDTH_PRN:	CvtDbWidthKrn();	phead += 16;
		break;
	case DB_HTWDT_PRN:	CvtDbHtWdKrn();		phead += 32;
		break;
	default:	clr_Prn_Buf_Krn();	return;
	}
	while ((phead + 1) == prear);		// dot buffer full

	Prn_Dot_Ring[phead][0] = NM_CHA_SP_CHN_CNTR;
	Prn_Dot_Ring[phead][1] = 0;

	phead ++;
}

void Test_PrnKrn(byte font)
{
	switch (font)
	{
	case NM_FONT_PRN:	Prn_Data_Krn[0] = NM_FONT_PRN;	break;
	case DB_HEIGT_PRN:	Prn_Data_Krn[0] = DB_HEIGT_PRN;	break;
	case DB_WIDTH_PRN:	Prn_Data_Krn[0] = DB_WIDTH_PRN;	break;
	case DB_HTWDT_PRN:	Prn_Data_Krn[0] = DB_HTWDT_PRN;	break;
	default: Prn_Data_Krn[0] = NM_FONT_PRN;	break;
	}
	prn_Str_Krn();
}

#endif

/* 初始化跳线端口 */
void Sw_Init(void)
{
	SW_1_DIR = 0;
	SW_2_DIR = 0;
}

///////////////////////////////////////////////////////////////////////////////
// Descript:	Wait printer buffer empty and printer stop to IDLE mode
// In Param:	void
// Out Param:	void
// Return:		void
///////////////////////////////////////////////////////////////////////////////
void Prn_WaitIdle(void)
{
	while (1)
	{
		prn_Chk();

		if ((phead == prear))
		{
			break;
		}
	}
}


⌨️ 快捷键说明

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