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

📄 init.lst

📁 电源检测系统 能够检测电源的过欠压,报警
💻 LST
字号:
C51 COMPILER V8.08   INIT                                                                  03/26/2008 23:01:13 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE INIT
OBJECT MODULE PLACED IN Init.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Init.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <C8051F000.h> //寄存器定义
   2          
   3          #define uint unsigned int
   4          
   5          //外部时钟设置
   6          void Sysclk_Init(void)
   7          {
   8   1        uint i = 0;
   9   1        WDTCN  = 0xDE;        //关闭看门狗
  10   1        WDTCN  = 0xAD;
  11   1      //WDTCN  = 0x05;        //开启看门狗
  12   1      //WDTCN  = 0xA5;
  13   1        OSCXCN = 0x67;        //使用内部时钟16MHz使能时钟丢失检测
  14   1        for(i=0;i<256;i++);
  15   1        while(!(OSCXCN&0x80));//等待时钟稳定
  16   1        OSCICN = 0x88;                //开启外部时钟使能时钟丢失检测0x88
  17   1      }
  18          /*
  19          //内部时钟设置
  20          void Sysclk_Init(void)
  21          {
  22            uint i = 0;
  23            WDTCN  = 0xDE;        //关闭看门狗
  24            WDTCN  = 0xAD;
  25          //WDTCN  = 0x05;        //开启看门狗
  26          //WDTCN  = 0xA5;
  27            OSCICN = 0x97;        //使用内部时钟16MHz使能时钟丢失检测
  28            for(i=0;i<=500;i++);
  29            while(OSCXCN&0x80);   //等待时钟稳定
  30            REF0CN|= 0x07;        //温度传感器工作,使用内部AD和DA基准;内部偏压允许      
  31          }
  32          */
  33          //端口设置初始化
  34          void Port_Init(void)
  35          {
  36   1        XBR0 = 0x04;    //RX和TX连到P0.0 P0.1
  37   1        XBR1 = 0x00;    //INT0和INT1连到引脚
  38   1        XBR2 = 0x40;    //交叉开关使能端口I/O弱上拉使能
  39   1      
  40   1        PRT0CF = 0xFF;  //P0输出方式为推挽
  41   1        PRT1CF = 0xFF;  //P1输出方式为推挽
  42   1        PRT2CF = 0x00;  //P2输出方式为推挽
  43   1        PRT3CF = 0x00;  //P3输出方式为推挽
  44   1      }
  45          
  46          //ADC初始化  
  47          void Adc_Init(void)
  48          {
  49   1        AMX0CF = 0x00;  //均为单独输入
  50   1        AMX0SL = 0x00;  //00-->AN0  01-->AN1
  51   1        ADC0CF = 0x80;  //(16M/16)/8转换时钟为8个系统时钟,内部放大增益=1;
  52   1        ADC0LTH = 0xFF; //ADC上限数据高位
  53   1        ADC0LTL = 0xFF; //ADC上限数据高位
  54   1        ADC0GTH = 0x00; //ADC下限数据高位
  55   1        ADC0GTL = 0x00; //ADC下限数据低位     
C51 COMPILER V8.08   INIT                                                                  03/26/2008 23:01:13 PAGE 2   

  56   1        ADC0CN = 0xC0;  //AD使能,C0向ADCBUSY位写1时启动AD转换 CC定时器2溢出启动AD转换
  57   1      }
  58          
  59          //串口初始化
  60          void Uart_Init(void)
  61          {
  62   1        SCON = 0x50;    //方式1和8位UART允许RX
  63   1        TMOD = 0x20;    //定时器1方式2和8位重装载
  64   1        TH1  = 0x64;    //0xF3为115.2kbps;    //0x9C重载值9.6kbps@24MHz 
  65   1        TR1  = 1;       //启动定时器1
  66   1        CKCON|= 0x10;   //定时器1使用sysclk作为时其
  67   1        PCON |= 0x80;   //SMOD = 1 ((2^SMOD)/32)*SYSCLK/(12^T1M-1)(256-TH1)
  68   1        ES   = 1;               //串口中断允许
  69   1        TI   = 0;       //发送中断标志 
  70   1        TR1  = 1;               //定时器1允许运行
  71   1      }
  72          
  73          //DAC初始化
  74          void Dac_Init(void)
  75          {
  76   1        DAC0CN = 0x80;  //DA0使能
  77   1        DAC1CN = 0x80;  //DA1使能
  78   1        REF0CN = 0x07;  //内部温度传感器使能ADC和DAC偏压使能
  79   1                        //系统基准电压为内部电压  
  80   1      }
  81          
  82          //TIME0中断初始化
  83          void Time3_Init(void)
  84          {
  85   1        TMR3CN=0x00;
  86   1        TMR3RLL=0x00;
  87   1        TMR3RLH=0xF5;
  88   1        TMR3L=0xFF;
  89   1        TMR3H=0xFF;  
  90   1        EIE2 |= 0x01;  //0x01允许定时器3中断 0x00禁止
  91   1        TMR3CN|=0x04;  //0x04定时器3运行允许 0x00禁止
  92   1      }
  93          /*
  94          void I2c_Init(void)
  95          {
  96            SMB0CN = 0x44;       // 允许SMBus在应答周期发送ACK
  97            SMB0CR = -80;        // SMBus时钟频率 = 100kHz.
  98            EIE1 |= 0x02;        // SMBus中断允许
  99          }
 100          
 101          //外部中断0初始化
 102          void Int_Init(void)
 103          {
 104            IE = 0x15;  //外部中断0和1允许
 105            IP = 0x00;  //串口为高优先级
 106            TCON|= 0x0F;  //INT1和INT0允许采用边沿触发
 107          }
 108          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    131    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.08   INIT                                                                  03/26/2008 23:01:13 PAGE 3   

   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 + -