/*****************************************************************************************************
********************************************头文件、宏定义********************************************
*****************************************************************************************************/
#include <reg52.h> //oled_12864_IIC连接+DS3231时钟模块+红外遥控和按键+STC90C516RD+
#include <intrins.h> //年 月 日 时 分 秒 星期 温度显示 温度来源DS3231,64S刷新一次
#define uint unsigned int //年误差+- 2min
#define uchar unsigned char
/*****************************************************************************************************
**********************************************按键定义************************************************
*****************************************************************************************************/
sbit key1=P0^4; //设置
sbit key2=P0^5; //加
sbit key3=P0^6; //减
sbit key4=P0^7; //确定
sbit laba=P3^7; //喇叭
/*****************************************************************************************************
********************************************红外遥控定义**********************************************
*****************************************************************************************************/
#define Imax 14000//此处为晶振为11.0592时的取值, //时间计算 //红外接口P3.3
#define Imin 8000 //如用其它频率的晶振时,
#define Inum1 1450//要改变相应的取值。
#define Inum3 3000
#define Inum2 700
uchar f;
uchar IrOK;
unsigned long m,Tc;
uchar Im[4]={0x00,0x00,0x00,0x00};
/*****************************************************************************************************
*******************************************DS3231变量定义*********************************************
*****************************************************************************************************/
sbit DS3231_IIC_SDA=P0^0;
sbit DS3231_IIC_SCL=P0^1;
uchar RTC_Data[8];
uchar RTC_Data1[8];
uchar RTC_Set_ID;
code uchar rtc_address[8]={0x00,0x01,0x02,0x04,0x05,0x03,0x06,0x11};//秒分时日月周年 最低位读写位
/*****************************************************************************************************
*******************************************OLED12864定义**********************************************
*****************************************************************************************************/
sbit oled_SCL=P1^3; //串行时钟
sbit oled_SDA=P1^2; //串行数据
uchar display_buff[16]; //时间显示数组
/*****************************************************************************************************
*********************************************变量定义*************************************************
*****************************************************************************************************/
bit T0_Flag; //定时器T01ms标志位
bit laba_flag; //蜂鸣器标志位
bit Open_Flag; //蜂鸣器标志位
bit RTC_Save_Flag; //设置时间标志位
bit shezhi_display_flag;
void delayms(uint x); //延时函数
void display1(); //显示函数
void display2();
void OLED_12864_Write_commomand(uint dat); //命令
void OLED_12864_Write_data(uint dat); //数据
void OLED_12864_Init(); //初始化
void OLED_Fill(uchar bmp_dat); //屏幕填充
void OLED_SetPos(uchar x, uchar y); //起始坐标
void OLED_8x16Str(uchar x, uchar y, uchar ch); //8*16的点阵
void OLED_16x16CN(uchar x, uchar y, uchar N); //16*16的点阵
void OLED_16x32(uchar x, uchar y, uchar ch);
void Time_Fun(); //时基、走时函数
void DS3231_Read_time(); //读取时间
void DS3231_write_time(); //写入时间
void KeyDataProcess(); //键值处理函数
void DS3231_Init(); //时间模块初始化
/*****************************************************************************************************
******************************************OLED12864点阵数组*******************************************
*****************************************************************************************************/
uchar code F16x16[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"不显示",0
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"一",1
0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,//"二",2
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,//"三",3
0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,//"四",4
0x00,0x02,0x42,0x42,0x42,0xC2,0x7E,0x42,0x42,0x42,0x42,0xC2,0x02,0x02,0x00,0x00,
0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x00,//"五",5
0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x22,0x2C,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x01,0x02,0x04,0x18,0x60,0x00,0x00,//"六",6
0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00,//"日",7
0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,
0x00,0x44,0x42,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x41,0x40,0x00,0x00,//"星",8
0x00,0x04,0xFF,0x24,0x24,0x24,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00,
0x88,0x48,0x2F,0x09,0x09,0x19,0xAF,0x48,0x30,0x0F,0x02,0x42,0x82,0x7F,0x00,0x00,//"期",9
0x00,0x02,0x05,0xE2,0x18,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x1E,0x00,0x00,
0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x18,0x00,0x00,//"℃",10
0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00,//日,11
0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,
0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,//时,12
0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00,
0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00,//小,13
0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00,
0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00,//设,14
0x00,0x20,0x2F,0xA9,0xA9,0xAF,0xE9,0xB9,0xA9,0xAF,0xA9,0xA9,0x2F,0x20,0x00,0x00,
0x80,0x80,0x80,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0x80,0x80,0x80,0x00,//置,15
0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,
0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//年,16
0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00,//月,17
0x80,0x40,0xE0,0x98,0x47,0xA2,0x98,0x87,0x82,0x80,0x87,0x89,0xB0,0x60,0x20,0x00,
0x00,0x00,0x7F,0x00,0x40,0x40,0x20,0x18,0x07,0x00,0x20,0x60,0x3F,0x00,0x00,0x00,//份,18
0x80,0x40,0x20,0x98,0x87,0x82,0x80,0x80,0x83,0x84,0x98,0x30,0x60,0xC0,0x40,0x00,
0x00,0x80,0x40,0x20,0x10,0x0F,0x00,0x00,0x20,0x40,0x3F,0x00,0x00,0x00,0x00,0x00,//分,19
0x40,0x30,0x2C,0xEB,0x28,0x28,0x00,0xF8,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0x00,
0x01,0x01,0x01,0xFF,0x41,0x21,0x00,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x00,0x00,//钟,20
0x12,0x12,0xD2,0xFE,0x91,0x11,0xC0,0x38,0x10,0x00,0xFF,0x00,0x08,0x10,0x60,0x00,
0x04,0x03,0x00,0xFF,0x00,0x83,0x80,0x40,0x40,0x20,0x23,0x10,0x08,0x04,0x03,0x00,//秒,21
0x10,0x92,0x54,0x38,0xFF,0x38,
OLED万年历显示程序
需积分: 47 152 浏览量
2019-01-17
01:35:53
上传
评论 5
收藏 7KB RAR 举报
泓涵Zing
- 粉丝: 1
- 资源: 1
最新资源
- JAVA 中的Spring框架介绍包括起源、体系结构、核心部分、特点等
- 2024年小米汽车产业链分析及新品上市全景洞察报告
- 基于Qt和C++实现的偏3D风格的异型窗体界面操作+源码(期末大作业&课设&项目开发)
- 基于yolov8的花卉分类系统,包含训练好的权重和推理代码,GUI界面,支持图片、视频、摄像头输入,支持检测结果导出
- 基于图形化编程的单片机教学案例研究
- 基于matlab语音识别的信号灯图像模拟控制技术代码19
- ET200SP-GSD文件-GSDML-V2.43-Siemens-ET200SP-20240209.zip
- STM32CubeIDE H743 + DP83848 + LWIP-UDP服务器跨网段传输数据
- 基于蓝牙单片机的锌烟除尘控制系统
- 基于matlab的hough变换道路提示牌检测识别系统代码18
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈