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

📄 keyboard.c

📁 小区可视对讲键盘检测程序.利用pt6964芯片.
💻 C
📖 第 1 页 / 共 2 页
字号:
	 	break;
	case KEY_SURE:
		open_buzzer();
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
	
	 	break;
	case KEY_CANCLE:
			open_buzzer();
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		
	 	break;
	case KEY_CENTER:
		open_buzzer();
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=SYMBLE_SUBM;
		display_buffer[1]=SYMBLE_SUBM;
		display_buffer[2]=SYMBLE_SUBM;
		display_buffer[3]=SYMBLE_SUBM;
		current_state = STATE_CALLINGCENTER;
		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = CALLCENTER_BEGIN;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
	 	break;
	default:
		break;
	
	}
}
//-----------------------------------------
//key procexx whe n current state is funcselect
//--------------------------------------------
void funcselect_state_process(unsigned char key_codeb)
{
	if(key_codeb == KEY_CANCLE)	{
		current_state = STATE_FREE|STATE_FREE_NOCALL;
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=10; //CLEAR SCREEN
		display_buffer[1]=10;
		display_buffer[2]=10;
		display_buffer[3]=10;  }
	if(key_codeb == KEY_SET){
		current_state = STATE_FUNCSELECT;
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=SYMBLE_F; //功能号加一
		display_buffer[2]= SYMBLE_SUBM; 
		function_index++;
		if(function_index > 18)function_index = 1;
		display_buffer[1] = function_index;
	    if(function_index > 9){
		display_buffer[1] = function_index/10;
		display_buffer[2] = function_index%10;
		}
		display_buffer[3]=SYMBLE_SUBM;  }
	if(key_codeb == KEY_SURE){	   //按确认键进入某一种功能中 
	     if(function_index ==  1){
		 						current_state = STATE_FREE|STATE_FREE_NOCALL;
								open_buzzer();	 //BEEP
								buzzer_timer = 225;
								buzzer_timer_trigger = 1;
								display_buffer[0]=10; //CLEAR SCREEN
								display_buffer[1]=10;
								display_buffer[2]=10;
								display_buffer[3]=10; 
								}
		 if(function_index == 4){
		                        current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_PREIDENTY;
								//rs232_initial();rs232_send_byte(current_state);
								open_buzzer();	 //BEEP
								buzzer_timer = 225;
								buzzer_timer_trigger = 1;
								display_buffer[0]=SYMBLE_SUBL; //CLEAR SCREEN
								display_buffer[1]=SYMBLE_SUBL;
								display_buffer[2]=SYMBLE_SUBL;
								display_buffer[3]=SYMBLE_SUBL; 
								psw_index = 0;
								
								}
		 if(function_index == 18){
		                        current_state = STATE_EIGHTEENTHFUNC|STATE_EIGHTEENTHFUNC_PREIDENTY;
								//rs232_initial();rs232_send_byte(current_state);
								open_buzzer();	 //BEEP
								buzzer_timer = 225;
								buzzer_timer_trigger = 1;
								display_buffer[0]=SYMBLE_SUBL; //CLEAR SCREEN
								display_buffer[1]=SYMBLE_SUBL;
								display_buffer[2]=SYMBLE_SUBL;
								display_buffer[3]=SYMBLE_SUBL; 
								psw_index = 0;
								
								}
		
		}
return;
}
//--------------------------------------------
//FOURTH FUNCTION STATE KEY PROCESS
//----------------------------------------------
void fourthfunc_process(unsigned char key_codec)
{
     if(key_codec == KEY_NULL){return;	 }
//验证前状态处理
if((current_state&0x07) == STATE_FOURTHFUNC_PREIDENTY){
	if((key_codec >= 0x11)&&(key_codec < 0x63)) {  
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		psw_buffer[psw_index] = key_codec;
		psw_index++;
		if(psw_index >= 6)psw_index = 0;
		
		}
	if(key_codec == KEY_SURE){
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		
		if((psw_buffer[0]==KEY_101)&&(psw_buffer[1]==KEY_101)&&(psw_buffer[2]==KEY_101)&&(psw_buffer[3]==KEY_102)&&(psw_buffer[4]==KEY_102)&&((psw_buffer[5]==KEY_601)||(psw_buffer[5]==KEY_201))	)
			{
			display_buffer[0]=SYMBLE_SUBM; //
			display_buffer[1]=SYMBLE_SUBM;
			display_buffer[2]=SYMBLE_SUBM;
			display_buffer[3]=SYMBLE_SUBM; 
			current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_POSIDENTY;


		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = FOURTHFUNC_BEGIN;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
			}
		else {
			current_state =STATE_FREE|STATE_FREE_NOCALL;
		    display_buffer[0]=10; //CLEAR SCREEN
			display_buffer[1]=10;
			display_buffer[2]=10;
			display_buffer[3]=10; 
			open_buzzer();	 //BEEP
			buzzer_timer = 185;
			buzzer_timer_trigger = 1;
			}
		}
	return ;
	}
//通过验证后状态,处理
if((current_state&0x07) == STATE_FOURTHFUNC_POSIDENTY){	
	//取消键处理 
	if(key_codec == KEY_CANCLE){
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		current_state = STATE_FREE|STATE_FREE_NOCALL;
		display_buffer[0]=10; //CLEAR SCREEN
		display_buffer[1]=10;
		display_buffer[2]=10;
		display_buffer[3]=10; 

		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = FOURTHFUNC_CANCLE;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
		}
	//数字键处理
	if((key_codec >= 0x11)&&(key_codec <0x63)){	
	    open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=0; //
		display_buffer[1]=key_codec>>4;
		display_buffer[2]=0;
		display_buffer[3]=key_codec&0x0f;
	   }
	 if(key_codec == KEY_SURE){	
	    open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		if(display_buffer[0] != SYMBLE_SUBM){  

		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = FOURTHFUNC_OLD;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();

	   	current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_WAITGUESTREADY;  }
		
	   }
	   	return ;
	}
//等待分机准备好状态处理
if((current_state&0x07) == STATE_FOURTHFUNC_WAITGUESTREADY){
    if(key_codec == KEY_CANCLE){
	   open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=10; //
		display_buffer[1]=10;
		display_buffer[2]=10;
		display_buffer[3]=10;
		current_state = STATE_FREE|STATE_FREE_NOCALL;

		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = FOURTHFUNC_CANCLE;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
	   }
	 	return ;
	}
//分机已经准备好状态
if((current_state&0x07) == STATE_FOURTHFUNC_GUESTREADY){
	//取消键处理
     if(key_codec == KEY_CANCLE){
	   open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=10; //
		display_buffer[1]=10;
		display_buffer[2]=10;
		display_buffer[3]=10;
		current_state = STATE_FREE|STATE_FREE_NOCALL;
		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = FOURTHFUNC_CANCLE;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
	   }
	//数字键处理
	if((key_codec >= 0x11)&&(key_codec <0x63)){	
	    open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=0; //
		display_buffer[1]=key_codec>>4;
		display_buffer[2]=0;
		display_buffer[3]=key_codec&0x0f;
	   }
	//确认的处理
	if(key_codec == KEY_SURE){	
	    open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		if(display_buffer[0] != SYMBLE_SUBM){  
		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = FOURTHFUNC_NEW;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
	   	current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_WAITDONE;	}
	
	   }
	   	return ;
	}
//四号功能等待完成态
if((current_state&0x07) == STATE_FOURTHFUNC_WAITDONE){;}
return;
}
//--------------------
//呼叫中心处理程序
//--------------------
void callingcenter_process(unsigned char key_coded)
{

 if(key_coded == KEY_CANCLE){
	   open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=10; //
		display_buffer[1]=10;
		display_buffer[2]=10;
		display_buffer[3]=10;
		current_state = STATE_FREE|STATE_FREE_NOCALL;

		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = CALLCENTER_CANCLE;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
	   }
	return ;
}
//--------------------------------------------
//EIGHTEENTH FUNCTION STATE KEY PROCESS
//----------------------------------------------
void eighteenthfunc_process(unsigned char key_codee)
{
     if(key_codee == KEY_NULL){return;	 }
//验证前状态处理
if((current_state&0x07) == STATE_EIGHTEENTHFUNC_PREIDENTY){
	if((key_codee >= 0x11)&&(key_codee < 0x63)) {  
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		psw_buffer[psw_index] = key_codee;
		psw_index++;
		if(psw_index >= 6)psw_index = 0;
		
		}
	if(key_codee == KEY_SURE){
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		
		if((psw_buffer[0]==KEY_101)&&(psw_buffer[1]==KEY_101)&&(psw_buffer[2]==KEY_101)&&(psw_buffer[3]==KEY_102)&&(psw_buffer[4]==KEY_102)&&((psw_buffer[5]==KEY_601)||(psw_buffer[5]==KEY_201))	)
			{
			display_buffer[0]=SYMBLE_SUBM; //
			display_buffer[1]=SYMBLE_SUBM;
			display_buffer[2]=SYMBLE_SUBM;
			display_buffer[3]=SYMBLE_SUBM; 
			current_state = STATE_EIGHTEENTHFUNC|STATE_EIGHTEENTHFUNC_POSIDENTY;


		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = EIGHTEENTHFUNC_BEGIN;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
			}
		else {
			current_state =STATE_FREE|STATE_FREE_NOCALL;
		    display_buffer[0]=10; //CLEAR SCREEN
			display_buffer[1]=10;
			display_buffer[2]=10;
			display_buffer[3]=10; 
			open_buzzer();	 //BEEP
			buzzer_timer = 185;
			buzzer_timer_trigger = 1;
			}
		}
	return ;
	}
//通过验证后状态,处理
if((current_state&0x07) == STATE_EIGHTEENTHFUNC_POSIDENTY){	
	//取消键处理 
	if(key_codee == KEY_CANCLE){
		open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		current_state = STATE_FREE|STATE_FREE_NOCALL;
		display_buffer[0]=10; //CLEAR SCREEN
		display_buffer[1]=10;
		display_buffer[2]=10;
		display_buffer[3]=10; 

		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = EIGHTEENTHFUNC_CANCLE;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();
		}
	//数字键处理
	if((key_codee >= 0x11)&&(key_codee <0x63)){	
	    open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		display_buffer[0]=0; //
		display_buffer[1]=key_codee>>4;
		display_buffer[2]=0;
		display_buffer[3]=key_codee&0x0f;
	   }
	 if(key_codee == KEY_SURE){	
	    open_buzzer();	 //BEEP
		buzzer_timer = 225;
		buzzer_timer_trigger = 1;
		if(display_buffer[0] != SYMBLE_SUBM){  

		send_buffer[0] = COMMAND_HEADER;
		send_buffer[1] = EIGHTEENTHFUNC_MASK;
		send_buffer[2] = display_buffer[1];
		send_buffer[3] = display_buffer[3];
		rs232_send_command();

	   	current_state = STATE_EIGHTEENTHFUNC|STATE_EIGHTEENTHFUNC_WAITREADY;  }
		
	   }
	   	return ;
	}
//等待分机准备好状态处理
if((current_state&0x07) == STATE_EIGHTEENTHFUNC_WAITREADY){
//    if(key_codee == KEY_CANCLE){
//	   open_buzzer();	 //BEEP
//		buzzer_timer = 225;
//		buzzer_timer_trigger = 1;
//		display_buffer[0]=10; //
//		display_buffer[1]=10;
//		display_buffer[2]=10;
//		display_buffer[3]=10;
//		current_state = STATE_FREE|STATE_FREE_NOCALL;
//
//		send_buffer[0] = COMMAND_HEADER;
//		send_buffer[1] = FOURTHFUNC_CANCLE;
//		send_buffer[2] = display_buffer[1];
//		send_buffer[3] = display_buffer[3];
//		rs232_send_command();
//	   }
	 	return ;
	}

return;
}

⌨️ 快捷键说明

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