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

📄 datadeal.lst

📁 LCD显示电子计价秤方案 1. 该方案使用的传感器为20KG,灵敏度约为0.5mv/v,选用新传感器线性较好的一段(100g-15Kg),直接处理,没有做非线性修正,称重可能会有偏差. 2. 软件
💻 LST
字号:
C51 COMPILER V8.05a   DATADEAL                                                             05/26/2008 11:05:26 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE DATADEAL
OBJECT MODULE PLACED IN datadeal.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE datadeal.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<def.h>
   2          ulong   adcdata_int; //不放重物时的初值
   3          ulong   adcdata_mea; //放重物时的值
   4          ulong   weight;          //重量
   5          ulong   price;           //单价
   6          ulong   money;           //金额
   7          uchar   num[6]={0};
   8          void datamanage()
   9          {
  10   1              uint datal,weightl;
  11   1              OFFSPEAK;
  12   1              if(adcdata_mea<=adcdata_int)
  13   1              {
  14   2                      weight=0;
  15   2              }
  16   1              else
  17   1              {                       
  18   2                      weight=(adcdata_mea-adcdata_int)*200/weight_set;        //单位为g
  19   2                      if(adcbit1==0)
  20   2                      {
  21   3                              weight/=5;      //如果使用的是AD7715,7705将精度设置为5g
  22   3                              weight*=5;                      
  23   3                      }
  24   2              }
  25   1              if(weight>15000)
  26   1              {
  27   2                      ONSPEAK;            //超重
  28   2              }
  29   1      
  30   1              //消除显示的闪烁
  31   1              if(weight>=weightl)
  32   1              {
  33   2                      datal=weight-weightl;
  34   2              }
  35   1              else
  36   1              {
  37   2                      datal=weightl-weight;
  38   2              } 
  39   1              if(datal<=5)            //控制闪烁
  40   1              {
  41   2                 weight=weightl;
  42   2              }
  43   1      
  44   1              weightl=weight;         //刷新上次称重  
  45   1      
  46   1              if(weight<10)           //不检测10g以下的物体,同时放置在0点附件的波动
  47   1              {
  48   2                      adcdata_int=adcdata_mea;
  49   2                      weight=0;
  50   2              }
  51   1              if(disbit==1)
  52   1              {
  53   2                      //将重量转换为显示数字
  54   2                      datal=(uint)weight;
  55   2                      buf_ser[0]=buf_led[datal/10000];
C51 COMPILER V8.05a   DATADEAL                                                             05/26/2008 11:05:26 PAGE 2   

  56   2                      datal%=10000;
  57   2                  buf_ser[1]=buf_ledp[datal/1000]; //固定小数点的位置
  58   2                      datal%=1000;
  59   2                  buf_ser[2]=buf_led[datal/100];
  60   2                      datal%=100;
  61   2                  buf_ser[3]=buf_led[datal/10];
  62   2                      datal%=10;
  63   2                  buf_ser[4]=buf_led[datal];
  64   2                      //单价
  65   2                      datal=(uint)price;
  66   2                      buf_ser[5]=buf_led[datal/10000];
  67   2                      datal%=10000;
  68   2                  buf_ser[6]=buf_led[datal/1000]; 
  69   2                      datal%=1000;
  70   2                  buf_ser[7]=buf_ledp[datal/100];       //固定小数点的位置
  71   2                      datal%=100;
  72   2                  buf_ser[8]=buf_led[datal/10];
  73   2                      datal%=10;
  74   2                  buf_ser[9]=buf_led[datal];
  75   2                      //金额
  76   2                      datal=(uint)money;
  77   2                      buf_ser[10]=buf_led[datal/100000];
  78   2                      datal%=100000;                           
  79   2                      buf_ser[11]=buf_led[datal/10000];
  80   2                      datal%=10000;
  81   2                  buf_ser[12]=buf_ledp[datal/1000]; //固定小数点的位置
  82   2                      datal%=1000;
  83   2                  buf_ser[13]=buf_led[datal/100];
  84   2                      datal%=100;
  85   2                  buf_ser[14]=buf_led[datal/10];
  86   2                      datal%=10;
  87   2                  buf_ser[15]=buf_led[datal];
  88   2              }
  89   1              else
  90   1              {
  91   2                      //将重量转换为显示数字
  92   2                      datal=(uint)weight;
  93   2                  buf_ser[15]=buf_lcd[datal/10000];
  94   2                      datal%=10000;
  95   2                  buf_ser[14]=buf_lcd[datal/1000]; 
  96   2                      datal%=1000;
  97   2                  buf_ser[13]=buf_lcdp[datal/100]; //固定小数点的位置
  98   2                      datal%=100;
  99   2                  buf_ser[12]=buf_lcd[datal/10];
 100   2                      datal%=10;
 101   2                  buf_ser[11]=buf_lcd[datal];
 102   2                      //单价
 103   2                      datal=(uint)price;
 104   2                      buf_ser[10]=buf_lcd[datal/10000];
 105   2                      datal%=10000;
 106   2                  buf_ser[9]=buf_lcd[datal/1000]; 
 107   2                      datal%=1000;
 108   2                  buf_ser[8]=buf_lcd[datal/100];
 109   2                      datal%=100;
 110   2                  buf_ser[7]=buf_lcdp[datal/10];      //固定小数点的位置
 111   2                      datal%=10;
 112   2                  buf_ser[6]=buf_lcd[datal];
 113   2                      //金额
 114   2                      datal=(uint)money;              
 115   2                  buf_ser[0]=buf_lcd[datal/100000];           
 116   2                      datal%=100000;
 117   2                      buf_ser[1]=buf_lcd[datal/10000];
C51 COMPILER V8.05a   DATADEAL                                                             05/26/2008 11:05:26 PAGE 3   

 118   2                      datal%=10000;
 119   2                  buf_ser[2]=buf_lcd[datal/1000]; 
 120   2                      datal%=1000;
 121   2                  buf_ser[3]=buf_lcd[datal/100];
 122   2                      datal%=100;
 123   2                  buf_ser[4]=buf_lcdp[datal/10];      //固定小数点的位置
 124   2                      datal%=10;
 125   2                  buf_ser[5]=buf_lcd[datal];
 126   2              }
 127   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1404    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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