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

📄 fun.lst

📁 2008年山东省大学生电子设计大赛 c题 多功能电子计价秤 单片机用的 c8051f005
💻 LST
字号:
C51 COMPILER V7.20   FUN                                                                   09/18/2008 18:08:22 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE FUN
OBJECT MODULE PLACED IN fun.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE fun.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "include.h"
   2          
   3          struct goods pre_set_goods[10]; //十个预置货物
   4          
   5          /*------------------------------
   6          显示预置值清单 10个 分3页
   7          按下相应按键返回预置单价
   8          --------------------------------*/
   9          uchar get_pre_num()
  10          {
  11   1              uchar i,x=0,key;
  12   1              for(;;)
  13   1              {       
  14   2                      key=0xff;
  15   2                      lcd_clr();
  16   2                      for(i=0;i<4;i++)
  17   2                      {
  18   3                              lcd_display_one_num(0,i*2,i+x);
  19   3                              lcd_display_uint(16,i*2,(uint)pre_set_goods[i+x].name);
  20   3                              lcd_display_yuan(48,i*2,pre_set_goods[i+x].price);
  21   3                      }
  22   2                      
  23   2                      while(key==0xff)
  24   2                              key=scan_key();
  25   2                      if(key==0x0f&x<6)                                                       
  26   2                      {
  27   3                              x++;
  28   3                      }
  29   2                      else if(key==0x0e&x>0)                                          
  30   2                      {
  31   3                              x--;
  32   3                      }
  33   2                      else if(key<=10)
  34   2                      {
  35   3                              lcd_clr();
  36   3                              return key;
  37   3                      }
  38   2               }
  39   1      }
  40          
  41          /*------------------------------
  42          显示预置值清单 10个 分3页
  43          按下相应按键修改预置单价
  44          --------------------------------*/
  45          void set_pre_price()
  46          {
  47   1              uchar list_num;
  48   1              uchar i,x=0,key;
  49   1              for(;;)
  50   1              {       
  51   2                      key=0xff;
  52   2                      lcd_clr();
  53   2                      for(i=0;i<4;i++)
  54   2                      {
  55   3                              lcd_display_one_num(0,i*2,i+x);
C51 COMPILER V7.20   FUN                                                                   09/18/2008 18:08:22 PAGE 2   

  56   3                              lcd_display_uint(16,i*2,(uint)pre_set_goods[i+x].name);
  57   3                              lcd_display_yuan(48,i*2,pre_set_goods[i+x].price);
  58   3                      }
  59   2                      
  60   2                      while(key==0xff)
  61   2                              key=scan_key();
  62   2                      if(key==0x0f&x<6)                                                       
  63   2                      {
  64   3                              x++;
  65   3                      }
  66   2                      else if(key==0x0e&x>0)                                          
  67   2                      {
  68   3                              x--;
  69   3                      }
  70   2                      else if(key<=10)
  71   2                      {       
  72   3                              lcd_clr();
  73   3                              pre_set_goods[key].name=(uchar)input_float(0,0);
  74   3                              pre_set_goods[key].price=input_float(0,2);
  75   3                      }
  76   2                      else if(key==0x0b)
  77   2                      {
  78   3                              list_num=flash_read_list_num();
  79   3                              flash_clr(0x8000);                                                              //清除FLASH的0x8000
  80   3                              flash_wr(pre_set_goods,list_num);                               //将数据存入FLASH
  81   3                              break;
  82   3                      }
  83   2               }
  84   1      
  85   1      }
  86          
  87          
  88          /*-----------------------------------
  89          查看历史清单
  90          list_num:当前清单ID
  91          -------------------------------------*/
  92          uchar show_list(uchar list_num)
  93          {
  94   1              uchar key=0xff;
  95   1              struct list code *add;
  96   1              if(list_num==0)
  97   1                      list_num=99;
  98   1              else list_num--;
  99   1              lcd_display_list_head();
 100   1              for(;;)
 101   1              {
 102   2                      key=0xff;
 103   2                      add=(struct list code *)(0x4c00+list_num*128);
 104   2                      lcd_display_time(16,0,add->year);
 105   2                      lcd_display_time(48,0,add->month);
 106   2                      lcd_display_time(80,0,add->day);
 107   2                      lcd_display_time(0,2,add->hour);
 108   2                      lcd_display_time(32,2,add->minute);
 109   2                      lcd_clr_page(4,40,56);
 110   2                      lcd_display_uint(32,4,(uint)(add->sales));
 111   2                      lcd_clr_page(6,32,120);
 112   2                      lcd_display_yuan(32,6,add->sum_price);
 113   2                      lcd_display_uint(80,4,(uint)(add->list_num));                           //清单编号 测试用
 114   2                      lcd_display_uint(80,6,list_num);                                                        //正确清单编号 测试用
 115   2                      while(key==0xff)
 116   2                              key=scan_key();
 117   2                      if(key==0x0f)                                   //切换下张清单                          
C51 COMPILER V7.20   FUN                                                                   09/18/2008 18:08:22 PAGE 3   

 118   2                      {
 119   3                              if(list_num==99)
 120   3                                      list_num=0;
 121   3                              else list_num++;
 122   3                      }
 123   2                      else if(key==0x0e)                              //切换上张清单          
 124   2                      {
 125   3                              if(list_num==0)
 126   3                                      list_num=99;
 127   3                              else list_num--;
 128   3                      }
 129   2                      else if(key==0x0c)                              //退出清单查看
 130   2                      {
 131   3                              lcd_clr();
 132   3                              return 0;
 133   3                      }
 134   2                      else if(key==0xd)                               //查看清单明细
 135   2                      {               
 136   3                              show_thing(add->buy);
 137   3                              lcd_display_list_head();
 138   3                      }
 139   2              }
 140   1      }
 141          
 142          uchar show_thing(struct thing buy[])
 143          {       
 144   1              uchar key;
 145   1              uchar thing_num=0;
 146   1              lcd_display_thing();
 147   1              for(;;)
 148   1              {
 149   2                      key=0xff;
 150   2                      lcd_display_uint(32,0,(uint)(buy[thing_num].name));
 151   2                      lcd_display_yuan(32,2,buy[thing_num].unit_price);
 152   2                      lcd_display_float(32,4,buy[thing_num].weight);
 153   2                      lcd_display_yuan(32,6,buy[thing_num].unit_price*buy[thing_num].weight);
 154   2                      while(key==0xff)
 155   2                              key=scan_key();
 156   2                      if(key==0x0f)                                   //切换下一货物                          
 157   2                      {
 158   3                              if(thing_num==11&buy[0].name!=0xff)
 159   3                                      thing_num=0;
 160   3                              else if(buy[thing_num+1].name!=0xff)
 161   3                                      thing_num++;
 162   3                      }
 163   2                      else if(key==0x0e)                              //切换上一货物          
 164   2                      {
 165   3                              if(thing_num==0&buy[11].name!=0xff)
 166   3                                      thing_num=11;
 167   3                              else if(buy[thing_num-1].name!=0xff)
 168   3                                      thing_num--;
 169   3                      }
 170   2                      else if(key==0x0c)                              //退出清单查看
 171   2                      {
 172   3                              lcd_clr();
 173   3                              return 0;
 174   3                      }
 175   2              }
 176   1      }
 177          
 178          void print_list(struct list list1)
 179          {
C51 COMPILER V7.20   FUN                                                                   09/18/2008 18:08:22 PAGE 4   

 180   1              uchar i;
 181   1              TI=1;
 182   1              printf("\x18\x1c\x26 ");                //清除打印机缓存 进入中文模式
 183   1              TI=1;
 184   1      //      printf("%buabc%bu\n",list1.year+2000,list1.minute);
 185   1              printf("%.2d年%d月%d日\n ",(int)list1.year,(int)list1.month,(int)list1.day);
 186   1              TI=1;
 187   1              printf("%.2d时%d分\n ",(int)list1.hour,(int)list1.minute);
 188   1              TI=1;
 189   1              printf("总额:%.2f元\n ",list1.sum_price);
 190   1              TI=1;
 191   1              printf("%d号销售员\n ",(int)list1.sales);
 192   1      
 193   1              for(i=0;(list1.buy[i].name!=0xff)&(i<12);i++)
 194   1              {       
 195   2                      TI=1;
 196   2                      printf("\x1c\x2e --------------\n ");
 197   2                      TI=1;
 198   2                      printf("\x1c\x26商品编号:%d\n ",(int)list1.buy[i].name);
 199   2                      TI=1;
 200   2                      printf("单价:%.2f元\n ",list1.buy[i].unit_price);
 201   2                      TI=1;
 202   2                      printf("重量:%.3fKg\n ",list1.buy[i].weight);
 203   2                      TI=1;
 204   2                      printf("金额:%.2f\n ",(list1.buy[i].unit_price)*(list1.buy[i].weight));
 205   2              }
 206   1              TI=1;
 207   1              printf("\x1c\x2e --------------\n ");
 208   1      
 209   1      }
*** WARNING C316 IN LINE 209 OF fun.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1878    ----
   CONSTANT SIZE    =    138    ----
   XDATA SIZE       =     50     136
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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