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

📄 cc.lst

📁 此程序是使用ds12887始终芯片实现度时间的显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CC
OBJECT MODULE PLACED IN cc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE cc.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          #include "intrins.h"
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          unsigned char code Tab[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x00};
   7          unsigned char code      Tabc[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
   8          sbit Dat=P1^3;
   9          sbit G=P1^1;
  10          sbit SCK=P1^2;                                                  
  11          sbit rck=P1^4;
  12          sbit readkey=P1^0;
  13          sbit scs= P1^5;
  14          //sbit beer=P2^0;
  15          #define REG_A XBYTE[0x030A]
  16          #define REG_B XBYTE[0x030B]
  17          #define REG_C XBYTE[0x030C]
  18          #define REG_D XBYTE[0x030D]
  19          uchar xdata *DS12887=0x0300;
  20          uchar code PIAN_YI[6]={0,2,4,7,8,9, };/*-- 年、月、日、时、分、秒-- */
  21          uchar idata DS12887_time[6],dao_time[3];
  22          uchar c,v,k,key,k1,k2,k3,k4,dao[8],key_count;
  23          uchar idata Time[10];/*-----提取时间各个位数据-----*/
  24          void key_wait();
  25          void delay()                    
  26          {
  27   1              uchar i,j,h;                                                                     
  28   1              for(i=2;i>0;i--)
  29   1              for(j=3;j>0;j--)
  30   1              for(h=100;h>0;h--);
  31   1      }
  32          void delay10(void)
  33          {
  34   1          unsigned char i,j,k;
  35   1           for(i=30;i>0;i--)
  36   1           for(j=40;j>0;j--)
  37   1           for(k=240;k>0;k--);
  38   1      }
  39          ///void delayms(unsigned char a)
  40          //{while(--a); }
  41          void out(void)
  42          {
  43   1              rck=0;
  44   1              _nop_();
  45   1              rck=1;
  46   1      }
  47          void send_num(uchar num)
  48          {
  49   1              uchar j;
  50   1              for(j=0;j<8;j++)
  51   1              {
  52   2                      SCK=0;
  53   2              Dat=num&0x80;
  54   2                      SCK=1;
  55   2                      num=num<<1;
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 2   

  56   2              }
  57   1              SCK=0;
  58   1      }
  59          void seat0(uchar j,uchar i,uchar h)
  60          {
  61   1              uchar num,a;
  62   1              G=1;
  63   1              num=Tab[j];
  64   1              send_num(Tab[h]);
  65   1          send_num(num);
  66   1              a=Tabc[i];
  67   1              send_num(a);
  68   1          G=0;
  69   1              out();
  70   1      }
  71          uchar seat(uchar j,uchar i,uchar h)
  72          {
  73   1              uchar num,a,x0,x1,x2,x3;
  74   1              G=1;
  75   1              num=Tab[j];
  76   1              send_num(Tab[h]);
  77   1          send_num(num);
  78   1              a=Tabc[i];
  79   1              send_num(a);
  80   1          G=0;
  81   1              out();
  82   1              delay();
  83   1              
  84   1                      if(readkey==0&&a==Tabc[0])      
  85   1                  {
  86   2                              x0++;
  87   2                      
  88   2                              if(x0==20)
  89   2                              {       
  90   3                                      x0=0;
  91   3                                      return 1;
  92   3                          }
  93   2                       }
  94   1                      if(readkey==0&&a==Tabc[1])
  95   1                      {
  96   2                           x1++;
  97   2                        if(x1==20)
  98   2                         {
  99   3                               x1=0;
 100   3                               return 2;
 101   3                         }
 102   2                       } 
 103   1                      if(readkey==0&&a==Tabc[2])
 104   1                      {
 105   2                         x2++;
 106   2                         if(x2==20)
 107   2                         {
 108   3                               x2=0;
 109   3                               return 3;
 110   3                         }
 111   2                 }
 112   1                      if(readkey==0&&a==Tabc[3])
 113   1                      {
 114   2                         x3++;
 115   2                         if(x3==20)
 116   2                         {
 117   3                               x3=0;
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 3   

 118   3                               return 4;
 119   3                         }
 120   2                      } 
 121   1               
 122   1       }
 123          void DS12887_Read(void)          // 读取实时时间
 124          {
 125   1              uchar idata h,i;
 126   1              
 127   1              do
 128   1              
 129   1              { 
 130   2              
 131   2                      h=REG_A;
 132   2              
 133   2              }while(h&0x80);
 134   1              
 135   1              for(i=0;i<6;i++)
 136   1              
 137   1              {
 138   2              
 139   2                      DS12887_time[i]=*(DS12887+PIAN_YI[i]);
 140   2              
 141   2              }
 142   1      
 143   1      }       
 144          void set_p(uchar a,uchar j)
 145          {
 146   1              if(     *(DS12887+a)+1>=0&&*(DS12887+a)+1<j)
 147   1              {
 148   2                      *(DS12887+a)=*(DS12887+a)+1;
 149   2                      
 150   2              }
 151   1      }
 152          void set_m(uchar a,uchar j)
 153          {
 154   1              if(     *(DS12887+a)-1>=0&&*(DS12887+a)-1<j)
 155   1              {
 156   2                      *(DS12887+a)=*(DS12887+a)-1;
 157   2                      
 158   2              }
 159   1      }
 160           void read_timebit(uchar a)
 161          {
 162   1                      DS12887_Read();
 163   1                      Time[0]=DS12887_time[0]%10;//秒个位0~9
 164   1                      Time[1]=DS12887_time[0]/10;//秒十位0~5
 165   1                      Time[3]=DS12887_time[1]%10;//分个位0~9
 166   1                      Time[4]=DS12887_time[1]/10;//分十位0~5
 167   1                      Time[6]=DS12887_time[2]%10;//时个位0~9
 168   1                      Time[7]=DS12887_time[2]/10;//时十位0~2
 169   1              //      Time[6]=DS12887_time[3]%10;//日个位0~9
 170   1              //      Time[7]=DS12887_time[3]/10;//日十位0~3
 171   1              //      Time[8]=DS12887_time[4]%10;//月个位0~9
 172   1              //      Time[9]=DS12887_time[4]/10;//月十位0~1
 173   1              //      Time[10]=DS12887_time[5]%10;//年个位0~9
 174   1                //  Time[11]=DS12887_time[5]/10;//年十位0~9
 175   1                      if(a==1)
 176   1                      {
 177   2                      dao[0]=dao_time[0]%10;
 178   2                      dao[1]=dao_time[0]/10;
 179   2                      dao[3]=dao_time[1]%10;
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 4   

 180   2                      dao[4]=dao_time[1]/10;
 181   2                      dao[6]=dao_time[2]%10;
 182   2                      dao[7]=dao_time[2]/10;
 183   2                      }
 184   1      }
 185          void key_wait()
 186          {
 187   1              uchar m,i;
 188   1              do
 189   1              {
 190   2              
 191   2                          for(m=0;m<8;m++)
 192   2                              {
 193   3                                 key=seat(Time[m],m,dao[m]);
 194   3                               }
 195   2              }while(key==1);
 196   1      
 197   1      } 
*** WARNING C280 IN LINE 187 OF CC.C: 'i': unreferenced local variable
 198          void change_0()
 199          {
 200   1          uchar i,j,m,add=2,key;       
 201   1          REG_A=0;
 202   1              for(i=0;i<3;i++)
 203   1              {
 204   2                      dao_time[i]=0;
 205   2              }
 206   1              for(i=80;i>0;i--)
 207   1              {
 208   2                      for(m=0;m<8;m++)
 209   2                      {
 210   3                         key=seat(Time[m],m,dao[m]);
 211   3                       
 212   3                         if(key==1)
 213   3                              {       
 214   4                                      //if(key_count==1)
 215   4                                      k++;
 216   4                                      key_wait();                     
 217   4                                      
 218   4                              }
 219   3                              
 220   3                         if(key==2)
 221   3                         {
 222   4                         set_p(add,60);
 223   4                         }
 224   3                         if(key==3)
 225   3                         set_m(add,60);
 226   3                         if(key==4)
 227   3                        {
 228   4                              REG_A=0x20;
 229   4                              REG_B=0x06;
 230   4                              c=0;
 231   4                         }
 232   3                              if(k==0)
 233   3                              add=0;
 234   3                              if(k==1)
 235   3                              add=2;
 236   3                              if(k==2)
 237   3                              add=4;
 238   3                              if(k==3)
 239   3                              {
 240   4                                      c=0;
C51 COMPILER V7.06   CC                                                                    12/23/2008 10:16:27 PAGE 5   

 241   4                                      REG_A=0x20;
 242   4                                      REG_B=0x26;
 243   4                              }
 244   3               
 245   3                }
 246   2              }
 247   1              for(j=80;j>0;j--)
 248   1              {
 249   2                      for(m=0;m<8;m++)
 250   2                      {
 251   3                              switch(k)
 252   3                              {
 253   4                                  case 0 :if(m==0||m==1)
 254   4                                                 {
 255   5                                                key=seat(11,m,dao[m]);                                             
 256   5                                                 }
 257   4                                                 else
 258   4                                                 key=seat(Time[m],m,dao[m]);break;
 259   4                                      case 1:if(m==3||m==4)
 260   4                                                 {

⌨️ 快捷键说明

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