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

📄 key-control-pwm-led.lst

📁 基于51系列单片机的实验:发光二极管顺序显示
💻 LST
字号:
C51 COMPILER V7.08   KEY_CONTROL_PWM_LED                                                   12/21/2006 15:06:55 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE KEY_CONTROL_PWM_LED
OBJECT MODULE PLACED IN KEY-CONTROL-PWM-LED.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KEY-CONTROL-PWM-LED.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************/
   2          /*                                                                 */
   3          /* ME500单片机开发系统演示程序 - PWM控制LED灯渐亮渐灭              */
   4          /*                                                                 */
   5          /* LED显示                                                         */
   6          /*                                                                 */
   7          /* 版本: V1.0 (2006/11/20)                                        */
   8          /* 作者: gguoqing (Email: gguoqing@willar.com)                    */
   9          /* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界) */
  10          /* 时间: 2006/11/01                                               */
  11          /*                                                                 */
  12          /*【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved */
  13          /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       */
  14          /*                                                                 */
  15          /*******************************************************************/
  16          
  17          // PWM 控制 LED 灯渐亮渐灭程序
  18          // 适用 ME500 开发系统
  19          // 晶振为11.0592M
  20          // 利用定时器控制产生占空比可变的 PWM 波
  21          // 按K1,PWM值增加,则占空比减小,LED 灯渐暗。
  22          // 按K2,PWM值减小,则占空比增加,LED 灯渐亮。
  23          // 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。
  24          
  25          /*********************************************************/
  26          
  27          #include<reg51.h>
  28          #include<intrins.h>
  29          
  30          sbit  K1 =P1^4 ;           //PWM值增加键
  31          sbit  K2 =P1^5 ;           //PWM值减少键
  32          sbit  BEEP =P3^7 ;         //蜂鸣器
  33          unsigned char PWM=0x7f ;   //赋初值
  34          
  35          void Beep();
  36          void delayms(unsigned char ms);
  37          void delay(unsigned char t);
  38          
  39          /*********************************************************/
  40          void main()
  41          {   
  42   1          P1=0xff;
  43   1          TMOD=0x21 ;
  44   1              TH0=0xfc ;           //1ms延时常数
  45   1          TL0=0x66 ;           //频率调节
  46   1      
  47   1          TH1=PWM ;            //脉宽调节
  48   1          TL1=0 ;
  49   1      
  50   1              EA=1;
  51   1              ET0=1;
  52   1              ET1=1;
  53   1          
  54   1          TR0=1 ;
  55   1      
C51 COMPILER V7.08   KEY_CONTROL_PWM_LED                                                   12/21/2006 15:06:55 PAGE 2   

  56   1         while(1)
  57   1         {
  58   2              do{
  59   3                  if(PWM!=0xff)
  60   3                        {PWM++ ;delayms(10);}
  61   3              else Beep() ; 
  62   3                }
  63   2          while(K1==0);
  64   2      
  65   2              do{
  66   3            if(PWM!=0x02)
  67   3                  {PWM-- ;delayms(10);}
  68   3            else Beep() ; 
  69   3                }
  70   2          while(K2==0);
  71   2        }
  72   1      }
  73          
  74          /*********************************************************/
  75          // 定时器0中断服务程序  (频率)
  76          /*********************************************************/
  77          void timer0() interrupt 1 
  78          {  
  79   1          TR1=0 ;
  80   1          TH0=0xfc ;
  81   1          TL0=0x66 ;
  82   1          TH1=PWM ;
  83   1          TR1=1 ;
  84   1          P0=0x00 ;      //启动输出
  85   1      }
  86          
  87          /*********************************************************/
  88          // 定时器1中断服务程序 (脉宽)
  89          /*********************************************************/
  90          void timer1() interrupt 3 
  91          { 
  92   1          TR1=0 ;
  93   1          P0=0xff ;     //结束输出
  94   1      }
  95          
  96          /*********************************************************/
  97          //蜂鸣器子程序
  98          /*********************************************************/
  99          
 100          void Beep()     
 101            {
 102   1          unsigned char i  ;
 103   1          for (i=0  ;i<100  ;i++)
 104   1            {
 105   2              delay(100)  ;
 106   2              BEEP=!BEEP  ;                //Beep取反
 107   2            } 
 108   1          BEEP=1  ;                        //关闭蜂鸣器
 109   1              delayms(100);
 110   1        } 
 111          
 112          /*********************************************************/
 113          // 延时子程序
 114          /*********************************************************/  
 115          void delay(unsigned char t)
 116           { 
 117   1         while(t--)   ;
C51 COMPILER V7.08   KEY_CONTROL_PWM_LED                                                   12/21/2006 15:06:55 PAGE 3   

 118   1       }
 119          
 120          /*********************************************************/
 121          // 延时子程序
 122          /*********************************************************/
 123          void delayms(unsigned char ms) 
 124          
 125          {
 126   1         unsigned char i ;
 127   1         while(ms--)
 128   1          {
 129   2            for(i = 0 ; i < 120 ; i++) ;
 130   2          }
 131   1      }
 132          
 133          /*********************************************************/


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