⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 MSP430读写DS12CR887
💻 C
字号:
/********************************************/
//        DS12CR887 调试程序
// 先往  DS12CR887 里写数据 年、月、日、时间、分、秒
// 延时一段后,读DS12CR887 的数据寄存器
// MARK_SHU 2007.04.09
/********************************************/

#include <msp430x14x.h>
#include "DS12.h"

/*******************************************/
// 函数声明
/*******************************************/
void initsys() ;
void delay_main() ;

/******************************************/
//
/******************************************/
#define unchar unsigned char
#define unint  unsigned int

/******************************************/
// 变量定义区
/******************************************/
//static unchar set_time[6] = {0x82,0x50,0x14,0x13,0x04,0x07} ;
static unchar get_time[13] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff} ;

int main(void)
{
  WDTCTL = WDTPW + WDTHOLD ;     //关闭看门狗
  initsys() ;                    // 系统初始化

  init_msp430_ds12() ;           // 初始化 ds12cr887 与 msp430 端口
  delay_main(10);
 // write8bit_ds12(0x0b,0x82) ;
  //delay_main(10) ;
  //write8bit_ds12(0x00,0x00) ;
  //delay_main(10) ;
 // write8bit_ds12(0x02,0x55) ;
  //delay_main(10) ;
 // write8bit_ds12(0x04,0x16) ;
  //delay_main(10) ;
 // write8bit_ds12(0x07,0x13) ;
  //delay_main(10) ;
 // write8bit_ds12(0x08,0x04) ;
  //delay_main(10) ;
 // write8bit_ds12(0x09,0x07) ;
  //delay_main(10) ;
  //write8bit_ds12(0x0b,0x02) ;

  //write8bit_ds12(0x0b,0x82);

  write_register(0x0b,0x82) ;


  delay_main(10) ;



  read_register(0X01 , get_time) ;
  delay_main(10) ;
  read_register(0X02 , get_time+1) ;
  delay_main(10) ;
  read_register(0x03 , get_time+2) ;
  delay_main(10) ;
  read_register(0X04 , get_time+3) ;
  delay_main(10) ;
  read_register(0x05 , get_time+4) ;
  delay_main(10) ;
  read_register(0x06 , get_time+5) ;
  delay_main(10) ;
  read_register(0X07 , get_time+6) ;
  delay_main(10) ;
  read_register(0X08 , get_time+7) ;
  delay_main(10) ;
  read_register(0X09 , get_time+8) ;
  delay_main(10) ;
  read_register(0x0a , get_time+9) ;
  delay_main(10) ;
  read_register(0x0b , get_time+10) ;
  delay_main(10) ;
  read_register(0x0c , get_time+11) ;
  delay_main(10) ;
  read_register(0x0d , get_time+12) ;

  _NOP() ;

  LPM3 ;
}


//***************************************************************
// 初始化函数 单片机初始化、各个模块初始化
void initsys()
{
  unsigned int iq0 ;
  BCSCTL1 &= ~XT2OFF ;                          //打开XT2振荡器
  do
  {
    IFG1 &= ~OFIFG ;                            //清楚振荡器失效标志
    for(iq0 = 0xff ; iq0 > 0 ;iq0--) ;          //延时,等待 XT2 起振
  }
  while ((IFG1 & OFIFG) != 0) ;                 //判断 XT2 是否起振

  BCSCTL2 = SELM_2 + SELS ;                     //选择 MCLK(系统主时钟) 、SMCLK(子系统时钟) 为 XT2

  //initadc() ;                                   //初始化 ADC 模块
  //initusart() ;                                 //初始化 USART 模块


  _EINT() ;                                     //打开全局中断控制
}

//*************************************************************
// 延时程序
void delay_main(unint n)
{
  unsigned int count ;
  int i ;
  unsigned long j ;
  count = 2667 ;
  for(i = n ; i> 0;i--)
  {
    for (j=count ;j>0;j--);
  }
  return ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -