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

📄 pwm.lst

📁 直流电机的开环控制c51远代码
💻 LST
字号:
C51 COMPILER V7.06   PWM                                                                   05/12/2005 21:42:46 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN pwm.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE pwm.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------函数声明,变量定义--------------------------------------------------------
   2          #include <reg51.h>
   3          #include <intrins.h>
   4          #include<ABSACC.H>              
   5          //-----------------------定义管脚--------------------------------------------------------
   6          sbit PWM=P1^0;             //PWM波形输出 
   7          sbit DR=P1^1;              //方向控制
   8          #define  timer_data  (256-100) //定时器预置值,12M时钟是,定时0.1ms
   9          #define  PWM_T 100         //定义PWM的周期T为10ms
  10          unsigned char PWM_t;       //PWM_t为脉冲宽度(0~100)时间为0~10ms
  11          unsigned char PWM_count;   //输出PWM周期计数
  12          unsigned char time_count;  //定时计数
  13          bit direction;             //方向标志为
  14          //--------------------------------------------------------------------------------------------------
  15          // 函数名称:timer_init
  16          // 函数功能:初始化设施定时器
  17          //--------------------------------------------------------------------------------------------------
  18          void timer_init()
  19               {
  20   1                TMOD=0x22; /*定时器1为工作模式2(8位自动重装),0为模式2(8位自动重装) */
  21   1            PCON=0x00;
  22   1            TF0=0; 
  23   1            TH0=timer_data;   //保证定时时长为0.1ms
  24   1            TL0=TH0;
  25   1            ET0=1;
  26   1                TR0=1;            //开始计数
  27   1            EA=1;             //中断允许
  28   1                }
  29          //--------------------------------------------------------------------------------------------------
  30          // 函数名称:setting_PWM
  31          // 函数功能:设置PWM的脉冲宽度和设定方向
  32          //--------------------------------------------------------------------------------------------------
  33          void setting_PWM()
  34                {
  35   1                if(PWM_count==0)  //初始设置
  36   1                {
  37   2                PWM_t=20;
  38   2                direction=1;
  39   2                }
  40   1                }
  41          //--------------------------------------------------------------------------------------------------
  42          // 函数名称:IntTimer0
  43          // 函数功能:定时器中断处理程序
  44          //--------------------------------------------------------------------------------------------------
  45          void IntTimer0() interrupt 1
  46                        {
  47   1                                time_count++;
  48   1                    DR=direction;
  49   1                                if(time_count>=PWM_T)
  50   1                    {
  51   2                                time_count=0;
  52   2                                PWM_count++;
  53   2                                setting_PWM();  //每输出一个PWM波调用一次
  54   2                                }
  55   1                                if(time_count<PWM_t)
C51 COMPILER V7.06   PWM                                                                   05/12/2005 21:42:46 PAGE 2   

  56   1                                PWM=1;
  57   1                                else 
  58   1                                PWM=0;
  59   1                                }
  60          
  61          //--------------------------------------------------------------------------------------------------
  62          // 函数名称:main
  63          // 用户主函数
  64          // 函数功能:主函数
  65          //--------------------------------------------------------------------------------------------------
  66          void main()
  67               {
  68   1               timer_init();
  69   1               setting_PWM();
  70   1               }
  71          


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