📄 main.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 + -