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

📄 uart.lst

📁 a gps program
💻 LST
字号:
C51 COMPILER V7.09   UART                                                                  11/19/2006 16:03:10 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE uart.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "includes.h"
   2          #include "uart.h"
   3          
   4          /*设置波特率子函数*/
   5          void SetBaud(uint baud)
   6          {
   7   1          TH1 = 256 - OSC / baud / 32 / 12;
   8   1          TL1 = TH1;
   9   1      }
  10          
  11          
  12          void SendData0(void)
  13          {
  14   1          SendBuf[0] = 'B';
  15   1              SendBuf[1] = 'J';
  16   1              SendBuf[2] = 'T';
  17   1          SendBuf[3] = ',';
  18   1          SendBuf[4] = Year / 10 + '0';
  19   1          SendBuf[5] = Year % 10 + '0';
  20   1          SendBuf[6] = Month / 10 + '0';
  21   1          SendBuf[7] = Month % 10 + '0';
  22   1          SendBuf[8] = Day / 10 + '0';
  23   1          SendBuf[9] = Day % 10 + '0';
  24   1          SendBuf[10] = ',';
  25   1          SendBuf[11] = Hour / 10 + '0';
  26   1          SendBuf[12] = Hour % 10 + '0';
  27   1          SendBuf[13] = Minute / 10 + '0';
  28   1          SendBuf[14] = Minute % 10 + '0';
  29   1          SendBuf[15] = Second / 10 + '0';
  30   1          SendBuf[16] = Second % 10 + '0';
  31   1          SendBuf[17] = ',';
  32   1                      
  33   1              SendBuf[32] = ',';
  34   1          SendBuf[33] = Frequency / 10000 + '0';
  35   1          SendBuf[34] = Frequency % 10000 / 1000 + '0';
  36   1          SendBuf[35] = '.';
  37   1          SendBuf[36] = Frequency % 1000 / 100 + '0';
  38   1          SendBuf[37] = Frequency % 100 / 10 + '0';
  39   1              SendBuf[38] = Frequency % 10 + '0';
  40   1              SendBuf[39] = '\r';
  41   1              SendBuf[40] = '\n';
  42   1          SendCoun = 0;
  43   1          SendLen = 41;
  44   1          SBUF = SendBuf[0];
  45   1      }
  46          
  47          void SendData1(void)
  48          {
  49   1          SendBuf[0] = '<';
  50   1              SendBuf[1] = 'B';
  51   1              SendBuf[2] = '>';
  52   1          SendBuf[3] = Hour / 10 + '0';
  53   1          SendBuf[4] = Hour % 10 + '0';
  54   1          SendBuf[5] = Minute / 10 + '0';
  55   1          SendBuf[6] = Minute % 10 + '0';
C51 COMPILER V7.09   UART                                                                  11/19/2006 16:03:10 PAGE 2   

  56   1          SendBuf[7] = Second / 10 + '0';
  57   1          SendBuf[8] = Second % 10 + '0';
  58   1              SendBuf[9] = Year / 10 + '0';
  59   1          SendBuf[10] = Year % 10 + '0';
  60   1          SendBuf[11] = Month / 10 + '0';
  61   1          SendBuf[12] = Month % 10 + '0';
  62   1          SendBuf[13] = Day / 10 + '0';
  63   1          SendBuf[14] = Day % 10 + '0';
  64   1              SendBuf[15] = '<';
  65   1              SendBuf[16] = 'F';
  66   1              SendBuf[17] = '>';
  67   1          SendBuf[18] = Frequency / 10000 + '0';
  68   1          SendBuf[19] = Frequency % 10000 / 1000 + '0';
  69   1          SendBuf[20] = '.';
  70   1          SendBuf[21] = Frequency % 1000 / 100 + '0';
  71   1          SendBuf[22] = Frequency % 100 / 10 + '0';
  72   1              SendBuf[23] = Frequency % 10 + '0';
  73   1              SendBuf[24] = '<';
  74   1              SendBuf[25] = 'C';
  75   1              SendBuf[26] = '>';
  76   1          
  77   1          SendBuf[33] = '\r';
  78   1              SendBuf[34] = '\n';
  79   1          SendCoun = 0;
  80   1          SendLen = 35;
  81   1          SBUF = SendBuf[0];
  82   1      }
  83          
  84          void SendData2(void)
  85          {
  86   1          SendBuf[0] = 'S';
  87   1              SendBuf[1] = 'T';
  88   1              SendBuf[2] = Hour / 10 + '0';
  89   1          SendBuf[3] = Hour % 10 + '0';
  90   1          SendBuf[4] = Minute / 10 + '0';
  91   1          SendBuf[5] = Minute % 10 + '0';
  92   1          SendBuf[6] = Second / 10 + '0';
  93   1          SendBuf[7] = Second % 10 + '0';
  94   1          SendBuf[8] = Day / 10 + '0';
  95   1              SendBuf[9] = Day % 10 + '0';
  96   1          SendBuf[10] = Month / 10 + '0';
  97   1          SendBuf[11] = Month % 10 + '0';
  98   1          SendBuf[12] = Year / 10 + '0';
  99   1          SendBuf[13] = Year % 10 + '0';
 100   1          SendBuf[14] = 'A';
 101   1              
 102   1          SendBuf[21] = Frequency / 10000 + '0';
 103   1          SendBuf[22] = Frequency % 10000 / 1000 + '0';
 104   1              SendBuf[23] = Frequency % 1000 / 100 + '0';
 105   1              SendBuf[24] = Frequency % 100 / 10 + '0';
 106   1          SendBuf[25] = '\r';
 107   1              SendBuf[26] = '\n';
 108   1          SendCoun = 0;
 109   1          SendLen = 27;
 110   1          SBUF = SendBuf[0];
 111   1      }
 112          
 113          /*判断是否闰年*/
 114          uchar LeapYear(uchar yea)
 115          {
 116   1          uchar temp, YesNo;
 117   1          temp = yea % 4;
C51 COMPILER V7.09   UART                                                                  11/19/2006 16:03:10 PAGE 3   

 118   1          if (temp == 0)
 119   1              YesNo = 'y';
 120   1          else
 121   1              YesNo = 'n';
 122   1          return(YesNo);
 123   1      }  
 124          
 125          uint PastDays(uint year, uchar month, uchar day)
 126          {
 127   1          uint pass_days;
 128   1          switch(month) {
 129   2              case 1:
 130   2                  pass_days = day - 1;
 131   2                  break;
 132   2              case 2:
 133   2                  pass_days = 31 + day - 1;
 134   2                  break;
 135   2              case 3:
 136   2                  pass_days = 59 + day - 1;
 137   2                  break;
 138   2              case 4:
 139   2                  pass_days = 90 + day - 1;
 140   2                  break;               
 141   2              case 5:
 142   2                  pass_days = 120 + day - 1;
 143   2                  break;
 144   2              case 6:
 145   2                  pass_days = 151 + day - 1;
 146   2                  break;    
 147   2              case 7:
 148   2                  pass_days = 181 + day - 1;
 149   2                  break;
 150   2              case 8:
 151   2                  pass_days = 212 + day - 1;
 152   2                  break;    
 153   2              case 9:
 154   2                  pass_days = 243 + day - 1;
 155   2                  break;
 156   2              case 10:
 157   2                  pass_days = 273 + day - 1;
 158   2                  break;    
 159   2              case 11:
 160   2                  pass_days = 304 + day - 1;
 161   2                  break;
 162   2              case 12:
 163   2                  pass_days = 334 + day - 1;
 164   2                  break;    
 165   2             default:      
 166   2                  break;        
 167   2          }   
 168   1          if (LeapYear(year) == 'y' && month > 2) {
 169   2              pass_days = pass_days + 1;
 170   2          }  
 171   1          return(pass_days);   
 172   1      }
 173          
 174          uint TimeDiffer(uchar year0, uchar month0, uchar day0, uchar year1, uchar month1, uchar day1)
 175          {
 176   1          uint y1, y2, y3;
 177   1          y1 = year0;
 178   1          y2 = year1;
 179   1          while (y1 < y2) {
C51 COMPILER V7.09   UART                                                                  11/19/2006 16:03:10 PAGE 4   

 180   2             if (LeapYear(y1) == 'y') {
 181   3                 y3 = y3 + 1;
 182   3             }  
 183   2             y1 = y1 + 1;  
 184   2          }
 185   1          y3 = y3 + (year1 - year0) * 365;
 186   1          y3 = y3 + PastDays(year1, month1, day1) - PastDays(year0, month0, day0);
 187   1          return(y3);
 188   1      }
 189          
 190          /*计算年,月,日  */
 191          void ComputeDate(void)
 192          {
 193   1          uint days;
 194   1          Year = (Date[4] - '0') * 10 + (Date[5] - '0');
 195   1          Month = (Date[2] - '0') * 10 + (Date[3] - '0');
 196   1          Day = (Date[0] - '0') * 10 + (Date[1] - '0');
 197   1          Hour = (Time[0] - '0') * 10 + (Time[1] - '0');
 198   1          Minute = (Time[2] - '0') * 10 + (Time[3] - '0');
 199   1          Second = (Time[4] - '0') * 10 + (Time[5] - '0');
 200   1          Hour += 8;
 201   1          if(Hour >= 24) {
 202   2              Hour -= 24;
 203   2              Day += 1;
 204   2          }
 205   1          switch(Month) {
 206   2              case 1:
 207   2                  if ( Day > 31) {
 208   3                      Day = 1;
 209   3                      Month += 1;
 210   3                  }
 211   2                  break;
 212   2              case 2:
 213   2                  if (LeapYear(Year) == 'y') {
 214   3                      if (Day > 29) {
 215   4                          Day = 1;
 216   4                          Month += 1;
 217   4                      }
 218   3                  }
 219   2                  else {
 220   3                      if ( Day > 28) {
 221   4                          Day = 1;
 222   4                          Month += 1;
 223   4                      }
 224   3                  }
 225   2                  break;
 226   2              case 3:
 227   2                  if (Day > 31) {
 228   3                      Day = 1;
 229   3                      Month += 1;
 230   3                  }
 231   2                  break;
 232   2              case 4:
 233   2                  if (Day > 30) {
 234   3                      Day = 1;
 235   3                      Month += 1;
 236   3                  }
 237   2                  break;
 238   2              case 5:
 239   2                  if (Day > 31) {
 240   3                      Day = 1;
 241   3                      Month += 1;
C51 COMPILER V7.09   UART                                                                  11/19/2006 16:03:10 PAGE 5   

 242   3                  }
 243   2                  break;
 244   2              case 6:
 245   2                  if (Day > 30) {
 246   3                      Day = 1;
 247   3                      Month += 1;
 248   3                  }
 249   2                  break;
 250   2              case 7:
 251   2                  if (Day > 31) {
 252   3                      Day = 1;
 253   3                      Month += 1;
 254   3                  }
 255   2                  break;
 256   2              case 8:
 257   2                  if (Day > 31) {
 258   3                      Day = 1;
 259   3                      Month += 1;
 260   3                  }
 261   2                  break;
 262   2              case 9:
 263   2                  if (Day > 30) {
 264   3                      Day = 1;
 265   3                      Month += 1;
 266   3                  }
 267   2                  break;
 268   2              case 10:
 269   2                  if (Day > 31) {
 270   3                      Day = 1;
 271   3                      Month += 1;
 272   3                  }
 273   2                  break;
 274   2              case 11:
 275   2                  if (Day > 30) {
 276   3                      Day = 1;
 277   3                      Month += 1;
 278   3                  }
 279   2                  break;
 280   2              case 12:
 281   2                  if (Day > 31) {
 282   3                      Day = 1;
 283   3                      Month += 1;
 284   3                  }
 285   2                  break;
 286   2              default:
 287   2                  break;
 288   2              }
 289   1          if (Month > 12) {
 290   2              Month = 1;
 291   2              Year += 1;
 292   2          }
 293   1          days = TimeDiffer(0, 1, 2, Year, Month, Day);
 294   1          Week = days % 7;
 295   1      }
 296          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1695    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.09   UART                                                                  11/19/2006 16:03:10 PAGE 6   

   DATA SIZE        =   ----      12
   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 + -