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

📄 12c887.lst

📁 全国电子设计大赛:智能电动车的设计.实现功能:以AT89C52单片机为核心
💻 LST
字号:
C51 COMPILER V7.20   12C887                                                                11/15/2005 18:46:53 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE 12C887
OBJECT MODULE PLACED IN 12C887.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil Uvision V7.20\C51\BIN\C51.EXE 12C887.C BROWSE DEBUG OBJECTEXTEND SYMBOLS

line level    source

   1          //*************************************************************************************************
   2          //  Module Name :  12C887.C
   3          //  CreateDate  :  2005-01-09
   4          //  ModifData   :  2005-05-05
   5          //  Description :  
   6          //  Author      :  李远正
   7          //  Version     :  V1.0
   8          //*************************************************************************************************
   9          
  10          #include <absacc.h>
  11          #include "12C887.H"
  12          
  13          //-------------------------------------------------------------------------------------------------
  14          //-------------------------------------------------------------------------------------------------
  15          // 设置系统时间
  16          void Setup12C887( unsigned char *p ) 
  17          {
  18   1              unsigned char i;
  19   1      
  20   1              for ( i=0; i<20; i++ ) { temp = RTC_REGA; if ( (temp&0x80) == 0 ) break; } // Wait for ... 
  21   1      
  22   1              RTC_REGA        = 0x70; 
  23   1              RTC_REGB        = 0xa2; 
  24   1              RTC_SEC         = *p++; 
  25   1              RTC_SEC_ALM     = 0xff; 
  26   1              RTC_MIN         = *p++;
  27   1              RTC_MIN_ALM     = 0xff; 
  28   1              RTC_HOU         = *p++; 
  29   1              RTC_HOU_ALM     = 0xff; 
  30   1              RTC_DAY_WEK     = *p++; 
  31   1              RTC_DAY_MON     = *p++;
  32   1              RTC_MON         = *p++; 
  33   1              RTC_YEAR        = *p++; 
  34   1              RTC_REGB        = 0x26; 
  35   1              RTC_REGA        = 0x20;
  36   1      }
  37          
  38          //-------------------------------------------------------------------------------------------------
  39          // 读取系统时间
  40          void Read12C887( unsigned char *p ) 
  41          {
  42   1              unsigned char i;
  43   1      
  44   1              for ( i=0; i<20; i++ ) { temp = RTC_REGA; if ( (temp&0x80) == 0 ) break; } // Wait for ... 
  45   1      
  46   1              *p++ = RTC_SEC; 
  47   1              *p++ = RTC_MIN; 
  48   1              *p++ = RTC_HOU; 
  49   1              *p++ = RTC_DAY_WEK;
  50   1              *p++ = RTC_DAY_MON; 
  51   1              *p++ = RTC_MON; 
  52   1              *p++ = RTC_YEAR;
  53   1      }               
  54          
  55          //-------------------------------------------------------------------------------------------------
C51 COMPILER V7.20   12C887                                                                11/15/2005 18:46:53 PAGE 2   

  56          // 启动时钟
  57          void Start12C887( void )        
  58          {
  59   1              RTC_REGA    = 0x70;     // 开启晶体振荡器
  60   1              RTC_REGB    = 0xa2;     // 禁止芯片更新,允许闹钟中断,二进制输出,设置为24小时制 
  61   1              RTC_SEC_ALM = 0xff;     // 清闹钟
  62   1              RTC_MIN_ALM = 0xff; 
  63   1              RTC_HOU_ALM = 0xff;
  64   1              RTC_REGB    = 0x26;     // 允许更新
  65   1              RTC_REGA    = 0x20;             // 晶体振荡器开启并保持时钟运行
  66   1      }
  67          
  68          //=================================================================================================
  69          // 将一个字节写入12c887的RAM
  70          void Write12C887RAM( unsigned int address,unsigned char datum )
  71          {
  72   1              unsigned char xdata *p;
  73   1              unsigned char i;
  74   1      
  75   1              for ( i=0; i<20; i++ ) { temp = RTC_REGA; if ( (temp&0x80) == 0 ) break; } // Wait for ... 
  76   1      
  77   1              p  = (unsigned char xdata *)address;
  78   1              *p = datum;
  79   1      }
  80          
  81          //-------------------------------------------------------------------------------------------------
  82          // 从RAM中读出一个字节
  83          unsigned char Read12C887RAM( unsigned int address )
  84          {
  85   1              unsigned char xdata *p; 
  86   1              unsigned char i;
  87   1              
  88   1              for ( i=0; i<20; i++ ) { temp = RTC_REGA; if ( (temp&0x80) == 0 ) break; } // Wait for ... 
  89   1      
  90   1              p    = (unsigned char xdata *)address;
  91   1              temp = *p;
  92   1      
  93   1              return ( temp );
  94   1      }
  95          
  96          //=================================================================================================
  97          // Select one of the 13 taps on the 15–stage divider
  98          // or disable the divider output.
  99          // Generate an output square wave (SQW)
 100          void SetSQW( unsigned char frequency )
 101          {
 102   1              temp     = RTC_REGA;
 103   1              temp    &= 0xF0;
 104   1              temp    |= frequency;
 105   1              RTC_REGA = temp;
 106   1      }
C51 COMPILER V7.20   12C887                                                                11/15/2005 18:46:53 PAGE 3   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


_SetSQW. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  frequency. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_Read12C887RAM . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  address. . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
  p. . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0082H  2
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_Write12C887RAM. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  address. . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
  datum. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  p. . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0082H  2
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
_Read12C887. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  p. . . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
temp . . . . . . . . . . . . . . . . .  EXTERN   DATA   U_CHAR   -----  1
_Setup12C887 . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  p. . . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
Start12C887. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    472    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   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 + -