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

📄 wk.lst

📁 51单片机对步进电机的控制程序,可实现步进电机的正反转
💻 LST
字号:
C51 COMPILER V8.02   WK                                                                    11/06/2008 16:30:01 PAGE 1   


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

line level    source

   1          /*
   2          系统接线(适用于台式系统):
   3          1、试验箱(台)上的CS244接CS0,244的输入IN0--IN7接平推开关KK1--KK8的输入K1--K8
   4          2、试验箱(台)上的CS0809接CS2,模块上的TEMP_OUT接0809的输入ADIN0,
   5          3、CPU板上的P15接模块上的HEATER.
   6          实验说明:
   7            全速运行程序后,通过与244输入端相连的8个平推开关kk1---kk8设置设定温度,
   8          并在数码管的左两位显示(10进制),此数值的设定范围为0--79。同时在数码管的右两位显示实际温度,
   9          认真观察数码管的右两位数值的变化,可以了解温度的控制过程。
  10          */
  11          #include    <reg51.h>
  12          #include    <absacc.h>
  13          #define         input                   XBYTE[0xcfa0]
  14          #define         ad                              XBYTE[0xcfb0]
  15          #define         Led_dat                 XBYTE[0xcfe8]
  16          #define         Led_ctl                 XBYTE[0xcfe9]
  17          
  18          void Display_byte(unsigned char loc,unsigned char dat)
  19            {
  20   1         unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
  21   1         loc &=0xf;
  22   1         Led_ctl = loc|0x80;
  23   1         if(dat==0xaa) Led_dat = table[10];
  24   1         else Led_dat = table[dat/10];     /*显示10位*/
  25   1         loc++;
  26   1         Led_ctl = loc|0x80;
  27   1         if(dat==0xaa) Led_dat = table[10];
  28   1         else Led_dat = table[dat%10];    /*显示个位*/    
  29   1        }
  30          void delay(unsigned int time)
  31            {
  32   1         for(;time>0;time--);
  33   1        }
  34          void drv(unsigned char dat)
  35            {
  36   1         unsigned char tmp;
  37   1         for(tmp=0;tmp!=0xff;tmp++)
  38   1           {
  39   2                if(tmp<dat) P1|=0x20;
  40   2                else P1&=0xdf;
  41   2                delay(100);
  42   2               }
  43   1        }
  44          void main(void)
  45            {
  46   1         unsigned char dat,C_temp,driver=0x80;
  47   1         Led_ctl = 0xd1;
  48   1         while((Led_ctl&0x80)==0x80);
  49   1         Led_ctl = 0x31;
  50   1         Display_byte(2,0xaa);
  51   1         while(1)
  52   1           {
  53   2            dat = input;
  54   2                if(dat>79) dat = 79;
  55   2                Display_byte(0,dat);
C51 COMPILER V8.02   WK                                                                    11/06/2008 16:30:01 PAGE 2   

  56   2                ad = dat;
  57   2                delay(4);
  58   2            C_temp = (unsigned char)(((float)(0xe0-ad)/16)*10);
  59   2            Display_byte(4,C_temp);
  60   2                if(dat>C_temp)
  61   2              {
  62   3                       if(dat>(C_temp+5)) driver = 0;
  63   3                       else driver=0xf0-(dat-C_temp)*50;
  64   3                      }
  65   2                else driver = 0xff;
  66   2                drv(driver);
  67   2           } 
  68   1        }


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