带农历及农历纪念日的万年历c程序
/*********************************************************************************************
程序名:带字库12864LCC电子钟程序
器 件:STC89C52,LCD12864(内置汉字字库),18B20温度芯片,1302时钟芯片MCU晶振:12MHZ
设 计: 中国机器 (仿造杜洋万年历程序并增加了农历功能)
功 能: 显示公历年月日
农历年月日
星期(星期不调用DS1302内的数据,二十根据公历年月日推算的)
温度
时分秒
公历重大节日
农历纪念日与节日(用于提醒农历生日非常实用)
注:1、当农历纪念日与公历纪念日碰到同一天,则按一秒的间隔轮流显示
2入阳历大小月和平闰年判断,调日历时自动控制每个月份的天数
/*********************************************************************************************
/*********************************************************************************************/
//程序部分开始//
/****************************************************************************/
//头文件
#include
#include
/*****************************************************************************/
//定做PCB板的灯与扬声器定义
sbitled_back = P2^7;//背光控制(V2.1程序中加入了背光控制的硬件电路)
sbitbeep = P3^1;//扬声器
/*****************************************************************************/
//定做PCB板温度传感器引脚定义
sbit DQ = P2 ^0 ;//ds18B20*/
/*****************************************************************************/
//键盘引脚定义
sbit KEY_1 = P1^7; //退出设置键,显示版本信息键
sbit KEY_2 = P1^6; //上调键
sbit KEY_3 = P1^5; //设置键
sbit KEY_4 = P1^4; //减,下调键
sbit KEY_5 = P1^3; //LED控制每次按动改变背光开关
/****************************************************************************/
//LCD接口定义
sbit RS = P1^0;//模式位,为0输入指令,为1输入数据
sbit RW = P1^1;//读写位,为0读,为1写
sbit E = P1^2;//使能位
#define Lcd_Bus P0 //数据总线
/*****************************************************************************/
//定义DS1302时钟接口
sbit clock_clk = P3 ^ 0;//ds1302_clk(时钟线)
sbit clock_dat = P3 ^ 6;//ds1302_dat(数据线)
sbit clock_Rst = P3 ^ 7;//ds1302_Rst(复位线)
/*****************************************************************************/
//定义累加器A中的各位
sbit a0 = ACC ^ 0;
sbit a1 = ACC ^ 1;
sbit a2 = ACC ^ 2;
sbit a3 = ACC ^ 3;
sbit a4 = ACC ^ 4;
sbit a5 = ACC ^ 5;
sbit a6 = ACC ^ 6;
sbit a7 = ACC ^ 7;
/*********************************