📄 txm.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 + -