| unsigned char i_dec,j_dec,k_dec,i,j,k; //先将DS1302的BCD码换为十进制数.
 //buf_clocK[2]-------BCD时
 //buf_clock[1]-------BCD分
 //buf_clock[0]-------BCD秒
 i_dec=((buf_clock[2]&0xf0)>>4)*10 + buf_clock[2]&0x0f;
 j_dec=((buf_clock[1]&0xf0)>>4)*10 + buf_clock[1]&0x0f;
 k_dec=((buf_clock[0]&0xf0)>>4)*10 + buf_clock[0]&0x0f;
 //再将十进制化为十六进制
 i=(i_dec/16)<<4+i_dec%16;
 j=(j_dec/16)<<4+j_dec%16;
 k=(k_dec/16)<<4+k_dec%16;
 
 if((ram_canshu[6]!=0) || (ram_canshu[7]!=0) )  //如定时有效,即不       是"00:00"
 {
 if((ram_canshu[6]==i ) && (ram_canshu[7]==j )  //时间到则标志位置"1"
 flag_ds_ss=0x01;
 }
 
 
 ram_canshu[6]---设置的时间"时",内存中初始值为0,按一下增键则
 if(ram_canshu[6]<23)   ram_canshu[6]++;
 ram_canshu[7]---设置的时间"分",内存中初始值为0,按一下增键则
 if(ram_canshu[7]<59)   ram_canshu[7]++;
 
 
 这其中的数制转换有问题,请赐教哪里错了.
 |