找回密码
 注册
关于网站域名变更的通知
查看: 738|回复: 0
打印 上一主题 下一主题

ds1302时钟芯片的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
最近参加比赛,用了时钟芯片,但是时间调节一直很烦,有时候能用,再添加别的模块,就又不能用了,特别是按键按下暂停时,那个地方的去除写保护很烦,写进去没用,不写反而有用。下面的程序的问题是按下能暂停,但是就是不能调节,不知道为什么?求大神
) q4 r% @' r  b" M* avoid clockadjust()  //调节设置7 j) a7 c9 \# o
{" i6 r( J2 b8 i- h7 p7 d, Q' n
        if(key==0)                //如果按键按下,时钟状态取反
2 w- M) Y$ i4 ?/ b        {1 n* a2 S; ~' s0 V
                delay_ds1302(5);. \  ]1 r6 {  @$ ~0 A3 P/ [  k& F
                if(key==0)& S$ K  {# |1 C% K" `
                {- @: ~4 ~0 E3 X9 F% r0 S( G6 \
                        flag++;' S" p2 ^! i# x  H& ]0 M; J: E
                        dat=read_ds1302(read_sec);        //读取秒寄存器的数据+ ]! G; A, N! f& d
                        while(!key);        & g/ v1 t. z& N0 T
                }
& Z" e3 Q% r# T5 ]        }        
  w* w' R- L- Y9 y5 p1 f$ _" \        if(flag==1||flag==2||flag==3||flag==4||flag==5||flag==6||flag==7) //停止时钟
9 O8 n; W) B* g; e% x        {        
0 V% ^' j4 e" `: j                write_ds1302(0x8e,0);        //去除写保护,如果去除这里的话,按键按下时走得很快) v' ]; ]& N5 }4 r
                write_ds1302(write_sec,dat|0x80);  
6 d+ b% m; y# c  ?! ?3 I& \    write_ds1302(0x8e,0x80);        //加写保护        
, Q9 ]% h1 ?& K4 l+ T0 _        }          U, O/ X2 I; j2 ]# ?- n$ C# j9 E2 L
        if(flag==1)                   //秒调节
- \/ G) e, A  S- b1 S* P5 K5 Q. t        {) z' ~+ Y8 ~7 ]1 e
                tt.sec=read_ds1302(read_sec);. Q# c8 ]! C0 o- j6 |8 F+ |
                tt.sec=(tt.sec&0x7f)/16*10+tt.sec%16;" W+ v- n3 E+ [0 {
                if(add==0)            //按键,加一     
& K( F' H/ Z, Q. N                {
* e1 ?3 p% y3 {/ n1 d2 I2 a$ F                        delay_ds1302(5);
% _. X5 s7 u. r. S8 X                        if(add==0)
& z2 z  U- j- \/ M/ x. N. M7 x                        {
5 E9 L+ W" y& ?, [. D                                tt.sec++;
5 v# e6 A; u! k& L                                if(tt.sec==60)
5 W+ T0 @; D/ o" y2 ]  a+ S                                        tt.sec=0;" }0 `6 x2 y/ z; \+ R
                                tt.sec=tt.sec/10*16+tt.sec%10;/ k" S# n) V. P4 B3 a/ R6 }# b( ~( H2 g( o
                                write_ds1302(0x8e,0);        //去除写保护) L) i" M" l' r7 h/ B0 |
                                write_ds1302(write_sec,tt.sec|0x80);7 O! x0 e( O# Q. Q, ^
                                write_ds1302(0x8e,0x80);        //加写保护. b/ X3 E8 I+ G; ^0 E3 Z
                                while(!add);
' D0 u, r: t4 i& w5 M, \8 M                        }
$ b8 I$ @+ x' |# I$ I. B- {# O+ G. ~4 P                }
$ f! ]8 S3 h; ^                if(sub==0) //按键,减一; z* n/ {* L% e2 |+ G
                {
4 g7 I$ i. l6 b" s9 B% P                        delay_ds1302(5);6 Q, R- @0 i$ ]6 _  U+ w+ {$ l
                        if(sub==0)
& I2 n: _& h+ Q4 q/ w+ ^8 P                        {# C/ R! N2 h. c6 |
                                --tt.sec;3 y8 @- P( R$ b0 {- d& A# L
                                if(tt.sec==-1)
, Y' F4 p# A/ g, ]9 \                                        tt.sec=59;
% W- b2 x  Q/ A  T; ^6 Z                                tt.sec=tt.sec/10*16+tt.sec%10;5 S1 G# b- V  w+ l. |. S
                                write_ds1302(0x8e,0);        //去除写保护8 G8 `0 `9 H" t
                                write_ds1302(write_sec,tt.sec);: i/ v4 ~; n) X/ I: s3 }$ U2 j
                                write_ds1302(0x8e,0x80);        //加写保护) X4 H" ~, v  N% A; v
                                while(!sub);" p1 f" F# ^: Z& x9 L9 {
                        }: h) E. e( v! y  c" ?3 P! {4 w
                8 F# ?- H" u8 X' m. B! k
                }) e. X1 \! A' [. b8 S
        }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-30 04:57 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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