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

📄 impact.c

📁 lpc2368 source files
💻 C
📖 第 1 页 / 共 3 页
字号:
/*********************************************************/
#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 + -