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

📄 txm.c

📁 这个是一个打印条形码的程序,很简单易懂,在TC2下运行
💻 C
字号:


#include <stdio.h>
#include<conio.h>
#include<string.h>

#define small 2
#define big 4
#define kong 3

int print_data[8000];
int count=0,setlinew[3]={27,43,43};/*set line wide 50/360*/
int i,length,n;

char print_str[100];

void getstr_inti()
{

	int i,n1,n2;
	char ss[100];

	setlinew[0]=27;setlinew[1]=43;setlinew[2]=50;
	printf("enter a string:");
	scanf("%s",ss);

	strcpy(print_str,"*");
	strcat(print_str,ss);
	strcat(print_str,"*");
	n=strlen(print_str);

	length=n*(6*small+3*big+kong);
	n1=length%256;
	n2=length/256;

	 print_data[count++]=27;
	 print_data[count++]=42;
	 print_data[count++]=33;
	 print_data[count++]=n1;
	 print_data[count++]=n2;
}
void set_data(int temp,int k)
{
	int i;
	for( i=0;i<k;i++)
	print_data[count++]=temp;
	/*for(i=0;i<count;i++)
	printf("%d",print_data[i]);*/
}


void str2data(int temp[])
{
	int i;
	for( i=0;i<9;i++)
	{
		if(i%2==0)
		{
			if(temp[i]==1) set_data(0xff,3*big);
			else set_data(0xff,3*small);
		}
		else
		{
			if(temp[i]==1) set_data(0x00,3*big);
			else set_data(0x00,3*small);
		}
	}
	set_data(0x00,3*kong);

}




void charge2_39code()
{
	int i,j,m,len,k;

	int temp[9];

	char str1[44]={"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%"};
	int  str2[500]={1,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,
					1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,
					1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,
					0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,
					0,0,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,
					1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,
					1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,
					1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,
					1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,
					0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,
					1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,
					1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,
					1,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,
					0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,0,
					0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,
					1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,
					1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,
					1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,
					0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,
					0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,
					0,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,
					0,1,0,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0};

	for(i=0;i<n;i++)
	{
		k=0;
		for(j=0;j<44;j++)
		{
			if(toupper(print_str[i])==str1[j])
			{
				len=9*j;
				printf("%c",print_str[i]);
				for(m=len;m<len+9;m++,k++)
				{temp[k]=str2[m];
				printf("%c",temp[k]+48);
				}
				printf("\n");
				str2data(temp);
				break;
			}
		}
	}
	print_data[count++]=13;
	print_data[count++]=10;
}


void clk()
{
	outport(0x37a,0x0d);
	outport(0x37a,0x0e);
	outport(0x37a,0x0d);
}

void print_39code()
{
	int i,time;
	for(i=0;i<3;i++)
	{
		outportb(0x378,setlinew[i]);
		clk();
		delay(1);
	}
	outport(0x378,33);
	for(time=0;time<2;time++)
	{
		for(i=0;i<count;i++)
		{
		outportb(0x378,print_data[i]);
		clk();
		delay(1);
		}

		outportb(0x378,13);
		clk();
		delay(0);
		outportb(0x378,10);
		clk();

	}

}



void print_str1()
{
	int i,time;
	print_str[n-1]=13;
	print_str[n]=10;
	outportb(0x378,27);
	clk();
	delay(2);
	outportb(0x378,43);
		clk();
		delay(2);

	outportb(0x378,51);
		clk();
		delay(1);
   /*utportb(0x378,32);
	clk();
	delay(1);
   /*utportb(0x378,10);
		clk();
		delay(2);*/
      /*	for(i=0;i<kong+small;i++)
	{
		outportb(0x378,32);
		clk();
		delay(2);
	}*/
	for(i=1;i<=n;i++)
	{

		outportb(0x378,32);
		clk();
		delay(2);
		outportb(0x378,print_str[i]);
		clk();
		delay(2);
	}
	printf("Print OK!!\n");
}


void main()
{ int i;
    getstr_inti();
	charge2_39code();
/*for(i=0;i<count;i++)
	printf("%x",print_data[i]);*/

	print_39code();
	print_str1();
}

⌨️ 快捷键说明

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