资源简介
基于51单片的多功能万年历,LCD12864做显示,DS1302做时钟芯片,DS18B20实现温度采集。
代码片段和文件信息
#include
#include“Com.h“
#include“LCD12864.h“
#include“DS1302.h“
#include“Calendar.h“
#include“Calendate.h“
/********************************************************************************
* 名称: get_moon_day(uchar month_puint table_addr)
* 功能: 读取数据表中农历的大月或小月 ,如果大月返回1 小月返回0
* 入口参数:
* 出口参数:
*********************************************************************************/
bit get_moon_day( uchar month_puint calendar_address )
{
uchar temp;
switch(month_p)
{
case 1: { temp = year_code[calendar_address] & 0x08; if(temp==0) return(0); else return(1); }
case 2: { temp = year_code[calendar_address] & 0x04; if(temp==0) return(0); else return(1); }
case 3: { temp = year_code[calendar_address] & 0x02; if(temp==0) return(0); else return(1); }
case 4: { temp = year_code[calendar_address] & 0x01; if(temp==0) return(0); else return(1); }
case 5: { temp = year_code[calendar_address + 1] & 0x80; if(temp==0) return(0); else return(1); }
case 6: { temp = year_code[calendar_address + 1] & 0x40; if(temp==0) return(0); else return(1); }
case 7: { temp = year_code[calendar_address + 1] & 0x20; if(temp==0) return(0); else return(1); }
case 8: { temp = year_code[calendar_address + 1] & 0x10; if(temp==0) return(0); else return(1); }
case 9: { temp = year_code[calendar_address + 1] & 0x08; if(temp==0) return(0); else return(1); }
case 10: { temp = year_code[calendar_address + 1] & 0x04; if(temp==0) return(0); else return(1); }
case 11: { temp = year_code[calendar_address + 1] & 0x02; if(temp==0) return(0); else return(1); }
case 12: { temp = year_code[calendar_address + 1] & 0x01; if(temp==0) return(0); else return(1); }
case 13: { temp = year_code[calendar_address + 2] & 0x80; if(temp==0) return(0); else return(1); }
}
}
/**************************************************************************
* 名称: void Calendar_Convert( uchar * clock_time )
* 功能: 输入BCD的阳历数据, 输出BCD阴历数据( 1901 - 2099 )
* 入口参数: c_flag:阳历的世纪标志 clock_time: 时钟地址
* 出口参数: 无
* 说明: c_flag = 0 :21世纪 c_flag = 1 :19世纪
*****************************************************************************/
void Calendar_Convert( uchar c_flag SYSTEMTIME * clock_time )
{
bit flag_month flag_year;
uchar year month day month_point; //定义 年 月 天
uchar temp1 temp2 temp3;
uint calendar_address; //定义农历地址
uint day_number;
uchar calendar[6]; //定义阴历
day=clock_time->Day;
month=clock_time->Month;
year=clock_time->Year;
calendar_address = year * 3;
//春节(正月初一)所在的阳历月份
temp1 = year_code[ calendar_address + 2 ] & 0x60; //Bit6~~Bit5:春节所在的阳历月份
temp1 >>= 5 ;
//春节(正月初一)所在的阳历日期
temp2 = year_code[ calendar_address + 2 ] & 0x1f; //Bit4~~Bit0:春节所在的阳历日期
//计算春节(正月初一)离当年元旦{ 1月1日(阳历) }的天数;春节只会在阳历的1月 或 2月
if( temp1 == 1 )
temp3 = temp2 - 1;
else
temp3 = temp2 + 31 - 1;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12701 2012-02-11 20:25 多功能电子万年历代码\Calendar.LST
文件 1786 2012-02-11 20:25 多功能电子万年历代码\Com.LST
文件 11689 2012-02-11 20:25 多功能电子万年历代码\DS1302.LST
文件 6005 2012-02-11 20:25 多功能电子万年历代码\Ds18b20.LST
文件 1628 2010-01-02 18:19 多功能电子万年历代码\Interrupt.LST
文件 8189 2012-02-11 20:25 多功能电子万年历代码\LCD12864.LST
文件 22783 2012-02-11 20:25 多功能电子万年历代码\Menus.LST
文件 11665 2012-02-11 20:25 多功能电子万年历代码\STARTUP.LST
文件 6033 2012-02-11 20:25 多功能电子万年历代码\Test.LST
文件 170 2010-01-01 14:44 多功能电子万年历代码\Calendar.h
文件 5819 2010-01-01 14:39 多功能电子万年历代码\Calendate.h
文件 265 2009-12-24 22:21 多功能电子万年历代码\Com.h
文件 1397 2012-02-11 19:33 多功能电子万年历代码\DS1302.h
文件 178 2010-01-01 20:08 多功能电子万年历代码\Ds18b20.h
文件 1178 2012-02-11 19:12 多功能电子万年历代码\Interrupt.h
文件 637 2012-02-11 19:32 多功能电子万年历代码\LCD12864.h
文件 101 2012-02-11 19:34 多功能电子万年历代码\Menus.h
文件 6684 2012-02-11 20:25 多功能电子万年历代码\Zimo.h
文件 7207 2012-02-11 20:27 多功能电子万年历代码\Calendar.c
文件 698 2012-02-11 20:19 多功能电子万年历代码\Com.c
文件 6351 2010-01-02 00:09 多功能电子万年历代码\DS1302.c
文件 2849 2012-02-11 20:26 多功能电子万年历代码\Ds18b20.c
文件 2 2010-01-02 18:20 多功能电子万年历代码\Interrupt.c
文件 4031 2012-02-11 20:23 多功能电子万年历代码\LCD12864.c
文件 7281 2012-02-11 18:47 多功能电子万年历代码\Menus.c
文件 2576 2012-02-11 18:53 多功能电子万年历代码\Test.c
文件 7207 2012-02-11 20:27 多功能电子万年历代码\Calendar.bak
文件 711 2012-02-11 19:53 多功能电子万年历代码\Com.bak
文件 1399 2012-02-11 19:33 多功能电子万年历代码\DS1302.bak
文件 2849 2012-02-11 20:26 多功能电子万年历代码\Ds18b20.bak
............此处省略29个文件信息
- 上一篇:QT5串口通信程序源码
- 下一篇:学籍数据库
相关资源
- LabVIEW实现万年历
- 万年历程序和原理图设计
- STC15+AHT10温湿度传感器+LCD12864.rar
- labview小程序----LED万年历
- lcd12864的文字取模软件
- 基于LCD12864的verilog代码
- STC89C52RC 智能家居设计(GSM+人体红外
- LCD12864显示波形程序
- 基于stm32碰撞球游戏仿真设计程序源码
- LCD12864 驱动程序1
- 基于汇编语言的万年历的设计
- 1602电子时钟万年历isis仿真文件,程序
- 单片机 万年历 proteus
- 单片机数字万年历--VHDL全套资料
- DS1302 单片机万年历
- Proteus单片机仿真 万年历支持温度农历
- 51单片机课程设计万年历
- 51单片机课程设计万年历源码和报告
- 寿星天文历 V5.10 Plus 单文件 (解味石
- 51单片机1602与DS1302万年历仿真,时钟
- 万年历verilog程序
- labview万年历程序
- 51单片机 - 电子万年历项目 + 仿真
- 51单片机万年历带温度闹钟功能分模块
- stm32+proteus_sht1x+lcd12864_温湿度检测_2
- 51单片机简单400个
- 万年历Delphi控件 .rar
- Proteus仿真ds12c887+lcd1602的电子万年历
- 51单片机DS1302电子时钟(万年历)
- TX-1C Proteus仿真板
评论
共有 条评论