四个按键对常用数值调整代码

/*************************************************************
** 	四个按键数值调整,一个移位,两个加减,一个确定
** 	针对0~65536数值区间,任意数值
** 	light
** 	2012-3-28
*************************************************************/
//数值调整结构
typedef struct _num_cal
{
	unsigned int num_temp;		//变量值
	unsigned int bit;			//位
	unsigned int bit_max;		//位数
	unsigned int tmp_bit[5];	//存放各个位值

}num_cal;
num_cal num_cal_tmp;			//数值调整结构全局变量

/*************************************************************
** 	number_calc
** 	temp_value	: 要调整的值
** 	bit_max		:数据位数
** 	2012-3-28
*************************************************************/
void number_calc(unsigned int temp_value,unsigned int bit_max)
{

	num_cal_tmp.num_temp = temp_value;

	num_cal_tmp.tmp_bit[0] = num_cal_tmp.num_temp%10;
	num_cal_tmp.tmp_bit[1] = (num_cal_tmp.num_temp%100)/10;
	num_cal_tmp.tmp_bit[2] = (num_cal_tmp.num_temp%1000)/100;
	num_cal_tmp.tmp_bit[3] = (num_cal_tmp.num_temp%10000)/1000;
	num_cal_tmp.tmp_bit[4] = num_cal_tmp.num_temp/10000;

	num_cal_tmp.bit_max = bit_max - 1;

}
switch (key_value):
{
	case key_back:			//移动光标,由低位向高位移动
		num_cal_tmp.bit++;
		if( num_cal_tmp.bit > num_cal_tmp.bit_max )
		{
			num_cal_tmp.bit = 0;
		}
		break;
	case key_up:			//加
			num_cal_tmp.tmp_bit[num_cal_tmp.bit]++;
			if( num_cal_tmp.tmp_bit[num_cal_tmp.bit] > 9)
			{
				num_cal_tmp.tmp_bit[num_cal_tmp.bit] = 0;
			}
		break;
	case key_down:			//减
			if( num_cal_tmp.tmp_bit[num_cal_tmp.bit] == 0)
			{
				num_cal_tmp.tmp_bit[num_cal_tmp.bit] = 9;
			}
			else
			{
				num_cal_tmp.tmp_bit[num_cal_tmp.bit]--;
			}
		break;
	case key_enter:			//确定键
			temp_value = num_cal_tmp.tmp_bit[4]*10000+num_cal_tmp.tmp_bit[3]*1000+num_cal_tmp.tmp_bit[2]*100+num_cal_tmp.tmp_bit[1]*10+num_cal_tmp.tmp_bit[0];
		break;


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值