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

📄 check.lst

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.01   CHECK                                                                 03/28/2006 09:49:25 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE CHECK
OBJECT MODULE PLACED IN Check.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Check.c LARGE OPTIMIZE(9,SIZE) BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          /*
   2          * Copyright (c) 2004,成都港顺科技发展有限公司
   3          * All rights reserved.
   4          *
   5          * 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
   6          * 工程名称:POS-Test.UV2
   7          * 文件名称:Check.C
   8          * 摘    要:税控机自检
   9          *
  10          * 单 片 机:uPSD3254
  11          * 当前版本:0.4
  12          * 作    者:林云
  13          * 完成日期:2004-10-25 14:45
  14          */
  15          #include "Main.h"
  16          
  17          //显示方格
  18          void LcdDisBlock(void)
  19          { 
  20   1              unsigned char i,j,k,val = 0xff,val1=0;
  21   1                
  22   1              LcdWriteCommand(0x3f,LcdChip1);  
  23   1              LcdWriteCommand(0x3f,LcdChip2);   
  24   1              LcdWriteCommand(0x3f,LcdChip3);       
  25   1              for(i=0;i<8;i++)
  26   1          {
  27   2              LcdWriteCommand(i|0xb8,LcdChip1);
  28   2              LcdWriteCommand(i|0xb8,LcdChip2);
  29   2              LcdWriteCommand(i|0xb8,LcdChip3);
  30   2              LcdWriteCommand(0x40,LcdChip1);  //列地址设置指令  左半屏 
  31   2              LcdWriteCommand(0x40,LcdChip2);  //列地址设置指令  右半屏
  32   2              LcdWriteCommand(0x40,LcdChip3);  //列地址设置指令  右半屏  
  33   2              
  34   2              for(j=0;j<4;j++)
  35   2              { 
  36   3                      for(k=0;k<16;k++)
  37   3                      LcdWriteData(val,LcdChip1); 
  38   3                  val=~val;
  39   3              }
  40   2              for(j=0;j<4;j++)
  41   2              { 
  42   3                      for(k=0;k<16;k++)
  43   3                      LcdWriteData(val,LcdChip2); 
  44   3                  val=~val;
  45   3              }
  46   2              for(j=0;j<4;j++)
  47   2              { 
  48   3                      for(k=0;k<16;k++)
  49   3                      LcdWriteData(val,LcdChip3); 
  50   3                  val=~val;
  51   3              }
  52   2              val = val1;
  53   2              val1 = ~val1;
  54   2          }    
  55   1      }
C51 COMPILER V8.01   CHECK                                                                 03/28/2006 09:49:25 PAGE 2   

  56          
  57          //LCD测试
  58          void CheckLcd(void)
  59          {  uchar val;
  60   1         uint i;
  61   1      
  62   1         LcdDisplay(0,0,"    以下测试您应可以在显",4);
  63   1         LcdDisplay(16,0,"示屏上看见一些黑白方块",4);
  64   1         LcdDisplay(32,16,"按[确认]键继续",4);
  65   1         LcdDisplay(48,16,"按[退出]键退出",4);
  66   1         while(1)
  67   1          {
  68   2             val = GetKey();
  69   2             if(val==0xff) continue;
  70   2             if(val==K_HJ)  //确认
  71   2               {
  72   3                   LcdDisBlock();  //显示黑白方块
  73   3                   for(i=0;i<35000;i++)
  74   3                     if(GetKey()==K_HJ) break; //延时
  75   3                   LcdClear(192);
  76   3                   LcdDisplay(8,24,"你看见黑白方块了吗?",4);
  77   3                   LcdDisplay(32,16,"看见了请按[1]键",4);
  78   3                   LcdDisplay(48,16,"没看见请按[0]键",4);
  79   3                   while(1)
  80   3                    { val = GetKey();
  81   4                      if(val!=0xff)
  82   4                        {  if(val==K_0)  //0键
  83   5                              { LcdDisplay(0,0," ",4);   //清除本行内容
  84   6                                LcdDisplay(16,56,"LCD有故障!",4);
  85   6                                LcdDisplay(32,0," ",4);
  86   6                                LcdDisplay(48,16,"按[退出]键退出",4);
  87   6                                i = 0;
  88   6                                while(i<25000)           //如果没有按键, 延时退出
  89   6                                  { val = GetKey();
  90   7                                    if(val==K_TC) return;
  91   7                                    i++;
  92   7                                  }
  93   6                                return;
  94   6                              }
  95   5                           if(val==K_1)  //1键
  96   5                              { LcdDisplay(0,0," ",4);   //清除本行内容
  97   6                                LcdDisplay(16,56,"LCD完好无损!",4);
  98   6                                LcdDisplay(32,0," ",4);
  99   6                                LcdDisplay(48,16,"按[退出]键退出",4);
 100   6                                i = 0;
 101   6                                while(i<25000)           //如果没有按键, 延时退出
 102   6                                  { val = GetKey();
 103   7                                    if(val==K_TC) return;
 104   7                                    i++;
 105   7                                  }
 106   6                                return;
 107   6                              }
 108   5                        }
 109   4                    }
 110   3               }
 111   2             if(val==K_TC)  //退出
 112   2               {
 113   3                  return;
 114   3               }
 115   2          }
 116   1      }
 117          
C51 COMPILER V8.01   CHECK                                                                 03/28/2006 09:49:25 PAGE 3   

 118          struct KeyIndex
 119             { uchar KeyVal;
 120               uchar *KeyChina;
 121             };
 122          //键盘测试
 123          void CheckKey(void)
 124          {
 125   1              uchar i,val,str[10],num;
 126   1              const struct KeyIndex InputIndex[] =
 127   1              {
 128   1              {K_0,"数字0"},{K_1,"数字1"},{K_2,"数字2"},
 129   1              {K_3,"数字3"},{K_4,"数字4"},{K_5,"数字5"},
 130   1              {K_6,"数字6"},{K_7,"数字7"},{K_8,"数字8"},
 131   1              {K_9,"数字9"},{K_00,"数字00"},{K_DOT,"小数点"},
 132   1              {K_SL,"数量/乘号"},{K_BF,"百分比%"},{K_PLU,"PLU"},
 133   1              {K_XM1,"项目1"},{K_XM2,"项目2"},{K_XM3,"项目3"},
 134   1              {K_XM4,"项目4"},{K_XM5,"项目5"},{K_XM6,"项目6"},
 135   1              {K_XM7,"项目7"},{K_XM8,"项目8"},{K_XM9,"项目9"},
 136   1              {K_XM10,"项目10"},{K_XM11,"项目11"},{K_XM12,"项目12"},
 137   1              {K_XM13,"项目13"},{K_XM14,"项目14"},{K_XM15,"项目15"},
 138   1              {K_XM16,"项目16"},{K_XM17,"项目17"},{K_XM18,"项目18"},
 139   1              {K_XM19,"项目19"},{K_XM20,"项目20"},{K_XM21,"项目21"},
 140   1              {K_XM22,"项目22"},{K_XM23,"项目23"},{ K_XM24,"项目24"},
 141   1              {K_XM25,"项目25"},{K_HD,"换档"},{K_JZ,"进纸"},{K_TZ,"退纸"},
 142   1              {K_QC,"清除"},{K_LJ,"订正"},{K_SJ,"时间"},
 143   1              {K_DZ,"打折"},{K_JF,"加费"},{K_XJ,"小计"},{K_BZ,"帮助"},
 144   1              {K_TH,"退票/废票"},     {K_SR,"输入切换"},{K_TC,"退出/注销"},
 145   1              {K_DL,"签到/登陆"},{K_CX,"销售查询"},{K_SK,"刷卡消费"},
 146   1              {K_GN,"系统功能"},{K_TM,"手工条码"}, {K_HJ,"合计/确认"},
 147   1              {K_UP,"向上"},{K_DOWN,"向下"},{K_LEFT,"向左"},{K_RIGHT,"向右"}
 148   1              };
 149   1      
 150   1              num=0;
 151   1              LcdDisplay(0, 0,"  本程序在您按键时会将对",4);
 152   1              LcdDisplay(16,0,"应的键显示出来; 连续按两",4);
 153   1              LcdDisplay(32,0,"次<退出>键退出本测试程序",4);
 154   1              LcdDisplay(48,0,"--按<确认>键开始测试",4);
 155   1              while(1)
 156   1          {
 157   2              val = KeyScan();
 158   2              if(val==K_HJ)   //确认
 159   2              {
 160   3                      LcdDisplay(8, 16,"请按键:",3);
 161   3                      DisplayFullRec(6,74,26,172,1);
 162   3                      LcdDisplay(40, 24,"按键数:0   共63个键",4);
 163   3                      while(1)
 164   3                      {
 165   4                              val = KeyScan();
 166   4                          for(i=0;i<63;i++)
 167   4                          {
 168   5                              if(val == InputIndex[i].KeyVal)  //找到键
 169   5                              {
 170   6                                  LcdDisplay(8, 76,"         ",0);  //清除键值
 171   6                                  LcdDisplay(8, 76,InputIndex[i].KeyChina,0); //显示键值
 172   6                                  if(val==K_TC)num++;
 173   6                                  if(num>1)return;
 174   6                              }
 175   5                          }
 176   4                          NumToStr(num,str,SwitchInt);  //转换成字符串
 177   4                          LcdDisplay(40,80,str,0);
 178   4                              }
 179   3                      }
C51 COMPILER V8.01   CHECK                                                                 03/28/2006 09:49:25 PAGE 4   

 180   2      
 181   2              }
 182   1      }
 183          //打印机测试
 184          void CheckPrint(void)
 185          {  uchar val,str[10];
 186   1      
 187   1         //BlackOrientation();
 188   1         LcdClear(192);
 189   1         LcdDisplay(8,8,"确实要打印测试页吗?",4);
 190   1         LcdDisplay(32,16,"按[确认]键打印",4);
 191   1         LcdDisplay(48,16,"按[退出]键退出",4);
 192   1         while(1)
 193   1           { val = GetKey();
 194   2             if(val == K_HJ)  //确认
 195   2               {  LcdClear(192);
 196   3                  LcdDisplay(8,0,"  如果测试页已打印请按确",0);
 197   3                  LcdDisplay(24,0,"认键,否则打印机有故障!",0);
 198   3                          LcdDisplay(48,16," [确认]  [退出]",4);
 199   3                          str[0] = 0x1c; str[1] = 0x57; str[2] = 1;
 200   3                          UartTxdPrinter(3,str);
 201   3                  PrintStr("成都港顺科技发展有限公司");
 202   3                  PrintStr("   扫印机测试页");
 203   3                  str[2] = 0;
 204   3                  UartTxdPrinter(3,str);
 205   3                  PrintStr("恭喜!");
 206   3                  PrintStr("如果您可以读取这个信息,则说明这台税控机上的打印机没有问题!");
 207   3                  PrintStr("以下信息是本机的一些参数:");
 208   3                  PrintStr("税控机型号: GS-800");
 209   3                  PrintStr("操作系统: GS-OS");
 210   3                  PrintStr("打印机驱动程序: PrintStr");
 211   3                  PrintStr("CPU:   24MHz");
 212   3                  PrintStr("RAM:   32K");
 213   3                  PrintStr("ROM:   256K+32K");
 214   3                  PrintStr("这是打印测试页的结尾.\n\n");
 215   3                  while(1)
 216   3                    { val = GetKey();
 217   4                      if((val == K_HJ)||(val==K_TC))   return;
 218   4                    }
 219   3               }
 220   2             if(val == K_TC) return;
 221   2          }
 222   1      }
 223          void CheckBox(void)
 224          {  uchar val;
 225   1      
 226   1         LcdClear(192);
 227   1         LcdDisplay(0,64,"钱箱测试",0);
 228   1         LcdDisplay(24,10,"请按[1]键打开钱箱!",0);
 229   1         LcdDisplay(48,16," [确认]  [退出]",4);
 230   1         while(1)
 231   1          {  val = GetKey();
 232   2             if((val==K_HJ)||(val==K_TC)) return;
 233   2             if(val==K_1)
 234   2               {
 235   3                  //开钱箱
 236   3               }
 237   2          }
 238   1      }
 239          //通信测试
 240          void CheckCom(void)
 241          {  uchar val;
C51 COMPILER V8.01   CHECK                                                                 03/28/2006 09:49:25 PAGE 5   

 242   1         ulong SendNum=0,RecvNum=0,TryNum=0,ErrorNum=0;
 243   1      
 244   1         LcdDisplay(0,64,"通信测试",4);
 245   1         LcdDisplay(16,16,"  请连接好通讯线并打开管",4);
 246   1         LcdDisplay(32,0,"理软件,你连接好了吗?",4);
 247   1         LcdDisplay(48,16," [确认]  [退出]",4);
 248   1         while(1)
 249   1           { val = GetKey();
 250   2             if(val == K_TC) return;
 251   2             if(val == K_HJ)
 252   2               {
 253   3                  LcdClear(192);
 254   3                  LcdDisplay(8,0, " 发送:0    接收:0     ",4);

⌨️ 快捷键说明

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