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

📄 main.lst

📁 日本产五相步进电机的正转及反转动作控制。
💻 LST
字号:
C51 COMPILER V6.02  MAIN                                                                   06/27/2003 16:58:58 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\main.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<motor.h>
   2          unsigned char motoCou;
   3          main()
   4          {
   5   1          unsigned char KeyValue;
   6   1          bit	          key1,key2;
   7   1      	///系统初始化
   8   1          key1=0;
   9   1          key2=0;
  10   1      	CON1=0;
  11   1      	CON2=0;
  12   1      	CON3=0;
  13   1      	CON4=0;
  14   1      	CON5=0;  
  15   1      /*    ///系统硬件设置
  16   1      	TMOD 	= 	0x20;
  17   1          TH1 	= 	0x0fd;		//9600
  18   1          SCON 	= 	0x50;
  19   1          PCON 	= 	0;
  20   1      	TR1	    =	1;
  21   1      	ES		=	1;
  22   1      	EA		=	1;   
  23   1          while(1)
  24   1          {
  25   1              
  26   1              CON5=1;
  27   1              CON1=0;
  28   1              delay(500);
  29   1              CON1=1;
  30   1          	CON2=0;
  31   1              delay(500);
  32   1              CON2=1;
  33   1          	CON3=0;
  34   1              delay(500);
  35   1              CON3=1;
  36   1          	CON4=0;
  37   1              delay(500);
  38   1              CON4=1;
  39   1          	CON5=0;
  40   1              delay(500);
  41   1              
  42   1          }  */
  43   1          delay(2000);
  44   1          while(1)
  45   1          {
  46   2              WDI=!WDI;
  47   2              KeyValue=scankey();
  48   2              switch(KeyValue)
  49   2              {
  50   3                  case 0: break;
  51   3                  case 1: key1=~key1;break;
  52   3                  case 2: key2=~key2;break;
  53   3              }
  54   2              if((key1==1) && (key2!=1)) doUp();
  55   2              else if((key2==1) && (key1!=1))
C51 COMPILER V6.02  MAIN                                                                   06/27/2003 16:58:58 PAGE 2   

  56   2              {
  57   3                  if(BUTTON==0) continue;
  58   3                  else doDown();
  59   3              }
  60   2              else doStop();
  61   2              delay(100);
  62   2          }
  63   1      }
  64              ///子函数定义
  65          void delay(long d)
  66          {
  67   1      	while(d--) 
  68   1          {
  69   2              WDI=!WDI;
  70   2          }
  71   1      }
  72          
  73          void doMoto(long i)
  74          {
  75   1      //	WDI=!WDI;
  76   1      	switch(motoCou)
  77   1      	{
  78   2      	case 0:
  79   2      		CON1=1;
  80   2      		CON2=1;
  81   2      		CON3=0;
  82   2      		CON4=0;
  83   2              CON5=0;
  84   2              delay(i);
  85   2      		break;
  86   2      	case 1:
  87   2      		CON1=0;
  88   2      		CON2=1;
  89   2      		CON3=1;
  90   2      		CON4=0;
  91   2      		CON5=0;
  92   2              delay(i);
  93   2      		break;
  94   2      	case 2:
  95   2      		CON1=0;
  96   2      		CON2=0;
  97   2              CON3=1;
  98   2      		CON4=1;
  99   2      		CON5=0;
 100   2              delay(i);
 101   2      		break;
 102   2      	case 3:
 103   2      		CON1=0;
 104   2      		CON2=0;
 105   2      		CON3=0;
 106   2      		CON4=1;
 107   2      		CON5=1;
 108   2              delay(i);
 109   2      		break;
 110   2      	case 4:
 111   2      		CON1=1;
 112   2      		CON2=0;
 113   2      		CON3=0;
 114   2      		CON4=0;
 115   2      		CON5=1;
 116   2              delay(i);
 117   2      		break;
C51 COMPILER V6.02  MAIN                                                                   06/27/2003 16:58:58 PAGE 3   

 118   2      	}
 119   1      //	delay(200);
 120   1      }
 121          
 122          void doUp()
 123          {
 124   1      	motoCou++;
 125   1      	if(motoCou > 4)
 126   1      	{
 127   2      		motoCou=0;
 128   2      	}
 129   1      	doMoto(250);
 130   1      }
 131          
 132          void doDown()
 133          {
 134   1      	if(BUTTON==0)
 135   1      	{
 136   2      		delay(500);
 137   2              return;
 138   2      	}
 139   1      	if(motoCou==0)
 140   1      	{
 141   2      		motoCou=4;
 142   2      	}
 143   1      	else
 144   1      	{
 145   2      		motoCou--;
 146   2      	}
 147   1      	doMoto(500);
 148   1      }
 149          
 150          void doStop(void)
 151          {
 152   1          CON1=0;
 153   1      	CON2=0;
 154   1      	CON3=0;
 155   1      	CON4=0;
 156   1      	CON5=0;
 157   1      }
 158          
 159          unsigned char scankey(void)
 160          {
 161   1      	unsigned char key;
 162   1          BUTTON_UP=1;
 163   1          BUTTON_DOWN=1;
 164   1          key=0;
 165   1          delay(10);
 166   1      	key=BUTTON_UP;
 167   1          if(BUTTON_UP==0) delay(20);
 168   1          if(BUTTON_UP==0) 
 169   1          {
 170   2              while(BUTTON_UP==0)
 171   2              {
 172   3                  WDI=!WDI;
 173   3              }
 174   2              return 1;
 175   2          }
 176   1          key=0;
 177   1          delay(10);
 178   1          key=BUTTON_DOWN;
 179   1          if(BUTTON_DOWN==0) delay(20);
C51 COMPILER V6.02  MAIN                                                                   06/27/2003 16:58:58 PAGE 4   

 180   1          if(BUTTON_DOWN==0) 
 181   1          {
 182   2              while(BUTTON_DOWN==0)
 183   2              {
 184   3                  WDI=!WDI;
 185   3              }
 186   2              return 2;
 187   2          } 
 188   1          else return 0;
 189   1      }
 190          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    367    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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