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

📄 12c887.c

📁 利用热释红外传感器、12C887和PIC单片机制作的智能电子时钟
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -