标题: OLED_12864万年历+DS3231+红外或按键控制 [打印本页]

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

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

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



OLED 原理图:

红外遥控接收头  接  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. ……………由于篇幅有限…余下源码请下载附件……
复制代码

全部资料下载:
OLED_12864万年历IIC(大字体 温度 遥控).rar (5.61 MB, 下载次数: 1072)

作者: 啦啦啦1234    时间: 2017-2-18 09:58
先抢个座,图片拍的时候正好是秒没显示时候,实际秒的“:”是随3231的秒数闪烁的。1秒显示1秒不显示,不会1秒亮灭一次,会的高手说一下怎么弄,学习学习。
作者: lyxxzrb    时间: 2017-2-18 19:30
高手,mark学习一下。
作者: fang7706    时间: 2017-2-19 20:33
显示不错,清晰,学习学习。
作者: bg8apy    时间: 2017-2-23 22:51
好东西,学习,51黑有你更精彩!!!

作者: zhaok2013    时间: 2017-2-24 09:49
也正准备学习OLED,学习学习!
作者: luxianjun    时间: 2017-3-9 21:26
OLED_12864万年历+DS3231+红外或按键控制,我编译不成功,能不能把带hex工程上传上来。谢谢了!非常喜欢你的日历
作者: 啦啦啦1234    时间: 2017-3-13 17:58
luxianjun 发表于 2017-3-9 21:26
OLED_12864万年历+DS3231+红外或按键控制,我编译不成功,能不能把带hex工程上传上来。谢谢了!非常喜欢你 ...


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

keil uv4.zip

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


作者: luxianjun    时间: 2017-3-14 07:11
万分感谢,非常非常喜欢你的时钟。
作者: luxianjun    时间: 2017-3-17 19:57
啦啦啦1234 发表于 2017-3-13 17:58
编译不成功是因为你的keil软件没破解,小程序可以编译,这个大的就不行了,你破解下就行了,我给你的附 ...

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

IMG_20170317_192931.jpg (2.81 MB, 下载次数: 264)

IMG_20170317_192931.jpg

IMG_20170317_193001.jpg (2.93 MB, 下载次数: 277)

IMG_20170317_193001.jpg

IMG_20170317_193026.jpg (2.9 MB, 下载次数: 281)

IMG_20170317_193026.jpg

IMG_20170317_193102.jpg (2.86 MB, 下载次数: 320)

IMG_20170317_193102.jpg

IMG_20170317_193127.jpg (2.84 MB, 下载次数: 257)

IMG_20170317_193127.jpg

IMG_20170317_193157.jpg (2.75 MB, 下载次数: 276)

IMG_20170317_193157.jpg

作者: 啦啦啦1234    时间: 2017-3-17 22:39
luxianjun 发表于 2017-3-17 19:57
非常感谢楼主的帮助,我以经做好了,就是改不了红外码,就是不会编程,你能不能把编译的整个工程上传上来 ...

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

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

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

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

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

回复luxianjun
作者: luxianjun    时间: 2017-3-18 20:32
啦啦啦1234 发表于 2017-3-17 22:39
程序和说明的话太多了,我都分类了,你直接下载附件吧

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

网盘链接呢,等着下载呢
作者: faridzled    时间: 2017-3-19 06:59
thanks for sharing
作者: send    时间: 2017-3-19 10:42
想让跟多的人去了解
作者: steve88    时间: 2017-3-19 14:49
好东西,学习

作者: hcflair    时间: 2017-3-21 10:32
这个好,下载来改个12864串口屏的时钟去,谢谢分享。下载币总不够用啊
作者: zhanglu    时间: 2017-3-21 19:40
高手,mark学习一下。
作者: zxb52013    时间: 2017-3-25 23:32
顶你!
作者: luxianjun    时间: 2017-4-7 21:14
楼主能不能帮忙改个用15f2k60s2的11.0592,红外用不了,用90c516rd+的那个秒数太卡不自然,麻烦帮忙改改。15f2k60s2秒数自然 . 。

IMG_20170407_204716.jpg (5.52 MB, 下载次数: 263)

IMG_20170407_204716.jpg

IMG_20170407_205004.jpg (2.9 MB, 下载次数: 270)

IMG_20170407_205004.jpg

IMG_20170407_205100.jpg (2.74 MB, 下载次数: 280)

IMG_20170407_205100.jpg

IMG_20170407_205133.jpg (2.78 MB, 下载次数: 279)

IMG_20170407_205133.jpg

作者: 人生如梦超    时间: 2017-4-12 17:45
好东西,感谢分享。。。。。。。。。。。。
作者: zxg    时间: 2017-4-14 11:29
谢谢分享
作者: lucq7896    时间: 2017-4-16 18:00
请问:红外接口能改吗? 系统版P3.3被占了,能改到P3.2吗?其他的正常。谢谢
作者: lucq7896    时间: 2017-4-16 18:16
请问:红外接口怎么改?谢谢

作者: djh111    时间: 2017-5-5 15:05
救命恩人,楼主威武
作者: 拓拓酱    时间: 2017-5-15 11:21
楼主 这个适合刚学不到1年的人吗??
作者: yznj    时间: 2017-5-17 15:05
网盘在哪里?想下载找不到地方
作者: jialishoushi    时间: 2017-5-28 00:19
这个不错  支持楼主开源精神
作者: 胡仙森    时间: 2017-5-28 12:14
多谢!小弟学习了。
作者: xiong731    时间: 2017-8-16 01:22

好东西,学习了。
作者: HWL0541    时间: 2017-8-16 08:41
有机会买个OLED试试
作者: song823    时间: 2017-8-16 09:34
学习学习 谢谢楼主
作者: budhha199    时间: 2017-10-3 07:54
膜拜楼主
作者: 真红炎神    时间: 2017-11-14 10:52
太好了,
作者: lan1301    时间: 2017-11-14 12:01
I need it. Thanks for help.

作者: LRX1113100356    时间: 2017-11-17 15:34
这个很有用啊,我也在搞这个万年历,找的资料了,谢谢
作者: LRX1113100356    时间: 2017-11-17 16:54
谢谢楼主,非常有用
作者: szb0321    时间: 2017-11-30 08:47
感觉很牛的样子 学习 学习!!
作者: liyq_2003    时间: 2017-12-4 19:29
feichanghao ,好好好
作者: BanBan10032    时间: 2017-12-16 12:08
厉害厉害,程序借鉴下

作者: zhangyihao    时间: 2017-12-17 22:05
也正准备学习OLED,学习学习!
作者: tingesky    时间: 2017-12-18 13:26
一起学习
作者: johnsonxjq    时间: 2017-12-19 08:38
好东西,有启发
作者: lhuijiang    时间: 2018-1-12 12:34
看上去很漂亮
作者: h2o1    时间: 2018-1-12 15:51
万分感谢,非常非常喜欢你的时钟。
作者: 山山山    时间: 2018-1-14 20:33
谢谢楼主!开眼界了!
作者: sishunhu    时间: 2018-3-11 19:20
学习学习,要是有SPI的7口接线程序就更好了
作者: zero711    时间: 2018-5-1 23:52
挺好的找了好久这资料
作者: zzhrgb    时间: 2018-5-9 20:53
加我微信,我想要你的方案,给钱帮我开发一个数码电子钟。。。。。。13965337186,加了就行了

作者: 黑大哥    时间: 2018-5-15 17:36
1302时钟在oled上使用,有资料吗?我想学学
作者: 黑大哥    时间: 2018-5-16 23:34
这个初始时间怎么改啊?
作者: 黑大哥    时间: 2018-5-16 23:40
你好,这个程序初始时间怎么改啊?
作者: tianxiaodan    时间: 2018-5-17 10:02
看评论不错,看看
作者: nanning321    时间: 2018-5-27 12:55
楼主用的是哪种遥控啊
作者: 米采1    时间: 2018-5-29 11:39
刚开始接触OLED,学习学习。
作者: 米采1    时间: 2018-5-29 11:42
刚开始接触OLED,学习学习。
作者: 陈钧荣    时间: 2018-5-31 11:17
币不够 楼主能否分享一下网盘链接 感谢感谢
作者: TKJT    时间: 2018-6-3 23:18
感谢主楼分享
作者: luo713ok    时间: 2018-6-9 17:43
谢谢楼主分享
作者: jizhongbiao    时间: 2018-7-10 22:31
感谢分享,正好是需要的资料。666666
作者: arther    时间: 2018-7-15 23:32
学习了
作者: siyaqq    时间: 2018-8-15 15:06
很强大!!
作者: szzxl10    时间: 2018-8-27 14:10
好资料,51黑有你更精彩!!!
作者: 臭屁大王    时间: 2018-9-16 14:46
正在学习OLED液晶,来学习学习
作者: gaibingqing    时间: 2018-9-17 16:14
真让人羡慕呀!自己也想弄一下,无奈水平有限,慢慢学了
作者: fancunwu    时间: 2018-9-17 17:51
用这屏字体太小,用数码管或点阵挂墙上更有意义
作者: yanyun    时间: 2018-11-14 21:15
学习下,谢谢分享。
作者: 51单片机1234    时间: 2018-12-29 14:40
好东西,学习
作者: 1574065994    时间: 2018-12-29 15:05
感谢分享
作者: 周超然    时间: 2018-12-29 16:00
论坛上1602的那个应该是某宝上电子发烧友的代码,我也买了,里面代码写得真差,我自己修改了,有时间发上来。闹钟就是判断小时和分钟以及秒相等就开始操作蜂鸣器就行了。用一个函数API接口就搞定了,不难
我没用oled的原因是,价格太贵了,我只是玩玩
作者: bg4ajj    时间: 2019-2-15 08:45
对楼主膜拜中  谢谢分享
作者: stormbreaker    时间: 2019-5-5 14:23
不错,顶一下
作者: 井蛙不可言海    时间: 2019-6-20 15:36
请问可以发一下实物图吗?程序是对的,但是显示没对
作者: szzxl10    时间: 2019-7-13 09:45
高手,mark学习一下。
作者: 鹏博士PBs    时间: 2019-7-13 11:16
感谢分享 最近准备尝试一下
作者: 圆点思路    时间: 2019-7-14 01:52
好东西啊。谢谢
作者: zengcym    时间: 2019-8-7 16:21
谢谢分享。
作者: 迁就    时间: 2019-8-8 19:21
luxianjun 发表于 2017-3-17 19:57
非常感谢楼主的帮助,我以经做好了,就是改不了红外码,就是不会编程,你能不能把编译的整个工程上传上来 ...

谢谢大神的分享,很有用

作者: 浮生若梦RT    时间: 2019-9-17 00:31
DS3231可以和OLED并在一起吗
作者: ljj200526    时间: 2019-9-17 21:54
谢谢分享,下来学习学习。
作者: ganbc    时间: 2019-10-12 12:26
谢谢楼主的分享!
作者: rifle    时间: 2019-11-13 08:48
楼主的程序很完善了,强力点赞。
作者: stlong    时间: 2019-12-26 20:29
感谢分享!
作者: fancunwu    时间: 2020-2-12 17:13
我买的ds3231时钟模块和楼主的一样,一天下来慢6分钟,不知道啥原因
作者: changqm    时间: 2020-2-12 23:47
感谢分享!搭了一个,不错



作者: bengbai4    时间: 2020-5-10 11:25
功能根本实现不了
作者: 罗程峰8200    时间: 2020-5-10 23:50
谢谢分享,让更多 人学会编程
作者: vinkic    时间: 2020-5-12 11:37
对初学者很好的教程
作者: yagutitakoromo    时间: 2020-5-28 11:34
啦啦啦1234 发表于 2017-2-18 09:58
先抢个座,图片拍的时候正好是秒没显示时候,实际秒的“:”是随3231的秒数闪烁的。1秒显示1秒不显示,不会 ...

同样的问题,难道是单片机的问题吗?STC89-STC90都是可以互换吧
作者: d917419982    时间: 2020-6-23 19:42
也正学习DS3231,谢谢楼主,学习学习!
作者: ak333    时间: 2020-6-24 12:24
谢谢分享,OLED已准备好,时钟芯片还未有,
作者: Jiang153    时间: 2020-6-26 22:45
准备学习OLED正好试试
作者: 51单片机1234    时间: 2020-7-21 11:17
谢谢楼主的分享了!!正好要用到
作者: rayin    时间: 2020-11-15 17:25
不错,值得学习。51hei有你更精彩!!
作者: ddwy43    时间: 2021-1-12 17:35
论坛,学习交流用的。说得太好了 (*^▽^*)
作者: 3486635230    时间: 2021-1-13 11:53
学习一下,温度怎么显示
作者: 3486635230    时间: 2021-1-22 21:49
我有一块7针的OLED,不知道怎么使用
作者: metatronl    时间: 2021-3-12 07:33
正在学习ds3231,感谢楼主
作者: wlja    时间: 2022-4-1 14:12
电路原理图,PCB图都压缩在里面了。可以直接拿到某一个宝上去做印制板。HEX文件也压缩在里面了。做好电路板可以直接刷程序。PCB和程序都验证过了。能直接用。
楼主师傅,我想拜您为师!您愿意收下我这个徒弟吗?谢谢您。请多赐教!谢谢。

OLED+51+DS3231.7z

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

程序.rar

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


作者: 反正都一样    时间: 2022-9-26 11:17
也正准备学习OLED,学习学习!
作者: dianzifashaoyou    时间: 2023-3-26 13:48
学习OLED,谢谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1