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

📄 51

📁 51单片机大量源码
💻
字号:
C51 COMPILER V8.02   DCMTRTS                                                               07/21/2009 18:07:07 PAGE 1   


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

line level    source

   1          /****************************************************************************** 
   2          *                                                                            * 
   3          *关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数 * 
   4          *设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样* 
   5          *可以设定占空比可从1-100变化。即0.01ms*100=1ms                               * 
   6          ******************************************************************************/ 
   7          #include <REGX51.H> 
   8          #define uchar unsigned char      
   9          /***************************************************************************** 
  10          * TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%256;         * 
  11          * TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器* 
  12          * 工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时 * 
  13          * 间为1ms*65536=65.536ms                                                     * 
  14          ******************************************************************************/ 
  15          #define V_TH0  0XFF                  
  16          #define V_TL0  0XF6                  
  17          #define V_TMOD 0X01                  
  18          
  19          void init_sys(void);            /*系统初始化函数*/ 
  20          void Delay5Ms(void); 
  21          
  22          unsigned char ZKB1,ZKB2; 
  23          
  24          void main (void) 
  25          { 
  26   1      init_sys(); 
  27   1        ZKB1=40;            /*占空比初始值设定*/ 
  28   1        ZKB2=70;            /*占空比初始值设定*/ 
  29   1        while(1) 
  30   1        { 
  31   2             if (!P1_4) //如果按了+键,增加占空比 
  32   2            { 
  33   3             Delay5Ms(); 
  34   3             if (!P1_4) 
  35   3               { 
  36   4               ZKB1++; 
  37   4               ZKB2=100-ZKB1; 
  38   4               } 
  39   3            } 
  40   2      
  41   2             if (!P1_5) //如果按了-键,减少占空比 
  42   2            { 
  43   3             Delay5Ms(); 
  44   3             if (!P1_5) 
  45   3               { 
  46   4               ZKB1--; 
  47   4               ZKB2=100-ZKB1; 
  48   4               } 
  49   3            } 
  50   2      /*对占空比值限定范围*/ 
  51   2      if (ZKB1>99) ZKB1=1; 
  52   2      if (ZKB1<1) ZKB1=99; 
  53   2       
  54   2        }
  55   1        
C51 COMPILER V8.02   DCMTRTS                                                               07/21/2009 18:07:07 PAGE 2   

  56   1      
  57   1         
  58   1      } 
  59          
  60          
  61          /****************************************************** 
  62          *函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/ 
  63          void init_sys(void)            /*系统初始化函数*/ 
  64          { 
  65   1        /*定时器初始化*/ 
  66   1        TMOD=V_TMOD; 
  67   1        TH0=V_TH0; 
  68   1        TL0=V_TL0; 
  69   1        TR0=1; 
  70   1        ET0=1; 
  71   1        EA=1; 
  72   1      } 
  73          
  74          
  75          //延时 
  76          void Delay5Ms(void) 
  77          { 
  78   1      unsigned int TempCyc = 1000; 
  79   1      while(TempCyc--); 
  80   1      } 
  81          
  82          /*中断函数*/ 
  83          void timer0(void) interrupt 1 using 2 
  84          { 
  85   1      static uchar click=0;                  /*中断次数计数器变量*/ 
  86   1      TH0=V_TH0;                                    /*恢复定时器初始值*/ 
  87   1      TL0=V_TL0; 
  88   1      ++click; 
  89   1      if (click>=100) click=0; 
  90   1      
  91   1      if (click<=ZKB1)      /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/ 
  92   1        P1_0=0; 
  93   1      else 
  94   1        P1_0=1; 
  95   1      
  96   1      if (click<=ZKB2)                        
  97   1        P1_1=0; 
  98   1      else 
  99   1        P1_1=1; 
 100   1      
 101   1      } 


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