標(biāo)題: 24C04怎么用單片機(jī)程序存數(shù)據(jù) [打印本頁]

作者: 老來所學(xué)    時間: 2017-5-12 21:44
標(biāo)題: 24C04怎么用單片機(jī)程序存數(shù)據(jù)
用24C04芯片,依照24C02教程的I2C寫法存數(shù)據(jù),比如數(shù)碼管顯示69696,這個數(shù)已經(jīng)超過無符號整形unsigned int的范圍65535,定義用unsigned long int無符號整形32位的,我不知道怎么拆這個32位的,拆4個8位的,還是拆分三個去存到24C04里面去.
網(wǎng)上找了一些32位拆4個8位的,編譯沒錯,仿真及單片機(jī)開發(fā)板上運(yùn)行就像死機(jī)了一樣.不知道是什么問題.
網(wǎng)上找的方法是這樣的.
        sec1=(uchar)(sec>>24&0xff);        
        sec2=(uchar)(sec>>16&0xff);
        sec3=(uchar)(sec>>8&0xff);
        sec4=(uchar)sec&0xff;

sec1~4是8位的,sec是32位的.
哪位大哥教一下怎么拆這個32位的,
麻煩給一個例程.非常感謝.

作者: zl2168    時間: 2017-5-13 08:33
本帖最后由 zl2168 于 2017-5-13 15:51 編輯

給你個參考案例。實(shí)例49  讀寫AT24C02
Proteus仿真一下,確認(rèn)有效。
實(shí)例49 讀寫IIC AT24C02.rar (38.96 KB, 下載次數(shù): 34) 實(shí)例50 非零地址讀寫AT24C02.rar (39.09 KB, 下載次數(shù): 10)

以上摘自張志良編著《單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版.。書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費(fèi)下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。

作者: angmall    時間: 2017-5-13 09:54
是這樣的

  1.         sec4=(uchar)(sec & 0xff);      
  2.         sec3=(uchar)((sec >>8 )& 0xff);
  3.         sec2=(uchar)((sec >>16)& 0xff);
  4.         sec1=(uchar)((sec >>24)& 0xff);
復(fù)制代碼


8位到 整形32位的
sec1~4,sec是32位的.

  1. sec = ((sec4 << 0) & 0xFF) + ((sec3 << 8) & 0xFFFF) + ((sec2 << 16) & 0xFFFFFF) + ((sec1 << 24) & 0xFFFFFFFF);
復(fù)制代碼


作者: yzwzfyz    時間: 2017-5-13 12:59
最呆的辦法:存1234567890,你就存10次,一次存一位數(shù),10次靠近存;回讀時再讀10次,拼在一起,重新組成1234567890.
作者: yzwzfyz    時間: 2017-5-13 13:04
拆法,除以10,9次每次取余,剩余1次可免除直接取。
拼法,乘以10,9次每次相加,剩余1次可免乘直接加。
這是笨方法啊,懂了之后你改進(jìn)。
作者: 老來所學(xué)    時間: 2017-5-13 18:07
yzwzfyz 發(fā)表于 2017-5-13 13:04
拆法,除以10,9次每次取余,剩余1次可免除直接取。
拼法,乘以10,9次每次相加,剩余1次可免乘直接加。
...

不懂,需要請教師傅
或者寫一段代碼參考一下.
作者: 老來所學(xué)    時間: 2017-5-13 18:09
angmall 發(fā)表于 2017-5-13 09:54
是這樣的

你拆的方法和我的一樣,昨晚試了一下,sec1=(uchar)(sec>>24&0xff);,這個拆不出來,顯示都是0.
作者: 老來所學(xué)    時間: 2017-5-13 18:11
angmall 發(fā)表于 2017-5-13 09:54
是這樣的

合并我是這樣的,sec=(sec1<<24|sec2<<16|sec3<<8|sec4);
就是sec4沒拆出來,合并出來3萬多.




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1