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

📄 zhuankou.lst

📁 风扇调速 3档位
💻 LST
字号:
C51 COMPILER V7.20   ZHUANKOU                                                              03/27/2009 12:18:51 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE ZHUANKOU
OBJECT MODULE PLACED IN zhuankou.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE zhuankou.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************
   2          *功能实现: 风扇控制系统,三档控速,三种模式
   3          *MARCH 27_DAY 2009_YEAR
   4          ******************************************/
   5          #include <reg52.h>
   6          #include<display164.h>
   7          
   8          #include<delay.h>
   9          #define uchar unsigned char 
  10          #define uint unsigned int
  11          /************变量和端口******************/
  12          sbit pwm=P0^1;//pwm输出口
  13          sbit fsu=P1^5; //风速键
  14          sbit mshi=P1^6;//模式键
  15          uchar count=0;//风速计数
  16          uint cont=0;//模式计数
  17          uchar speed=0;// 选择风速类型
  18          uchar mode=0;//模式选择类型
  19          bit flag=0;//类型选择标志位,0为风速选择,1为模式选择
  20          /************定时器中断处理***************/
  21          void time0(void) interrupt 1
  22          {
  23   1              TH0=0;//0xf1;
  24   1              TL0=0;//0xf1;
  25   1              count++;
  26   1              if(count>=100)
  27   1              count=0;
  28   1              if(speed==1)//高
  29   1              {
  30   2                      if(count>=80)
  31   2                      pwm=0;
  32   2                      else pwm=1;
  33   2              }
  34   1              if(speed==2)//中
  35   1              {
  36   2                      if(!flag)
  37   2                      if(count>=50)
  38   2                      pwm=0;
  39   2                      else pwm=1;
  40   2              }
  41   1              if(speed==3)//低
  42   1              {
  43   2                      if(count>=20)
  44   2                      pwm=0;
  45   2                      else pwm=1;
  46   2              }
  47   1              
  48   1      }
  49          //******************************
  50          void time1(void) interrupt 3
  51          {  
  52   1              TH1=0x3c;
  53   1              TL1=0xb0;
  54   1              cont++;
  55   1              if(cont>=400)
C51 COMPILER V7.20   ZHUANKOU                                                              03/27/2009 12:18:51 PAGE 2   

  56   1              cont=0;
  57   1              if(mode==1)//正常状态
  58   1              {
  59   2                      TR1=0;
  60   2                      speed=2;
  61   2                      flag=1;
  62   2                      TR0=1;
  63   2              }
  64   1              if(mode==2)//自然风状态,5秒转,5秒不转
  65   1              { 
  66   2                      TR1=1;
  67   2                      if(cont%200>=100)
  68   2                      pwm=0;
  69   2                      else 
  70   2                      pwm=1;
  71   2              }
  72   1              if(mode==3)//睡眠状态,10秒转,10不转
  73   1              {  
  74   2                      TR1=1;
  75   2                      if(cont>=200)
  76   2                      pwm=0;
  77   2                      else
  78   2                      pwm=1;   
  79   2              }       
  80   1      }
  81          /**************器件初始化*****************/
  82          void deviceinit(void)
  83          {
  84   1              TMOD=0x12;//设置定时器
  85   1              TH0=0xf1;
  86   1              TL0=0xf1;
  87   1              TH1=0x3c;
  88   1              TL1=0xb0;
  89   1              
  90   1              EA=1;//开中断,启动,pwm初始化
  91   1              ET0=1;
  92   1              ET1=1;
  93   1              TR0=1;
  94   1              TR1=1;
  95   1              pwm=0;
  96   1              P0=0x00;
  97   1              P2=0x00;
  98   1              P3=0x00;
  99   1              IP=0x08;
 100   1              
 101   1      }
 102          /*************按键函数***************/
 103          void keyscan()
 104          {
 105   1              if(fsu==0)
 106   1              {
 107   2                      delay_ms(10);
 108   2                      if(fsu==0)
 109   2                      {
 110   3                              while(!fsu);
 111   3                              if(flag) 
 112   3                              {
 113   4                                      speed=0;
 114   4                                      flag=0;
 115   4                              }
 116   3                              speed++;
 117   3                              if(speed>3)//停止
C51 COMPILER V7.20   ZHUANKOU                                                              03/27/2009 12:18:51 PAGE 3   

 118   3                              {
 119   4                                      speed=0;
 120   4                                      mode=0;
 121   4                                      TR0=0;
 122   4                                      pwm=0;
 123   4                              }
 124   3                              display164f(speed); 
 125   3                              mode=0;
 126   3                              display164ms(0);
 127   3                              TR0=1;
 128   3                              IP=0x02;
 129   3                      }       
 130   2               }
 131   1               if(mshi==0)
 132   1               {
 133   2                      delay_ms(10);
 134   2                      if(mshi==0)
 135   2                      {
 136   3                              while(!mshi);
 137   3                              mode++;
 138   3                              if(mode>3)      //停止
 139   3                              {
 140   4                                      TR1=0;
 141   4                                      speed=0;
 142   4                                      mode=0;
 143   4                                      pwm=0;
 144   4                              }       
 145   3                              display164ms(mode);
 146   3                              speed=0;
 147   3                              display164f(speed);
 148   3                              TR1=1;
 149   3                              IP=0x08;
 150   3                      }
 151   2                }
 152   1      }            
 153          /**************主函数******************/
 154          void main(void)
 155          {
 156   1              deviceinit();//器件初始化       
 157   1              while(1)
 158   1              {       
 159   2                      keyscan();//键盘控制
 160   2              }       
 161   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    474    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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