我把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]; //主循環中添加其他需要一直工作的程序 } } |