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

📄 main.lst

📁 车库的接受和发送代码
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  09/30/2007 10:34:13 PAGE 1   


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

line level    source

   1          #include <reg767.h>
   2          #include "mydefine.h"
   3          
   4          #define UP_RELAY    P1_7
   5          #define DOWN_RELAY      P1_6
   6          #define LIGHT_RELAY INT1
   7          #define BUZZER      X1
   8          #define UP_LIMIT    _CMP2
   9          #define DOWN_LIMIT  _CIN2B
  10          
  11          extern unsigned char Command;
  12          extern unsigned int  Time;
  13          extern unsigned char Current_ad;
  14          extern unsigned char Light_Ray_ad;
  15          
  16          
  17          unsigned char Work_Status=DOOR_STOP;
  18          //***********************************************************************
  19          //                               delay
  20          //***********************************************************************
  21          void delay(void)
  22          {
  23   1         unsigned int i;
  24   1         for(i=0;i<10000;i++);
  25   1      
  26   1      }
  27          //**********************************************************************
  28          //                         feed watchdog
  29          //**********************************************************************
  30          void  Feed_Wwatchdog(void)
  31          {
  32   1        WDRST = 0x1e;
  33   1        WDRST = 0xe1;
  34   1      }
  35          //**********************************************************************
  36          //                         init
  37          //**********************************************************************
  38          void init(void)
  39          {
  40   1              
  41   1          SCON =0x50;                                                         /*设置串口发送模式1*/
  42   1      
  43   1          PCON =0x00;                                                 
  44   1              TMOD =0x21;
  45   1      
  46   1              TH1  =0xf3;                             /*波特率为1250BIT/S*/
  47   1              TL1      =0xf3;                       
  48   1      
  49   1              TL0  =0xb0;
  50   1              TH0  =0x3c;
  51   1      
  52   1          TR1  =1;                                /*打开定时器1*/
  53   1              TR0  =1;
  54   1      
  55   1              IEN0 = 0x92;
C51 COMPILER V7.50   MAIN                                                                  09/30/2007 10:34:13 PAGE 2   

  56   1       
  57   1          PT0AD=0x18;                                                                         //设置AD转换接口为输入方式
  58   1      
  59   1          P0M1=0x8e;   //1111 1110
  60   1          P0M2=0x01;   //0000 0001
  61   1      
  62   1          P1M1  = 0x20;//0010 0000 
  63   1          P1M2  = 0xdc;//1101 1100 
  64   1      
  65   1          P2M1  = 0x00;//0000 0000
  66   1          P2M2  = 0x03;//0000 0011
  67   1      
  68   1      
  69   1      
  70   1          ENADC=1;
  71   1              delay();
  72   1          WDCON = 0x16;
  73   1      }
  74          //**********************************************************************
  75          //                         Do_With_Command
  76          //**********************************************************************
  77          void Do_With_Command(void)
  78          {
  79   1      //_______________________Door_Contral________________________
  80   1          switch(Work_Status)
  81   1              {
  82   2              case  DOOR_STOP:
  83   2                                  if(Command&&UP)       
  84   2                                      {
  85   3                                              if(UP_LIMIT!=0)Work_Status=DOOR_UP;
  86   3                                              Command=0;
  87   3                                      };
  88   2                                  if(Command&&DOWN)
  89   2                                      {
  90   3                                              if(DOWN_LIMIT!=0)Work_Status=DOOR_DOWN;
  91   3                                              Command=0;
  92   3                                      };
  93   2                                      break;
  94   2              case  DOOR_UP:
  95   2      
  96   2                                  if(Current_ad>CURRENT_LIMIT)Work_Status=DOOR_STOP;
  97   2                                      if(UP_LIMIT==0)
  98   2                                      {
  99   3                                          Work_Status=DOOR_STOP;
 100   3                                              if(Light_Ray_ad>LIGHT_LIMIT)
 101   3                                              {
 102   4                                                 Time=0; //开灯
 103   4                                              };
 104   3                                      };
 105   2                                  if(Command&&DOWN)
 106   2                                      {
 107   3                                              Work_Status=DOOR_STOP;
 108   3                                              Command=0;
 109   3                                      };
 110   2                                  if(Command&&UP)       
 111   2                                      {
 112   3                                              Command=0;
 113   3                                      };
 114   2                                      break;
 115   2              case  DOOR_DOWN:
 116   2      
 117   2                                  if(Current_ad>CURRENT_LIMIT)Work_Status=DOOR_STOP;
C51 COMPILER V7.50   MAIN                                                                  09/30/2007 10:34:13 PAGE 3   

 118   2                                      if(DOWN_LIMIT==0)
 119   2                                      {
 120   3                                          Work_Status=DOOR_STOP;
 121   3                                              if(Light_Ray_ad>LIGHT_LIMIT)
 122   3                                              {
 123   4                                                 Time=0; //开灯
 124   4                                              };
 125   3                                      };
 126   2                                  if(Command&&UP)
 127   2                                      {
 128   3                                              Work_Status=DOOR_STOP;
 129   3                                              Command=0;
 130   3                                      };
 131   2                                  if(Command&&DOWN)
 132   2                                      {
 133   3                                              Command=0;
 134   3                                      };
 135   2                                      break;
 136   2              default: Work_Status=DOOR_STOP;
 137   2              };
 138   1      //_______________________Door Command_out_____________________________
 139   1          switch(Work_Status)
 140   1              {
 141   2              case  DOOR_STOP:
 142   2                                      UP_RELAY  =1;
 143   2                                      DOWN_RELAY=1;
 144   2                                      break;
 145   2              case  DOOR_UP:
 146   2                                      UP_RELAY  =0;
 147   2                                      DOWN_RELAY=1;
 148   2                                      break;
 149   2              case  DOOR_DOWN:
 150   2                                      UP_RELAY  =1;
 151   2                                      DOWN_RELAY=0;
 152   2                                      break;
 153   2              };
 154   1      //_______________________Light_Contral________________________
 155   1      
 156   1        if((Command&&LIGHT_ON))
 157   1        {
 158   2                Time=0;
 159   2                Command=0;
 160   2      
 161   2        };
 162   1        if(Command&&LIGHT_OFF)
 163   1        {
 164   2                Time=LIGHT_DELAY;
 165   2                Command=0;
 166   2        };
 167   1      //_______________________Light_Contral out________________________
 168   1      
 169   1        if(Time<LIGHT_DELAY)
 170   1            LIGHT_RELAY=0;
 171   1        else
 172   1            LIGHT_RELAY=1;
 173   1      }
 174          //***************************************************************************
 175          //                              main
 176          //***************************************************************************
 177          main()
 178          {
 179   1        init();
C51 COMPILER V7.50   MAIN                                                                  09/30/2007 10:34:13 PAGE 4   

 180   1        for(;;)
 181   1        {
 182   2                      Feed_Wwatchdog();
 183   2                      Do_With_Command();
 184   2      
 185   2        };
 186   1      
 187   1      
 188   1      }


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