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

📄 ds.lst

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


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

line level    source

   1          #include "include.h"
   2          /******************************************************************** 
   3          * 
   4          * 名称: v_RTInputByte 
   5          * 说明: 
   6          * 功能: 往DS1302写入1Byte数据 
   7          * 调用: 
   8          * 输入: ucDa 写入的数据 
   9          * 返回值: 无 
  10          ***********************************************************************/ 
  11          void v_RTInputByte(uchar ucDa) 
  12          { 
  13   1              uchar i; 
  14   1      //      ACC = ucDa; 
  15   1              for(i=8; i>0; i--) 
  16   1              { 
  17   2                      T_IO = ucDa%2; /*相当于汇编中的 RRC */ 
  18   2                      T_CLK = 1; 
  19   2                      T_CLK = 0; 
  20   2                      ucDa = ucDa >> 1; 
  21   2              } 
  22   1      } 
  23          /******************************************************************** 
  24          * 
  25          * 名称: uchar uc_RTOutputByte 
  26          * 说明: 
  27          * 功能: 从DS1302读取1Byte数据 
  28          * 调用: 
  29          * 输入: 
  30          * 返回值: ACC 
  31          ***********************************************************************/ 
  32          uchar uc_RTOutputByte(void) 
  33          { 
  34   1              uchar i,dat=0; 
  35   1              for(i=0; i<8; i++) 
  36   1              { 
  37   2                      if(T_IO)
  38   2                              dat+=qm(i); 
  39   2                      T_CLK = 1; 
  40   2                      T_CLK = 0; 
  41   2              } 
  42   1              return(dat); 
  43   1      }
  44          
  45          
  46          
  47          
  48          /******************************************************************** 
  49          * 
  50          * 名称: v_W1302 
  51          * 说明: 先写地址,后写命令/数据 
  52          * 功能: 往DS1302写入数据 
  53          * 调用: v_RTInputByte() 
  54          * 输入: ucAddr: DS1302地址, ucDa: 要写的数据 
  55          * 返回值: 无 
C51 COMPILER V7.20   DS                                                                    09/18/2008 18:08:22 PAGE 2   

  56          ***********************************************************************/ 
  57          void v_W1302(uchar ucAddr, uchar ucDa) 
  58          { 
  59   1              T_RST = 0; 
  60   1              T_CLK = 0; 
  61   1              T_RST = 1; 
  62   1              v_RTInputByte(ucAddr); /* 地址,命令 */ 
  63   1              v_RTInputByte(ucDa); /* 写1Byte数据*/ 
  64   1              T_CLK = 1; 
  65   1              T_RST =0; 
  66   1      } 
  67          /******************************************************************** 
  68          * 
  69          * 名称: uc_R1302 
  70          * 说明: 先写地址,后读命令/数据 
  71          * 功能: 读取DS1302某地址的数据 
  72          * 调用: v_RTInputByte() , uc_RTOutputByte() 
  73          * 输入: ucAddr: DS1302地址 
  74          * 返回值: ucDa :读取的数据 
  75          ***********************************************************************/ 
  76          uchar uc_R1302(uchar ucAddr) 
  77          { 
  78   1              uchar ucDa; 
  79   1              T_RST = 0; 
  80   1              T_CLK = 0; 
  81   1              T_RST = 1; 
  82   1              v_RTInputByte(ucAddr); /* 地址,命令 */ 
  83   1              ucDa = uc_RTOutputByte(); /* 读1Byte数据 */ 
  84   1              T_CLK = 1; 
  85   1              T_RST =0; 
  86   1              return(ucDa); 
  87   1      } 
  88          
  89          
  90          
  91          void show_time()
  92          {
  93   1              uchar key;
  94   1              uchar fen;
  95   1              float wendu;
  96   1      //      v_W1302(0x8e,0x00);
  97   1      //      v_W1302(0x80,0x00);
  98   1      //      v_W1302(0x8e,0x80);
  99   1      
 100   1              lcd_display_timeface();
 101   1              for(;;)
 102   1              {
 103   2                      lcd_display_time(24,0,uc_R1302(0x8d));
 104   2                      lcd_display_time(56,0,uc_R1302(0x89));
 105   2                      lcd_display_time(88,0,uc_R1302(0x87));
 106   2                      lcd_display_time(16,2,uc_R1302(0x85));
 107   2                      lcd_display_time(48,2,fen=uc_R1302(0x83));
 108   2                      lcd_display_time(80,2,uc_R1302(0x81));
 109   2                      b1820_init();
 110   2                      b1820_wr(0xcc);
 111   2                      b1820_wr(0x44);
 112   2                      b1820_init();
 113   2                      b1820_wr(0xcc);
 114   2                      b1820_wr(0xbe);
 115   2                      wendu=((float)b1820_re())*0.0625;
 116   2                      lcd_display_uint(80,6,(uint)wendu);
 117   2                      key=scan_key();
C51 COMPILER V7.20   DS                                                                    09/18/2008 18:08:22 PAGE 3   

 118   2                      if(key==0x0c)
 119   2                      {
 120   3                              lcd_clr();
 121   3                              return;
 122   3                      }
 123   2              }
 124   1      } 
 125          
 126          void b1820_init()
 127          {
 128   1              uint di=0;
 129   1              DQ=0;
 130   1              delay_us(600);
 131   1              DQ=1;
 132   1      //      while(DQ&di<0xff)di++;
 133   1              while(DQ);
 134   1              delay_us(300);
 135   1      }
 136          
 137          void b1820_wr(uchar dat)
 138          {
 139   1              uchar i;
 140   1      //      uchar di;
 141   1              for(i=0;i<8;i++)
 142   1              {
 143   2                      DQ=0;
 144   2                      delay_us(1);
 145   2                      DQ=dat&0x01;
 146   2                      delay_us(50);
 147   2                      DQ=1;
 148   2                      dat=dat>>1;
 149   2               }
 150   1      }
 151          
 152          uint b1820_re()
 153          {
 154   1              uchar i;
 155   1              uint j=0;
 156   1              for(i=0;i<12;i++)
 157   1              {
 158   2                      DQ=0;
 159   2                      delay_us(1);
 160   2                      DQ=1;
 161   2                      delay_us(1);
 162   2                      if(DQ)
 163   2                              j=j+qm(i);
 164   2                      DQ=1;
 165   2                      delay_us(30);
 166   2               }
 167   1               return j;
 168   1      }
 169          
 170          
*** WARNING C316 IN LINE 170 OF ds.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    444    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      14
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
C51 COMPILER V7.20   DS                                                                    09/18/2008 18:08:22 PAGE 4   

   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 + -