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

📄 osc.lst

📁 80c51F020的开发程序 包括ADC DDS DAC
💻 LST
字号:
C51 COMPILER V6.12  OSC                                                                    09/05/2007 17:00:35 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE OSC
OBJECT MODULE PLACED IN osc.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE osc.c DB OE

stmt level    source

   1          /*------------------------------------------------------------
   2          	File Name: 		osc.c
   3          	Auther:			Samuel
   4          	Revision:		R1
   5          	History:		R1			Jul.05, 2007		Creation
   6          ------------------------------------------------------------*/
   7          
   8          #include "common.h"
   9          #include "osc.h"
  10          
  11          void Osc_Init(Osc_Init_Parameter_t Osc_Init_Parameter)
  12          {
  13   1      	
  14   1      	switch(Osc_Init_Parameter.Source_Select)
  15   1      	{
  16   2      		case EXTERNAL_OSC:
  17   2      		{
  18   3      			switch(Osc_Init_Parameter.External_Mode)
  19   3      			{
  20   4      				case DISABLE:
  21   4      					break;
  22   4      				
  23   4      				case COMS_CLK:
  24   4      					break;
  25   4      				
  26   4      				case COMS_CLK_DIV2:
  27   4      					break;
  28   4      				
  29   4      				case RC_OR_C_DIV2:
  30   4      					break;
  31   4      				
  32   4      				case CRYSTAL:
  33   4      
  34   4      					if(Osc_Init_Parameter.Frequency>6700000)
  35   4      					{
  36   5      						OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
  37   5      						OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
  38   5      						OSCXCN = Reg_Field_Set(OSCXCN, BIT0);	
  39   5      					}
  40   4      					else
  41   4      					{
  42   5      						if(Osc_Init_Parameter.Frequency>2200000)
  43   5      						{
  44   6      							OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
  45   6      							OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
  46   6      							OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
  47   6      						}
  48   5      						else
  49   5      						{
  50   6      							if(Osc_Init_Parameter.Frequency>720000)
  51   6      							{
  52   7      								OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
  53   7      								OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
  54   7      								OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
  55   7      							}
C51 COMPILER V6.12  OSC                                                                    09/05/2007 17:00:35 PAGE 2   

  56   6      							else
  57   6      							{
  58   7      								if(Osc_Init_Parameter.Frequency>270000)
  59   7      								{
  60   8      									OSCXCN = Reg_Field_Set(OSCXCN, BIT2);
  61   8      									OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
  62   8      									OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
  63   8      								}
  64   7      								else
  65   7      								{
  66   8      									if(Osc_Init_Parameter.Frequency>95000)
  67   8      									{
  68   9      										OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
  69   9      										OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
  70   9      										OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
  71   9      									}
  72   8      									else
  73   8      									{
  74   9      										if(Osc_Init_Parameter.Frequency>30000)
  75   9      										{
  76  10      											OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
  77  10      											OSCXCN = Reg_Field_Set(OSCXCN, BIT1);
  78  10      											OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
  79  10      										}
  80   9      										else
  81   9      										{
  82  10      											if(Osc_Init_Parameter.Frequency>12000)
  83  10      											{
  84  11      												OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
  85  11      												OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
  86  11      												OSCXCN = Reg_Field_Set(OSCXCN, BIT0);
  87  11      											}
  88  10      											else
  89  10      											{
  90  11      												OSCXCN = Reg_Field_Clr(OSCXCN, BIT2);
  91  11      												OSCXCN = Reg_Field_Clr(OSCXCN, BIT1);
  92  11      												OSCXCN = Reg_Field_Clr(OSCXCN, BIT0);
  93  11      											}
  94  10      										}
  95   9      									}
  96   8      									
  97   8      								}
  98   7      							}
  99   6      
 100   6      						}
 101   5      					}
 102   4      					
 103   4      					OSCXCN = Reg_Field_Set(OSCXCN, BIT6);
 104   4      					OSCXCN = Reg_Field_Set(OSCXCN, BIT5);
 105   4      					OSCXCN = Reg_Field_Clr(OSCXCN, BIT4);
 106   4      
 107   4      					break;
 108   4      				
 109   4      				case CRYSTAL_DIV2:
 110   4      				 	break;
 111   4      				
 112   4      				default:
 113   4      					break;
 114   4      
 115   4      			}
 116   3      
 117   3      
C51 COMPILER V6.12  OSC                                                                    09/05/2007 17:00:35 PAGE 3   

 118   3      			Loop_Delay(256);
 119   3      
 120   3      			while (!(OSCXCN & 0x80));
 121   3      
 122   3      			OSCICN = Reg_Field_Set(OSCICN, BIT3);
 123   3      			OSCICN = Reg_Field_Set(OSCICN, BIT7);
 124   3      			OSCICN = Reg_Field_Clr(OSCICN, BIT2);
 125   3      
 126   3      			while (!(OSCXCN & 0x80));
 127   3      
 128   3      			OSCICN = Reg_Field_Clr(OSCICN, BIT7);
 129   3      
 130   3      			break;
 131   3      		}
 132   2      
 133   2      		case INTERNAL_OSC:
 134   2      		{
 135   3      			
 136   3      			break;
 137   3      		}
 138   2      
 139   2      		default:
 140   2      		{
 141   3      			break;
 142   3      		}
 143   2      	}
 144   1      
 145   1      
 146   1      }
 147          
 148          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    485    ----
   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 + -