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

📄 sysinitialize.lst

📁 这是一整套USB2.0试验程序
💻 LST
字号:
C51 COMPILER V7.50   SYSINITIALIZE                                                         04/22/2008 10:26:30 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SYSINITIALIZE
OBJECT MODULE PLACED IN SysInitialize.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SysInitialize.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*************************************
   2          文件名:SysInitialize.c
   3          日期:2006-4-25
   4          作者:李升义
   5          说明:系统初始化文件,对C8051F020进行配置
   6          *************************************/
   7          #include "c8051F020.h"
   8          // Peripheral specific initialization functions,
   9          // Called from the Init_Device() function
  10          void Timer_Init()
  11          {
  12   1          CKCON     = 0x08; //Timer0使用系统时钟
  13   1          TMOD      = 0x02; //Timer0设定为8位重载
  14   1      }
  15          
  16          void PCA_Init()
  17          {
  18   1       
  19   1              PCA0CN    = 0x00;
  20   1          PCA0MD    = 0x00;
  21   1      //    PCA0CPM0  = 0x4D;
  22   1          PCA0CPM1  = 0x00;
  23   1          PCA0CPL1  = 0x00;
  24   1              PCA0CPH1  = 0x00;
  25   1      
  26   1      }
  27          
  28          void ADC_Init()
  29          {
  30   1          ADC0CF    = 0x00;
  31   1          ADC0CN    = 0x00;
  32   1          ADC1CN    = 0x00;
  33   1      }
  34          
  35          void DAC_Init()
  36          {
  37   1          int i=0;
  38   1              REF0CN = 0x03;//内部电压基准开,
  39   1              DAC1CN = 0x80;//开启DA1输出
  40   1              DAC0CN = 0x80;//开启DA0输出
  41   1      
  42   1      //      ValueOut_DA1 = 0xfff;//DA1输出初始值
  43   1              DAC1L = 0xff;     
  44   1              DAC1H = 0x0f;
  45   1      //      for(i=0;i<10000;i++);
  46   1              
  47   1              DAC0L = 0xff;     
  48   1              DAC0H = 0x0f;
  49   1              for(i=0;i<20000;i++);
  50   1      
  51   1      
  52   1      
  53   1      //      ValueOut_DA0 = 0xfff;//DA1输出初始值
  54   1              
  55   1              
C51 COMPILER V7.50   SYSINITIALIZE                                                         04/22/2008 10:26:30 PAGE 2   

  56   1      }
  57          
  58          void Port_IO_Init()
  59          {
  60   1          // P0.0  -  TX0 (UART0), Open-Drain, Digital
  61   1          // P0.1  -  RX0 (UART0), Open-Drain, Digital
  62   1          // P0.2  -  SDA (SMBus), Open-Drain, Digital
  63   1          // P0.3  -  SCL (SMBus), Open-Drain, Digital
  64   1          // P0.4  -  TX1 (UART1), Open-Drain, Digital
  65   1          // P0.5  -  RX1 (UART1), Open-Drain, Digital
  66   1          // P0.6  -  CEX0 (PCA),  Open-Drain, Digital
  67   1          // P0.7  -  CEX1 (PCA),  Open-Drain, Digital
  68   1      
  69   1          // P1.0  -  Skipped,     Open-Drain, Analog
  70   1          // P1.1  -  Skipped,     Open-Drain, Analog
  71   1          // P1.2  -  Skipped,     Open-Drain, Analog
  72   1          // P1.3  -  Skipped,     Open-Drain, Analog
  73   1          // P1.4  -  Skipped,     Open-Drain, Analog
  74   1          // P1.5  -  Skipped,     Open-Drain, Analog
  75   1          // P1.6  -  Skipped,     Open-Drain, Analog
  76   1          // P1.7  -  Skipped,     Open-Drain, Analog
  77   1      
  78   1          // P2.0  -  INT0 (Tmr0), Open-Drain, Digital
  79   1          // P2.1  -  INT1 (Tmr1), Open-Drain, Digital
  80   1          // P2.2  -  T2EX (Tmr2), Open-Drain, Digital
  81   1          // P2.3  -  T4EX (Tmr4), Open-Drain, Digital
  82   1          // P2.4  -  Unassigned,  Open-Drain, Digital
  83   1          // P2.5  -  Unassigned,  Open-Drain, Digital
  84   1          // P2.6  -  Unassigned,  Open-Drain, Digital
  85   1          // P2.7  -  Unassigned,  Open-Drain, Digital
  86   1      
  87   1          // P3.0  -  Unassigned,  Open-Drain, Digital
  88   1          // P3.1  -  Unassigned,  Open-Drain, Digital
  89   1          // P3.2  -  Unassigned,  Open-Drain, Digital
  90   1          // P3.3  -  Unassigned,  Open-Drain, Digital
  91   1          // P3.4  -  Unassigned,  Open-Drain, Digital
  92   1          // P3.5  -  Unassigned,  Open-Drain, Digital
  93   1          // P3.6  -  Unassigned,  Open-Drain, Digital
  94   1          // P3.7  -  Unassigned,  Open-Drain, Digital
  95   1      
  96   1          P1MDIN    = 0x00;
  97   1          XBR0      = 0x15;
  98   1          XBR1      = 0x54;
  99   1          XBR2      = 0x54;
 100   1      
 101   1      
 102   1       //   P1MDIN    = 0x00;//将P1配置为模拟输入
 103   1       //   XBR0      = 0x15;
 104   1      ///     XBR1      = 0x40;//T2EX接到外部引脚//0x14;
 105   1       //   XBR2      = 0x54;//T4EX接到外部引脚//0x44;//0x46;//与P0.7(cex1)有关
 106   1              P2MDOUT   = 0X00;
 107   1              P2         =0XFF;
 108   1              P3MDOUT   = 0x3f; //P3的0~5配置为推挽输出(区动六个继电器)
 109   1      //      P3MDOUT   = 0x00; //驱动继电器不用推挽输出,漏极开路即可
 110   1              P3        |= 0xc0;//P3的7~6配置为输入
 111   1      //      P74OUT    |= 0x80;//P7高4位为推挽输出
 112   1              P74OUT    &= 0x3f;//P7低四位配置为漏极开路
 113   1              P74OUT    |= 0x03;//P4配置为推挽输出
 114   1              P7        = 0x0f;//P7低四位配置为输入
 115   1              P0MDOUT   |= 0xc0;//P0.6~7配置为推挽输出
 116   1              P0 = 0xff;
 117   1              //EMIFLE(XBR2.1)
C51 COMPILER V7.50   SYSINITIALIZE                                                         04/22/2008 10:26:30 PAGE 3   

 118   1              P3IF = 0x00;//P3.7中断由下降沿触发
 119   1              EIE2 |= 0x20;//允许INT7外部中断
 120   1              EIP2 |= 0x20;//INT7外部中断置为高优先级
 121   1              //-----USB Write--------------
 122   1              P74OUT    = 0xcc;//P7、P5配置为推挽     ,P6、P4配置为漏极开路
 123   1              P6        = 0xff;//P6配置为输入
 124   1      //      P4        = 0xff;//P6配置为输入
 125   1              P7        = 0x00;//P7低四位配置为输入
 126   1              P74OUT    &= 0xF3;
 127   1              P5 = 0xff;//设置P5为输入
 128   1              //----------------------------
 129   1              
 130   1      }
 131          
 132          void Oscillator_Init()
 133          {
 134   1      
 135   1              int i; // 延时计数器
 136   1              OSCXCN = 0x67; // 起动外部振荡器11.0592MHz晶体
 137   1              for (i=0; i < 3000; i++) ; // 等待振荡器启动
 138   1              while (!(OSCXCN & 0x80)) ; // 等待晶体振荡器稳定
 139   1              OSCICN = 0x8f;//0x08; // 选择外部振荡器为系统时钟源并使能丢失时钟检测器*/
 140   1      }
 141          
 142          void Interrupts_Init()
 143          {
 144   1          IE        = 0x00; //由于Timer0 中断优先级高于PCA,所以有关掉TIMER0 0x1B
 145   1                                                //关掉两个外部中断0、1
 146   1              EIE1      = 0x08;//允许PCA中断
 147   1      //      IP        = 0x01; //INT0优先级置高    
 148   1          EIP1      = 0x08; //PCA中断优先级置高
 149   1      //      EIE2      = 0x01;//允许Timer3中断
 150   1      //      EIP2      = 0x01;//     Timer3中断优先级置
 151   1      }
 152          
 153          // Initialization function for device,
 154          // Call Init_Device() from your main program
 155          void Init_Device(void)
 156          {
 157   1       //   Timer_Init();
 158   1       //   PCA_Init();
 159   1       //   ADC_Init();
 160   1              DAC_Init();
 161   1          Port_IO_Init();
 162   1          Oscillator_Init();
 163   1       //   Interrupts_Init();
 164   1      }


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