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

📄 pwm_motor.lst

📁 多路舵机控制
💻 LST
字号:
C51 COMPILER V8.02   PWM_MOTOR                                                             08/14/2007 22:37:39 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE PWM_MOTOR
OBJECT MODULE PLACED IN PWM_motor.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE PWM_motor.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1            /*以下是一段产生占空比为20%的脉冲信号的c51程序,我想电机转速*/
   2            /*对应于一定的占空比,如果你要改变占空比,可能需要建立一个对应*/
   3            /*于不同转速的参数表(如定时器初值等),查表*/
   4            /*得到不同参数,以改变占空比和转速。你用什么驱动电路?*/
   5                                                                                                                          
   6            /*采用6MHz晶振,在P1.0脚上输出周期为2.5s,占空比为20%的脉冲信号*/   
   7            /*定时100ms,周期2.5s需25次中断,高电平0.5s需5次中断*/   
   8              
   9          #include   <reg51.h>   
  10            typedef   unsigned   char   uchar;   
  11            sbit   P0_0=P0^0;
  12            sbit   P0_1=P0^1; 
  13            sbit   P0_2=P0^2;
  14            sbit   P0_3=P0^3; 
  15            sbit   P2_0=P2^0;
  16            sbit   P2_1=P2^1; 
  17            uchar   time=0;   
  18            uchar   period=25;   
  19            uchar   high=10;
  20            uchar   th1=0;
  21            uchar   tl1=0;
  22            uchar   th0=0;
  23            uchar   tl0=0;     
  24              
  25            void   timer0()   interrupt   1   using   1   
  26            {   
  27   1                  TH0=0x3c;     /*定时器初值重装载*/   
  28   1                  TL0=0xb0;
  29   1                  //TH0=0xc3;/*定时器初值重装载*/
  30   1                              //TL0=0x50;  
  31   1                  time++;   
  32   1                  if(time==high)   /*高电平持续时间结束,变低*/   
  33   1                  {   P2_0=tl0;
  34   2                                  P2_1=tl1;           
  35   2                                }   
  36   1                  else   if(time==period)     /*周期时间到,变高*/   
  37   1                            {   time=0;   
  38   2                                P2_0=th0;
  39   2                                                        P2_1=th1;
  40   2                                                           
  41   2                            }   
  42   1          
  43   1        }   
  44              
  45            void   main()   
  46            {   
  47   1              TMOD=0x01;   /*定时器0方式1*/   
  48   1              TH0=0x3c;     /*定时器装载初值,设置脉冲信号的占空比为1/5*/   
  49   1              TL0=0xb0; 
  50   1                      //TH0=0xc3;/*定时器装载初值,设置脉冲信号的占空比为4/5*/
  51   1                      //TL0=0x50;    
  52   1              EA=1;     /*开CPU中断*/   
  53   1              ET0=1;   /*开定时器0中断*/   
  54   1              TR0=1;/*启动定时器0*/  
  55   1                      
C51 COMPILER V8.02   PWM_MOTOR                                                             08/14/2007 22:37:39 PAGE 2   

  56   1                      if(P0_2==1)
  57   1                       {
  58   2                        th0=1;
  59   2                        tl0=0;
  60   2                th1=0;
  61   2                        tl1=0;
  62   2                            }
  63   1      
  64   1                if(P0_3==1)
  65   1                       {
  66   2                        th0=0;
  67   2                        tl0=0;
  68   2                th1=1;
  69   2                        tl1=0;
  70   2                            }
  71   1                      while(1)     /*等待中断*/   
  72   1              {}   
  73   1          
  74   1        }   


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