资源简介
STC15 万年历程序,STC15 万年历程序,STC15 万年历程序
详情看博客文章

代码片段和文件信息
#include “Clock.h“
void Init_Clock()
{
memset(&stClock 0 sizeof(struct _stClock));
stClock.tYer = 17;
stClock.tMon = 4;
stClock.tDay = 24;
stClock.tHor = 18;
stClock.tMin = 19;
stClock.tSec = 0;
stClock.tWek = ReturnWeekDay(2000 + stClock.tYer stClock.tMon stClock.tDay);
}
// 输入 年
// 返回 1:闰年/ 0:平年
unsigned char IsLeapYear(unsigned char y)
{
unsigned int year;
year = 2000 + y;
if((year%4==0 && year%100!=0) || year%400==0)
return true;
else
return false;
}
// 输入 年/月
// 返回 当月天数
unsigned char GetMaxDay(unsigned char y unsigned char m)
{
if(m == 2)
{
if(IsLeapYear(y))
return 29;
else
return 28;
}
else if((m == 4)||(m == 6)||(m == 9)||(m == 11))
return 30;
else
return 31;
}
// 输入 年/月/日
// 返回 星期几
unsigned char ReturnWeekDay( unsigned int iYear unsigned char iMonth unsigned char iDay )
{
int iWeek = 0;
unsigned int y = 0 c = 0 m = 0 d = 0;
if ( iMonth == 1 || iMonth == 2 )
{
c = ( iYear - 1 ) / 100;
y = ( iYear - 1 ) % 100;
m = iMonth + 12;
d = iDay;
}
else
{
c = iYear / 100;
y = iYear % 100;
m = iMonth;
d = iDay;
}
iWeek = y + y / 4 + c / 4 - 2 * c + 26 * ( m + 1 ) / 10 + d - 1; // 蔡勒公式
iWeek = iWeek >= 0 ? ( iWeek % 7 ) : ( iWeek % 7 + 7 ); // iWeek为负时取模
if ( iWeek == 0 ) // 星期日不作为一周的第一天
{
iWeek = 7;
}
return iWeek;
}
void TimerToStr()
{
str[0] = ‘2‘;
str[1] = ‘0‘;
str[2] = (stClock.tYer / 10) + 48;
str[3] = (stClock.tYer % 10) + 48;
str[4] = ‘-‘;
str[5] = (stClock.tMon / 10) + 48;
str[6] = (stClock.tMon % 10) + 48;
str[7] = ‘-‘;
str[8] = (stClock.tDay / 10) + 48;
str[9] = (stClock.tDay % 10) + 48;
str[10] = ‘ ‘;
str[11] = (stClock.tHor / 10) + 48;
str[12] = (stClock.tHor % 10) + 48;
str[13] = ‘:‘;
str[14] = (stClock.tMin / 10) + 48;
str[15] = (stClock.tMin % 10) + 48;
str[16] = ‘:‘;
str[17] = (stClock.tSec / 10) + 48;
str[18] = (stClock.tSec % 10) + 48;
str[19] = ‘ ‘;
str[20] = stClock.tWek + 48;
str[21] = ‘\n‘;
str[22] = 0;
}
void UpdateClock()
{
// 100 ms
if(stClock.Flag.t100msFlag)
{
stClock.Flag.t100msFlag = false;
stClock.t1ms = 0;
stClock.t100ms++;
if(stClock.t100ms >= 5)
stClock.Flag.t500msFlag = true;
// 串口接收超时计数
if(Sys_Bit_A.Uart_Received_Flag)
{
RxTimeoutCount++;
if(RxTimeoutCount > 2)
{
RxTimeoutCount = 0;
Sys_Bit_A.Uart_Received_Flag = false
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5464 2018-08-25 12:28 Clock.c
文件 360 2018-08-25 11:18 Clock.h
文件 160 2018-03-21 10:58 Clock.plg
文件 6684 2018-04-18 16:56 Clock.uvopt
文件 14710 2018-04-18 16:56 Clock.uvproj
文件 23 2017-04-18 18:05 Constant.c
文件 1733 2018-08-25 11:52 Constant.h
文件 1594 2018-08-25 12:04 main.c
文件 6376 2013-06-24 10:27 STARTUP.A51
文件 1987 2018-08-25 12:04 sys.c
文件 384 2018-08-25 11:28 sys.h
文件 316 2018-08-25 11:52 Variable.c
- 上一篇:STC15W4-nRF24L01 项目
- 下一篇:考毕兹(Colpitts)振荡电路
相关资源
- STC8951系列单片机中方指南
- Omron ETN21模块进行modbustcp通讯
- 基于MFC扩展CListCtrl子项显示图片并叠
- 利用DS1302和msp430进行闹钟和万年历的
- 【单片机】51单片机数码管显示万年历
- STC12C5A60S2 CH4521 驱动数码管 显示
- 可编辑的CListctrl 支持CEDIT文本框,C
- STC12C系列单片机函数库
- 制作万年历 日期 农历 温度显示
- CListCtrlExDemo.rar
- 基于PIC单片机的万年历的设计
- protues万年历仿真
- 万年历系统汇编语言课程设计
- 适用于STC单片机和51单片机的SX1262驱动
- EESkill NRF24L01 无线模块用户手册
- IAP15f2k61s2
- 百度万年历 日期选择控件 带农历节日
- 校园一卡通系统中RFID读写器的设计
- STC11F04单片机串口终端程序
- STC11F32单片机的射频读卡器设计
- STC-ISP_V4.83
- 易语言天文算法万年历源码
- 基于STC89C52的瓦斯检测及红外控制系统
- ROST内容挖掘软件
- DS1302+DS13B20+12864,万年历。农历
- 实用万年历Sywnlv6.11
- Lcd12864大时钟万年历 农历生肖温度
- 基于51单片机的超声波测距技术实现含
- RC522读写MI卡程序,STC89C52RC调试通过,
- 12864多功能万年历
评论
共有 条评论