我把int型拆分成2个CHAR还是不行,不知道是写不进去还是读不出来,帮我看看错在哪了 #include <reg52.h> #include "i2c.h" #include "delay.h" #include "display.h"
sbit KEY_ADD=P3^3; //定义按键输入端口 sbit KEY_DEC=P3^4;
/*----------------------------------------------- 主函数 ------------------------------------------------*/ main() { unsigned int num; unsigned char num1; unsigned char num2; num1=num/256; num2=num%256; num=num1*256+num2; Init_Timer0();
IRcvStr(0xae,0,&num1,1); IRcvStr(0xad,0,&num2,1); KEY_ADD=1; //按键输入端口电平置高 KEY_DEC=1; while (1) //主循环 { if(!KEY_ADD) //如果检测到低电平,说明按键按下 { DelayMs(10); //延时去抖,一般10-20ms if(!KEY_ADD) //再次确认按键是否按下,没有按下则退出 { while(!KEY_ADD);//如果确认按下按键等待按键释放,没有释放则一直等待 { if(num<9999) //加操作 { num++; ISendStr(0xae,0,&num1,1); //写入24c02 ISendStr(0xde,0,&num2,1); DelayMs(10); }
} } }
if(!KEY_DEC) //如果检测到低电平,说明按键按下 { DelayMs(10); //延时去抖,一般10-20ms if(!KEY_DEC) //再次确认按键是否按下,没有按下则退出 { while(!KEY_DEC);//如果确认按下按键等待按键释放,没有释放则一直等待 { if(num>0) //减操作 { num--; ISendStr(0xae,0,&num1,1); //写入24c02 ISendStr(0xde,0,&num2,1); DelayMs(10); }
} } } TempData[0]=dofly_DuanMa[num/100]; TempData[1]=dofly_DuanMa[(num%100)/10]; TempData[2]=dofly_DuanMa[(num%100)%10]; //主循环中添加其他需要一直工作的程序 } } |