找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1917|回复: 5
收起左侧

模拟I2C写数据写不进PCF8563 附单片机程序

[复制链接]
ID:837826 发表于 2021-6-29 11:34 | 显示全部楼层 |阅读模式
利用模拟I2C读写PCF8563中的时间,读时间总是读出一个错误的固定值;查看状态寄存器1中的值为0xff;在初始化函数中,先关闭了芯片,设置初始时间(顺带读取设置的时间,读出的时间是固定值,而不是设置好的初始时间),在往状态寄存器1中写0x00运行芯片,初始化后,查看状态寄存器1中的值还是为0xff;我就感觉我写数据就没有写进去,有人可以帮帮我嘛?下面是我的初始化函数,没有配置中断

  1.         WriteClockPara(0x00, 0x20);  //关闭芯片        
  2.         WriteClockPara(8,0x22); //写年
  3.         Calendar.Year  = ReadClockPara(8,0x00ff);//读年        
  4.         WriteClockPara(7,0x8A);//写月
  5.         Calendar.Month = ReadClockPara(7,0x001f);//读月
  6.         WriteClockPara(5,0x28);//写日
  7.         Calendar.Dat   = ReadClockPara(5,0x003f);//读日
  8.         WriteClockPara(4,0x15);//写时
  9.         Calendar.Hour  = ReadClockPara(4,0x003f);//读时
  10.         WriteClockPara(3,0x46);//写分
  11.         Calendar.Min   = ReadClockPara(3,0x007f);//读分
  12.         WriteClockPara(2,0x00);//写秒
  13.         Calendar.Sec   = ReadClockPara(2,0x007f);//读秒
  14.         
  15.         WriteClockPara(0x00, 0x00);  //运行芯片
  16.         T_I2CDelay();
  17. }
复制代码
这是仿真之后读到的时间,temp是读取的状态寄存器1中的值
1624937673(1).jpg

回复

使用道具 举报

ID:226055 发表于 2021-6-29 12:53 | 显示全部楼层
会不会是硬件问题,I2C总线上需要上拉电阻,有吗?
回复

使用道具 举报

ID:837826 发表于 2021-6-29 13:39 | 显示全部楼层
cocolala 发表于 2021-6-29 12:53
会不会是硬件问题,I2C总线上需要上拉电阻,有吗?

用的模拟I2C,在PCF8563的SCL和SDA处有接上拉电阻
回复

使用道具 举报

ID:226055 发表于 2021-6-29 13:59 | 显示全部楼层
    1、手头正好有艾克姆科技的STC8A8K64S4A12开发板的原理图,你参考下PCF8563这部分电路。
101.jpg



    2、附件给出厂家的源码,注释的很详细,希望对你有帮助。
    3、务必确保自己的时钟芯片原装正品,现在缺芯,价格比之前翻了几倍。


实验3-10-2:PCF8563时钟RTC - LCD1602屏显示(硬件I2C).rar

1011.78 KB, 下载次数: 39

回复

使用道具 举报

ID:837826 发表于 2021-6-29 14:40 | 显示全部楼层
cocolala 发表于 2021-6-29 13:59
1、手头正好有艾克姆科技的STC8A8K64S4A12开发板的原理图,你参考下PCF8563这部分电路。

谢谢,我对照了原理图,是一样的接线,这个程序也我有很大的帮助,目前还是不能启动芯片,写进数据
回复

使用道具 举报

ID:837826 发表于 2021-6-29 17:39 | 显示全部楼层
谢谢各位,找到问题, 我开了优化编译,我人麻了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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