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

📄 printer.lst

📁 51单片机驱动针式打印头的程序
💻 LST
字号:
C51 COMPILER V7.20   PRINTER                                                               01/13/2005 21:43:50 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE PRINTER
OBJECT MODULE PLACED IN Printer.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Printer.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include <x25045.h>
   2          
   3          sbit Pfeedback = 0xa0;                          /* 打印机脉冲信号       */
   4          sbit Preset    = 0xa1;                          /* 打印机复位信号       */
   5          sbit Ppaper    = 0xa2;                          /* 打印纸测试           */
   6          
   7          sbit Print4 = 0x87;                             /* 打印机一针           */
   8          sbit Print3 = 0x86;                             /* 打印机二针           */
   9          sbit Print2 = 0x85;                             /* 打印机三针           */
  10          sbit Print1 = 0x84;                             /* 打印机四针           */
  11          sbit Motor  = 0x83;                             /* 打印机马达控制       */
  12          
  13          char code CharLib[]={0x3e,0x45,0x49,0x51,0x3e,0,/* 0    */
  14                               0x00,0x21,0x7f,0x01,0x00,0,/* 1    */
  15                               0x21,0x43,0x45,0x49,0x31,0,/* 2    */
  16                               0x42,0x41,0x51,0x69,0x46,0,/* 3    */
  17                               0x0c,0x14,0x24,0x7f,0x04,0,/* 4    */
  18                               0x72,0x51,0x51,0x51,0x4e,0,/* 5    */
  19                               0x1e,0x29,0x49,0x49,0x06,0,/* 6    */
  20                               0x40,0x47,0x48,0x50,0x60,0,/* 7    */
  21                               0x36,0x49,0x49,0x49,0x36,0,/* 8    */
  22                               0x30,0x49,0x49,0x4a,0x3c,0,/* 9    */
  23                               0x00,0x00,0x00,0x00,0x00,0,/* 空格 */
  24                               0x3f,0x44,0x44,0x44,0x3f,0,/* A    */
  25                               0x7f,0x49,0x49,0x49,0x36,0,/* B    */
  26                               0x3e,0x41,0x41,0x41,0x22,0,/* C    */
  27                               0x7f,0x41,0x41,0x22,0x1c,0,/* D    */
  28                               0x7f,0x49,0x49,0x49,0x41,0,/* E    */
  29                               0x7f,0x48,0x48,0x48,0x40,0,/* F    */
  30                               0x3e,0x41,0x49,0x49,0x2f,0,/* G    */
  31                               0x7f,0x08,0x08,0x08,0x7f,0,/* H    */
  32                               0x00,0x41,0x7f,0x41,0x00,0,/* I    */
  33                               0x02,0x01,0x41,0x7e,0x40,0,/* J    */
  34                               0x7f,0x08,0x14,0x22,0x41,0,/* K    */
  35                               0x7f,0x01,0x01,0x01,0x01,0,/* L    */
  36                               0x7f,0x20,0x18,0x20,0x7f,0,/* M    */
  37                               0x7f,0x10,0x08,0x04,0x7f,0,/* N    */
  38                               0x3e,0x41,0x41,0x41,0x3e,0,/* O    */
  39                               0x7f,0x48,0x48,0x48,0x30,0,/* P    */
  40                               0x3e,0x41,0x45,0x42,0x3d,0,/* Q    */
  41                               0x7f,0x48,0x4c,0x4a,0x31,0,/* R    */
  42                               0x31,0x49,0x49,0x49,0x46,0,/* S    */
  43                               0x40,0x40,0x7f,0x40,0x40,0,/* T    */
  44                               0x7e,0x01,0x01,0x01,0x7e,0,/* U    */
  45                               0x7c,0x02,0x01,0x02,0x7c,0,/* V    */
  46                               0x7e,0x01,0x0e,0x01,0x7e,0,/* W    */
  47                               0x63,0x14,0x08,0x14,0x63,0,/* X    */
  48                               0x70,0x08,0x07,0x08,0x70,0,/* Y    */
  49                               0x43,0x45,0x49,0x51,0x61,0,/* Z    */
  50                               0x12,0x2e,0x6a,0x3f,0x2a,0,/* 年   */
  51                               0x01,0x7e,0x54,0x55,0x7f,0,/* 月   */
  52                               0x00,0x7f,0x49,0x49,0x7f,0,/* 日   */
  53                               0x11,0x5e,0x50,0x5f,0x11,0,/* 元   */
  54                               0x13,0x65,0x49,0x65,0x13,0,/* 公   */
  55                               0x7d,0x57,0x7f,0x57,0x7d,0,/* 里   */
C51 COMPILER V7.20   PRINTER                                                               01/13/2005 21:43:50 PAGE 2   

  56                               0x00,0x36,0x36,0x00,0x00,0,/* :    */
  57                               0x00,0x03,0x03,0x00,0x00,0,/* .    */
  58                               0x08,0x08,0x08,0x08,0x08,0 /* -    */
  59          };
  60          
  61          void InitialPrinter(void)                       /* 打印机初始化         */
  62          {
  63   1        Print4=Print3=Print2=Print1=Motor=1;          /* 马达和打印针断电     */
  64   1      }
  65          
  66          void PrintFree(char Number)                     /* 打印空行             */
  67          {
  68   1        register i;
  69   1        while(Number > 0){                            /* 空行未结束继续       */
  70   2          Motor = 0;                                  /* 启动马达             */
  71   2          Preset = 1;                                 /* 测试复位信号         */
  72   2          while(Preset){                              /* 一行一个复位信号     */
  73   3            #if WatchdogEn==1
*** WARNING C322 IN LINE 73 OF Printer.c: unknown identifier
                    Watchdog();
                    #else
  76   3            ;
  77   3            #endif
  78   3          }
  79   2          while(!Preset){
  80   3            #if WatchdogEn==1
*** WARNING C322 IN LINE 80 OF Printer.c: unknown identifier
                    Watchdog();
                    #else
  83   3            ;
  84   3            #endif
  85   3          }
  86   2          Motor = 1;                                  /* 关闭马达             */
  87   2          Number--;
  88   2          for(i=120;i>0;i--);
  89   2        }  
  90   1      }
  91          
  92          void PaperIn(void)                              /* 开始进纸             */
  93          {
  94   1        Motor = 0;
  95   1        #if WatchdogEn==1
*** WARNING C322 IN LINE 95 OF Printer.c: unknown identifier
                Watchdog();
                #endif
  98   1      }
  99          
 100          bit PrintTest(void)                             /* 测试打印机           */
 101          {
 102   1        uint i = 2000;
*** ERROR C202 IN LINE 102 OF PRINTER.C: 'uint': undefined identifier
*** ERROR C141 IN LINE 102 OF PRINTER.C: syntax error near 'i'
 103   1        Motor = 0;
 104   1        while(Pfeedback){
 105   2          #if WatchdogEn==1
*** WARNING C322 IN LINE 105 OF Printer.c: unknown identifier
                  Watchdog();
                  #endif
 108   2          if(--i == 0) goto Perror;
*** ERROR C202 IN LINE 108 OF PRINTER.C: 'i': undefined identifier
 109   2        }
 110   1        while(!Pfeedback){
C51 COMPILER V7.20   PRINTER                                                               01/13/2005 21:43:50 PAGE 3   

 111   2          #if WatchdogEn==1
*** WARNING C322 IN LINE 111 OF Printer.c: unknown identifier
                  Watchdog();
                  #endif
 114   2          if(--i == 0) goto Perror;
*** ERROR C202 IN LINE 114 OF PRINTER.C: 'i': undefined identifier
 115   2        }
 116   1        Motor = 1;
 117   1        return(TRUE);
*** ERROR C202 IN LINE 117 OF PRINTER.C: 'TRUE': undefined identifier
 118   1        Perror:
 119   1        Motor = 1;
 120   1        return(FALSE);
*** ERROR C202 IN LINE 120 OF PRINTER.C: 'FALSE': undefined identifier
 121   1      }
 122          
 123          void Printer(BYTE idata *Index)                 /* M150打印机控制       */
*** ERROR C141 IN LINE 123 OF PRINTER.C: syntax error near 'idata', expected ')'
 124          {
 125   1        char i,j,k,l;
 126   1        bit pin=1;
 127   1      bit sample = 1;
 128   1        Motor = 0;                                    /* 启动马达             */
 129   1        for(i=0;i<8;i++){                             /* 一个字符八行         */
 130   2          Watchdog();
 131   2          Preset = 1;                                 /* 测试复位信号         */
 132   2          while(Preset){                              /* 信号上跳变为开始     */
 133   3            if (WatchdogEn==1)
 134   3            {Watchdog();}
 135   3            
 136   3          }
 137   2          while(!Preset){
 138   3          //  #if WatchdogEn==1
 139   3          //  Watchdog();
 140   3          //  #else
 141   3            ;
 142   3          //  #endif
 143   3          }
 144   2          for(j=0;j<4;j++){                           /* 一根针控制四字符     */
 145   3            for(k=0;k<6;k++){                         /* 一个字符为六列       */
 146   4              for(l=0;l<4;l++){                       /* 四根针轮流控制       */
 147   5                Pfeedback = 1;                        /* 测试针控信号         */
 148   5                if(sample){                           /* 上下跳变轮流         */
 149   6                  while(Pfeedback){
 150   7                   // #if WatchdogEn==1
 151   7                   // Watchdog();
 152   7                   // #else
 153   7                    ;
 154   7                  //  #endif
 155   7                  }
 156   6                }             
 157   5                else{
 158   6                  while(!Pfeedback){
 159   7                   // #if WatchdogEn==1
 160   7                  //  Watchdog();
 161   7                  //  #else
 162   7                 // 
 163   7        ;
 164   7                 //   #endif
 165   7                  }
 166   6                }             
 167   5                sample = !sample;                     /* 测试位取反           */
C51 COMPILER V7.20   PRINTER                                                               01/13/2005 21:43:50 PAGE 4   

 168   5                pin = (bit)((CharLib[(WORD)((WORD)(*(Index + l * 4 + j)) * 6 + k)] << i) & 0x80);
 169   5                                                      /* 取打印点数据         */
 170   5                Print4 = Print3 = Print2 = Print1 = 1;/* 打印针断电           */
 171   5                switch(l){
 172   6                  case 0: Print4 = !pin; break;       /* 打印针通电           */
 173   6                  case 1: Print3 = !pin; break;
 174   6                  case 2: Print2 = !pin; break;
 175   6                  case 3: Print1 = !pin; break;
 176   6                }
 177   5              }
 178   4            }
 179   3          }
 180   2        }
 181   1        InitialPrinter();                             /* 打印机初始化         */
 182   1        PrintFree(10);
 183   1      }
 184          
 185          

C51 COMPILATION COMPLETE.  5 WARNING(S),  7 ERROR(S)

⌨️ 快捷键说明

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