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

📄 pwmdrive_12c5a.lst

📁 KZS1212-102Y_stc60s2双485单片机开发板
💻 LST
字号:
C51 COMPILER V8.05a   PWMDRIVE_12C5A                                                       06/03/2012 23:09:07 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE PWMDRIVE_12C5A
OBJECT MODULE PLACED IN PwmDrive_12C5A.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PwmDrive_12C5A.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <intrins.h>
   3          #define U8 unsigned char
   4          
   5          sfr CCON     = 0xD8; //PCA控制寄存器
   6          sfr CMOD     = 0xD9; //PCA模式寄存器
   7          sfr CCAPM0   = 0xDA; //PCA模块0模式寄存器 //模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)   
   8          sfr CCAPM1   = 0xDB; //PCA模块1模式寄存器 //模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)
   9          sfr CL       = 0xE9; //PCA 定时寄存器 低位
  10          sfr CH       = 0xF9; //PCA 定时寄存器 高位
  11          sfr CCAP0L   = 0xEA; //PCA模块0的 捕获寄存器 低位
  12          sfr CCAP0H   = 0xFA; //PCA模块0的 捕获寄存器 高位
  13          sfr CCAP1L   = 0xEB; //PCA模块1的 捕获寄存器 低位
  14          sfr CCAP1H   = 0xFB; //PCA模块1的 捕获寄存器 高位
  15          sfr PCA_PWM0 = 0xF2; //PCA PWM 模式辅助寄存器0
  16          sfr PCA_PWM1 = 0xF3; //PCA PWM 模式辅助寄存器1
  17          sbit CF   = 0xDF;    //PCA计数溢出标志位
  18          sbit CR   = 0xDE;    //PCA计数器 运行控制位
  19          sbit CCF1 = 0xD9;    //PCA模块1中断标志
  20          sbit CCF0 = 0xD8;    //PCA模块0中断标志
  21          
  22          //* CCAPOH = CCAPOL = 0XC0; //模块0输出 占空因数为25%
  23          //* CCAPOH = CCAPOL = 0X80; //模块0输出 占空因数为50%
  24          //* CCAPOH = CCAPOL = 0X40; //模块0输出 占空因数为75%
  25          
  26          void PWM_clock(U8 clock);
  27          void PWM_start(U8 module,U8 mode);
  28          
  29          void PWM_clock(U8 clock)
  30          { 
  31   1      CMOD |= (clock<<1);
  32   1      CL = 0x00;
  33   1      CH = 0x00;
  34   1      }
  35          
  36          void PWM_start(U8 module,U8 mode) 
  37          {
  38   1      CCAP0L = 0XC0;
  39   1      CCAP0H = 0XC0;   //模块0初始输出 占空因数为25%
  40   1      CCAP1L = 0XC0;
  41   1      CCAP1H = 0XC0;   //模块1初始输出 占空因数为25%
  42   1      
  43   1      if(module==0)
  44   1         {
  45   2          switch(mode)
  46   2           { 
  47   3         case 0: CCAPM0 = 0X42;break; //模块0设置为8位PWM输出,无中断
  48   3         case 1: CCAPM0 = 0X53;break; //模块0设置为8位PWM输出,下降沿产生中断
  49   3         case 2: CCAPM0 = 0X63;break; //模块0设置为8位PWM输出,上升沿产生中断
  50   3         case 3: CCAPM0 = 0X73;break; //模块0设置为8位PWM输出,跳变沿产生中断
  51   3         default: break;
  52   3         }
  53   2      }
  54   1      else
  55   1          if(module==1)
C51 COMPILER V8.05a   PWMDRIVE_12C5A                                                       06/03/2012 23:09:07 PAGE 2   

  56   1           {
  57   2            switch(mode)
  58   2             { 
  59   3         case 0: CCAPM1 = 0X42;break; //模块1设置为8位PWM输出,无中断
  60   3         case 1: CCAPM1 = 0X53;break; //模块1设置为8位PWM输出,下降沿产生中断
  61   3         case 2: CCAPM1 = 0X63;break; //模块1设置为8位PWM输出,上升沿产生中断
  62   3         case 3: CCAPM1 = 0X73;break; //模块1设置为8位PWM输出,跳变沿产生中断
  63   3         default: break;
  64   3         }
  65   2         }
  66   1         else
  67   1           if(module==2)
  68   1              {
  69   2              switch(mode)
  70   2          { 
  71   3            case 0: CCAPM0 = CCAPM1 = 0X42;break; //模块0和1设置为8位PWM输出,无中断
  72   3            case 1: CCAPM0 = CCAPM1 = 0X53;break; //模块0和1设置为8位PWM输出,下降沿产生中断
  73   3            case 2: CCAPM0 = CCAPM1 = 0X63;break; //模块0和1设置为8位PWM输出,上升沿产生中断
  74   3            case 3: CCAPM0 = CCAPM1 = 0X73;break; //模块0和1设置为8位PWM输出,跳变沿产生中断
  75   3            default: break;
  76   3            }
  77   2             }
  78   1      CR=1; //PCA计数器开始计数
  79   1      }
  80          
  81          void PCA_Intrrpt(void) interrupt 7
  82          {
  83   1      if(CCF0) CCF0=0;
  84   1      if(CCF1) CCF1=0;   //软件清零 
  85   1      if(CF)   CF=0;    //软件清零 
  86   1      }


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