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

📄 step4.lst

📁 51单片机对步进电机的控制程序,可实现步进电机的正反转
💻 LST
字号:
C51 COMPILER V7.20   STEP4                                                                 03/15/2006 17:41:01 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE STEP4
OBJECT MODULE PLACED IN Step4.OBJ
COMPILER INVOKED BY: D:\Program Files\C51\BIN\C51.EXE Step4.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          实验接线:
   3          1、P1口的P1.0---P1.3分别接模块上的A、B、C、D。
   4          2、CS244接CS0,244的输入IN0--IN7接平推开关KK1--KK8的输入K1--K8
   5          3、P1.7接单脉冲输出P-。
   6          实验说明:
   7            全速运行程序后,在数码管的左两位显示设定的步数(16进制),
   8          此数值可通过与244输入端相连的7个平推开关kk1---kk7设定,kk8设定电机转动的方向,
   9          当kk8在(L)侧时,电机将顺时针方向转动,否则将逆时针方向转动。在数码管的显示上,
  10          如果显示的数值位的小数点点亮,表示将逆时针方向转动,否则如果没有点亮,
  11          表示将顺时针方向转动。当设置完成后,按动单脉冲开关Pulse,步进电机开始按照设定
  12          的步数和方向开始转动,同时在数码管的右两位显示电机此次已运行的步数,显示的格式同
  13          左两位。
  14          */
  15          #include    <reg51.h>
  16          #include    <absacc.h>
  17          
  18          #define         input                   XBYTE[0xcfa0]
  19          #define         Led_dat                 XBYTE[0xcfe8]
  20          #define         Led_ctl                 XBYTE[0xcfe9]
  21          
  22          bit dir;
  23          void Display_byte(unsigned char loc,unsigned char dat)
  24            {
  25   1         unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,
             -0x40};
  26   1         loc &=0xf;
  27   1         Led_ctl = loc|0x80;
  28   1         if(dat==0xaa) Led_dat = table[16];
  29   1         else if(dir) Led_dat = table[dat>>4]|0x80;     /*显示高4位*/
  30   1         else Led_dat = table[dat>>4];
  31   1         loc++;
  32   1         Led_ctl = loc|0x80;
  33   1         if(dat==0xaa) Led_dat = table[16];
  34   1         else if(dir) Led_dat = table[dat&0xf]|0x80;     /*显示低4位*/
  35   1         else Led_dat = table[dat&0xf]; 
  36   1        }
  37          void delay(unsigned int time)
  38            {
  39   1         for(;time>0;time--);
  40   1        }
  41          void drv(void)
  42            {
  43   1         unsigned char table[]={6,7,3,11,9,13,12,14};
  44   1         unsigned char num;
  45   1         for(num=0;num<63;num++)
  46   1           {
  47   2                if(!dir) P1=table[num%8];
  48   2            else P1=table[7-(num%8)];
  49   2                delay(100);
  50   2               }
  51   1        }
  52          void main(void)
  53            {
  54   1         unsigned char dat,tmp;
C51 COMPILER V7.20   STEP4                                                                 03/15/2006 17:41:01 PAGE 2   

  55   1         Led_ctl = 0xd1;
  56   1         while((Led_ctl&0x80)==0x80);
  57   1         Led_ctl = 0x31;
  58   1         Display_byte(2,0xaa);
  59   1         while(1)
  60   1           {
  61   2            P1=0xff;
  62   2                while((P1&0x80)==0x80)
  63   2                  {
  64   3                       dat = input;
  65   3                   if((dat&0x80)==0x80) dir=1;
  66   3                   else dir=0;
  67   3                   dat &=0x7f;
  68   3                   Display_byte(0,dat);
  69   3                      }
  70   2                tmp=0;
  71   2                while(tmp<=dat)
  72   2                  {
  73   3                       Display_byte(4,tmp);
  74   3               drv();
  75   3                       delay(6000);
  76   3                       tmp++;
  77   3                      }
  78   2               }
  79   1        }


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