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

📄 can

📁 can通信源码
💻
字号:
C51 COMPILER V8.02   PWM                                                                   03/26/2011 16:16:37 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN PWM.OBJ
COMPILER INVOKED BY: D:\单片机编程软件\keil软件\C51\BIN\C51.EXE PWM.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1           #include <reg52.h>
   2          sbit KEY1 = P3^2;
   3          sbit PWM = P0^0;
   4          unsigned char CYCLE; //定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms
   5          unsigned char PWM_ON ;//定义高电平时间
   6          void delay(unsigned int cnt)
   7          {
   8   1       while(--cnt);
   9   1      }
  10          
  11          main()
  12          {
  13   1      unsigned char PWM_Num;//定义档位
  14   1      TMOD |=0x01;//定时器设置 1ms in 12M crystal
  15   1      TH0=(65536-100)/256; 
  16   1      TL0=(65536-100)%256;//定时1mS 
  17   1      IE= 0x82;  //打开中断
  18   1      TR0=1;
  19   1      
  20   1      CYCLE=10;// 时间可以调整 这个是10步调整 周期10ms 8位PWM就是256步
  21   1      while(1)
  22   1        {
  23   2      if(!KEY1)
  24   2        {
  25   3         delay(30000);
  26   3         if(!KEY1)
  27   3           {
  28   4            PWM_Num++;
  29   4                if(PWM_Num==5)PWM_Num=0;
  30   4             switch(PWM_Num){
  31   5             case 0:PWM_ON=2;break;//高电平时长 
  32   5             case 1:PWM_ON=4;break;
  33   5             case 2:PWM_ON=6;break;
  34   5             case 3:PWM_ON=8;break;
  35   5             case 4:PWM_ON=10;break;
  36   5             default:break;
  37   5           }
  38   4         }
  39   3      
  40   3        }
  41   2       }
  42   1      
  43   1      }
  44          /********************************/
  45          /*      定时中断                */
  46          /********************************/
  47          void tim(void) interrupt 1 using 1
  48          {
  49   1      static unsigned char count; //
  50   1      TH0=(65536-100)/256; 
  51   1      TL0=(65536-100)%256;//定时1mS 
  52   1      
  53   1      if (count==PWM_ON)
  54   1          {
  55   2           PWM = 0; //灯灭 
C51 COMPILER V8.02   PWM                                                                   03/26/2011 16:16:37 PAGE 2   

  56   2          }
  57   1        count++;
  58   1      if(count == CYCLE)
  59   1          {
  60   2          count=0;
  61   2              if(PWM_ON!=0) //如果左右时间是0 保持原来状态
  62   2                 PWM = 1;//灯亮
  63   2      
  64   2          }
  65   1      
  66   1      }
  67          



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