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

📄 51

📁 51单片机应用系统典型模块开发大全
💻
字号:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
//DS12C887寄存器地址定义
#define M12887  XBYTE [0x3f00]	//秒
#define MA12887 XBYTE [0x3f01]	//秒报警
#define F12887  XBYTE [0x3f02]	//分
#define FA12887 XBYTE [0x3f03]	//分报警
#define S12887  XBYTE [0x3f04]	//时
#define SA12887 XBYTE [0x3f05]	//时报警
#define X12887  XBYTE [0x3f06]	//星期
#define R12887  XBYTE [0x3f07]	//日
#define Y12887  XBYTE [0x3f08]	//月
#define N12887  XBYTE [0x3f09]	//年
#define A12887  XBYTE [0x3f0a]	//寄存器A,A.7—只读判断忙闲
#define B12887  XBYTE [0x3f0b]	//寄存器B,B.7—控制工作状态:0正常、1停止
								//         B.2—BCD码或二进制选择:0 二进制
								//         B.1—24/12小时模式选择:1 24小时进制
#define C12887  XBYTE [0x3f0c]	//寄存器C  标志位在读寄存器C后清0
#define D12887  XBYTE [0x3f0d]	//寄存器D  只读,读取该寄存器可使设置的时间和工作模式生效

//DS12C887相关变量定义
uchar year;
uchar month;
uchar day;
uchar hour;
uchar minute;
uchar second;
void CLK_BSY(void);
void RD_DATA(void);
void WR_DATA(void);


void main()						//主程序
{ 
	year   = 9; 				//写入时间:2009年06月1日13时24分35秒(要设定的时间)
    month  = 6;
    day    = 1;
    hour   = 13;
    minute = 24;
    second = 35;
    WR_DATA();					//写入
    RD_DATA();					//读取的时间数据在变量year/month/day/hour/minute/second中
}


void CLK_BSY(void)				//时钟判断忙闲
{ 
	while(A12887&0x80);			//忙则循环等待
}


void RD_DATA(void)				//时钟读数据
{
	CLK_BSY();					//忙则等待
	year = N12887;   			//读年
	CLK_BSY();
	month = Y12887;  			//读月
	CLK_BSY();
	day = R12887;    			//读日
	CLK_BSY();
	hour = S12887;   			//读时
	CLK_BSY();
	minute = F12887; 			//读分
	CLK_BSY();
	second = M12887; 			//读秒
}


void WR_DATA(void)				//时钟写数据
{ 
	uchar i;
	B12887 = 0x82;   			//芯片更新禁止 禁止中断 无方波输出 二进制编码 24进制
	N12887 = year;   			//写年
	Y12887 = month;  			//写月
	R12887 = day;    			//写日
	S12887 = hour;   			//写时
	F12887 = minute; 			//写分
	M12887 = second; 			//写秒
	A12887 = 0x20;   			//振荡器开启并且保持时钟运行 无方波输出
	i= C12887;       			//标志位在读寄存器C后清0
	i= D12887;       			//使设置的时间和工作模式生效
	B12887 = 0x02;   			//芯片更新正常进行
}

⌨️ 快捷键说明

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