找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 375|回复: 0
打印 上一主题 下一主题

ds1302时钟芯片的问题

[复制链接]

12

主题

23

帖子

33

积分

二级会员(20)

Rank: 2Rank: 2

积分
33
跳转到指定楼层
1#
发表于 2014-4-29 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近参加比赛,用了时钟芯片,但是时间调节一直很烦,有时候能用,再添加别的模块,就又不能用了,特别是按键按下暂停时,那个地方的去除写保护很烦,写进去没用,不写反而有用。下面的程序的问题是按下能暂停,但是就是不能调节,不知道为什么?求大神! A/ R9 Y$ x5 N0 j% l$ m) Z
void clockadjust()  //调节设置
; e6 N! ^% [& s1 @$ ?{
, w' ^; z, z7 m0 `1 |9 h2 F, f        if(key==0)                //如果按键按下,时钟状态取反7 h! M; g8 h3 @' p% a
        {! E3 G3 H- @% C8 ]) p6 G
                delay_ds1302(5);
2 S1 D- Y3 Z. z5 I% z2 Z9 T                if(key==0)! M4 ]2 S( y+ _3 @
                {
4 ]* y7 d. l9 V4 E+ E* _                        flag++;6 A+ ?) Q. W5 R! I0 B+ W7 ]
                        dat=read_ds1302(read_sec);        //读取秒寄存器的数据
, i1 F) s% O% T# p6 Z                        while(!key);        0 @% b4 ~# F6 Y) M0 P+ B4 v0 P4 L* H- m
                }
( ^8 |6 y9 ^' ?9 F# k7 p  ^        }        
7 c. C% o% n1 J$ Y        if(flag==1||flag==2||flag==3||flag==4||flag==5||flag==6||flag==7) //停止时钟" _4 c! ?( P  Z* q2 i- v) a
        {        " n; o" ^) K/ d5 a/ @
                write_ds1302(0x8e,0);        //去除写保护,如果去除这里的话,按键按下时走得很快
% f- l* y, L0 |                write_ds1302(write_sec,dat|0x80);  ) L/ R6 d3 Z$ s7 g+ B% B1 |
    write_ds1302(0x8e,0x80);        //加写保护        
! ^' G  e# e4 [9 e        }        
0 d6 \# w1 R( ~, i. L        if(flag==1)                   //秒调节' z3 B' [2 ^" v
        {, f$ s: j3 C# p1 c
                tt.sec=read_ds1302(read_sec);1 O$ \: x" }0 g( h0 }: N
                tt.sec=(tt.sec&0x7f)/16*10+tt.sec%16;
* P0 Y4 l9 t" r9 Z4 o0 j3 s8 D                if(add==0)            //按键,加一     , N, s- u( K; A" Z! I
                {2 C- l: a  C0 w
                        delay_ds1302(5);
  I3 a4 j$ Q0 K* v                        if(add==0)* a, H; ~7 r$ w9 o
                        {( A2 f  B8 V$ |  T) q! m% R8 j
                                tt.sec++;0 A# b+ ]9 Z' `3 f! D* F, |; {
                                if(tt.sec==60)
( i* P: o5 T' c+ Z, n+ E% j* B                                        tt.sec=0;
3 X: R5 x5 N2 ~8 c/ v" k                                tt.sec=tt.sec/10*16+tt.sec%10;0 i# G5 ^; i( {0 }$ b& s2 K
                                write_ds1302(0x8e,0);        //去除写保护
" ]  B* D+ P9 k3 I( v# C                                write_ds1302(write_sec,tt.sec|0x80);
( o0 r% D; o% R6 T                                write_ds1302(0x8e,0x80);        //加写保护
$ C: y: c/ U) {& k3 b3 V* U                                while(!add);- b* e+ @+ _/ ^5 H5 u& |6 N
                        }
) l! f1 Y+ @# G) T1 ?                }
" E6 H+ q( L. S3 C9 N; a                if(sub==0) //按键,减一
: y8 s! f" m9 _( `/ {. C                {, U# u) k) |  u
                        delay_ds1302(5);
4 S& Y5 `- g" K. i                        if(sub==0)
9 ?, V4 G) j' K, |& g. O* W                        {) @( i5 \4 c" x. v: ^1 b
                                --tt.sec;
  l3 K9 }6 N; o2 z* f2 Z" J                                if(tt.sec==-1)
0 z  x) L$ J1 e& J0 N                                        tt.sec=59;7 s" Q# S* `; [) l
                                tt.sec=tt.sec/10*16+tt.sec%10;
+ O5 {, R6 p( j# ~+ a                                write_ds1302(0x8e,0);        //去除写保护
2 u! }+ E4 |4 t9 z8 Q                                write_ds1302(write_sec,tt.sec);4 ]& S) [+ \5 f& i# l. d' w
                                write_ds1302(0x8e,0x80);        //加写保护% d- N3 b4 D3 z* W, Z3 \7 F2 ~2 J
                                while(!sub);
! ]; u, R6 W" Y1 x, `: f$ p                        }( {* y' w# S- t& Y0 A5 B
                2 i( _+ @6 o+ ~+ A% m* {
                }
% a1 L, y  G2 d# ]* }. F0 ~        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-19 06:26 , Processed in 0.053675 second(s), 33 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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