资源简介

基于MSP430G2553和NRF24L01的时钟程序 经验证可用

资源截图

代码片段和文件信息

#include 
#include “ds1302.h“


/*******************************************
函数名称:delay
功    能:延时一段时间
参    数:time--延时长度
返回值  :无
********************************************/
void delay(uint time)
{
  uint i;
  for(i=0;i}

/*******************************************
函数名称:Reset_DS1302
功    能:对DS1302进行复位操作
参    数:无
返回值  :无
********************************************/
void Reset_DS1302(void)
{
  DS_RST_OUT;  //RST对应的IO设置为输出状态
  DS_SCL_OUT;  //SCLK对应的IO设置为输出状态
  DS_SCL0;     //SCLK=0
  DS_RST0;     //RST=0
  delay(10);
  DS_SCL1;    //SCLK=1
}
/*******************************************
函数名称:Write1Byte
功    能:对DS1302写入1个字节的数据
参    数:wdata--写入的数据
返回值  :无
********************************************/
void Write1Byte(uchar wdata) 

  uchar i;
  
  DS_SDA_OUT;     //SDA对应的IO设置为输出状态
  DS_RST1;        //REST=1;
  
  for(i=8; i>0; i--) 
  {
    if(wdata&0x01)  DS_SDA1;
    else            DS_SDA0;
    DS_SCL0;
    delay(10); 
    DS_SCL1;
    delay(10); 
    wdata >>=1; 
  } 
}
/*******************************************
函数名称:Read1Byte
功    能:从DS1302读出1个字节的数据
参    数:无
返回值  :读出的一个字节数据
********************************************/
uchar Read1Byte(void) 

  uchar i;
  uchar rdata=0X00;
  
  DS_SDA_IN;  //SDA对应的IO设置为输入状态
  DS_RST1;    //REST=1;
  
  for(i=8; i>0; i--)
  {
    DS_SCL1;
    delay(10);
    DS_SCL0;
    delay(10);
    rdata >>=1;
    if(DS_SDA_BIT)  rdata |= 0x80;
  } 
  
  return(rdata); 
}
/*******************************************
函数名称:W_Data
功    能:向某个寄存器写入一个字节数据
参    数:addr--寄存器地址
wdata--写入的数据
返回值  :无
********************************************/
void W_Data(uchar addr uchar wdata)
{
  DS_RST0; 
  DS_SCL0;   
  _NOP();
  DS_RST1;
  Write1Byte(addr);   //写入地址
  Write1Byte(wdata);  //写入数据
  DS_SCL1;
  DS_RST0;

/*******************************************
函数名称:R_Data
功    能:从某个寄存器读出一个字节数据
参    数:addr--寄存器地址
返回值  :读出的数据
********************************************/
uchar R_Data(uchar addr)
{
  uchar rdata;
  
  DS_RST0; 
  DS_SCL0; 
  _NOP();
  DS_RST1;
  Write1Byte(addr);    //写入地址
  rdata = Read1Byte();  //读出数据 
  DS_SCL1;
  DS_RST0;
  
  return(rdata);
}
/*******************************************
函数名称:BurstWrite1302
功    能:以burst方式向DS1302写入批量时间数据
参    数:ptr--指向时间数据存放地址的指针
返回值  :读出的数据
说    明:时间数据的存放格式是:
秒,分,时,日,月,星期,年,控制
【7个数据(BCD格式)+1个控制】
********************************************/
void BurstWrite1302(uchar *ptr)
{
  uchar i;
  
  W_Data(0x8e0x00);      //允许写入     
  DS_RST0; 
  DS_SCL0; 
  _NOP();
  DS_RST1;
  Write1Byte(0xbe);       // 0xbe:时钟多字节写入命令 
  for (i=8; i>0; i--) 
  {
    Write1Byte(*ptr++); 
  }
  DS_SCL1;
  DS_RST0;
  W_Data(0x8e0x80);      // 禁止写入

/*******************************************
函数名称:BurstRead1302
功    能:以burst方式从DS1302读出批量时间数据
参    数:ptr--指向存放时间数据地址的指针
返回值  :无
说    明:时间数据的存放格式是:
秒,分,时,日,月,星期,年,控制
【7个数据(BCD格式)+1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        157  2012-08-29 20:48  NRF24L01时钟--ok\24L01发送程序\24.eww

     文件       4200  2012-08-30 19:16  NRF24L01时钟--ok\24L01发送程序\24l.dep

     文件      20124  2012-08-29 20:48  NRF24L01时钟--ok\24L01发送程序\24l.ewd

     文件      50504  2012-08-30 17:16  NRF24L01时钟--ok\24L01发送程序\24l.ewp

     文件      23277  2012-08-30 19:15  NRF24L01时钟--ok\24L01发送程序\Debug\Exe\24l.d43

     文件        318  2012-08-30 19:15  NRF24L01时钟--ok\24L01发送程序\Debug\Obj\24l.pbd

     文件      18211  2012-08-30 18:54  NRF24L01时钟--ok\24L01发送程序\Debug\Obj\ds1302.r43

     文件       5864  2012-08-30 19:15  NRF24L01时钟--ok\24L01发送程序\Debug\Obj\main.r43

     文件      57071  2012-08-29 22:43  NRF24L01时钟--ok\24L01发送程序\Debug\Obj\N5110.r43

     文件      19893  2012-08-30 18:54  NRF24L01时钟--ok\24L01发送程序\Debug\Obj\NRF24L01.r43

     文件       6108  2012-08-30 18:31  NRF24L01时钟--ok\24L01发送程序\ds1302.c

     文件       4450  2012-08-30 18:31  NRF24L01时钟--ok\24L01发送程序\ds1302.h

     文件        668  2012-08-30 19:16  NRF24L01时钟--ok\24L01发送程序\main.c

     文件      23697  2012-08-29 22:42  NRF24L01时钟--ok\24L01发送程序\N5110.c

     文件       8862  2012-08-29 22:43  NRF24L01时钟--ok\24L01发送程序\N5110.h

     文件       7508  2012-08-30 18:31  NRF24L01时钟--ok\24L01发送程序\NRF24L01.c

     文件      10268  2012-08-30 18:31  NRF24L01时钟--ok\24L01发送程序\NRF24L01.h

     文件          0  2012-08-30 19:15  NRF24L01时钟--ok\24L01发送程序\path.txt

     文件       1013  2011-07-11 16:05  NRF24L01时钟--ok\24L01发送程序\readme.txt

     文件       3536  2012-08-30 19:16  NRF24L01时钟--ok\24L01发送程序\settings\24.wsdt

     文件       1073  2012-08-30 19:15  NRF24L01时钟--ok\24L01发送程序\settings\24l.cspy.bat

     文件       4601  2012-08-30 19:17  NRF24L01时钟--ok\24L01发送程序\settings\24l.dbgdt

     文件       1536  2012-08-30 19:17  NRF24L01时钟--ok\24L01发送程序\settings\24l.dni

     文件        157  2012-08-29 20:48  NRF24L01时钟--ok\24L01接收程序\24.eww

     文件       3539  2012-08-30 19:02  NRF24L01时钟--ok\24L01接收程序\24l.dep

     文件      20124  2012-08-29 20:48  NRF24L01时钟--ok\24L01接收程序\24l.ewd

     文件      50502  2012-08-30 11:11  NRF24L01时钟--ok\24L01接收程序\24l.ewp

     文件      29487  2012-08-30 19:02  NRF24L01时钟--ok\24L01接收程序\Debug\Exe\24l.d43

     文件        317  2012-08-30 19:02  NRF24L01时钟--ok\24L01接收程序\Debug\Obj\24l.pbd

     文件        465  2012-08-30 19:02  NRF24L01时钟--ok\24L01接收程序\Debug\Obj\main.pbi

............此处省略58个文件信息

评论

共有 条评论