找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 29256|回复: 101
收起左侧

OLED_12864万年历+DS3231+红外或按键控制

  [复制链接]
ID:108715 发表于 2017-2-18 09:55 | 显示全部楼层 |阅读模式
前两个月淘宝瞎买买,买个DS3231,查资料知道是个高精度芯片,官方数据说年误差2分钟。难怪以前1302才用一个月就发现时间不对,对晶振要求高。
然后就是找资料,套公式一样的移植,让我看时序图啥的自己写,还不如直接杀了我。
资料找了好久,关于3231的很少,找了好久终于找了个理想的资料。
然后先是在MAX7219数码管上移植用,遥控啥的都挺好,然后没事干瞎逛逛淘宝,看到OLED挺便宜的,而且小巧,所以入手了一块。
接着问题又来了。买oled送的资料是静态显示的,不会动态的,所以再找资料,可是既然找不到,没办法,只能花钱淘宝买资料。
整个淘宝既然只有区区三四家卖,而且还是DS1302的,界面也简单,最后随便买了一家,在各种移植,最后再根据自己需要修改。

现在开源给大家,给大家参考学习用。
另外很不明白,3231和1302价格也差不了多少,3231也早就有了,怎么都没什么人用,资料很少。
很鄙视在论坛上只传图片不传资料的人,这是论坛,学习交流用的,不是装逼用的。要装逼去淘宝。

各位装逼的误喷,实话实说。
对了,由于3231资料少,手头只有没有闹钟的资料,上次在本论坛找到的一个有闹钟的资料还是有问题的,只有闹钟2响,1没反应的,所以闹钟就不移植了。想试试的可以论坛找找,1602显示的。如果找出毛病了记得说下哦,相互学习。

05.png 04.png 03.png 02.png 01.png

OLED 原理图:
OLED 原理图.jpg
红外遥控接收头  接  P3.3

DS3231 SDA 接 P0.0
DS3231 SCL 接 P0.1


OLED12864 SCL 接 P1.3
OLED12864 SCL 接 P1.3

可根据具体需要自行更改

部分源码预览:
  1. /*****************************************************************************************************
  2. ********************************************头文件、宏定义********************************************
  3. *****************************************************************************************************/
  4. #include <reg52.h>                //oled_12864_IIC连接+DS3231时钟模块+红外遥控和按键+STC90C516RD+
  5. #include <intrins.h>                //年 月 日 时 分 秒 星期 温度显示  温度来源DS3231,64S刷新一次
  6. #define uint unsigned int        //年误差+- 2min
  7. #define uchar unsigned char
  8. /*****************************************************************************************************
  9. **********************************************按键定义************************************************
  10. *****************************************************************************************************/
  11. sbit key1=P0^4;        //设置
  12. sbit key2=P0^5;        //加
  13. sbit key3=P0^6;        //减
  14. sbit key4=P0^7;        //确定
  15. sbit laba=P3^7;        //喇叭
  16. /*****************************************************************************************************
  17. ********************************************红外遥控定义**********************************************
  18. *****************************************************************************************************/
  19. #define Imax 14000//此处为晶振为11.0592时的取值,   //时间计算          //红外接口P3.3
  20. #define Imin 8000 //如用其它频率的晶振时,
  21. #define Inum1 1450//要改变相应的取值。
  22. #define Inum3 3000
  23. #define Inum2 700

  24. uchar f;
  25. uchar IrOK;
  26. unsigned long m,Tc;
  27. uchar Im[4]={0x00,0x00,0x00,0x00};
  28. /*****************************************************************************************************
  29. *******************************************DS3231变量定义*********************************************
  30. *****************************************************************************************************/
  31. sbit DS3231_IIC_SDA=P0^0;
  32. sbit DS3231_IIC_SCL=P0^1;
  33. uchar RTC_Data[8];
  34. uchar RTC_Data1[8];
  35. uchar RTC_Set_ID;
  36. code uchar rtc_address[8]={0x00,0x01,0x02,0x04,0x05,0x03,0x06,0x11};//秒分时日月周年 最低位读写位
  37. /*****************************************************************************************************
  38. *******************************************OLED12864定义**********************************************
  39. *****************************************************************************************************/
  40. sbit oled_SCL=P1^3;                                                                  //串行时钟
  41. sbit oled_SDA=P1^2;                                                                 //串行数据
  42. uchar display_buff[16];                                                         //时间显示数组
  43. /*****************************************************************************************************
  44. *********************************************变量定义*************************************************
  45. *****************************************************************************************************/
  46. bit T0_Flag;                                                                         //定时器T01ms标志位
  47. bit laba_flag;                                                                         //蜂鸣器标志位
  48. bit Open_Flag;                                                                         //蜂鸣器标志位
  49. bit RTC_Save_Flag;                                                                   //设置时间标志位
  50. bit shezhi_display_flag;

  51. void delayms(uint x);                                                         //延时函数
  52. void display1();                                                                 //显示函数
  53. void display2();
  54. void OLED_12864_Write_commomand(uint dat);                 //命令
  55. void OLED_12864_Write_data(uint dat);                         //数据
  56. void OLED_12864_Init();                                                         //初始化
  57. void OLED_Fill(uchar bmp_dat);                                         //屏幕填充
  58. void OLED_SetPos(uchar x, uchar y);                                 //起始坐标
  59. void OLED_8x16Str(uchar x, uchar y, uchar ch);         //8*16的点阵
  60. void OLED_16x16CN(uchar x, uchar y, uchar N);         //16*16的点阵
  61. void OLED_16x32(uchar x, uchar y, uchar ch);

  62. void Time_Fun();                                                                 //时基、走时函数
  63. void DS3231_Read_time();                                                 //读取时间
  64. void DS3231_write_time();                                                 //写入时间
  65. void KeyDataProcess();                                                         //键值处理函数
  66. void DS3231_Init();                                                                 //时间模块初始化
  67. /*****************************************************************************************************
  68. ******************************************OLED12864点阵数组*******************************************
  69. *****************************************************************************************************/
  70. uchar code F16x16[]=
  71. {
  72. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  73. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"不显示",0
  74.                                                                                                                                                                        
  75. 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
  76. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"一",1
  77.        
  78. 0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,
  79. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,//"二",2
  80.        
  81. 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
  82. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,//"三",3

  83. 0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
  84. 0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,//"四",4

  85. 0x00,0x02,0x42,0x42,0x42,0xC2,0x7E,0x42,0x42,0x42,0x42,0xC2,0x02,0x02,0x00,0x00,
  86. 0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x00,//"五",5

  87. 0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x22,0x2C,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  88. 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x01,0x02,0x04,0x18,0x60,0x00,0x00,//"六",6

  89. ……………由于篇幅有限…余下源码请下载附件……
复制代码
0.png
全部资料下载:
OLED_12864万年历IIC(大字体 温度 遥控).rar (5.61 MB, 下载次数: 1050)

评分

参与人数 6黑币 +126 收起 理由
51单片机1234 + 5 很给力!
arther + 6
send + 5 共享资料的黑币奖励!
luxianjun + 5 很给力!
zhaok2013 + 5 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:478328 发表于 2022-4-1 14:12 | 显示全部楼层
电路原理图,PCB图都压缩在里面了。可以直接拿到某一个宝上去做印制板。HEX文件也压缩在里面了。做好电路板可以直接刷程序。PCB和程序都验证过了。能直接用。
楼主师傅,我想拜您为师!您愿意收下我这个徒弟吗?谢谢您。请多赐教!谢谢。

OLED+51+DS3231.7z

2.22 MB, 下载次数: 52, 下载积分: 黑币 -5

程序.rar

68.23 KB, 下载次数: 52, 下载积分: 黑币 -5

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:108715 发表于 2017-2-18 09:58 | 显示全部楼层
先抢个座,图片拍的时候正好是秒没显示时候,实际秒的“:”是随3231的秒数闪烁的。1秒显示1秒不显示,不会1秒亮灭一次,会的高手说一下怎么弄,学习学习。
回复

使用道具 举报

ID:116826 发表于 2017-2-18 19:30 | 显示全部楼层
高手,mark学习一下。
回复

使用道具 举报

ID:59279 发表于 2017-2-19 20:33 | 显示全部楼层
显示不错,清晰,学习学习。
回复

使用道具 举报

ID:162689 发表于 2017-2-23 22:51 | 显示全部楼层
好东西,学习,51黑有你更精彩!!!
回复

使用道具 举报

ID:165046 发表于 2017-2-24 09:49 | 显示全部楼层
也正准备学习OLED,学习学习!
回复

使用道具 举报

ID:164850 发表于 2017-3-9 21:26 | 显示全部楼层
OLED_12864万年历+DS3231+红外或按键控制,我编译不成功,能不能把带hex工程上传上来。谢谢了!非常喜欢你的日历
回复

使用道具 举报

ID:108715 发表于 2017-3-13 17:58 | 显示全部楼层
luxianjun 发表于 2017-3-9 21:26
OLED_12864万年历+DS3231+红外或按键控制,我编译不成功,能不能把带hex工程上传上来。谢谢了!非常喜欢你 ...


编译不成功是因为你的keil软件没破解,小程序可以编译,这个大的就不行了,你破解下就行了,我给你的附件里是注册机和使用方法,hex文件也在这个压缩文件里了。如果还是不成功,你注册机和软件都鼠标右键管理员身份运行在注册

keil uv4.zip

23.49 KB, 下载次数: 55, 下载积分: 黑币 -5

回复

使用道具 举报

ID:164850 发表于 2017-3-14 07:11 | 显示全部楼层
万分感谢,非常非常喜欢你的时钟。
回复

使用道具 举报

ID:164850 发表于 2017-3-17 19:57 | 显示全部楼层
啦啦啦1234 发表于 2017-3-13 17:58
编译不成功是因为你的keil软件没破解,小程序可以编译,这个大的就不行了,你破解下就行了,我给你的附 ...

非常感谢楼主的帮助,我以经做好了,就是改不了红外码,就是不会编程,你能不能把编译的整个工程上传上来,万分感谢,还有就是stc89c516rd+p0口要加上拉,能不能另外改一份用stc15f2k60s2的.
IMG_20170317_192931.jpg
IMG_20170317_193001.jpg
IMG_20170317_193026.jpg
IMG_20170317_193102.jpg
IMG_20170317_193127.jpg
IMG_20170317_193157.jpg
回复

使用道具 举报

ID:108715 发表于 2017-3-17 22:39 | 显示全部楼层
luxianjun 发表于 2017-3-17 19:57
非常感谢楼主的帮助,我以经做好了,就是改不了红外码,就是不会编程,你能不能把编译的整个工程上传上来 ...

程序和说明的话太多了,我都分类了,你直接下载附件吧

看你的3231模块外观,我淘宝看了下管脚标注,应该是+  sda  scl  空  -

给你修改了下程序,更适合你的最小系统板,说的你不晓得明不明白,看不懂在问我。

另外玩单片机的,keil一定要破解了。附件有完整的keil程序和破解软件,都管理员身份运行安装。

文件20多M,试了两个浏览器都传不上,我发网盘了,你点链接下载吧。

回复luxianjun
回复

使用道具 举报

ID:164850 发表于 2017-3-18 20:32 | 显示全部楼层
啦啦啦1234 发表于 2017-3-17 22:39
程序和说明的话太多了,我都分类了,你直接下载附件吧

看你的3231模块外观,我淘宝看了下管脚标注,应 ...

网盘链接呢,等着下载呢
回复

使用道具 举报

ID:89286 发表于 2017-3-19 06:59 | 显示全部楼层
thanks for sharing
回复

使用道具 举报

ID:170098 发表于 2017-3-19 10:42 | 显示全部楼层
想让跟多的人去了解
回复

使用道具 举报

ID:149167 发表于 2017-3-19 14:49 | 显示全部楼层
好东西,学习
回复

使用道具 举报

ID:169459 发表于 2017-3-21 10:32 | 显示全部楼层
这个好,下载来改个12864串口屏的时钟去,谢谢分享。下载币总不够用啊
回复

使用道具 举报

ID:62289 发表于 2017-3-21 19:40 | 显示全部楼层
高手,mark学习一下。
回复

使用道具 举报

ID:179705 发表于 2017-3-25 23:32 | 显示全部楼层
顶你!
回复

使用道具 举报

ID:164850 发表于 2017-4-7 21:14 | 显示全部楼层
楼主能不能帮忙改个用15f2k60s2的11.0592,红外用不了,用90c516rd+的那个秒数太卡不自然,麻烦帮忙改改。15f2k60s2秒数自然 . 。
IMG_20170407_204716.jpg
IMG_20170407_205004.jpg
IMG_20170407_205100.jpg
IMG_20170407_205133.jpg
回复

使用道具 举报

ID:110780 发表于 2017-4-12 17:45 | 显示全部楼层
好东西,感谢分享。。。。。。。。。。。。
回复

使用道具 举报

ID:189476 发表于 2017-4-14 11:29 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:171746 发表于 2017-4-16 18:00 | 显示全部楼层
请问:红外接口能改吗? 系统版P3.3被占了,能改到P3.2吗?其他的正常。谢谢
回复

使用道具 举报

ID:171746 发表于 2017-4-16 18:16 | 显示全部楼层
请问:红外接口怎么改?谢谢
回复

使用道具 举报

ID:158835 发表于 2017-5-5 15:05 | 显示全部楼层
救命恩人,楼主威武
回复

使用道具 举报

ID:200657 发表于 2017-5-15 11:21 | 显示全部楼层
楼主 这个适合刚学不到1年的人吗??
回复

使用道具 举报

ID:113193 发表于 2017-5-17 15:05 | 显示全部楼层
网盘在哪里?想下载找不到地方
回复

使用道具 举报

ID:35873 发表于 2017-5-28 00:19 | 显示全部楼层
这个不错  支持楼主开源精神
回复

使用道具 举报

ID:127220 发表于 2017-5-28 12:14 | 显示全部楼层
多谢!小弟学习了。
回复

使用道具 举报

ID:227832 发表于 2017-8-16 01:22 | 显示全部楼层

好东西,学习了。
回复

使用道具 举报

ID:91165 发表于 2017-8-16 08:41 | 显示全部楼层
有机会买个OLED试试
回复

使用道具 举报

ID:227842 发表于 2017-8-16 09:34 | 显示全部楼层
学习学习 谢谢楼主
回复

使用道具 举报

ID:231488 发表于 2017-10-3 07:54 | 显示全部楼层
膜拜楼主
回复

使用道具 举报

ID:68515 发表于 2017-11-14 10:52 | 显示全部楼层
太好了,
回复

使用道具 举报

ID:227321 发表于 2017-11-14 12:01 | 显示全部楼层
I need it. Thanks for help.
回复

使用道具 举报

ID:242544 发表于 2017-11-17 15:34 | 显示全部楼层
这个很有用啊,我也在搞这个万年历,找的资料了,谢谢
回复

使用道具 举报

ID:242544 发表于 2017-11-17 16:54 | 显示全部楼层
谢谢楼主,非常有用
回复

使用道具 举报

ID:255508 发表于 2017-11-30 08:47 | 显示全部楼层
感觉很牛的样子 学习 学习!!
回复

使用道具 举报

ID:257351 发表于 2017-12-4 19:29 | 显示全部楼层
feichanghao ,好好好
回复

使用道具 举报

ID:258770 发表于 2017-12-16 12:08 | 显示全部楼层
厉害厉害,程序借鉴下
回复

使用道具 举报

ID:64532 发表于 2017-12-17 22:05 | 显示全部楼层
也正准备学习OLED,学习学习!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表