comparecof.lst

来自「菜鸟,详细NRF24E1运用,程序,电路」· LST 代码 · 共 231 行

LST
231
字号
C51 COMPILER V9.00   COMPARECOF                                                            11/13/2010 14:52:13 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE COMPARECOF
OBJECT MODULE PLACED IN comparecof.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL C  V4\C51\BIN\C51.EXE comparecof.c BROWSE DEBUG OBJECTEXTEND

line level    source

*** WARNING C500 IN LINE 1 OF COMPARECOF.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))

   1          /******************************************************************
   2          /                         头文件包含
   3          *******************************************************************/
   4          
   5          #include "reg24le1.h"
   6          #include "comparecof.h"
   7          /*******************************************************************
   8          /
   9          /软件延时函数,函数名称:delay()
  10          /
  11          *******************************************************************/
  12          void delay(unsigned char x)
  13          {
  14   1      unsigned char di;
  15   1         for(;x>0;x--)
  16   1           for(di=120;di>0;di--)
  17   1                {
  18   2                ;
  19   2                }
  20   1      
  21   1      }
  22          
  23          /*******************************************************************
  24          /
  25          /初始化I/O口的输入输出以及电平
  26          /
  27          ********************************************************************/
  28          
  29          void io_config()
  30          {
  31   1      P1DIR&=0XFE;                      /*设置P1.0为输出                 */
  32   1      P10=0;
  33   1      
  34   1      P0DIR|=0X01;
  35   1      P00=0;
  36   1      
  37   1      }
  38          
  39          /********************************************************************
  40          /
  41          /配置模拟比较器
  42          /
  43          ********************************************************************/
  44          
  45          void compcof()
  46          {
  47   1      ADCCON1=(0x80|0x02);/*设置PWR位,设置模拟输入从0通道,参考输入从3通道*/
  48   1      COMPCON|=0x05;      /*唤醒的电压高于0.5Vdd                               */
  49   1      
  50   1      }
  51          /*******************************************************************
  52          /
  53          /LED灯闪烁的函数
  54          /
C51 COMPILER V9.00   COMPARECOF                                                            11/13/2010 14:52:13 PAGE 2   

  55          ********************************************************************/
  56          
  57          void lightled()
  58          {
  59   1      LED=!LED;
  60   1      delay(5000);
  61   1      }
  62          /********************************************************************
  63          /
  64          /串口初始化函数
  65          /
  66          *********************************************************************/
  67          
  68          void uart_init()
  69          {
  70   1      
  71   1              EA = 0;
  72   1              CLKCTRL = 0x28;                     /* nRF24LE1的主时钟采用 XCOSC 16MHz */      
  73   1              CLKLFCTRL = 0x01;                   /* RTC 时钟采用XCOSC 32.768kHz      */
  74   1                      
  75   1              P0DIR &= 0xF7;                          /* 配置P0.3 (TxD)为输出             */ 
  76   1              P0DIR |= 0x10;                          /* 配置P0.4 (RxD)为输入             */   
  77   1              S0CON = 0x50;  
  78   1              PCON |= 0x80;                           /* 波特率倍增                       */
  79   1              WDCON |= 0x80;                          /* 设置采用内部波特率发生器         */
  80   1                      
  81   1          S0RELL = 0xF3;              /* 配置波特率为38400                */
  82   1              S0RELH = 0x03;                   
  83   1      
  84   1      }
  85          /********************************************************************
  86          /
  87          /定时器0初始化
  88          /
  89          ********************************************************************/
  90          
  91          void t0_init()
  92          {
  93   1      TMOD=0X01;
  94   1      TH0=(65536-ONESTEP)/256;
  95   1      TL0=(65536-ONESTEP)%256;
  96   1      ET0=1;
  97   1      TR0=1;
  98   1      }
  99          /******************************************************************
 100          /
 101          /定时器中断服务函数
 102          /
 103          *******************************************************************/
 104          int sleep=0;
 105          
 106          void t0_service() interrupt 1     /*定时10s就进入低功耗模式       */
 107          {
 108   1      
 109   1       static char  num=0,s=0;
 110   1       TR0=0;
 111   1       TH0=(65536-ONESTEP)/256;
 112   1       TL0=(65536-ONESTEP)%256;
 113   1       num++;
 114   1       if(num==20)
 115   1       {
 116   2       num=0;
C51 COMPILER V9.00   COMPARECOF                                                            11/13/2010 14:52:13 PAGE 3   

 117   2       s++;
 118   2       LED=!LED;
 119   2       puts("time left : ");
 120   2       putchar((10-s+'0'));
 121   2       putchar('\n');
 122   2      
 123   2       if(s==10)                       /*定时时间满10秒                */
 124   2       {sleep=1; 
 125   3        s=0;
 126   3       }
 127   2       }
 128   1      
 129   1      if(sleep)                        /*设置nRF24LE1进入低功耗        */
 130   1      {
 131   2      sleep=0;
 132   2      mcufallasleep(timeron);
 133   2      }
 134   1      
 135   1      TR0=1;
 136   1      }
 137          /*****************************************************************
 138          /
 139          /串口打印一个字符
 140          /
 141          *****************************************************************/
 142          
 143          void putchar( unsigned char dat)
 144          {        
 145   1                      S0BUF = dat;    
 146   1                      while(!TI0);
 147   1              TI0 = 0;                                        
 148   1      }
 149          /****************************************************************
 150          /
 151          /串口发送一个字符串
 152          /
 153          *****************************************************************/
 154          void puts( char *  s)
 155          {
 156   1             while(*s!='\0')
 157   1                 {
 158   2                 putchar(*s);
 159   2                 s++;
 160   2                 }
 161   1      }
 162          /*****************************************************************
 163          /
 164          /配置nRF24LE1进入低功耗模式,输入参数:which为模式类型
 165          /
 166          *****************************************************************/
 167          
 168          void mcufallasleep(char which)
 169          {
 170   1      OPMCON=0X02;
 171   1      PWRDWN&=0XF8;      
 172   1      PWRDWN|=which;
 173   1      }
 174          /****************************************************************
 175          /
 176          /获取上一次低功耗模式类型,并利用串口打印相关信息
 177          /
 178          *****************************************************************/
C51 COMPILER V9.00   COMPARECOF                                                            11/13/2010 14:52:13 PAGE 4   

 179          
 180          void getwakeuptype()
 181          {
 182   1      char type=0;
 183   1      type=PWRDWN&0x07;                    /*读取上一次低功耗模式     */
 184   1      if(PWRDWN&0x20)
 185   1      switch(type)
 186   1      {
 187   2      case 0x00:puts("power off   \n");break;
 188   2      case 0x01:puts("deep sleep  \n");break;
 189   2      case 0x02:puts("Memory retention, timer off   \n");break;
 190   2      case 0x03:puts("Memory retention, timer on    \n");break;
 191   2      case 0x04:puts("Register retention     \n");break;
 192   2      case 0x07:puts("standby     \n");break;
 193   2      }
 194   1      
 195   1      putchar('\n');                      /*换行函数                  */
 196   1      
 197   1      }
 198          
 199          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    341    ----
   CONSTANT SIZE    =    144    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?