一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3017|回复: 10

[其他综合] 关于不同的读写速度会改变DS1302振荡频率的问题

[复制链接]
发表于 2014-5-29 19:31 | 显示全部楼层 |阅读模式
使用同样的读写程序和其他硬件进行更换计时芯片做了如下实验
sbit DS1302_CLK = P2^5;    //实时时钟时钟线引脚7
sbit DS1302_IO = P2^6;    //实时时钟数据线引脚6
sbit DS1302_RST = P2^7;    //实时时钟复位线引脚5
//定义累加器A中的各位
sbit a0 = ACC^0;
sbit a1 = ACC^1;
sbit a2 = ACC^2;
sbit a3 = ACC^3;
sbit a4 = ACC^4;
sbit a5 = ACC^5;
sbit a6 = ACC^6;
sbit a7 = ACC^7;

unsigned char DS1302_ReadByte(void)//-DS1302写入字节(底层协议)
{
    DS1302_IO = 1;
    a0 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a1 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a2 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a3 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a4 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a5 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a6 = DS1302_IO;
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    a7 = DS1302_IO;
    return(ACC);
}
/****************************************************************************************************************/
void write_time_byte(unsigned char dd)//向DS1302写1字节数据
{ //-1302驱动程序(底层协议)
    ACC = dd;
    DS1302_IO = a0;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a1;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a2;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a3;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a4;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a5;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a6;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
    DS1302_IO = a7;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    DS1302_CLK = 0;
}
/****************************************************************************************************************
函数名:常用时钟数据写
调 用:write_clock();
参 数:无
返回值:无
结 果:
备 注:适用于DS1302芯片+32.768KHz6pF晶体
/****************************************************************************************************************/
void v_W1302(uchar add,uchar dat) //-DS1302写数据(底层协议)
{  
    DS1302_RST = 0;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    DS1302_RST = 1;
    _nop_();
    write_time_byte(add);
    _nop_();
    write_time_byte(dat);
    _nop_();
    DS1302_RST = 0;
    _nop_();
    DS1302_CLK = 1;
}
/****************************************************************************************************************
函数名:常用时钟数据读取
调 用:read_clock();
参 数:无
返回值:无
结 果:
备 注:适用于DS1302芯片+32.768KHz6pF晶体
/****************************************************************************************************************/
uchar uc_R1302(uchar add)//-DS1302读数据(底层协议)
{  
    unsigned char dat;
    DS1302_RST = 0;
    _nop_();
    DS1302_CLK = 0;
    _nop_();
    DS1302_RST = 1;
    _nop_();
    write_time_byte(add | 0x01);//地址,命令
    _nop_();
    dat = DS1302_ReadByte();//读1Byte数据
    _nop_();
    DS1302_RST = 0;
    _nop_();
    DS1302_CLK = 1;
    _nop_();
    return(dat);
}

使用DIP-8封装   X B价¥ 0.45
正面丝印为:
DS1302
1308A4
.+102BN
运行1小时后快4
今天 5月29日用DELL台式电脑的USB供电用视波器测下IC的 3脚出现了怪问题
F0000TEK-DIP8未与MCU通信时

F0000TEK-DIP8未与MCU通信时

F0000TEK-DIP8未与MCU通信时


F0001TEK-DIP8与MCU=4Mhz通信时

F0001TEK-DIP8与MCU=4Mhz通信时

F0001TEK-DIP8与MCU=4Mhz通信时


F0002TEK-DIP8与MCU=8Mhz通信时

F0002TEK-DIP8与MCU=8Mhz通信时

F0002TEK-DIP8与MCU=8Mhz通信时


F0003TEK-DIP8与MCU=12Mhz通信时

F0003TEK-DIP8与MCU=12Mhz通信时

F0003TEK-DIP8与MCU=12Mhz通信时


F0004TEK-DIP8与MCU=22.1184Mhz通信时

F0004TEK-DIP8与MCU=22.1184Mhz通信时

F0004TEK-DIP8与MCU=22.1184Mhz通信时


MCU=22.1184主程序就一直读DS1302的其中一个寄存器时

MCU=22.1184主程序就一直读DS1302的其中一个寄存器时

MCU=22.1184主程序就一直读DS1302的其中一个寄存器时


使用SOP-8封装 非自己购买不知何价,但看上去跟0.73元一片的差不多

正面丝印为:
DS1032Z
+1234YR
628AC
今天 5月29日用DELL台式电脑的USB供电用视波器测下IC的 3脚出现了怪问题
幅度明显比上一个低很多!

F0000TEK-SOP8+1234未与MCU通信时

F0000TEK-SOP8+1234未与MCU通信时

F0000TEK-SOP8+1234未与MCU通信时


F0001TEK-SOP8+1234与MCU=4Mhz通信时

F0001TEK-SOP8+1234与MCU=4Mhz通信时

F0001TEK-SOP8+1234与MCU=4Mhz通信时


F0002TEK-SOP8+1234与MCU=8Mhz通信时

F0002TEK-SOP8+1234与MCU=8Mhz通信时

F0002TEK-SOP8+1234与MCU=8Mhz通信时


F0003TEK-SOP8+1234与MCU=12Mhz通信时

F0003TEK-SOP8+1234与MCU=12Mhz通信时

F0003TEK-SOP8+1234与MCU=12Mhz通信时


F0004TEK-SOP8+1234与MCU=22.1184Mhz通信时

F0004TEK-SOP8+1234与MCU=22.1184Mhz通信时

F0004TEK-SOP8+1234与MCU=22.1184Mhz通信时




谁知道这是为什么?谢谢!


发表于 2014-5-29 19:37 | 显示全部楼层
国产的DS1302Z 就别测了0.72买的没意义 进口的肯定没事
回复

使用道具 举报

 楼主| 发表于 2014-5-29 20:01 来自手机 | 显示全部楼层
明天测个马来西亚产的试下
回复

使用道具 举报

发表于 2014-5-29 21:24 | 显示全部楼层
LBQ691477940 发表于 2014-5-29 20:01
明天测个马来西亚产的试下

估计还不如中国产的。马航还没找到呢。
回复

使用道具 举报

发表于 2014-5-29 22:07 | 显示全部楼层
snoopy8008 发表于 2014-5-29 21:24
估计还不如中国产的。马航还没找到呢。

估计是不了了之了
回复

使用道具 举报

发表于 2014-5-29 22:11 | 显示全部楼层
图片看得真累
回复

使用道具 举报

 楼主| 发表于 2014-5-29 22:27 | 显示全部楼层
snoopy8008 发表于 2014-5-29 21:24
估计还不如中国产的。马航还没找到呢。

这个不好说中国人喜欢偷工减料,未学爬就学走地出山寨货呀!!!
回复

使用道具 举报

发表于 2014-5-29 23:44 | 显示全部楼层
本帖最后由 snoopy8008 于 2014-5-29 23:53 编辑
benli 发表于 2014-5-29 22:07
估计是不了了之了

刚发完帖子就有马航消息,说搜索回到原点,之前白找了,要花钱雇人找了…………
回复

使用道具 举报

发表于 2014-5-29 23:48 | 显示全部楼层
LBQ691477940 发表于 2014-5-29 22:27
这个不好说中国人喜欢偷工减料,未学爬就学走地出山寨货呀!!!

小日本omron设计的继电器。在我们这,马来产的,新换的,成批的是坏的。国产的,个别的坏的,日出来的,目前还没遇到新的就是坏的。

不过也不好直接对比,因为马来产的那货,就只有马来产,没有别处产的。

而中国产和日本产的那俩货,除了产地代码-J以外,别的代码都一样,而结构却差了十万八千里,日出来的那货三个支点,国产的那货一个支点,我敢打包票,国产的那结构,只要我稍用内力,就能让它在装到设备之前,以一个新品的身份成为废品!
回复

使用道具 举报

发表于 2014-5-30 08:51 | 显示全部楼层
不奇怪,你买个正宗的估计你测量结果也一样。
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-31 18:29 , Processed in 0.037940 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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