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

📄 shi zhong.lst

📁 利用程序中的函数
💻 LST
字号:
C51 COMPILER V7.50   SHI_ZHONG                                                             10/13/2005 17:37:31 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SHI_ZHONG
OBJECT MODULE PLACED IN SHI ZHONG.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE SHI ZHONG.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<absacc.h>
   3          #include<intrins.h>
   4          
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          
   8          sbit P1_4=P1^4;
   9          sbit P1_3=P1^3;
  10          sbit P1_2=P1^2;
  11          
  12          sbit RD12887=P3^7;
  13          sbit WR12887=P3^6;
  14          
  15          #define CMD_START_DS12C887              0x20
  16          #define CMD_START_OSCILLATOR    0x70
  17          #define CMD_CLOSE_DS12C887              0x30
  18          
  19          #define MASK_SETB_SET           0x80
  20          #define MASK_CLR_SET            0x7f    
  21          #define MASK_SETB_DM            0x04
  22          #define MASK_CLR_DM                     0xfb    
  23          #define MASK_SETB_2412          0x02
  24          #define MASK_CLR_2412           0xfb
  25          #define MASK_SETB_DSE           0x01
  26          #define MASK_CLR_DSE            0xfe
  27          
  28          void Delay(uchar no);
  29          uchar Ysar,Mon,Date,Hours,Min,See;
  30          uchar ucYear; uchar ucMon; uchar ucDate;
  31          uchar ucHours; uchar ucMin; uchar ucSec;
  32          
  33          xdata uchar ucSecondsChannel    _at_ 0x7F00;
  34          xdata uchar ucMinutesChannel    _at_ 0x7F02;
  35          xdata uchar ucHoursChannel              _at_ 0x7F04;
  36          xdata uchar ucDofWChannel               _at_ 0x7F06;
  37          xdata uchar ucDateChannel               _at_ 0x7F07;
  38          xdata uchar ucMonthChannel              _at_ 0x7F08;
  39          xdata uchar ucYearChannel               _at_ 0x7F09;
  40          xdata uchar ucCenturyChannel    _at_ 0x7F32;
  41          xdata uchar ucRegA                              _at_ 0x7F0a;
  42          xdata uchar ucRegB                              _at_ 0x7F0b;
  43          xdata uchar ucRegC                              _at_ 0x7F0c;
  44          xdata uchar ucRegD                              _at_ 0x7F0d;
  45          
  46          
  47          void StartDs12c887(void);
  48          void CloseDs12c887(void);
  49          void InitDs12c887(void);
  50          uchar GetSeconds(void);
  51          uchar GetMinutes(void);
  52          uchar GetHours(void);
  53          uchar GetDate(void);
  54          uchar GetMonth(void);
  55          uchar GetYear(void);
C51 COMPILER V7.50   SHI_ZHONG                                                             10/13/2005 17:37:31 PAGE 2   

  56          uchar GetCentury(void);
  57          void SetTime(uchar chSeconds,uchar chMinutes,uchar chHours);
  58          void SetDate(uchar chDate,uchar chMonth,uchar chYear);
  59          
  60          void Display(uchar *ucPt);
  61          uchar code tab[]={0x88,0xEB,0x4C,0x49,0x2B,0x19,0x18,0xCB,0x08,
  62                                                  0x09,0x0A,0x38,0x9C,0x68,0x1C,0x1E,0xFF};
  63          
  64          
  65          /********************************************************************/
  66          
  67          void StartDs12c887(void)
  68          {
  69   1              ucRegA=CMD_START_DS12C887;
  70   1      }
  71          
  72          void InitDs12c887()
  73          {
  74   1              volatile uchar i;
  75   1              StartDs12c887();
  76   1              ucRegB=ucRegB|MASK_SETB_SET;
  77   1              ucRegB=ucRegB&MASK_CLR_DM|MASK_SETB_2412&MASK_CLR_DSE;
  78   1              ucCenturyChannel=0x21;
  79   1              
  80   1              i=ucRegC;
  81   1              i=ucRegD;
  82   1      
  83   1              ucRegB=ucRegB&MASK_CLR_SET;
  84   1      }
  85          
  86          /******************************************************************/
  87          
  88          uchar GetSeconds(void)
  89          {
  90   1              uchar uip;
  91   1              do{ uip=ucRegA;} while ((uip&0x80)==0x80);
  92   1                      return(ucSecondsChannel);
  93   1      }
  94          
  95          /****************************************************************/
  96          
  97          uchar GetMinutes(void)
  98          {
  99   1              uchar uip;
 100   1              do{ uip=ucRegA;} while (( uip&0x80)==0x80);
 101   1                      return(ucMinutesChannel);
 102   1      }
 103          
 104          /****************************************************************/
 105          
 106          uchar GetHours(void)
 107          {
 108   1              uchar uip;
 109   1              do{ uip=ucRegA;} while (( uip&0x80)==0x80);
 110   1                      return(ucHoursChannel);
 111   1      }
 112          
 113          /****************************************************************/
 114          
 115          uchar GetDate(void)
 116          {
 117   1              uchar uip;
C51 COMPILER V7.50   SHI_ZHONG                                                             10/13/2005 17:37:31 PAGE 3   

 118   1              do{ uip=ucRegA;} while (( uip&0x80)==0x80);
 119   1                      return(ucDateChannel);
 120   1      }
 121          
 122          /****************************************************************/
 123          
 124          uchar GetMonth(void)
 125          {
 126   1              uchar uip;
 127   1              do{ uip=ucRegA;} while (( uip&0x80)==0x80);
 128   1                      return(ucMonthChannel);
 129   1      }
 130          
 131          /****************************************************************/
 132          
 133          uchar GetYear(void)
 134          {
 135   1              uchar uip;
 136   1              do{ uip=ucRegA;} while (( uip&0x80)==0x80);
 137   1                      return(ucYearChannel);
 138   1      }
 139          
 140          /****************************************************************/
 141          
 142          void SetTime(uchar chSeconds,uchar chMinutes,uchar chHours)
 143          {
 144   1              ucRegB=ucRegB|MASK_SETB_SET;
 145   1              ucSecondsChannel=chSeconds;
 146   1              ucMinutesChannel=chMinutes;
 147   1              ucHoursChannel=chHours;
 148   1              ucRegB=ucRegB&MASK_CLR_SET;
 149   1      }
 150          
 151          /*************************************************************/
 152          
 153          void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear)
 154          {
 155   1              ucRegB=ucRegB|MASK_SETB_SET;
 156   1              ucDateChannel=chDate;
 157   1              ucMonthChannel=chMonth;
 158   1              ucYearChannel=chYear;
 159   1              ucRegB=ucRegB&MASK_CLR_SET;
 160   1      }
 161          
 162          /***************************************************************/
 163          
 164          void main(void)
 165          {
 166   1              uchar i,ucTimeArray[6];
 167   1              SCON=0x00;
 168   1              Delay(25);
 169   1      
 170   1              P1_4=0;
 171   1              P1_3=1;
 172   1              P1_2=0;
 173   1      
 174   1              ucTimeArray[0]=0x05;
 175   1              ucTimeArray[1]=0x08;
 176   1              ucTimeArray[2]=0x21;
 177   1              ucTimeArray[3]=0x12;
 178   1              ucTimeArray[4]=0x07;
 179   1              ucTimeArray[5]=0x00;
C51 COMPILER V7.50   SHI_ZHONG                                                             10/13/2005 17:37:31 PAGE 4   

 180   1      
 181   1              SetTime(ucTimeArray[5],ucTimeArray[4],ucTimeArray[3]);
 182   1              SetDate(ucTimeArray[2],ucTimeArray[1],ucTimeArray[0]);
 183   1      
 184   1              for(i=0;i<6;i++)
 185   1                      ucTimeArray[i]=0;
 186   1              
 187   1              while(1)
 188   1              {
 189   2                      ucTimeArray[0]=GetYear();
 190   2                      ucTimeArray[1]=GetMonth();
 191   2                      ucTimeArray[2]=GetDate();
 192   2                      ucTimeArray[3]=GetHours();
 193   2                      ucTimeArray[4]=GetMinutes();
 194   2                      ucTimeArray[5]=GetSeconds();
 195   2      
 196   2                      Display(ucTimeArray+3);
 197   2                      Delay(1);
 198   2              }
 199   1      }
 200          
 201          void Display(uchar *ucPt)
 202          {
 203   1              uchar ucTemp[6];
 204   1              ucTemp[0]=(*ucPt)>>4;
 205   1              ucTemp[1]=(*ucPt)&0x0f;
 206   1              ucPt++;
 207   1              ucTemp[2]=(*ucPt)>>4;
 208   1              ucTemp[3]=(*ucPt)&0x0f;
 209   1              ucPt++;
 210   1              ucTemp[4]=(*ucPt)>>4;
 211   1              ucTemp[5]=(*ucPt)&0x0f;
 212   1      
 213   1              SBUF=tab[ucTemp[5]];
 214   1              while(!TI);
 215   1              TI=0;
 216   1              SBUF=tab[ucTemp[4]];
 217   1              while(!TI);
 218   1              TI=0;
 219   1              SBUF=tab[ucTemp[3]];
 220   1              while(!TI);
 221   1              TI=0;
 222   1              SBUF=tab[ucTemp[2]];
 223   1              while(!TI);
 224   1              TI=0;
 225   1              SBUF=tab[ucTemp[1]];
 226   1              while(!TI);
 227   1              TI=0;
 228   1              SBUF=tab[ucTemp[0]];
 229   1              while(!TI);
 230   1              TI=0;
 231   1      }
 232          
 233          void Delay(unsigned char no)
 234          {
 235   1              unsigned char i,j;
 236   1              for(;no>0;no--)
 237   1              {
 238   2                      for(i=0;i<100;i++)
 239   2                              for(j=0;j<100;j++);
 240   2              }
 241   1      }
C51 COMPILER V7.50   SHI_ZHONG                                                             10/13/2005 17:37:31 PAGE 5   

 242          
 243          
 244          
 245          
 246          
 247          
 248          
 249          
 250          
 251          
 252          
 253          
 254          
 255          
 256          
 257          
 258          
 259          
 260          
 261          
 262          
 263          
 264          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    450    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12      13
   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 + -