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

📄 rtc.h

📁 C8051F020单片机开发板演示程序
💻 H
字号:
/************************************************************************************
*  Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* Http:  www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: RTC.h
* Project  : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
* 
* Author:  李林利
* Version: 1.20
* Date:    2007.6.1
* Email:   GavinLi@126.com
* 
* Description: 本文件是RTC(PCF8563)硬件驱动程序头文件;
*
* Others: none;
*
* Function List:
*	1. void RTC_Init(unsigned long clk)				
*   2. unsigned char RTC_ReadReg(unsigned char addr)
*	3. void RTC_WriteReg(unsigned char addr, unsigned char val)
*	4. void RTC_ReadAllReg(RTC_REG *p)
*	5. void RTC_WriteAllReg(RTC_REG *p)			
*   6. void RTC_Read(RTC_TIME *p)
*	7. void RTC_Write(RTC_TIME *p)
*
* History:
*   1. Author:       李林利  
*	   Version: 	 1.10
*	   Date:         2007.3.12
*      Modification: none
*
*   2. Author:       李林利   
*	   Version: 	 1.00
*      Date:         2004.11.24
*      Modification: 建立文件
*
*************************************************************************************/
/*************************************************************************************
* 						RTC(PCF8563)硬件驱动程序函数使用说明
*
*	1. 第1步,必须先调用函数RTC_Init();该函数clk设置了PCF8563通信速度,要求在
*      50000HZ~400000HZ之间;该函数保留了PCF8563器件的默认设置;本函数只允许调用1次;
*	2. 第2步,如果要设置PCF8563器件的其它属性,请用RTC_WriteReg()和RTC_ReadAllReg()两个
*      函数重新设置,具体设置值参看PCF8563器件数据手册;RTC_ReadReg()和RTC_ReadAllReg()
*	   两个函数可查看设置是否正确;	
*	3. 第3步, 调用RTC_Write()函数用于修改RTC时间,
       调用RTC_Read()函数用于读取RTC时间;
*	4. 其它细节详见具体函数说明;
*
*************************************************************************************/
/************************************************************************************
// 常量及全局变量定义
*************************************************************************************/
typedef struct
{
	unsigned char   second;
	unsigned char   minute;
	unsigned char   hour;
	unsigned char   day;
	unsigned char   week;
	unsigned char   month;
	unsigned char   year;
}RTC_TIME, *pRTC_TIME;  

typedef struct
{
	unsigned char   ctrl_sta1;
	unsigned char   ctrl_sta2;
	unsigned char   minute_alarm;
	unsigned char   hour_alarm;
	unsigned char   day_alarm;
	unsigned char   week_alarm;
	unsigned char   clkout_ctrl;
	unsigned char   timer_ctrl;
	unsigned char   timer_value;
}RTC_REG, *pRTC_REG;

/************************************************************************************
//
//                      RTC(PCF8563)硬件驱动程序外部引用声明
//
*************************************************************************************/
/***********************************************************************************
* Function: RTC_Init;
*
* Description: RTC(PCF8563)时钟初始化;
*              
* Input:  clk, PCF8563通信速度,取值范围:50000hz~400000hz;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void RTC_Init(unsigned long clk);

/***********************************************************************************
* Function: RTC_ReadReg;
*
* Description: 读PCF8563任意寄存器值;
*              
* Input:  addr, PCF8563寄存器地址;
*
* Output: none;
*
* Return: 返回寄存器值;
*
* Note:   none;
************************************************************************************/
unsigned char RTC_ReadReg(unsigned char addr);

/***********************************************************************************
* Function: RTC_WriteReg;
*
* Description: 设置PCF8563任意寄存器值;
*              
* Input:  addr, PCF8563寄存器地址; val,写入的寄存器值;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void RTC_WriteReg(unsigned char addr, unsigned char val);

/***********************************************************************************
* Function: RTC_ReadAllReg;
*
* Description: 读取PCF8563所有寄存器值;
*              
* Input:  (RTC_REG *)p, PCF8563所有寄存器结构的地址指针;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void RTC_ReadAllReg(RTC_REG *p);

/***********************************************************************************
* Function: RTC_WriteAllReg;
*
* Description: 设置PCF8563所有寄存器值;
*              
* Input:  (RTC_REG *)p, PCF8563所有寄存器结构的地址指针;
*
* Output: none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void RTC_WriteAllReg(RTC_REG *p);

/***********************************************************************************
* Function: RTC_Read;
*
* Description: 读(PCF8563)时间;
*              
* Input:  (RTC_TIME *)p, RTC 时间数据指针;
*
* Output: (RTC_TIME *)p, RTC 时间数据指针;
*
* Return: 0(FALSE), 读取时间无效; 1(TRUE), 读取时间正确;
*
* Note:   输出的时间数据是十六进制数而不是BCD码;
************************************************************************************/
unsigned char RTC_Read(RTC_TIME *p);

/***********************************************************************************
* Function: RTC_Write;
*
* Description: 写(PCF8563)时间;
*              
* Input:  (RTC_TIME *)p, RTC 时间数据指针;
*
* Output: none;
*
* Return: (RTC_TIME *)p, RTC 时间数据指针;
*
* Note:   输入的时间数据是十六进制数而不是BCD码;
************************************************************************************/
void RTC_Write(RTC_TIME *p);

/***********************************************************************************/
// 文件结束
/***********************************************************************************/



⌨️ 快捷键说明

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