微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > DS1302时钟芯片的读程序问题

DS1302时钟芯片的读程序问题

时间:10-02 整理:3721RD 点击:
下面的程序,写程序没问题,但是1302读数据的时候把下面那段程序去掉之后LCD显示的时候就出现了一些地方时钟显示?的问题。谁能解释一下
        ds_io=0;
        _nop_();
        _nop_();
        ds_io=1;
        _nop_();
        _nop_();
void write_ds1302_byte(uchar dat)//向DS1302写一个字节
{
        uchar i;
        for(i=0;i<8;i++)
        {
                sck=0;
      _nop_();_nop_();
                ds_io=dat&0x01;
      _nop_();_nop_();
                sck=1;
                dat=dat>>1;
        }
}
void write_ds1302(uchar add,uchar dat)//向DS1302写数据
{
        rst=0;
        _nop_();
        sck=0;
        _nop_();
        rst=1;
   _nop_();
        write_ds1302_byte(add);
   write_ds1302_byte(dat);
        rst=0;
}
uchar read_ds1302(uchar add)//从1302读数据
{
   uchar i,tmp=0;
        rst=0;
        _nop_();
        sck=0;
        _nop_();
        rst=1;
   _nop_();
        write_ds1302_byte(add);
        for(i=0;i<8;i++)
        {
                if(ds_io)
           tmp=tmp|0x80;
                sck=0;
                tmp=tmp>>1;
                _nop_();
                _nop_();
                _nop_();
                sck=1;       
        }
        rst=0;//下面DS1302复位稳定时间,必不可少!
        _nop_();
        sck=0;
        _nop_();
        ds_io=0;
        _nop_();
        _nop_();
        ds_io=1;
        _nop_();
        _nop_();
        return tmp;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top