找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4611|回复: 7
打印 上一主题 下一主题
收起左侧

24C04怎么用单片机程序存数据

[复制链接]
跳转到指定楼层
楼主
用24C04芯片,依照24C02教程的I2C写法存数据,比如数码管显示69696,这个数已经超过无符号整形unsigned int的范围65535,定义用unsigned long int无符号整形32位的,我不知道怎么拆这个32位的,拆4个8位的,还是拆分三个去存到24C04里面去.
网上找了一些32位拆4个8位的,编译没错,仿真及单片机开发板上运行就像死机了一样.不知道是什么问题.
网上找的方法是这样的.
        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位的,
麻烦给一个例程.非常感谢.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:111634 发表于 2017-5-13 08:33 | 只看该作者
本帖最后由 zl2168 于 2017-5-13 15:51 编辑

给你个参考案例。实例49  读写AT24C02
Proteus仿真一下,确认有效。
实例49 读写IIC AT24C02.rar (38.96 KB, 下载次数: 34) 实例50 非零地址读写AT24C02.rar (39.09 KB, 下载次数: 10)

以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版.。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

板凳
ID:155507 发表于 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);
复制代码


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

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

回复

使用道具 举报

地板
ID:123289 发表于 2017-5-13 12:59 | 只看该作者
最呆的办法:存1234567890,你就存10次,一次存一位数,10次靠近存;回读时再读10次,拼在一起,重新组成1234567890.
回复

使用道具 举报

5#
ID:123289 发表于 2017-5-13 13:04 | 只看该作者
拆法,除以10,9次每次取余,剩余1次可免除直接取。
拼法,乘以10,9次每次相加,剩余1次可免乘直接加。
这是笨方法啊,懂了之后你改进。
回复

使用道具 举报

6#
ID:95922 发表于 2017-5-13 18:07 | 只看该作者
yzwzfyz 发表于 2017-5-13 13:04
拆法,除以10,9次每次取余,剩余1次可免除直接取。
拼法,乘以10,9次每次相加,剩余1次可免乘直接加。
...

不懂,需要请教师傅
或者写一段代码参考一下.
回复

使用道具 举报

7#
ID:95922 发表于 2017-5-13 18:09 | 只看该作者

你拆的方法和我的一样,昨晚试了一下,sec1=(uchar)(sec>>24&0xff);,这个拆不出来,显示都是0.
回复

使用道具 举报

8#
ID:95922 发表于 2017-5-13 18:11 | 只看该作者

合并我是这样的,sec=(sec1<<24|sec2<<16|sec3<<8|sec4);
就是sec4没拆出来,合并出来3万多.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表