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

📄 isl1208.h

📁 isl1208 program using c for clock
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef ISL1208_HEAD
#define ISL1208_HEAD

	#ifndef ID_OK
	#define ID_OK 	0
	#define ID_ERR 	1
	#endif

	#ifndef uchar
	#define uchar unsigned char 
	#define uint  unsigned int
	#define ulong unsigned long
	#endif


//==================================================================================
//寄存器定义及说明
/*--------------------------------------------------------------------------------------+
 |  时钟秒寄存器 Second(地址:0x00),用于设置/读取时钟秒值。                         |
 |      bit7:   保留。                                                                 |
 |      bit6~0:Second BCD 十进制时钟秒值。                                            |
 +-------------------------------------------------------------------------------------*/
#define REG_SECOND           0  // 时钟秒值寄存器。
#define MASK_SECOND       0x7F  // bit6~0:BCD 格式秒计时值。
/*--------------------------------------------------------------------------------------+
 |  时钟分寄存器 Minute(地址:0x01),用于设置/读取时钟分值。                         |
 |      bit7:   保留。                                                                 |
 |      bit6~0:Minute BCD 十进制时钟分值。                                            |
 +-------------------------------------------------------------------------------------*/
#define REG_MINUTE           1  // 时钟分值寄存器。
#define MASK_MINUTE       0x7F
/*--------------------------------------------------------------------------------------+
 |  时钟时寄存器 Hour(地址:0x02),用于设置/读取时钟的时值。                         |
 |      bit7:   MIL:        12/24 小时计时方式选择控制位:                            |
 |                  1:         选择 24 小时计时方式;                                  |
 |                  0:         选择 12 小时计时方式。                                  |
 |      bit6:   保留。                                                                 |
 |      bit5:   A_PM_10HR   24 小时计时方式的时值十位,                                |
 |                             或 12 小时计时方式的上/下午状态标志位:                 |
 |                  1:         12 小时计时方式下午时间;                               |
 |                  0:         12 小时计时方式上午时间。                               |
 |      bit4~0:Hour        BCD 十进制时钟时值。                                       |
 +-------------------------------------------------------------------------------------*/
#define REG_HOUR             2  // 时钟世纪、时值寄存器。
#define HOUR_MODE_24      0x80  // 使用 24 小时计时方式。
#define MASK_HOUR_24      0x3F
#define MASK_HOUR_12      0x1F
#define HOUR_NOW_PM       0x20
/*--------------------------------------------------------------------------------------+
 |  时钟日寄存器 Date(地址:0x03),用于设置/读取时钟日值。                           |
 |      bit7~6:保留。                                                                 |
 |      bit5~0:Date   BCD 十进制时钟日值。                                            |
 +-------------------------------------------------------------------------------------*/
#define REG_DATE             3  // 时钟日值寄存器。
#define MASK_DATE         0x3F
/*--------------------------------------------------------------------------------------+
 |  时钟月寄存器 Month(地址:0x04),用于设置/读取时钟月值。                          |
 |      bit7~5:保留。                                                                 |
 |      bit4~0:Month  BCD 十进制时钟月值。                                            |
 +-------------------------------------------------------------------------------------*/
#define REG_MONTH            4  // 时钟月值寄存器。
#define MASK_MONTH        0x1F
/*--------------------------------------------------------------------------------------+
 |  时钟年寄存器 Year(地址:0x05),用于设置/读取时钟年值。                           |
 |      bit7~0:Year   BCD 十进制时钟年值。                                            |
 +-------------------------------------------------------------------------------------*/
#define REG_YEAR             5  // 时钟年值寄存器。
/*--------------------------------------------------------------------------------------+
 |  时钟星期寄存器 Week(地址:0x06),设置/读取时钟星期值。星期值具体的表示含义由用户 |
 |          自定义,但必须保持连续性。例:0 表示星期天,1 表示星期一,……,6 表示星期  |
 |          六等。如 1 表示星期天,则必须 2 表示星期一,……,0 表示星期六。            |
 |      bit7~3:保留。                                                                 |
 |      bit2~0:Week   BCD 十进制时钟星期值。                                          |
 +-------------------------------------------------------------------------------------*/
#define REG_WEEK             6  // 时钟星期值寄存器。
#define MASK_WEEK         0x07
#define WEEK_SUNDAY          0  // 0 表示星期天。
/*--------------------------------------------------------------------------------------+
 |  状态寄存器 Status(地址:0x07),用于获取实时钟芯片的当前工作状态。                 |
 |      bit7:   ARST   自动复位标志位 BAT、ALM 控制标志位。                            |
 |                 1:    自动复位相关受控位(检测到正确的状态寄存器数据读取操作后,自  |
 |                          动清零 BAT、ALM 标志位);                                  |
 |                 0:    手工复位(BAT、ALM 标志位置位后需要软件手工写零清除)。       |
 |      bit6:   XTOSCB 内部振荡器使用控制标志位。                                      |
 |                 1:    内部振荡器被关闭(需要在 X1 引脚输入 32.768kHz 时钟信号,以驱 |
 |                          动芯片计时);                                              |
 |                 0:    内部振荡器启用,外接 32.768kHz 晶振,以产生时钟信号控制芯片计 |
 |                          时(上电启动时,该位清零)。                                |
 |      bit5:   保留。                                                                 |
 |      bit4:   WRTC   芯片 RTC 寄存器数据写入控制标志位。                             |
 |                 1:    允许对 RTC 寄存器进行数据写入操作(芯片 1Hz 计时信号与写操作  |
 |                          STOP 事件同步);                                           |
 |                 0:    禁止向 RTC 寄存器写入数据。                                   |
 |      bit3:   保留。                                                                 |
 |      bit2:   ALM    闹钟时间是否达到状态标志位。                                    |
 |                 1:    闹钟时间到(闹钟寄存器值与 RTC 时钟寄存器值一致);           |
 |                 0:    当前不是芯片闹钟寄存器指定时间。                              |
 |                        该标志位只能写入“0”值。                                     |
 |      bit1:   BAT    备用电池工作状态指示标志位。                                    |
 |                 1:    芯片进入备用电池供电工作状态(自动置位);                    |
 |                 0:    芯片处于正常工作状态。                                        |
 |                        该标志位只能写入“0”值。                                     |
 |      bit0:   RTCF   芯片第一次上电启动状态指示标志位。                              |
 |                 1:    芯片第一次上电启动(或主、备用电池失效后第一次上电启动);    |
 |                 0:    芯片工作电源一直有效(对 RTC 寄存器写入一字节有效数据后自动复 |
 |                          位)。                                                      |
 +-------------------------------------------------------------------------------------*/
#define REG_STATUS           7  // 
#define RTC_STATE_POWERON 0x01  // 
#define RTC_STATE_BATTERY 0x02  // 
#define RTC_STATE_ALARM   0x04  // 
#define RTC_WRITE_ENABLE  0x10  // 
#define RTC_OSCILLATE_EXT 0x40  // 
#define RTC_AUTO_RESET    0x80
/*--------------------------------------------------------------------------------------+
 |  中断控制寄存器 Interrupt(地址:0x08),用于芯片中断控制和输出方波信号选择。        |
 |      bit7:   IM     闹钟闹铃中断控制标志位。                                        |
 |                 1:    闹钟闹铃时产生中断(闹铃时间到,在 Fout/#IRQ 引脚输出 250ms  |
 |                          宽的低电平有效中断脉冲信号,请求控制 MCU 处理);           |
 |                 0:    普通闹钟模式(闹铃时间到,ALM 标志置位;Fout/#IRQ 引脚输出低 |
 |                          电平有效指示信号,直到 ALM 标志位清零时恢复正常状态)。     |
 |      bit6:   ALME   闹钟闹铃功能控制标志位。                                        |
 |                 1:    允许芯片内部硬件闹钟闹铃;                                    |
 |                 0:    禁止芯片闹钟闹铃(允许输出方波时,闹钟闹铃功能自动禁止)。    |
 |      bit5:   LPMODE 芯片进入低功耗工作模式控制标志位。                              |
 |                 1:    芯片进入低功耗工作模式(vDD<vBAT-vBATHYS 时,自动切换到     |
 |                          vBAT 供电);                                               |
 |                 0:    芯片工作于普通模式(vDD<vBAT-vBATHYS 且 vDD<vTRIP 时,自动 |
 |                          切换到 vBAT 供电)。                                        |
 |      bit4:   FOBATB 备用电池工作时芯片 Fout/#IRQ 引脚输出控制标志位。              |
 |                 1:    备用电池供电工作时芯片禁止输出任何信号;                      |
 |                 0:    备用电池供电工作时芯片输出正常方波或闹钟中断信号。            |
 |      bit3~0:FO3~0 输出方波频率选择:                                              |
 |                 0000:           0Hz(无方波信号输出);                             |
 |                 0001:       32768Hz;                                               |
 |                 0010:        4096Hz;                                               |
 |                 0011:        1024Hz;                                               |
 |                 0100:          64Hz;                                               |
 |                 0101:          32Hz;                                               |
 |                 0110:          16Hz;                                               |
 |                 0111:           8Hz;                                               |
 |                 1000:           4Hz;                                               |

⌨️ 快捷键说明

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