如何编写程序,通过数字键盘(0-9)将0x12改成0x36

2020-01-19 19:35发布

如题,考虑了很久,还是不知如何搞,现在的问题是ds1302修改时间,
//顺序:秒,分,时,日,月,星期,年;格式:BCD
uchar times[7]={0x50,0x59,0x23,0x06,0x09,0x01,0x15};
定义了一个数组,想通过键盘(0-9)修改一下时间,例如把times[3]=0x06;修改为0x25,程序如何实现呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
little_Monkey
1楼-- · 2020-01-19 21:32
temp=(read1302(reg)/16)*10+read1302(reg)%16读取转换成10进制
10进制转换成BCD写入write1302(reg,(temp/10)*16+temp%10)
1178951695
2楼-- · 2020-01-20 02:11
little_Monkey 发表于 2015-11-7 00:06
temp=(read1302(reg)/16)*10+read1302(reg)%16读取转换成10进制
10进制转换成BCD写入write1302(reg,(temp/1 ...

你还,仔细想了你的回复,你是将10进制转化为BCD码格式,我想问是通过数字键盘改变的1302数据么
little_Monkey
3楼-- · 2020-01-20 03:05
1178951695 发表于 2015-11-7 11:09
你还,仔细想了你的回复,你是将10进制转化为BCD码格式,我想问是通过数字键盘改变的1302数据么 ...

读取到键盘如何得到数据那是你程序需要处理的问题,很简单了,最简单的方法,上次的按键值×10+这次的按键值
spring152
4楼-- · 2020-01-20 07:30
你是新手吧,这都搞不定,还是转行吧
1178951695
5楼-- · 2020-01-20 09:21
 精彩回答 2  元偷偷看……
jxchen
6楼-- · 2020-01-20 11:00
#define  uchar unsigned char  
uchar times[7]={0x50,0x59,0x23,0x06,0x09,0x01,0x15};
uchar read_key(void)
{
                 
  // return key value

}
void chk_key(uchar key)
{
  switch( key )  
  {
    case 0:                 //key 0
        times[3]=0x25;   
    case 1:                 //key 1
    case 2:                 //key 2
    case 3:                                                                 //key 3
    case 4:                                                                 //key 4
    case 5:                                                                 //key 5
    case 6:                                                                 //key 6
    case 7:                                                                 //key 7
    case 8:                                                                 //key 8
    case 9:                                                                 //key 9
    default:
             break;
  }

}

void main(void)
{
     uchar i;
     i=read_key();
     chk_key(i);
}

一周热门 更多>