sbit STROBE=P3^4;//单片机发出的选通信号
sbit CS=P2^5;//打印机在联机时为高电平
sbit ACK=P3^5;//数据以接收,返回主机低电平信号
sbit BUSY=P2^4;//打印机返回主机的忙信号
sbit ERROR=P2^6; //需在打印前判断该位
uchar code init[]={0x1c,0x78,0x00,0x1c,0x26,0x1b,0x45,0x1c,0x53,0x1e,0x1e,0x1b,0x6c,
0x10,0x1b,0x51,0x05 };//打印机初始化控制代码
uchar code tbhead[]={ 0x0a,0x0a, 0xcc,0xce,0xcc,0xce,
0xcd,0xf2,0xcb,0xea,0x21 };//要打印的几个汉字的国标码
void delay(uchar ms)//延时函数
{
uchar i;
while (ms--)
{
for (i=0;i < 10 ;i++)
{;}
}
}
void prt(uchar d)//打印单个字符的函数
{
while(BUSY);
STROBE=0x01;
P0=d;//P0口直接通过4.7K上拉排阻接到打印机上对应的8根数据线上
STROBE=0x00;
delay(1);//延时
STROBE=0x01;
}
void main()
{
uchar i;
for(i=0;i <17;i++)
prt(init[i]);//打印机初始化
while(1)
{
for(i=0;i <11;i++)
delay(500);//延时
prt(tbhead[i]);//打印一串字符
}
}