MSP430单片机的PCF8563时钟芯片C语言驱动程序

发布者:和谐的24号最新更新时间:2015-09-08 来源: eefocus关键字:MSP430  单片机  PCF8563  时钟芯片 手机看文章 扫描二维码
随时随地手机看文章
#define NOP _NOP();_NOP()   
   
#define     NowSec     cNowTime[0]                     
#define     NowMin     cNowTime[1]   
#define     NowHour    cNowTime[2]   
#define     NowDate    cNowTime[3]   
#define     NowMonth   cNowTime[4]   
#define     NowYear    cNowTime[5]   
   
#define     SetSec     cSetTime[0]                     
#define     SetMin     cSetTime[1]   
#define     SetHour    cSetTime[2]   
#define     SetDate    cSetTime[3]   
#define     SetMonth   cSetTime[4]   
#define     SetYear    cSetTime[5]   
   
uchar Temp_Count;   
uchar cSetTime[6];         
uchar cNowTime[6];   
   
void  Timer_Out_Byte(uchar OutByte);   
uchar Timer_In_Byte(void);   
   
void ReadRealtime(void)   
{   
        NOP;   
        HT1381_OUTPORT &=~Timer_SCL;          //Timer_SCL=0;   
        NOP;   
        HT1381_OUTPORT |= Timer_Rest;          //Timer_Rest=1;   
   
        Timer_Out_Byte(0xBF);                             //Read, Burst Mode   
   
        for(TimeCount=0;TimeCount<6;TimeCount++)   
                {   
                  if  (TimeCount==5)   
                   Timer_In_Byte();                //dummy read.   
                  cNowTime[TimeCount]=Timer_In_Byte();   
                 //change BCD to uchar   
                 cNowTime[TimeCount]=(cNowTime[TimeCount]/0x10)*10+(cNowTime[TimeCount]%0x10);   
                }   
        NOP;   
        HT1381_OUTPORT &=~Timer_Rest;   //Timer_Rest=0;   
}   
   
void WriteRealtime(void)   
{   
        NOP;   
        HT1381_OUTPORT &=~Timer_Rest;        //Timer_Rest=0; //for sure to close rest.   
        NOP;   
        HT1381_OUTPORT &=~Timer_SCL;          //Timer_SCL=0;   
        NOP;   
        HT1381_OUTPORT |= Timer_Rest;          //Timer_Rest=1;   
        Timer_Out_Byte(0x8E);                             //Write,Single Mode   
        Timer_Out_Byte(0x00);                             //Write, Protect Byte=0, Disable protect   
        NOP;   
        HT1381_OUTPORT &=~Timer_Rest;   //Timer_Rest=0;   
   
           
        NOP;   
        HT1381_OUTPORT |= Timer_Rest;          //Timer_Rest=1;   
        Timer_Out_Byte(0x80);                             //Write,Single Mode   
        Timer_Out_Byte(0x00);                             //Write, OSC enalbe, old second distroied   
        NOP;   
        HT1381_OUTPORT &=~Timer_Rest;   //Timer_Rest=0;   
   
        for(TimeCount=0;TimeCount<6;TimeCount++)   
  {   
            //change uchar to BCD   
            cSetTime[TimeCount]=(cSetTime[TimeCount]/10)*0x10+(cSetTime[TimeCount]);   
  }   
   
        NOP;   
        HT1381_OUTPORT |= Timer_Rest;                                                                                 //Timer_Rest=1;   
        Timer_Out_Byte(0XBE);                             //Write,Burst Mode   
        Timer_Out_Byte(SetSec & 0x7F);                    //OSC enable for sure.                          
        Timer_Out_Byte(SetMin);   
        Timer_Out_Byte(SetHour & 0x7F);                   //24 Hour Mode    
        Timer_Out_Byte(SetDate);   
        Timer_Out_Byte(SetMonth);   
        Timer_Out_Byte(0x00);   
        Timer_Out_Byte(SetYear);   
        Timer_Out_Byte(0x00);   
        NOP;   
        HT1381_OUTPORT &=~Timer_Rest;   //Timer_Rest=0;   
   
        NOP;   
        HT1381_OUTPORT |= Timer_Rest;          //Timer_Rest=1;   
        Timer_Out_Byte(0x8E);                             //Write,Single Mode   
        Timer_Out_Byte(0x80);                             //Write, Protect Byte=0, enable protect   
        NOP;   
        HT1381_OUTPORT &=~Timer_Rest;   //Timer_Rest=0;   
   
}   
   
   
void Timer_Out_Byte(uchar OutByte)   
{   
        uchar Timer_Count;   
        for (Timer_Count=0;Timer_Count<8;Timer_Count++)   
                {   
                   HT1381_DIRPORT |= Timer_SDA;                                //output   
                   if ((OutByte & 0x01) == 0)   
                           HT1381_OUTPORT &=~Timer_SDA;           
                             else   
                                      HT1381_OUTPORT |= Timer_SDA;                   
                   NOP;   
                             HT1381_OUTPORT |= Timer_SCL;                   
                                NOP;   
                             HT1381_OUTPORT &=~Timer_SCL;          //Timer_SCL=0;   
                             OutByte = OutByte >> 1;   
        }   
}   
   
   
uchar Timer_In_Byte(void)   
{   
        uchar InByte,Timer_Count;   
   
        InByte=0x00;   
        HT1381_DIRPORT &=~Timer_SDA;                        //Timer_SDA=1;//input   
   
        for (Timer_Count=0;Timer_Count<8;Timer_Count++)   
                {   
                  InByte >>= 1;   
                          NOP;   
                     HT1381_OUTPORT |= Timer_SCL;                   
                    if(HT1381_INPORT&Timer_SDA)   
                   InByte |= 0x80;   
                    else   
                   InByte &= 0x7F;   
        
                         NOP;   
                    HT1381_OUTPORT &=~Timer_SCL;          //Timer_SCL=0;   
        }   
   
        return(InByte);    
}  
关键字:MSP430  单片机  PCF8563  时钟芯片 引用地址:MSP430单片机的PCF8563时钟芯片C语言驱动程序

上一篇:MSP430F149单片机的内部定时器A定时1秒钟实现LED闪烁
下一篇:MSP430F449单片机RTC时钟C语言程序(带闹钟)

推荐阅读最新更新时间:2024-03-16 14:30

基于单片机的井场仪表参数无线传输系统的设计
1引 言 目前,全国油田钻井现场基本都是有线数据传输。有线传输有很多缺点,现场布线复杂而且存在安全隐患,钻井是流动作业,每钻一口井就要重新布一次线,这样既费时又费力,有时还会由于布线走向的问题导致线路被碰断。一般说来,数据线都是空中架设,风吹日晒使数据线老化的较快,这样就带来直接的经济损失。钻井现场有很多公司在作业,有些参数各公司是共用的,同一个参数每个公司都要读取一次,就需要在同一个测量点上安装两台甚至更多的变送器,这样既造成了浪费又使得现场变送器安装位置紧张。 本系统采用无线通信技术,一点发射多点接收,可以实现信息共享,避免了布线的麻烦,而且流动作业时可以方便地安装和拆卸,很好地提高了工作效率。 2系统硬件设计 如图1
[单片机]
基于<font color='red'>单片机</font>的井场仪表参数无线传输系统的设计
基于MSP430F42x的工业信号产生与测量仪表的设计
  0 引言   这篇论文介绍了工业信号的产生与测量原理,主要研究了基于TI公司MSP430F42x的工业信号的产生与测量仪表的设计。   工业信号的产生与测量仪表在生产过程系统中是非常重要的检测仪表,可模拟输出多种工业控制过程测控中所需的检测信号,同时也可测量这些工业控制过程中产生的信号,其大量用于工业仪表的现场调校。   本设计的特点是保证测量的情况下使低功耗更低,成本更低。在信号测量部分,16位ADC保证了测量;在信号输出部分,电压信号和电流信号采用PWM方式产生。   本设计由两片MSP430F系列MCU组成,MSP430F425实现电压和电流信号的测量,而MSP430F449实现电压和电流信号的输出及频率信号的测量
[单片机]
基于<font color='red'>MSP430</font>F42x的工业信号产生与测量仪表的设计
发力智能电网,飞思卡尔再推新一代MCU
  2010年1月初,伴随国家电网新标准的出炉,飞思卡尔推出了国网专用5V MZ系列MCU。在不到半年时间,飞思卡尔又继续扩大其新一代智能微控制器(MCU)阵容,推出高度集成的单芯片方案,包括适用于单相电表和流量表应用的低功耗、经济高效的8位MCU—MC9S08GW64,和面向计量应用的超低功耗LCD MCU—MC9S08LH64/36,同时大举提高针对智能计量表市场的MCF51EM 32位ColdFire V1系列产量。   “如果说1月产品是地道的地方菜,那今天推出的一系列产品更像是自助餐,”飞思卡尔工业和多元市场微控制器亚太区市场经理曾劲涛这样描述。随着智能电网的普及,为相关产业带来巨大的发展机遇,智能电表受到产业拉动,正
[工业控制]
用汇编语言实现单片机的循环灯控制
Protues模拟图: 程序: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV A,#01H ;先让第一个发光二极管亮 LOOP: MOV P2,A ;从P2口输出到发光二极管 LCALL DELAY ;延时1秒 RL A ;左移一位,下一个发光二极管亮 SJMP
[单片机]
用汇编语言实现<font color='red'>单片机</font>的循环灯控制
基于S3C2410X处理器和单片机实现多磁控管电源控制的设计方案
1、电路硬件整体设计 设计主要包括3个模块:1,人机交换模块(S3C2410芯片扩展电路)、2,功率输出模块(ATmega16L芯片扩展电路)、3,磁控管工作电路。人机交换模块主要用来接收使用者的命令数据,再传递给功率输出模块输出给定功率。同时接收功率输出模块电路中功率反馈回来的信息,使得使用者能对相应信息做出处理。整体框架如图1—1所示: 1.1基于S3C2410X处理器的控制电路设计 控制系统中采用韩国三星半道体公司的S3C2410X处理器作为主控制芯片。SBC2410X是一款基于ARM920T内核的16/32位RISC嵌入式微处理器,高性价格比,低功耗。应用该芯片作为主控制芯片,并扩展64M SDRAM、64M Nand
[单片机]
基于S3C2410X处理器和<font color='red'>单片机</font>实现多磁控管电源控制的设计方案
用低功耗RF芯片与超低功耗MCU组合构建有源、无源RFID
  如今低功耗射频产品线包括了多种专用及基于标准的低功耗、高性能CMOS RF-IC,可用于涵盖低于1GHz和2.4GHz的各种ISM频带的无线应用。其产品包括了低功耗收发机及发射机、单芯片系统集成解决方案以及IEEE 802.15.4/ZigBeeTM兼容解决方案。   低功耗RF-IC产品可用于一系列的住宅、建筑领域以及消费电子的无线应用:家庭和工业自动化;即家居控智,安防报警;无线抄表;消费类电于娱乐产品;鼠标、键盘与无线USB及音频传输等领域。   然而在这些应用中很重要的技术问题是采用低功耗射频收发机及发射机与高性能的模拟和超低功耗微控制器产品系列相组合成各类集成低功耗射频技术应用方案,以达到构建报警及安全系统、自动
[单片机]
用低功耗RF芯片与超低功耗<font color='red'>MCU</font>组合构建有源、无源RFID
中科芯与IAR共建生态合作,IAR集成开发环境全面支持CKS32系列MCU
中国上海 – 2023 年 1 0 月 18 日 – 嵌入式开发软件和服务的全球领导者IAR今日宣布,与中科芯集成电路有限公司(以下简称中科芯)达成生态合作,IAR已全面支持CKS32系列MCU的应用开发。这一合作将进一步推动嵌入式系统的发展,并为开发者提供更完整、高效的开发解决方案。 IAR Embedded Workbench集成开发环境一直是全球众多开发者首选的嵌入式软件开发解决方案之一。 这一强大的工具套件已全面支持中科芯CKS32系列MCU,为开发者提供了无与伦比的支持。通过该解决方案,开发者可以充分利用代码优化功能,同时还享有一系列强大的调试功能,包括代码和数据断点、运行时堆栈分析、调用堆栈可视化等。此外,IAR
[嵌入式]
一种基于51单片机控制的数字视频混合器
近几年,数字电视技术发展很快,数字视频混合器可以将两路或多数数字视频信号按照一定的算法混合成一路或多路数字视频信号。作为数字视频信号的基本处理单元,该混合器在数字电视节目的编辑制作和播控传输系统中具有举足轻重的作用。 本文介绍的基于单片机控制的数字视频键控混合器具有以下特点:内含两级串联的键控混合器,可以在主信号中键两入两路附加数字信号,如时钟台标或各种字幕标识;可以远程遥控,也可现场按键控制;可以随时更新和保存系统配置,改变系统功能和技术参数;该系统稳定可靠,对掉电、死机等异常现象有自复位能力。 整个系统包括硬件和软件两部分,硬件包括数字混合部分和单片机控制部分。 1 数字混合部分 输入的数字信号有背景信号、键控信号和填
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved