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

📄 pwm.lst

📁 PWM调温,单片机,C语言,proteus仿真
💻 LST
字号:
C51 COMPILER V7.08   PWM                                                                   05/12/2007 17:30:02 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN pwm.OBJ
COMPILER INVOKED BY: D:\工具安装目录二\Keil C51\C51\BIN\C51.EXE pwm.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          //#include <at89x52.h>
   3          //#include <keyscan.h>
   4          extern void scan_full(void);
   5          extern unsigned char key_scan(void);
   6          extern bit key_ok;
   7          unsigned char pwm_set,key_value;
   8          unsigned char count;
   9          sbit PWM=P3^6;
  10          bit up,down,set_flag;
  11          unsigned char code BCD[]={0x3f,0x06,0x5b,0x4f, //此处是将0-F转换成相应的BCD码
  12                                    0x66,0x6d,0x7d,0x07, 
  13                                    0x7f,0x6f,0x77,0x7c, 
  14                                    0x39,0x5e,0x79,0x71};
  15          void delay1(unsigned char t)
  16          {
  17   1       while(t--);
  18   1      }
  19          
  20          
  21          
  22          void pwm(void) interrupt 5//定时器2产生PWM波形
  23          {
  24   1              TF2=0;                                  //定时器2的溢出标志要软件清除,
  25   1                                                              //但当RCLK或TCLK为1时由硬件清除
  26   1              if((count>=pwm_set)&&(count<10))
  27   1                      PWM=1;
  28   1              else    PWM=0;  
  29   1              count++;        
  30   1              if(count==10)
  31   1              count=0x00;
  32   1              
  33   1      }
  34          
  35          
  36          void key_pwm(unsigned char x)//把键值转化为PWM设置值
  37          {
  38   1              switch(x)                               //把矩阵键盘转化为独立键盘
  39   1              {
  40   2                      case 1:up=1;break;
  41   2                      case 2:down=1;break;
  42   2                      case 3:set_flag=!set_flag;break;
  43   2                      default:break;
  44   2              }
  45   1              
  46   1              if(up&&set_flag)                //设置PWM参数:pwm_set
  47   1              {
  48   2                      pwm_set++;
  49   2                      up=0;
  50   2                      if(pwm_set>=10)
  51   2                      pwm_set=0x00;
  52   2              }
  53   1              if(down&&set_flag)
  54   1              {
  55   2                      pwm_set--;
C51 COMPILER V7.08   PWM                                                                   05/12/2007 17:30:02 PAGE 2   

  56   2                      down=0;
  57   2                      if(pwm_set==0xff)
  58   2                      pwm_set=9;
  59   2              }
  60   1              if(!set_flag)
  61   1              {
  62   2                      up=0;
  63   2                      down=0;
  64   2              }
  65   1      }
  66          
  67          
  68          void main(void)
  69          {
  70   1              TH2=0xb1;       //定时20MS
  71   1              TL2=0xe0;
  72   1              RCAP2H=0xb1;//定时器2溢出时会把这个单元的内容送到TH2和TL2中
  73   1              RCAP2L=0xe0;
  74   1              EA=1;
  75   1              ET2=1;
  76   1              TR2=1;
  77   1              while(1)
  78   1              {
  79   2                      scan_full();    //看是否有键按下
  80   2                      if(key_ok)              //有键按下,则判断到底是哪个键按下
  81   2                      {
  82   3                              key_value=key_scan();//键值送key_value暂存
  83   3                              P0=~BCD[key_value];      /*此三句是将键值显示出来*/
  84   3                              P2=0xfe;                        /**                                              */
  85   3                              delay1(200);            /*************************/
  86   3                              key_pwm(key_value);  //调用键值转PWM设置参数函数
  87   3                              key_value=0x00;          //清除键值,以免一次按下,多次响应
  88   3                      }
  89   2                      P0=~BCD[pwm_set];               /***此三句是将pwm_set值显示出来*/
  90   2                      P2=0xfd;                                /*******                                        */
  91   2                      delay1(200);                    /****************************/
  92   2              }
  93   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    187    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -