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

📄 put_digit.c

📁 在8052下实现电平电压测试功能,自己开发的单片系统
💻 C
字号:
/*
----------------------------------------------------------
;		(c) Copyright xami All Rights Reserved              
----------------------------------------------------------
;	SOURCE_FILE:    PUT_DIGIT.H
;	APPLICATION:	80c51\80c52
;	DESCRIPTION:    输入数字键的处理
;	AUTHOR:         xami
;	DATE:           28 Apr. 2007
----------------------------------------------------------
*/

uchar put_digit(void){

uchar key;


			while((key_pro=keyscan()) != 0x88){	//按下"确认"键退出


			if(key_pro==0x28 || key_pro==0x48){	//向上键、向下键 禁止!
				show_err();						
			}else if(key_pro== 0x18){			//处理菜单键
				return 0x18;
				key= key_pro;								//返回菜单键值
				return key;
			}else{
//------------------------------------------------------------------------------------
//数据输入
//------------------------------------------------------------------------------------
			if(key_pro == 0x84){				//如果按"-"键
				if(i==0){					//处理第0位
					if(digit_temp[0]== 0x40){		//显示"-"时
					digit_temp[0]= 0x00;
					have_p[0]= 0;
					}else if(digit_temp[0]== 0x00){	//"null"
					digit_temp[0]= 0x40;
					i= 1;					//输入"-"号后,当前位后移到第1位
					have_p[0]= 0;
					}
				}else{						//其他位
					digit_temp[--i]= 0x00;
					have_p[i]= 0;					
				}
			}

			else if(key_pro == 0x82){				//如果按"."键
				if(i==1){							/*处理第1位*/
					if(digit_temp[0] == 0x40){	//第0位为"-"	
						show_err();
					}else{						//第0位不为"-"					
						if(have_p[0]== 0){			//没加过"."
							have_p[0]= 1;
							digit_temp[0] += 0x80;	
						}else{									//加过"."
							have_p[0]= 0;
							digit_temp[0] -= 0x80;
						}
					}
				}else if(i==0){				/*处理第0位,即还没输入数据时*/
					show_err();				
				}else{								/*第1位以上的处理*/
					if(have_p[i-1]== 0){		//上一位没加"."
						//其它位已经有"."
						if(have_p[0]+have_p[1]+have_p[2]+have_p[3]+have_p[4]+have_p[5] != 0){
							show_err();
						}else{
						have_p[i-1]= 1;			
						digit_temp[i-1] += 0x80;
						}
					}else{									//上一位加了"."
						have_p[i-1]= 0;
						digit_temp[i-1] -= 0x80;
					}
				}
			}

			else{									//如果按数字键
				switch(key_pro){
					case 0x11:{						//0
					if(i < 6){
						digit_temp[i++]= 0x3F;
					}else{
						show_err();
					}
					}break;
					
					case 0x12:{						//1
					if(i < 6){
						digit_temp[i++]= 0x06;
					}else{
						show_err();
					}
					}break;
					
					case 0x14:{						//2
					if(i < 6){
						digit_temp[i++]= 0x5B;
					}else{
						show_err();
					}
					}break;
					
					case 0x21:{						//3
					if(i < 6){
						digit_temp[i++]= 0x4F;
					}else{
						show_err();
					}
					}break;
					
					case 0x22:{						//4
					if(i < 6){
						digit_temp[i++]= 0x66;
					}else{
						show_err();
					}
					}break;
					
					case 0x24:{						//5
					if(i < 6){
						digit_temp[i++]= 0x6D;
					}else{
						show_err();
					}
					}break;
					
					case 0x41:{						//6
					if(i < 6){
						digit_temp[i++]= 0x7D;
					}else{
						show_err();
					}
					}break;
					
					case 0x42:{						//7
					if(i < 6){
						digit_temp[i++]= 0x07;
					}else{
						show_err();
					}
					}break;
					
					case 0x44:{						//8
					if(i < 6){
						digit_temp[i++]= 0x7F;
					}else{
						show_err();
					}
					}break;
					
					case 0x81:{						//9
					if(i < 6){
						digit_temp[i++]= 0x6F;
					}else{
						show_err();
					}
					}break;	
		
					default:break;
				}				
			}
//------------------------------------------------------------------------------------
//数据输入
//------------------------------------------------------------------------------------

			}//end "while(key_pro==0x28 || key_pro==0x48)"
			
			/*每个while循环显示一次*/
			dis_num[4]= digit_temp[0];
			dis_num[5]= digit_temp[1];
			dis_num[6]= digit_temp[2];
			dis_num[7]= digit_temp[3];
			dis_num[8]= digit_temp[4];
			dis_num[9]= digit_temp[5];
			display();


			}//end "while((key_pro=keyscan()) != 0x88)"
			return 0x88;						//返回确认键
}

⌨️ 快捷键说明

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