📄 lib.c
字号:
{
/*------------------------------------------------------------------------------
; 源文件 / 文字 : 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 + -