久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8385|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

關(guān)于24c02儲(chǔ)存一個(gè)多位數(shù)的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:41871 發(fā)表于 2012-6-18 17:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

在DOFLY的教學(xué)中有一個(gè)關(guān)于“記憶上次上次開機(jī)狀態(tài)“的程序:
教學(xué)源代碼如下:
#include <reg52.h>               
#include "i2c.h"
#include "delay.h"
#include "display.h"

sbit KEY_ADD=P3^3;  //定義按鍵輸入端口
sbit KEY_DEC=P3^4;

/*-----------------------------------------------
                     主函數(shù)
------------------------------------------------*/ 
main()
{
 unsigned char num=0;
 Init_Timer0();

 IRcvStr(0xae,0,&num,1);                               
               
 KEY_ADD=1; //按鍵輸入端口電平置高
 KEY_DEC=1;
while (1)         //主循環(huán)
  {
 
  if(!KEY_ADD)  //如果檢測(cè)到低電平,說(shuō)明按鍵按下
    {
  DelayMs(10); //延時(shí)去抖,一般10-20ms
     if(!KEY_ADD)     //再次確認(rèn)按鍵是否按下,沒(méi)有按下則退出
    {
        while(!KEY_ADD);//如果確認(rèn)按下按鍵等待按鍵釋放,沒(méi)有釋放則一直等待
        {
     if(num<999)    //加操作
            {
           num++;
              ISendStr(0xae,0,&num,1);  //寫入24c02
              DelayMs(10);
             }

    }
    }
 }

 if(!KEY_DEC)  //如果檢測(cè)到低電平,說(shuō)明按鍵按下
    {
  DelayMs(10); //延時(shí)去抖,一般10-20ms
     if(!KEY_DEC)     //再次確認(rèn)按鍵是否按下,沒(méi)有按下則退出
    {
        while(!KEY_DEC);//如果確認(rèn)按下按鍵等待按鍵釋放,沒(méi)有釋放則一直等待
        {
        if(num>0)  //減操作
           {
           num--;
              ISendStr(0xae,0,&num,1);  //寫入24c02
              DelayMs(10);
             }

    }
    }
 }
 TempData[0]=dofly_DuanMa[num/100];   
 TempData[1]=dofly_DuanMa[(num%100)/10];
 TempData[2]=dofly_DuanMa[(num%100)%10];
     //主循環(huán)中添加其他需要一直工作的程序
 
  }
}
里面unsigned char num=0;的范圍是0-255,我如果要保存一個(gè)大于255的數(shù),比如9999,那該怎么改呢,我看過(guò)別的論壇上有的人說(shuō)要把9999拆成2個(gè)99保存,我想一個(gè)char型的數(shù)據(jù)怎么拆,有沒(méi)有高手指點(diǎn)下,有沒(méi)有直接能改成int型保存的可能,不過(guò)24C02一個(gè)地址單元好像只能保存0-255吧,
知道的朋友都別吝嗇,多指點(diǎn)指點(diǎn)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:27916 發(fā)表于 2012-6-19 09:18 | 只看該作者
CHAR貌似是一個(gè)8BIT的數(shù)據(jù)吧,不會(huì)出現(xiàn)9999的數(shù)據(jù)呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:27916 發(fā)表于 2012-6-19 09:20 | 只看該作者
如果有大于2BITE的數(shù)據(jù),你可以用除法和求余來(lái)得到高低位
回復(fù)

使用道具 舉報(bào)

地板
ID:41871 發(fā)表于 2012-6-19 11:11 | 只看該作者

樓上的斑竹的意思是 TempData[0]=dofly_DuanMa[num/100];   
 TempData[1]=dofly_DuanMa[(num%100)/10];
 TempData[2]=dofly_DuanMa[(num%100)%10];
讓我保存他們的每一位?是這樣嗎

回復(fù)

使用道具 舉報(bào)

5#
ID:41871 發(fā)表于 2012-6-22 14:22 | 只看該作者

我把int型拆分成2個(gè)CHAR還是不行,不知道是寫不進(jìn)去還是讀不出來(lái),幫我看看錯(cuò)在哪了
#include <reg52.h>               
#include "i2c.h"
#include "delay.h"
#include "display.h"

sbit KEY_ADD=P3^3;  //定義按鍵輸入端口
sbit KEY_DEC=P3^4;

/*-----------------------------------------------
                     主函數(shù)
------------------------------------------------*/ 
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)         //主循環(huán)
  {
 
  if(!KEY_ADD)  //如果檢測(cè)到低電平,說(shuō)明按鍵按下
    {
  DelayMs(10); //延時(shí)去抖,一般10-20ms
     if(!KEY_ADD)     //再次確認(rèn)按鍵是否按下,沒(méi)有按下則退出
    {
        while(!KEY_ADD);//如果確認(rèn)按下按鍵等待按鍵釋放,沒(méi)有釋放則一直等待
        {
     if(num<9999)    //加操作
            {
           num++;
              ISendStr(0xae,0,&num1,1);  //寫入24c02
     ISendStr(0xde,0,&num2,1);
              DelayMs(10);
             }

    }
    }
 }

 if(!KEY_DEC)  //如果檢測(cè)到低電平,說(shuō)明按鍵按下
    {
  DelayMs(10); //延時(shí)去抖,一般10-20ms
     if(!KEY_DEC)     //再次確認(rèn)按鍵是否按下,沒(méi)有按下則退出
    {
        while(!KEY_DEC);//如果確認(rèn)按下按鍵等待按鍵釋放,沒(méi)有釋放則一直等待
        {
        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];
     //主循環(huán)中添加其他需要一直工作的程序
 
  }
}

回復(fù)

使用道具 舉報(bào)

6#
ID:41871 發(fā)表于 2012-6-25 16:21 | 只看該作者
就這么沉了?
回復(fù)

使用道具 舉報(bào)

7#
ID:215565 發(fā)表于 2017-6-28 17:43 | 只看該作者
大神可以把 I2C.H  發(fā)我一下嗎
回復(fù)

使用道具 舉報(bào)

8#
ID:137676 發(fā)表于 2017-6-28 19:33 | 只看該作者
樓主你好!
IRcvStr(0xae,0,&num1,1);   
IRcvStr(0xad,0,&num2,1);
樓主的i2c設(shè)備有幾個(gè)啊!
0xae,我猜想應(yīng)該是i2c設(shè)備地址,也就是說(shuō)你向第一個(gè)設(shè)備寫數(shù)據(jù)后,又向第二個(gè)設(shè)備寫數(shù)據(jù),
如果第一個(gè)數(shù)據(jù)能讀取,那么第二個(gè)估計(jì)就不行了吧!
回復(fù)

使用道具 舉報(bào)

9#
ID:137676 發(fā)表于 2017-6-29 00:50 | 只看該作者
zacharias 發(fā)表于 2017-6-28 17:43
大神可以把 I2C.H  發(fā)我一下嗎

希望對(duì)你有所幫助。

IIC.zip

1.15 KB, 下載次數(shù): 22, 下載積分: 黑幣 -5

iic

回復(fù)

使用道具 舉報(bào)

10#
ID:188808 發(fā)表于 2017-6-29 14:34 | 只看該作者
建議拆分成高八位和低八位分別存儲(chǔ)在不同地址
回復(fù)

使用道具 舉報(bào)

11#
ID:168911 發(fā)表于 2020-6-12 21:36 來(lái)自觸屏版 | 只看該作者
我有24c02可以儲(chǔ)存多組多位斷電時(shí)儲(chǔ)存,平常計(jì)數(shù)不儲(chǔ)存,突然斷電時(shí)儲(chǔ)存一下,因?yàn)?4c02有讀寫次數(shù),
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久国产亚洲精品 | 婷婷色在线 | 亚洲成人一区二区在线 | 精品成人佐山爱一区二区 | 亚洲一区二区视频 | 区一区二区三在线观看 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 精品视频一区二区 | 国精日本亚洲欧州国产中文久久 | 欧美激情一区 | 久久久精品视频免费看 | 日韩免费网 | 日韩精品一区二区三区在线观看 | 全免一级毛片 | 亚洲国产网站 | 91精品久久久久久久久久入口 | 精品一区二区三区免费视频 | 无码国模国产在线观看 | 综合另类| 一级网站| 日日夜夜免费精品视频 | 欧美福利在线 | 日韩中文一区二区三区 | 成人免费一区二区三区视频网站 | 毛片毛片毛片毛片毛片 | 影音先锋欧美资源 | 国产99久久精品 | 精品久久久久久亚洲国产800 | 国产一区二区 | 毛片免费看的 | 自拍偷拍中文字幕 | 欧美日韩一区二区在线观看 | 精品国产一区三区 | 99精品视频一区二区三区 | 久久里面有精品 | 羞羞视频在线免费 | 午夜精品一区二区三区在线视频 | 天天操夜夜艹 | 国产精久久久久久久 | 国产免费又色又爽又黄在线观看 | 人人爽人人爽 |