?? ds12c887的c51.c
字號:
#pragma small
#include<reg52.h>
#include<math.h>
#include<absacc.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
//--------------------------------------------//DS12C887寄存器地址定義
#define DS12C887_M XBYTE [0x3f00]//秒
#define DS12C887_MA XBYTE [0x3f01]//秒報警
#define DS12C887_F XBYTE [0x3f02]//分
#define DS12C887_FA XBYTE [0x3f03]//分報警
#define DS12C887_S XBYTE [0x3f04]//時
#define DS12C887_SA XBYTE [0x3f05]//時報警
#define DS12C887_X XBYTE [0x3f06]//星期
#define DS12C887_R XBYTE [0x3f07]//日
#define DS12C887_Y XBYTE [0x3f08]//月
#define DS12C887_N XBYTE [0x3f09]//年
#define DS12C887_A XBYTE [0x3f0a]//寄存器A,A.7—只讀判斷忙閑
#define DS12C887_B XBYTE [0x3f0b]//寄存器B,B.7—控制工作狀態(tài):0正常、1停止
// B.2—BCD碼或二進制選擇:0 二進制
// B.1—24/12小時模式選擇:1 24小時進制
#define DS12C887_C XBYTE [0x3f0c]//寄存器C
#define DS12C887_D XBYTE [0x3f0d]//寄存器D 只讀,讀取該寄存器可使設置的時間和工作模式生效
//--------------------------------------------//DS12C887相關變量定義
uchar year;
uchar month;
uchar day;
uchar hour;
uchar minute;
uchar second;
//--------------------------------------------//時鐘判斷忙閑
void clock_judge_busy(void)
{ while( DS12C887_A & 0x80 );//忙則循環(huán)等待
}
//--------------------------------------------//時鐘讀數(shù)據(jù)
void clock_read_data(void)
{
clock_judge_busy();
year = DS12C887_N; //
clock_judge_busy();
month = DS12C887_Y; //
clock_judge_busy();
day = DS12C887_R; //
clock_judge_busy();
hour = DS12C887_S; //
clock_judge_busy();
minute = DS12C887_F; //
clock_judge_busy();
second = DS12C887_M; //
}
//--------------------------------------------//時鐘寫數(shù)據(jù)
void clock_write_data(void)
{ uchar i;
DS12C887_B = 0x82; //
DS12C887_N = year; //
DS12C887_Y = month; //
DS12C887_R = day; //
DS12C887_S = hour; //
DS12C887_F = minute; //
DS12C887_M = second; //
DS12C887_A = 0x20; //
i= DS12C887_C; //
i= DS12C887_D; //
DS12C887_B = 0x02; //
}
//--------------------------------------------//主程序
void main()
{
year = 5; //寫入時間:2005年11月1日13時24分35秒(要設定的時間)
month = 11;
day = 1;
hour = 13;
minute = 24;
second = 35;
clock_write_data();
clock_read_data();//讀取的時間數(shù)據(jù)在變量year/month/day/hour/minute/second中
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -