打印

请教有那位前辈帮我看一下我的程序为什么打印的都是乱码,

[复制链接]
2005|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caorb|  楼主 | 2007-1-3 17:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sbit prn_busy=P1^3;               //打印机是否忙P3.0
sbit stb=P3^0;                    //数据选通
bit PRN_TAG;
code unsigned char  word_buf1[]="测试时间";

void WAIT_PRN(char tem)          //等待打印机空闲 打印一个字符 
{
  unsigned char i,prn_return;
  prn_return=0;
  for(i=0;i<40;i++)
  {
    if(prn_busy==0)    //prn_busy=0打印机空闲;prn_busy=1打印机忙
    {
      
      P2=0x1f;
      P0=tem;
      stb=0;
      _nop_();
      _nop_();
      _nop_();
      stb=1;
      prn_busy=1;
      prn_return=1;
      break;
    }
  }
  if (prn_return==1)
    PRN_TAG=1;     //PRN_TAG=1 打印结束;PRN_TAG=0 打印没有结束
  else
    PRN_TAG=0;
}
void INIT_PRN()           //初始化打印机 
{
  WAIT_PRN(0x1B);         //初始化命令
  WAIT_PRN(0x40);
  WAIT_PRN(0x1B);       //
  WAIT_PRN(0x31);
  WAIT_PRN(0xff);
  WAIT_PRN(0x1B);       //
  WAIT_PRN(0x20);
  WAIT_PRN(0x05);
}
void PRN_DISP_0808(bit TYPE,unsigned char *p,unsigned char longness) //打印8*8点阵汉字
{
  unsigned char m;
  m=TYPE;
  WAIT_PRN(0X1B);  //图形打印命令 
  WAIT_PRN(0x38);
  WAIT_PRN(0X00);
  for(;longness>0;) 
  {
    WAIT_PRN((*p++));    //直接向打印机送内码
  }
  WAIT_PRN(0X0d);

main()
{
  delay_time(1);     
  INIT_PRN();
  while(1)
  {
    PRN_DISP_0808(1,word_buf1,sizeof(word_buf0));
  }
}

相关帖子

沙发
caorb|  楼主 | 2007-1-4 13:24 | 只看该作者

顶一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

39

帖子

1

粉丝