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

📄 hongwai.lst

📁 此程序主要是通过红外检测物体是否落下
💻 LST
字号:
C51 COMPILER V8.01   HONGWAI                                                               09/06/2006 10:37:05 PAGE 1   


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

line level    source

   1          #include "89c2051.h"
   2          #define NOKEY        1
   3          #define KEY_BACK         2
   4          #define KEY_FORWARD  3
   5          bit autostate = 0;
   6          unsigned char switchl = 0;
   7          unsigned char workstate = 0;
   8          unsigned char timerdelay = 0;
   9          unsigned int timertime = 0;
  10          unsigned int timertime1 = 0;
  11          void delay(unsigned int temp)
  12          {
  13   1              unsigned char i;
  14   1              unsigned int j;
  15   1              for(j=0;j<temp;j++)
  16   1              {
  17   2                      for(i=0;i<255;i++);
  18   2              }
  19   1      }
  20          void chip_init(void)
  21          {
  22   1              P3M1 = 0x80;
  23   1              TMOD = 0x01;
  24   1              AUXR = 0x00;
  25   1              TH0  = 0xff;
  26   1              TL0  = 0xf5;/////9c
  27   1              IE   = 0x82;
  28   1              TR0  = 1;
  29   1              SH00T = 0;
  30   1              SWITCH = 1;
  31   1              BACK = 1;
  32   1              RECEIVE = 1;
  33   1              FORWARD = 1;
  34   1              P_UNLOAD = 0;
  35   1              P_LOAD  = 0;
  36   1      }
  37          unsigned char key(void)
  38          {
  39   1              if(SWITCH!=switchl)
  40   1              {
  41   2                      delay(10);
  42   2                      if(SWITCH!=switchl)
  43   2                      {
  44   3                              switchl = SWITCH;
  45   3                              if(SWITCH==0)
  46   3                              {
  47   4                                      workstate = 0;
  48   4                              }
  49   3                              else
  50   3                              {
  51   4                                      workstate = 1;
  52   4                              }
  53   3                      }
  54   2               }
  55   1               if(!FORWARD)
C51 COMPILER V8.01   HONGWAI                                                               09/06/2006 10:37:05 PAGE 2   

  56   1               {
  57   2                      delay(10);
  58   2                      if(!FORWARD)
  59   2                      {
  60   3                              return(KEY_FORWARD);
  61   3                      }
  62   2                      else
  63   2                      {               
  64   3                              return(NOKEY);  
  65   3                      }
  66   2               }
  67   1               if(!BACK)
  68   1               {
  69   2                      delay(10);
  70   2                      if(!BACK)
  71   2                      {
  72   3                              return(KEY_BACK);
  73   3                      }
  74   2                      else
  75   2                      {
  76   3                              return(NOKEY);
  77   3                      }
  78   2              }
  79   1      }
  80          void timer0_inter(void) interrupt TF0_VECTOR
  81          {
  82   1              TH0  = 0xff;
  83   1              TL0  = 0xf5;////9c
  84   1              SH00T = ~SH00T;
  85   1              if(timerdelay<200)
  86   1              {
  87   2                      timerdelay++;
  88   2              }
  89   1      }
  90          void timer_delay(void)
  91          {
  92   1              if(timerdelay>=180)
  93   1              {
  94   2                      timertime++;
  95   2                      timertime1++;
  96   2                      timerdelay = 0;
  97   2              
  98   2              }
  99   1      }
 100          void main(void)
 101          {
 102   1              unsigned char keytemp;
 103   1              chip_init();
 104   1              while(1)
 105   1              {
 106   2                      timer_delay();
 107   2                      keytemp = key();
 108   2                      if(workstate)
 109   2                      {
 110   3                              LED_A = 0;
 111   3                              LED_H = 1;
 112   3                              if(RECEIVE)
 113   3                              {
 114   4                                      if(timertime1>600)
 115   4                                      {
 116   5                                              P_UNLOAD = 0;
 117   5                                              P_LOAD   = 1;
C51 COMPILER V8.01   HONGWAI                                                               09/06/2006 10:37:05 PAGE 3   

 118   5                                              autostate =1;
 119   5                                      }
 120   4                                      timertime = 0;
 121   4                              }
 122   3                              else
 123   3                              {
 124   4                                      if(autostate)
 125   4                                      {
 126   5                                              if(timertime>=200)
 127   5                                              {
 128   6                                                      P_UNLOAD = 0;
 129   6                                                      P_LOAD   = 0;
 130   6                                                      autostate = 0;
 131   6                                              }
 132   5                                      }
 133   4                                      else
 134   4                                      {
 135   5                                              P_UNLOAD = 0;
 136   5                                              P_LOAD   = 0;   
 137   5                                      }
 138   4                                      timertime1 = 0;
 139   4                              }
 140   3                      }
 141   2                      else
 142   2                      {
 143   3                              LED_A = 1;
 144   3                              LED_H = 0;
 145   3                              if(keytemp == KEY_BACK)
 146   3                              {
 147   4                                      P_UNLOAD = 1;
 148   4                                      P_LOAD   = 0;
 149   4                              }
 150   3                              else if(keytemp == KEY_FORWARD)
 151   3                              {
 152   4                                      P_UNLOAD = 0;
 153   4                                      P_LOAD   = 1;
 154   4                              }
 155   3                              else
 156   3                              {
 157   4                                      P_UNLOAD = 0;
 158   4                                      P_LOAD   = 0;
 159   4                              }
 160   3                      } 
 161   2              }
 162   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    287    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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