C51 COMPILER V8.08   DINGSHIQI                                                             08/17/2015 16:05:42 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DINGSHIQI
OBJECT MODULE PLACED IN dingshiqi.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dingshiqi.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************************
   2          * 【编写时间】： 2014年3月5日
   3          * 【作    者】： 清翔电子:03
   4          * 【版    本】： 1.0
   5          * 【网    站】： http://www.qxmcu.com/ 
   6          * 【淘宝店铺】： http://qxmcu.taobao.com/ 
   7          * 【实验平台】： QX-MCS51 单片机开发板
   8          * 【外部晶振】： 11.0592mhz     
   9          * 【主控芯片】： STC89C52
  10          * 【编译环境】： Keil μVisio3  
  11          * 【程序功能】： 本程序演示用定时器的方法产生一PWM方波，其周期为1ms(0.001s，1KHz)；
  12                                  占空比为1/5(高电平持续200us)。若产生其他参数的PWM波，只需更改
  13                                  程序中的相关参数即可。（同学们也可试着设计可调的PWM输出）
  14                                  pwm波由P1^0口输出。可观察到其对应发光二极管在闪烁
  15                                  （熄灭持续时间为200us，点亮持续时间为800us，闪烁周期为1ms）
  16                                  
  17                                  下载程序后我们看到的现象是灯一直亮，是因为熄灭时间太短人眼分辨不出
  18                                  调节占空比  占空比越大灯的亮度越暗                                                                                  
  19          * 【使用说明】： 
  20          *  说明：免费开源，不提供源代码分析.
  21          **********************************************************************************/
  22          
  23          
  24          #include<reg52.h>
  25          
  26          #define uint unsigned int 
  27          uint pp;
  28          
  29          sbit pwm=P1^0;
  30          
  31          void main()
  32          {
  33   1              TMOD=0x01;               //模式设置，00000001，可见采用的是定时器0，工作与模式1（M1=0，M0=1）。
  34   1              TR0=1;                   //打开定时器
  35   1              TH0=0Xff;                //定时器设置，每隔100微秒发起一次中断。
  36   1              TL0=0Xa4;
  37   1              ET0=1;                   //开定时器0中断
  38   1              EA=1;                    //开总中断
  39   1              while(1)
  40   1              {
  41   2                      if(pp<=2)       //调节占空比  占空比越大灯的亮度越暗
  42   2                              pwm=1;
  43   2                      else
  44   2                              pwm=0;
  45   2                      if(pp==10)
  46   2                              pp=0;
  47   2              }
  48   1      }
  49          
  50          void time0() interrupt 1
  51          {       TH0=0Xff;
  52   1              TL0=0Xa4;
  53   1              pp++;
  54   1      }

C51 COMPILER V8.08   DINGSHIQI                                                             08/17/2015 16:05:42 PAGE 2   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     65    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)
