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

📄 sysclock.lst

📁 单片机开发列程
💻 LST
字号:
C51 COMPILER V8.01   SYSCLOCK                                                              09/30/2007 11:14:55 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE SYSCLOCK
OBJECT MODULE PLACED IN SysClock.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SysClock.c LARGE BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          #define __SYSCLOCK_H__
   2          
   3          #include "Config.h"
   4          /********************************************************************************************************
   5          **函数名称:SDelay
   6          **函数功能:时钟切换的延时
   7          **入口参数:无
   8          **出口参数:无
   9          ********************************************************************************************************/
  10          void SDelay(uchar T)
  11          {
  12   1          uchar i;
  13   1          for(; T > 0; T --)
  14   1              for(i = 5000; i > 0; i --);
  15   1      }
  16          
  17          /********************************************************************************************************
  18          **函数名称:SysClockInit
  19          **函数功能:初始化时的时钟设置
  20          **输    入:无
  21          **输    出:无
  22          ********************************************************************************************************/
  23          void SysClockInit(void)
  24          {
  25   1          
  26   1          DEVCLKCFG1 &= 0xF0;                         //屏蔽时钟分频位
  27   1          DEVCLKCFG1 |= (CLKDIV & 0x0F);              //设置分频值
  28   1      
  29   1              DEVCLKCFG1 |= BIT5;                         //使能时钟分频器
  30   1      
  31   1              //--------------------------------------------------------
  32   1              //外部晶体到内部振荡器的切换
  33   1              //--------------------------------------------------------
  34   1          #if (SYSCLKSOURCE == INTEROSC)              //使用内部振荡器
  35   1              DEVCLKCFG2 |= BIT6;             //使能内部OSC,同时保持外部OSC
  36   1              SDelay(100);                        //等待振荡器稳定
  37   1              DEVCLKCFG1 |= BIT6;             //选择内部时钟源
  38   1              //SDelay(100);                      //可选的稳定时间
  39   1              DEVCLKCFG2 &= ~BIT7;        //禁止外部时钟源    
  40   1              //--------------------------------------------------------
  41   1              //内部振荡器到外部晶体的切换
  42   1              //--------------------------------------------------------
  43   1          #elif(SYSCLKSOURCE == EXTEROSC)
                      DEVCLKCFG2 = (BIT7 | BIT6 | BIT2);      //使能外部晶振,时钟范围4M-25M,同时保持内部振荡器
                      //SDelay(100);                                  //等待外部晶体振荡器稳定100ms@40MHz
                      DEVCLKCFG1 &= ~BIT6;                    //选择使用外部振荡源
                      //SDelay(100);                          //可选的延时时间
                      DEVCLKCFG2 &= ~BIT6;                    //禁止内部振荡源
                  #endif
  50   1      }
  51          
  52          /********************************************************************************************************
  53          **函数名称:SysClockSet
  54          **函数功能:选择系统的时钟函数,注意改变时钟后,相应的波特率也变化了
  55          **输    入:无
C51 COMPILER V8.01   SYSCLOCK                                                              09/30/2007 11:14:55 PAGE 2   

  56          **输    出:无
  57          ********************************************************************************************************/
  58          /*
  59          void SysClockSet(uchar Source, uchar DIV)
  60          {
  61              //先切换时钟源再设置分频
  62              switch(Source)
  63              {
  64                  case INTEROSC:
  65                      DEVCLKCFG2   = BIT7 | BIT6;         //使能内部振荡器,同时保持外部振荡器使能
  66                          SwitchDelay(10);                            //等待内振荡器稳定100ms@40MHz
  67                          DEVCLKCFG1  |= BIT6;                //选择使用内部振荡源
  68                          SwitchDelay(10);                            //可选的延时时间
  69                          DEVCLKCFG2  &= ~BIT7;               //禁止外部振荡器    
  70                      break;
  71                  case EXTEROSC:
  72                          DEVCLKCFG2 = (BIT7 | BIT6 | BIT2);  //使能外部晶振,时钟范围4M-25M,同时保持内部振荡器
  73                      SwitchDelay(10);                            //等待外部晶体振荡器稳定100ms@40MHz
  74                          DEVCLKCFG1 &= ~BIT6;                //选择使用外部振荡源
  75                          SwitchDelay(10);                    //可选的延时时间
  76                          DEVCLKCFG2 &= ~BIT6;                //禁止内部振荡源
  77                      break;
  78                  default:
  79                      break;
  80              }
  81                          
  82              DEVCLKCFG1 &= 0xF0;                         //设置分频值
  83              DEVCLKCFG1 |= (DIV & 0x0F);                 //
  84          }
  85          */
C51 COMPILER V8.01   SYSCLOCK                                                              09/30/2007 11:14:55 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _SDelay (BEGIN)
                                           ; SOURCE LINE # 10
;---- Variable 'T' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 11
                                           ; SOURCE LINE # 13
0000         ?C0001:
0000 EF                MOV     A,R7
0001 D3                SETB    C
0002 9400              SUBB    A,#00H
0004 4007              JC      ?C0007
                                           ; SOURCE LINE # 14
;---- Variable 'i' assigned to Register 'R6' ----
0006 7E88              MOV     R6,#088H
0008         ?C0004:
0008 DEFE              DJNZ    R6,?C0004
000A         ?C0003:
000A 1F                DEC     R7
000B 80F3              SJMP    ?C0001
                                           ; SOURCE LINE # 15
000D         ?C0007:
000D 22                RET     
             ; FUNCTION _SDelay (END)

             ; FUNCTION SysClockInit (BEGIN)
                                           ; SOURCE LINE # 23
                                           ; SOURCE LINE # 24
                                           ; SOURCE LINE # 26
0000 53F2F0            ANL     DEVCLKCFG1,#0F0H
                                           ; SOURCE LINE # 27
0003 43F202            ORL     DEVCLKCFG1,#02H
                                           ; SOURCE LINE # 29
0006 43F220            ORL     DEVCLKCFG1,#020H
                                           ; SOURCE LINE # 35
0009 43F340            ORL     DEVCLKCFG2,#040H
                                           ; SOURCE LINE # 36
000C 7F64              MOV     R7,#064H
000E 120000      R     LCALL   _SDelay
                                           ; SOURCE LINE # 37
0011 43F240            ORL     DEVCLKCFG1,#040H
                                           ; SOURCE LINE # 39
0014 53F37F            ANL     DEVCLKCFG2,#07FH
                                           ; SOURCE LINE # 50
0017 22                RET     
             ; FUNCTION SysClockInit (END)

C51 COMPILER V8.01   SYSCLOCK                                                              09/30/2007 11:14:55 PAGE 4   

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


size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
_SDelay. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  T. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
DEVCLKCFG1 . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00F2H  1
DEVCLKCFG2 . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00F3H  1
SysClockInit . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
wchar_t. . . . . . . . . . . . . . . .  TYPEDEF  -----  CHAR     -----  1
va_list. . . . . . . . . . . . . . . .  TYPEDEF  -----  PTR      -----  3


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