找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

ds1302时钟芯片的问题

[复制链接]

12

主题

23

帖子

33

积分

二级会员(20)

Rank: 2Rank: 2

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

EDA365欢迎您!

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

x
最近参加比赛,用了时钟芯片,但是时间调节一直很烦,有时候能用,再添加别的模块,就又不能用了,特别是按键按下暂停时,那个地方的去除写保护很烦,写进去没用,不写反而有用。下面的程序的问题是按下能暂停,但是就是不能调节,不知道为什么?求大神& O& |3 u  w1 i( w$ B7 x9 c2 W
void clockadjust()  //调节设置
, ^6 e1 U6 P" B0 A! i. S{
- Y; ?! f) Y' x* j& M% _3 b: z        if(key==0)                //如果按键按下,时钟状态取反: Z- g: Q0 \% a# j# I6 P
        {
! a. W. l; m0 }$ ]$ C" Z1 x                delay_ds1302(5);
5 y# _! P- A2 ?0 i, b                if(key==0)' {0 P$ w. z. l. S. Y6 V( l
                {
) D+ s6 W2 o9 R& L) }9 B: Z                        flag++;) B7 A0 D: t2 S3 y
                        dat=read_ds1302(read_sec);        //读取秒寄存器的数据3 n5 R. g2 d/ B' H2 n9 J7 Y
                        while(!key);        & ?9 y, Z* G! t2 S: s3 A8 d4 Q6 y5 I
                }2 T0 @  h& V* x
        }        
* t3 r: [3 M2 U+ a! ]        if(flag==1||flag==2||flag==3||flag==4||flag==5||flag==6||flag==7) //停止时钟
- o8 O: |% V1 O- [) Y9 t        {        5 s0 p0 R4 Y4 z+ m
                write_ds1302(0x8e,0);        //去除写保护,如果去除这里的话,按键按下时走得很快
( Z' ]# z  w2 `& Y0 L/ e                write_ds1302(write_sec,dat|0x80);  8 |$ ?9 l& X& `. F: G
    write_ds1302(0x8e,0x80);        //加写保护        
# Z  d" \# y; ~' @& t. z# d        }        6 q) f& e! a" R# O1 }; N6 u
        if(flag==1)                   //秒调节
6 h. q! ]9 g2 w        {: ^% H5 M5 H' O5 E) d* {4 U1 Q4 z
                tt.sec=read_ds1302(read_sec);
' s) c; c7 k+ Y/ }                tt.sec=(tt.sec&0x7f)/16*10+tt.sec%16;6 j3 e' x; R0 V' v* j& c% f- @, h
                if(add==0)            //按键,加一     ; z! y( p6 {5 B# v5 j  v
                {8 \* E' x, R5 p. m1 H
                        delay_ds1302(5);
1 p4 E. @. @9 X3 o* D                        if(add==0)1 G8 @. K, S; `% I# ~0 u. I- V5 y3 a: b
                        {
2 f/ `" P* ^# Y0 `6 v+ A! M7 d0 z; p$ k                                tt.sec++;8 o7 }! @, e% q3 \
                                if(tt.sec==60)9 j7 l+ L6 x7 H( s0 v- S+ K- N5 p  S
                                        tt.sec=0;
) _9 j2 @7 Q9 }                                tt.sec=tt.sec/10*16+tt.sec%10;! W3 @; N& S% P* q
                                write_ds1302(0x8e,0);        //去除写保护  H4 d' I9 X7 ^; |: j* e
                                write_ds1302(write_sec,tt.sec|0x80);+ H, C4 H" C- x5 C- c
                                write_ds1302(0x8e,0x80);        //加写保护( m+ F: N6 D  t/ j* G+ p
                                while(!add);5 m3 ?3 T" D9 h1 l
                        }
# O# @! N1 E5 e* |' p1 @# U; g                }
$ W5 a% ~- o; s                if(sub==0) //按键,减一
2 p7 ]" V* p- v% A0 b                {
" s5 ^2 J7 d: S                        delay_ds1302(5);
4 K8 b+ Y" j( \                        if(sub==0)/ C7 ^; h, Q$ w* U
                        {/ O. Q; n. g7 m3 O) z
                                --tt.sec;
; y. |* [/ c- [9 r. M( y  g                                if(tt.sec==-1)
8 r3 D' o; e+ h- T8 K7 b, Y                                        tt.sec=59;
# v: Y, [2 W8 |! B                                tt.sec=tt.sec/10*16+tt.sec%10;  J- E! l: D# j* [
                                write_ds1302(0x8e,0);        //去除写保护
  u/ s7 r# l; ~) y) ]2 Q                                write_ds1302(write_sec,tt.sec);
) q. e- a9 Z& }; U                                write_ds1302(0x8e,0x80);        //加写保护
6 D& G8 U2 @; ~7 p                                while(!sub);
* V, j* Z4 w9 ]" e# o/ y) V$ _                        }6 ^! n" Z* w% Q# q* O8 s
                ( K. b+ |6 `8 _, \# [# t' P
                }
, `" V: y5 g( d( ?( `  w2 C6 G        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-24 19:16 , Processed in 0.059105 second(s), 33 queries , Gzip On.

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

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

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