标题: 求大神老师指导一个按键控制问题 [打印本页]

作者: Tiamano    时间: 2017-10-20 18:37
标题: 求大神老师指导一个按键控制问题
本帖最后由 Tiamano 于 2017-10-23 06:40 编辑

89c52
想做一个用按键控制LED开关和亮度的程序
但是总是出错
按键无法控制LED开关,但是可以控制亮度
请教大神为何
  1. #include<reg52.h>
  2. #define l_LED P2         
  3. #define l_PWM 101        
  4. #define l_MAX 100        
  5. #definel _MIN 1         
  6. sbit l_KEY_ADD=P3^0;   
  7. sbit l_KEY_DEC=P3^1;   
  8. sbit l_EKY_OFF=P3^2;
  9. void delay(unsigned int a )
  10. {
  11.         unsigned char i;
  12.         while(--a!=0)
  13.         {
  14.                 for(i=0;i<12;i++);
  15.         }
  16. }
  17. void keypros()
  18. {    l_LED=0xfe;
  19.         if(l_EKY_OFF==0)                  
  20.         {        
  21.                 delay(1000);  
  22.                 if(l_EKY_OFF==0)         
  23.                 {
  24.          l_LED=~l_LED;         
  25.                 }
  26.                 while(!l_EKY_OFF);        
  27.         }               
  28. }
  29. void Display(unsigned int jyn)
  30. {
  31. l_LED=0xfe;              
  32.         delay(jyn);               
  33.         l_LED=0xff;            
  34.         delay(l_PWM-jyn);
  35. }
  36.         void main()
  37.         {        
  38.                 unsigned int k=1;
  39.                  while(1)   
  40.                                     
  41.                 { keypros();Display(k);
  42.                         if(l_KEY_ADD==0)      
  43.                         {
  44.                                 delay(20);
  45.                                 if(l_KEY_ADD==0)  
  46.                                 {
  47.                                         k++;
  48.                                 if(k>l_MAX)         
  49.                                 {
  50.                                         k=l_MAX;         
  51.                                 }
  52.                         }
  53.                 }
  54.                 if(l_KEY_DEC==0)        
  55.                 {
  56.                         delay(20);
  57.                         if(l_KEY_DEC==0)      
  58.                                 k--;
  59.                                 if(k<jyn_MIN)
  60.                                 {k=jyn_MIN;           
  61.                                 }
  62.                         }
  63.                 }        
  64.                  }
  65.          
  66.                         
  67.                
  68.                
  69.          
复制代码


作者: Tiamano    时间: 2017-10-23 06:39
求教大神老师修改




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1