📄 12c887.h
字号:
//*************************************************************************************************
// Module Name : 12C887.H
// CreateDate : 2004-11-23
// ModifData : 2005-05-05
// Description :
// Author : 李远正
// Version : V1.0
//*************************************************************************************************
#ifndef __12C887_H__
#define __12C887_H__
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
// 12c887的RAM区地址范围0xA000~0xA07F
// 用户RAM范围0xA00E~0xA07F
#define RTC_SEC XBYTE[0xA000] // Seconds
#define RTC_SEC_ALM XBYTE[0xA001] // Seconds Alarm
#define RTC_MIN XBYTE[0xA002] // Minutes
#define RTC_MIN_ALM XBYTE[0xA003] // Minutes Alarm
#define RTC_HOU XBYTE[0xA004] // Hours ( Hours-12-hr Mode or Hours-24-hr Mode )
#define RTC_HOU_ALM XBYTE[0xA005] // Hours Alarm
#define RTC_DAY_WEK XBYTE[0xA006] // Day of the Week ( Sunday = 1 )
#define RTC_DAY_MON XBYTE[0xA007] // Date of the Month
#define RTC_MON XBYTE[0xA008] // Month
#define RTC_YEAR XBYTE[0xA009] // Year
#define RTC_REGA XBYTE[0xA00A] // REGISTER A
#define RTC_REGB XBYTE[0xA00B] // REGISTER B
#define RTC_REGC XBYTE[0xA00C] // REGISTER C
#define RTC_REGD XBYTE[0xA00D] // REGISTER D
//-------------------------------------------------------------------------------------------------
// REGISTER A
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | UIP | DV2 | DV1 | DV0 | RS3 | RS2 | RS1 | RS0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// UIP : The Update In Progress (UIP) bit is a status flag that can be monitored.
// DV2 - DV0 : These 3 bits are used to turn the oscillator on or off and to reset the countdown chain.
// 010 : the only combination of bits that will turn the oscillator on and allow the RTC to keep time.
// 11x : enable the oscillator but holds the countdown chain in reset.
// RS3 - RS0 : These four rate–selection bits select one of the 13 taps on the 15–stage divider or disable the divider output.
//-------------------------------------------------------------------------------------------------
// REGISTER B
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | SET | PIE | AIE | UIE | SQWE | DM | 24/12 | DSE |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
//-------------------------------------------------------------------------------------------------
// REGISTER C
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | IRQF | PF | AF | UF | 0 | 0 | 0 | 0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
//-------------------------------------------------------------------------------------------------
// REGISTER D
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | BIT 7 | BIT 6 | BIT 5 | BIT 4 | BIT 3 | BIT 2 | BIT 1 | BIT 0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
// | VRT | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
//-------|---------|---------|---------|---------|---------|---------|---------|---------|---------
//-------------------------------------------------------------------------------------------------
// 12c887的 RAM 区地址范围:0xA000~0xA07F
// 用户可用 RAM 范围:0xA00E~0xA07F
#define ALARM_RANGE 0xA00E // 方波频率
#define SPEED_RANGE 0xA00F // 行驶速度
#define SPEED1_RANGE 0xA010 // 转弯速度
#define FREQUENCY_RANGE 0xA011 // PWM 频率
#define SECTION_B_RANGE_H 0xA012 // B Point
#define SECTION_B_RANGE_L 0xA013 //
#define SECTION_BC_RANGE_H 0xA014 // BC Point
#define SECTION_BC_RANGE_L 0xA015 //
#define INTENSITY_RANGE 0xA016 // 光强
#define DISTANCE_RANGE_H 0xA021 // 全程行驶路程
#define DISTANCE_RANGE_L 0xA022
#define JOURNEY_TIME_RANGE 0xA023 // 全程行驶时间
#define IRON_NUMBER_RANGE 0xA024 // 铁片的数目
#define DISTANCE_RANGE_1_H 0xA025 // 铁片1到起跑线的距离
#define DISTANCE_RANGE_1_L 0xA026
#define DISTANCE_RANGE_2_H 0xA027 // 铁片2到起跑线的距离 ( 如果有的话 )
#define DISTANCE_RANGE_2_L 0xA028
#define DISTANCE_RANGE_3_H 0xA029 // 铁片3到起跑线的距离 ( 如果有的话 )
#define DISTANCE_RANGE_3_L 0xA02A
#define SECOND_COUNT_RANGE 0xA030
//-----------------------------------------------
// 从外面( Main.c )取得的变量
extern unsigned char temp;
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
extern void Setup12C887( unsigned char *p ); // 设置系统时间
extern void Read12C887( unsigned char *p ); // 读取系统时间
extern void Start12C887( void ); // 启动时钟
extern void Write12C887RAM( unsigned int address,unsigned char datum ); // 将一个字节写入12c887的RAM
extern unsigned char Read12C887RAM( unsigned int address ); // 从RAM中读出一个字节
extern void SetSQW( unsigned char frequency ); // 设置 SQW
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -