📄 impact.c
字号:
/*********************************************************/
#include "LPC23xx.h"
#include "type.h"
#include "irq.h"
#include "impact.h"
#include <stdio.h>
#include "uart.h"
#include "rtc.h"
#include "adc.h"
#include "KeyBoard.h"
/********************************************************/
#define MOT_POW_ON FIO2CLR = 0x01 << 4
#define MOT_POW_OFF FIO2SET = 0x01 << 4
#define PRN_POW_ON FIO1CLR0 = 0x01
#define PRN_POW_OFF FIO1SET0 = 0x01
#define PF_ON FIO2CLR = 0x01 << 3
#define PF_OFF FIO2SET = 0x01 << 3
#define STROBES_ON FIO1CLR3 = 0xFF
#define STROBES_OFF FIO1SET3 = 0xFF
/********************************************************/
unsigned char const line_10[]={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,
//SPECIAL CHARACTERS
0x00,0x08,0x14,0x14,0x08,0x30,0x18,0x18,0x04,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,
//NUMERIC DIGITS WITH SPECIAL CHARACTERS
0x1c,0x08,0x1c,0x3e,0x04,0x3e,0x0c,0x3e,0x1c,0x1c,0x00,0x00,0x04,0x00,0x10,
0x1c,0x00,
//CAPITAL ALPHABETS WITH SPECIAL CHARACTERS
0x1C,0x3C,0x1C,0x38,0x3E,0x3E,0x1C,0x22,0x1C,0x0E,0x22,0x20,0x22,0x22,0x1C,
0x3C,0x1C,0x3C,0x1E,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x1C,0x00,0x1C,0x08,
0x00,0x00,
//SMALL ALPHABETS WITH SPECIAL CHARACTERS
0x00,0x20,0x00,0x02,0x00,0x0C,0x00,0x20,0x08,0x04,0x20,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x10};
unsigned char const line_20[]={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,0x00,0x08,0x14,0x14,0x1E,0x32,0x24,
0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x02,0x22,0x18,0x22,0x04,0x0c,0x20,
0x10,0x02,0x22,0x22,0x18,0x18,0x08,0x00,0x08,0x22,0x00,0x22,0x22,0x22,0x24,
0x20,0x20,0x22,0x22,0x08,0x04,0x24,0x20,0x36,0x22,0x22,0x22,0x22,0x22,0x20,
0x08,0x22,0x22,0x22,0x22,0x22,0x02,0x10,0x00,0x04,0x14,0x00,0x00,0x00,0x20,
0x00,0x02,0x00,0x12,0x1E,0x20,0x00,0x00,0x20,0x08,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08};
unsigned char const line_30[]={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,0x00,0x08,0x14,0x3E,0x28,0x04,0x28,
0x10,0x10,0x04,0x2A,0x08,0x00,0x00,0x00,0x04,0x26,0x08,0x02,0x08,0x14,0x3c,
0x20,0x04,0x22,0x22,0x18,0x18,0x10,0x3e,0x04,0x02,0x00,0x22,0x22,0x20,0x22,
0x20,0x20,0x20,0x22,0x08,0x04,0x28,0x20,0x2A,0x32,0x22,0x22,0x22,0x22,0x20,
0x08,0x22,0x22,0x22,0x14,0x22,0x04,0x10,0x00,0x04,0x22,0x00,0x00,0x1C,0x2C,
0x1C,0x1A,0x1C,0x10,0x22,0x2C,0x18,0x0C,0x24,0x08,0x34,0x2C,0x1C,0x3C,0x1A,
0x2C,0x1C,0x38,0x22,0x22,0x22,0x22,0x22,0x3E,0x08,0x08,0x08};
unsigned char const line_40[]={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,0x00,0x08,0x00,0x14,0x1C,0x08,0x10,
0x00,0x10,0x04,0x1C,0x3E,0x00,0x3E,0x00,0x08,0x2a,0x08,0x04,0x04,0x24,0x02,
0x3c,0x08,0x1c,0x1e,0x00,0x00,0x20,0x00,0x02,0x04,0x00,0x22,0x3C,0x20,0x22,
0x3C,0x3C,0x2E,0x3E,0x08,0x04,0x30,0x20,0x2A,0x2A,0x22,0x3C,0x22,0x3C,0x1C,
0x08,0x22,0x22,0x2A,0x08,0x14,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x02,0x32,
0x20,0x26,0x22,0x38,0x22,0x32,0x08,0x04,0x28,0x08,0x2A,0x32,0x22,0x22,0x26,
0x32,0x20,0x10,0x22,0x22,0x22,0x14,0x22,0x04,0x10,0x08,0x04};
unsigned char const line_50[]={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,0x00,0x00,0x00,0x3E,0x0A,0x10,0x2A,
0x00,0x10,0x04,0x2A,0x08,0x18,0x00,0x00,0x10,0x32,0x08,0x08,0x02,0x3e,0x02,
0x22,0x10,0x22,0x02,0x18,0x18,0x10,0x3e,0x04,0x08,0x00,0x3E,0x22,0x20,0x22,
0x20,0x20,0x22,0x22,0x08,0x04,0x28,0x20,0x22,0x26,0x22,0x20,0x2A,0x28,0x02,
0x08,0x22,0x22,0x2A,0x14,0x08,0x10,0x10,0x00,0x04,0x00,0x00,0x00,0x1E,0x22,
0x20,0x22,0x3E,0x10,0x1E,0x22,0x08,0x04,0x30,0x08,0x2A,0x22,0x22,0x3C,0x1E,
0x20,0x1C,0x10,0x22,0x22,0x2A,0x08,0x1E,0x08,0x08,0x08,0x08};
unsigned char const line_60[]={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,0x00,0x00,0x00,0x14,0x3C,0x26,0x24,
0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x18,0x20,0x22,0x08,0x10,0x22,0x04,0x22,
0x22,0x10,0x22,0x04,0x18,0x08,0x08,0x00,0x08,0x00,0x00,0x22,0x22,0x22,0x24,
0x20,0x20,0x22,0x22,0x08,0x24,0x24,0x20,0x22,0x22,0x22,0x20,0x24,0x24,0x02,
0x08,0x22,0x14,0x2A,0x22,0x08,0x20,0x10,0x00,0x04,0x00,0x00,0x00,0x22,0x22,
0x22,0x22,0x20,0x10,0x02,0x22,0x08,0x24,0x28,0x08,0x22,0x22,0x22,0x20,0x02,
0x20,0x02,0x12,0x26,0x14,0x2A,0x14,0x02,0x10,0x08,0x08,0x08};
unsigned char const line_70[]={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,0x00,0x08,0x00,0x14,0x08,0x06,0x1A,
0x00,0x04,0x10,0x00,0x00,0x10,0x00,0x18,0x00,0x1c,0x1c,0x3e,0x1c,0x04,0x1c,
0x1c,0x10,0x1c,0x18,0x00,0x10,0x04,0x00,0x10,0x08,0x00,0x22,0x3C,0x1C,0x38,
0x3E,0x20,0x1E,0x22,0x1C,0x18,0x22,0x3E,0x22,0x22,0x1C,0x20,0x1A,0x22,0x3C,
0x08,0x1C,0x08,0x14,0x22,0x08,0x3E,0x1C,0x00,0x1C,0x00,0x3E,0x02,0x1E,0x3C,
0x1c,0x1e,0x1c,0x10,0x1c,0x22,0x1c,0x18,0x24,0x1c,0x22,0x22,0x1c,0x20,0x02,
0x20,0x3c,0x0c,0x1a,0x08,0x14,0x22,0x1c,0x3e,0x04,0x08,0x10};
unsigned char const *line_no;
/*************** FOR BARCODE PRINTING ******************/
/*************** 128 B FONT ******************/
unsigned char const bar[]={0x06,0xCC,0x06,0x6C,0x06,0x66,0x04,0x98,0x04,0x8C,
0x04,0x4C,0x04,0xC8,0x04,0xC4,0x04,0x64,0x06,0x48,0x06,0x44,0x06,0x24,0x05,
0x9C,0x04,0xDC,0x04,0xCE,0x05,0xCC,0x04,0xEC,0x04,0xE6,0x06,0x72,0x06,0x5C,
0x06,0x4E,0x06,0xE4,0x06,0x74,0x07,0x6E,0x07,0x4C,0x07,0x2C,0x07,0x26,0x07,
0x64,0x07,0x34,0x07,0x32,0x06,0xD8,0x06,0xC6,0x06,0x36,0x05,0x18,0x04,0x58,
0x04,0x46,0x05,0x88,0x04,0x68,0x04,0x62,0x06,0x88,0x06,0x28,0x06,0x22,0x05,
0xB8,0x05,0x8E,0x04,0x6E,0x05,0xD8,0x05,0xC6,0x04,0x76,0x07,0x76,0x06,0x8E,
0x06,0x2E,0x06,0xE8,0x06,0xE2,0x06,0xEE,0x07,0x58,0x08,0x46,0x07,0x16,0x07,
0x68,0x07,0x62,0x07,0x1A,0x07,0x7A,0x06,0x42,0x07,0x8A,0x05,0x30,0x05,0x0C,
0x04,0xB0,0x04,0x86,0x04,0x2C,0x04,0x26,0x05,0x90,0x05,0x84,0x04,0xD0,0x04,
0xC2,0x04,0x34,0x04,0x32,0x06,0x12,0x06,0x50,0x07,0xBA,0x06,0x14,0x04,0x7A,
0x05,0x3C,0x04,0xBC,0x04,0x9E,0x05,0xE4,0x04,0xF4,0x04,0xF2,0x07,0xA4,0x07,
0x94,0x07,0x92,0x06,0xDE,0x06,0xF6,0x07,0xB6,0x05,0x78,0x05,0x1E,0x04,0x5E,
0x05,0xE8,0x05,0xE2,0x07,0xA8,0x07,0xA2,0x05,0xDE,0x05,0xEE,0x07,0x5E,0x07,
0xAE};
unsigned char *bar_no;
unsigned char barflag;
unsigned char barbit;
unsigned char startbit;
unsigned char stopbit;
unsigned char endbit;
unsigned char barbuff[144],bardata[30];
unsigned int cntnum,countnum;
/*****************************************************************************/
unsigned char test_msg[24],smprn_i=0;
unsigned char a_char,b_char,c_char,d_char,e_char,f_char,g_char,h_char;
unsigned char a_dot,b_dot,c_dot,d_dot,e_dot,f_dot,g_dot,h_dot;
unsigned int bit_1,bit_2,bit_3,bit_4,bit_5,bit_6,bit_7,bit_8;
unsigned int prt_dh_flag,prt_dw_flag;
unsigned char res_det,time_det,temp;
//void prn_pow_init(void);
void prn_pow(unsigned char);
void st_prt(void);
void st_prt_dh(void);
void dot_ln(void);
void dot_1(void);
void chk(void);
void hi_pul(void);
void lo_pul(void);
void adg_bits(void);
void beh_bits(void);
void cf_bits(void);
void adg_dots(void);
void beh_dots(void);
void cf_dots(void);
void p_feed(unsigned char);
void sm_prt(unsigned char);
/**********************************************************/
void prn_pow(unsigned char ppwr)
{
//DATAOUT_A = 0x00;
STROBES_OFF;
//prt_enable();
if(ppwr == 1)
{
//p_pwr = 0;
//m_pwr = 0;
MOT_POW_ON;
PRN_POW_ON;
// bit_1 &= 0x00;
// bit_2 &= 0x00;
// bit_3 &= 0x00;
// bit_4 &= 0x00;
// bit_5 &= 0x00;
// bit_6 &= 0x00;
// bit_7 &= 0x00;
// bit_8 &= 0x00;
}
else
{
//p_pwr = 1;
//m_pwr = 1;
FIO0MASK = 0x00000000;
MOT_POW_OFF;
PRN_POW_OFF;
}
}
/*
void prn_pow_init(void)
{
p_pwr = 1;
m_pwr = 1;
DATAOUT_A = 0x00;
prt_enable();
//DATAOUT_B = DATAOUT_B | 0X40;
}
*/
/*
void paper_feed()
{
unsigned char idata chk_cnt,chk_cnt1;
prn_pow(ON);
delay_600us();
for(chk_cnt1=0;chk_cnt1<8;chk_cnt1++)
{
while(res_det == 0);
for(chk_cnt=0;chk_cnt<6;chk_cnt++)
{
hi_pul();
lo_pul();
}
p_feed(0); //...enable
for(chk_cnt=0;chk_cnt<6;chk_cnt++)
{
hi_pul();
lo_pul();
}
p_feed(1); //...disable
}
delay_Ms(2);
delay_Ms(2);
delay_Ms(2);
prn_pow(OFF);
}
*/
void st_prt(void)
{
unsigned char chk_cnt;//,temp;
for(chk_cnt=0;chk_cnt<24;chk_cnt++)
{
serial_send(0,test_msg[chk_cnt]);
}
prn_pow(ON);
delay_Ms(1);
chk();
line_no = line_10;
dot_ln();
delay_Ms(1);
chk();
line_no = line_20;
dot_ln();
delay_Ms(1);
chk();
line_no = line_30;
dot_ln();
delay_Ms(1);
chk();
line_no = line_40;
dot_ln();
delay_Ms(1);
chk();
line_no = line_50;
dot_ln();
delay_Ms(1);
chk();
line_no = line_60;
dot_ln();
delay_Ms(1);
chk();
line_no = line_70;
dot_ln();
delay_Ms(1);
//while(res_det == 0);
FIO0MASK = ~(1 << 26);
while(!FIO0PIN3);
FIO0MASK = 0;
for(chk_cnt=0;chk_cnt<6;chk_cnt++)
{
hi_pul();
lo_pul();
}
p_feed(OFF); //enable
for(chk_cnt=0;chk_cnt<6;chk_cnt++)
{
hi_pul();
lo_pul();
}
p_feed(ON); //disable
delay_Ms(3);
prn_pow(OFF);
}
void st_prt_dh(void)
{
unsigned char chk_cnt;
prn_pow(ON);
delay_Ms(1);
chk();
line_no = line_10;
dot_ln();
delay_Ms(1);
chk();
line_no = line_10;
dot_ln();
delay_Ms(1);
chk();
line_no = line_20;
dot_ln();
delay_Ms(1);
chk();
line_no = line_20;
dot_ln();
delay_Ms(1);
chk();
line_no = line_30;
dot_ln();
delay_Ms(1);
chk();
line_no = line_30;
dot_ln();
delay_Ms(1);
chk();
line_no = line_40;
dot_ln();
delay_Ms(1);
chk();
line_no = line_40;
dot_ln();
delay_Ms(1);
chk();
line_no = line_50;
dot_ln();
delay_Ms(1);
chk();
line_no = line_50;
dot_ln();
delay_Ms(1);
chk();
line_no = line_60;
dot_ln();
delay_Ms(1);
chk();
line_no = line_60;
dot_ln();
delay_Ms(1);
chk();
line_no = line_70;
dot_ln();
delay_Ms(1);
chk();
line_no = line_70;
dot_ln();
delay_Ms(1);
//while(res_det == 0);
FIO0MASK = ~(1 << 26);
while(!FIO0PIN3);
FIO0MASK = 0;
for(chk_cnt=0;chk_cnt<6;chk_cnt++)
{
hi_pul();
lo_pul();
}
p_feed(OFF); //enable
for(chk_cnt=0;chk_cnt<6;chk_cnt++)
{
hi_pul();
lo_pul();
}
p_feed(ON); //disable
delay_Ms(3);
prn_pow(OFF);
}
void p_feed(unsigned char ppwr)
{
// DATAOUT_A = 0x00;
// prt_enable();
// p_pf = ppwr;
if(ppwr) PF_OFF;
else PF_ON;
}
void dot_ln(void)
{
unsigned char i,k;
if(prt_dw_flag == 1)
{
k = 0x01;
a_char = 0x00;
b_char = 0x01;
c_char = 0x02;
d_char = 0x03;
e_char = 0x04;
f_char = 0x05;
g_char = 0x06;
h_char = 0x07;
}
else
{
k = 0x03;
a_char = 0x00;
b_char = 0x03;
c_char = 0x06;
d_char = 0x09;
e_char = 0x0C;
f_char = 0x0F;
g_char = 0x12;
h_char = 0x15;
}
while(k != 0)
{
adg_bits();
beh_bits();
cf_bits();
for(i=0;i<6;i++)
{
dot_1(); //1 dot will be printed
}
++a_char;
++b_char;
++c_char;
++d_char;
++e_char;
++f_char;
++g_char;
++h_char;
--k;
}
}
void adg_bits(void)
{
unsigned char ch;
ch = *(line_no+ test_msg[a_char]);
a_dot = ch << 2;
ch = ch >> 1;
ch = *(line_no + test_msg[d_char]);
d_dot = ch << 2;
ch = ch >> 1;
ch = *(line_no + test_msg[g_char]);
g_dot = ch << 2;
ch = ch >> 1;
}
void beh_bits(void)
{
unsigned char ch;
ch = *(line_no+ test_msg[b_char]);
b_dot = ch << 2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -