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

📄 input.c

📁 基于KEIL51的一款高性能的数字功放的完整代码
💻 C
字号:
 
#include <config.h>



#define IN_INPUT


// ---------------------------------------------------
void input_initialize(void)
{



}

 
bit   key1_allow = 0x00;  //四个按键,按键容许标志为1后才能检测按键 



//unsigned char  idata  key_key=0x00;       // 检测到的按键 


// -------取得系统按键并处理------- 
void input_process(void)
{static bit jog_wave=0x00;
 unsigned char idata i=0x00;

 if((jog_wave!=0x00)&&(UP==0x00)&&(DOWN==0x00))
    {jog_wave=0x00;
	 key_jog++;
   //  rs232_senddata(0x82);
   //  rs232_senddata(key_jog);  //有按键	 
	 }
 if((jog_wave==0x00)&&(UP==0x01)&&(DOWN==0x01))
    {jog_wave=0x01;
	 key_jog++;
   //  rs232_senddata(0x82);
   //  rs232_senddata(key_jog);  //有按键	 
	 }
 if(timer500ms_flag!=0x00)	  //注意在0.5秒内的音量变化不能大于一定的值,否则无效 
   {timer500ms_flag=0x00;
    if(key_jog!=0x00)
     {if(jogdirect_f!=0x00)  // 音量增加 
         {if((key_jog==0x01)||(key_jog==0x02)||(key_jog==0x03))
	          i=key_jog;
	      else if(key_jog>3)
	          i=4;
	      if(master_volume>i)
	          master_volume-=i;
	      else
	          master_volume=0x00;
	      key_jog=0x00;
	      }
      else	 //音量减小 
         {if((key_jog==0x01)||(key_jog==0x02)||(key_jog==0x03))
	          i=key_jog;
	      else if(key_jog>3)
	          i=4;
	      if(master_volume+i<79)
	         master_volume+=i;
	      else
	         master_volume=79;
	      key_jog=0x00;

	      }
	  rs232_senddata(0x83);
      rs232_senddata(master_volume);  //
	  mastervolume_control();   //----------------------对主音量进行控制 

	  // ----------------------------------------------------------------------------
#if  EEPROM_USING
	  eeprom_operatemode=0x02; //将要记忆的内容写入EEPROM
#endif
	  }
	 
	}
// -------------按键1的处理------------------------------------------------------
 if((KEY_1==0x00)&&(key1_allow==0x01)) //如果print的按键按下 
    {// 去抖动处理
	 delay(2);  //延时2ms左右,防抖动处 
	 if(KEY_1==0x00)   //再次检测确认按键有按下 
	    {key1_allow=0x00;  //按键已经处理完毕 
		 //  -----------按键1的处理-----------
      //   key_key=0x22;// //开始打印处理 

		 music_mode++;  //不用考虑溢出问题,在musicmode_control()中自然会处理 
		 musicmode_control();
	     rs232_senddata(0x81);
         rs232_senddata(music_mode);  //
#if  EEPROM_USING
	     eeprom_operatemode=0x02; //将要记忆的内容写入EEPROM
#endif		
         }
	 }
 else if(KEY_1!=0x00)
     key1_allow=0x01;  //按键松开了,容许检测下一次按键
// -------------按键1的处理完毕------------------------------------------------------



}

⌨️ 快捷键说明

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