普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5771|回复: 0

ds1302无法写入,求助高手。

 关闭 [复制链接]

2

主题

4

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2015-12-12 20:48:00 | 显示全部楼层 |阅读模式
子函数都是从教材COPY来的,想写入小时,无论怎么试都不行,高手帮看一下错在哪了。
                #include <reg51.h>
#include "My function.c"
#include <intrins.h>
sbit RST=P3^5 ;
sbit  SCLK=P3^6        ;
sbit DSIO=P3^4;
  //unsigned char Ds1302Read(unsigned char addr);
   void Ds1302Write(unsigned char addr,unsigned dat);

  void write()
  {
   Ds1302Write(0x8e,0x00);

    Ds1302Write(0x84,0x17);
       
        Ds1302Write(0x8e,0x80);

                           }
    void Ds1302Write(unsigned char addr,unsigned dat)
{
        unsigned char n;
        SCLK=0;//先将SCLK置低电平。
        _nop_();
        RST=1; //然后将RST(CE)置高电平。
        _nop_();
        for(n=0;n<8;n++)//开始传送八位地址命令
        {
                DSIO=addr&0x01;//数据从低位开始传送
               
                SCLK=1;//数据在上升沿时,DS1302读取数据
                _nop_();
                SCLK=0;
                _nop_();
                                   addr>>=1;
        }
        for(n=0;n<8;n++)//写入8位数据
        {
                DSIO=dat&0x01;
                          
                SCLK=1;//数据在上升沿时,DS1302读取数据
                _nop_();
                SCLK=0;
                _nop_();
                        dat>>=1;       
        }                 
        RST=0;//传送数据结束
        _nop_();
        }
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-2 05:08 , Processed in 0.089094 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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