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

📄 manage.lst

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


C51 COMPILER V8.01, COMPILATION OF MODULE MANAGE
OBJECT MODULE PLACED IN Manage.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Manage.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          * 文件名称:Manage.C
   8          * 摘    要:商品信息管理
   9          *
  10          * 单 片 机:uPSD3254
  11          * 当前版本:0.4
  12          * 作    者:李凯,雍继兵
  13          * 完成日期:2004-12-7 14:45
  14          */
  15          
  16          #include "Main.h"
  17          #include "Report.h"
  18          
  19          #define  write                          1       // write = 1  no write = 0
  20          #define  Erasetest                      1               // Erase = 1  no Erase = 0
  21          #define  Debug                          1
  22          
  23          #define LinkER                          0x50
  24          #define Overtime                        0x52
  25          #define CrCEr                           0x51
  26          #define ComandEr                        0x53
  27          #define ReceiveOver                     0x54
  28          
  29          #define SPDown                          0x30
  30          #define XMDown                          0x31
  31          #define DSPDown                         0x32
  32          #define DXMDown                         0x33
  33          #define ZKXW                            0x34
  34          #define ZKZW                            0x35
  35          #define DownTC                          0x36
  36          #define BaudrateSet                     0x37
  37          
  38          #define Com0                            0x1b
  39          #define Com1                            0x10
  40          
  41          
  42          #define Bps9600                         1
  43          #define Bps19200                        2
  44          
  45          #define SPlen                           39
  46          #define XMlen                           33
  47          
  48          #define xWStartadr              0
  49          #define zWStartadr              0x10000
  50          
  51          uchar BautRateFg;
  52          uchar StartDown(uchar type,ulong address,uchar *EraseFlag,uchar len);
  53          
  54          uchar InputTime(uchar row,uchar col,uchar *dat,uchar mode)
  55          {
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 2   

  56   1              uchar i,val,count,tp[3];
  57   1              uint cnt,time=0;
  58   1              uchar const str[]={K_0,K_1,K_2,K_3,K_4,K_5,K_6,K_7,K_8,K_9,
  59   1                                      K_RIGHT,K_DOWN,K_UP,K_LEFT,K_HJ,K_TC,K_QC};
  60   1      
  61   1              cnt=CursorTime;
  62   1              while(1)
  63   1              {
  64   2                      if(mode)
  65   2                      {//输入两位数
  66   3                              tp[0]=(*dat>>4)+'0';
  67   3                              tp[1]=(*dat&0x0F)+'0';
  68   3                              tp[2]=0;
  69   3                      }
  70   2                      else
  71   2                      {//输入一位数
  72   3                              tp[0]=*dat+'0';
  73   3                              tp[1]=0;
  74   3                      }
  75   2                      i=0xF0;
  76   2                      val=0xFF;
  77   2                      count=0;
  78   2                      while(val==0xFF)
  79   2                      {
  80   3                              val = GetKey();
  81   3                              if(val!=0xFF)break;
  82   3                              time++;
  83   3                              if(time>cnt)
  84   3                              {
  85   4                                      time = 0;
  86   4                              LcdDisplay(row,col,tp,i);
  87   4                                  if(i==0)i=0xF0;
  88   4                                  else i=0;
  89   4                              }
  90   3                      }
  91   2                  for(i=0;i<10;i++)
  92   2                  {
  93   3                      if(val==str[i])
  94   3                      {
  95   4                              if(mode)
  96   4                              {
  97   5                                      *dat<<=4;
  98   5                                              *dat|=i;
  99   5                                      }
 100   4                                      else *dat=i;
 101   4                              }
 102   3                  }
 103   2                  if(val==K_QC)
 104   2                  {
 105   3                      *dat=0;
 106   3                      continue;
 107   3                  }
 108   2                  for(i=10;i<16;i++)
 109   2                  {
 110   3                      if(val==str[i])
 111   3                      {
 112   4                              LcdDisplay(row,col,tp,0);
 113   4                              return val;
 114   4                      }
 115   3                  }
 116   2              }
 117   1      }
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 3   

 118          
 119          uchar ShowTime(uchar mode)
 120          {
 121   1              uchar str1[7]={"2000年"};
 122   1              uchar str2[17]={"00月00日 星期0"};
 123   1              uchar str3[13]={"00时00分00秒"};
 124   1              uchar k;
 125   1              uint time,cnt;
 126   1      
 127   1              cnt=CursorTime;
 128   1              if(mode==0)
 129   1                      LcdDisplay(0,56,"当 前 时 间",3);
 130   1              else
 131   1                      LcdDisplay(0,56,"时 间 设 置",3);
 132   1              while(1)
 133   1              {
 134   2                      ReadDate();             
 135   2                      
 136   2                      str1[2]=(InvoDate[1]>>4)+'0';
 137   2                      str1[3]=(InvoDate[1]&0x0F)+'0'; //年
 138   2                      LcdDisplay(16,72,str1,1);
 139   2      
 140   2                      str2[0]=(InvoDate[2]>>4)+'0';
 141   2                      str2[1]=(InvoDate[2]&0x0F)+'0'; //月
 142   2                      str2[4]=(InvoDate[3]>>4)+'0';
 143   2                      str2[5]=(InvoDate[3]&0x0F)+'0'; //日
 144   2                      str2[13]=(InvoDate[4]&0x0F)+'0';//星期
 145   2                      LcdDisplay(32,40,str2,1);
 146   2      
 147   2                      str3[0]=(InvoDate[5]>>4)+'0';
 148   2                      str3[1]=(InvoDate[5]&0x0F)+'0'; //时
 149   2                      str3[4]=(InvoDate[6]>>4)+'0';
 150   2                      str3[5]=(InvoDate[6]&0x0F)+'0'; //分
 151   2                      str3[8]=(InvoDate[7]>>4)+'0';
 152   2                      str3[9]=(InvoDate[7]&0x0F)+'0'; //秒
 153   2                      LcdDisplay(48,48,str3,1);
 154   2                      
 155   2                      if(mode!=0)return 1;
 156   2                      else
 157   2                      {
 158   3                              k=0xFF;
 159   3                              time=0;
 160   3                              while(k==0xFF)
 161   3                              {
 162   4                                      time++;
 163   4                                      if(time>cnt)break;
 164   4                                      k = GetKey();
 165   4                                      if(k==K_HJ || k==K_TC)
 166   4                                              return 0;
 167   4                              }
 168   3                      }
 169   2              }
 170   1      }
 171          
 172          void TimeSetup(uchar mode)
 173          {//mode=2:只能修改时.分.秒;mode=1: 修改全部;mode=0: 只显示时间不修改时间
 174   1              uchar i,j,k,f,m;
 175   1              struct coordinate
 176   1              {
 177   1                      uchar row;
 178   1                      uchar col;
 179   1              };
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 4   

 180   1              struct coordinate tp[7]={{16,88},{32,40},{32,72},{32,144},{48,48},{48,80},{48,112}};
 181   1      
 182   1              while(1)
 183   1              {
 184   2                      if(ShowTime(mode)==0)return;
 185   2      
 186   2                      if(mode==1)
 187   2                              m=0;
 188   2      //              if(mode==2)
 189   2                      else
 190   2                              m=4;
 191   2                      i=m;
 192   2                      while(1)
 193   2                      {
 194   3                              if(i!=3)j=1;
 195   3                              else    j=0;
 196   3                              k=InputTime(tp[i].row,tp[i].col,&InvoDate[i+1],j);
 197   3                              if(k==K_TC)return;
 198   3                              if(k==K_HJ)
 199   3                              {
 200   4                                      f=1;
 201   4                                      InvoDate[0]=0x20;
 202   4                                      if(Verdict(InvoDate)==0)f=0;
 203   4                                      if(InvoDate[4]>7 || InvoDate[4]==0)f=0;
 204   4                                      if(InvoDate[5]>0x23 || InvoDate[6]>0x59 || InvoDate[7]>0x59)f=0;
 205   4                                      if(f==1)break;
 206   4                                      else
 207   4                                      {
 208   5                                              Hint(16,16,"时间格式错误!",3);
 209   5                                              f=0;
 210   5                                              break;
 211   5                                      }
 212   4                              }
 213   3                              if(k==K_DOWN || k==K_RIGHT)
 214   3                              {
 215   4                                      if(i<6)i++;
 216   4                                      else i=m;
 217   4                              }
 218   3                              if(k==K_UP || k==K_LEFT)
 219   3                              {
 220   4                                      if(i>m)i--;
 221   4                                      else i=6;
 222   4                              }
 223   3                      }
 224   2                      if(f==1)break;
 225   2              }
 226   1              SetTime(&InvoDate[1]);
 227   1      }
 228          
 229          void StrToBar(uchar *str,uchar *bar)
 230          {
 231   1              gyt2 *xp;
 232   1              gyt4 *tp;
 233   1              ulong n;
 234   1              uint m;
 235   1              uchar i;
 236   1      
 237   1              for(m=0,i=0;i<4;i++)
 238   1                      m=m*10+str[i]-'0';
 239   1              for(n=0,i=4;i<13;i++)
 240   1                      n=n*10+str[i]-'0';
 241   1              xp = bar;
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 5   

*** WARNING C182 IN LINE 241 OF MANAGE.C: pointer to different objects
 242   1              xp->dat = m;
 243   1              tp = &bar[2];
*** WARNING C182 IN LINE 243 OF MANAGE.C: pointer to different objects
 244   1              tp->dat = n;
 245   1      }
 246          

⌨️ 快捷键说明

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