12c887.c
来自「利用热释红外传感器、12C887和PIC单片机制作的智能电子时钟」· C语言 代码 · 共 61 行
C
61 行
#include <pic.h>
#include "12c887.h";
///////////// SUNROUTINE DECLARE /////////////
void _12cc877_init(void); // initialize RTC 12C887
extern _12c887_read(unsigned char ADDRESS); // 12C887 data read routine
extern _12c887_write(unsigned char ADDRESS,unsigned char DATA); // 12C887 data write routine
/////////////////// SUBROUTINE ///////////////////
_12c887_init() // initialize RTC 12c887
{
_12c887_write(SECOND,0x00); // write current time
_12c887_write(MINUTE,0x10);
_12c887_write(HOUR,0x19);
_12c887_write(DayOfWeek,0x02);
_12c887_write(DayOfMonth,0x02);
_12c887_write(MONTH,0x10);
_12c887_write(YEAR,0x07);
_12c887_write(CENTURY,0x20);
_12c887_write(MINUTE_ALARM,0x30);
_12c887_write(HOUR_ALARM,0x09);
_12c887_write(REGA,0b10101111); // configure the control register
_12c887_write(REGB,0b01111010);
_12c887_write(REGC,0b00000000);
}
_12c887_read(unsigned char ADDRESS) // read 12c887 data
{
unsigned char temp;
TRISD=0x00;
WR=1;
RD=1;
ALE=1;
CS=0;
PORTD=ADDRESS;
ALE=0;
TRISD=0xff;
RD=0;
temp=PORTD;
RD=1;
CS=1;
ALE=1;
return(temp);
}
_12c887_write(unsigned char ADDRESS,unsigned char DATA) // write 12c887 data
{
TRISD=0x00;
WR=1;
RD=1;
ALE=1;
CS=0;
PORTD=ADDRESS;
ALE=0;
PORTD=DATA;
WR=0;
WR=1;
ALE=1;
CS=1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?