找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4379|回复: 6
打印 上一主题 下一主题
收起左侧

oled1306 DS3231简单源程序

[复制链接]
跳转到指定楼层
楼主


  1. //=======调用U8GLIB液晶屏驱动库=====
  2. #include "U8glib.h"
  3. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
  4. //=======调用DS3231时钟驱动库======
  5. #include <DS3231.h>
  6. #include <Wire.h>


  7. //========定义时钟需要的各种变量========
  8. DS3231 Clock;
  9. bool Century=false;
  10. bool h12;
  11. bool PM;
  12. byte ADay, AHour, AMinute, ASecond, ABits;
  13. bool ADy, A12h, Apm;
  14. int second,minute,hour,date,month,year,temperature;


  15. void setup(void) {


  16.   Clock.setClockMode(true);

  17. }

  18. void loop(void) {

  19. //=======读取时钟的各种中值,存入对应变量========

  20.   second=Clock.getSecond();              //秒
  21.   minute=Clock.getMinute();              //分
  22.   hour=Clock.getHour(h12, PM);           //小时 (分上午和下午模式)   
  23.   date=Clock.getDate();                   //日
  24.   month=Clock.getMonth(Century);          //月
  25.   year=Clock.getYear();                      //年(仅2位)
  26.   temperature=Clock.getTemperature();         //温度  (正负2-3摄氏度误差,温度仅供参考)


  27. //======开始显示==========
  28.   u8g.firstPage();                             
  29.   do {
  30.     draw();
  31.   } while( u8g.nextPage() );


  32. }


  33. //======定义的显示模式======
  34. void draw(void) {
  35.   //u8g.setPrintPos(0, 45);      //定义显示位置 横向起始位置0 纵向45
  36.   //if(PM==0)                     //判断变量PM返回值 0就显示AM  1就显示PM
  37.   //{
  38.   //u8g.print("AM");
  39.   //}else
  40. //{u8g.print("PM");}
  41.   u8g.setPrintPos(0, 20);      //定义显示位置 横向起始位置0 纵向45
  42.   u8g.setFont(u8g_font_fub20); //设定字体(具体请参看 U8GLIB google code页面,大量字体可选)u8g_font_fub20
  43.   u8g.print(year);
  44.   u8g.print(":");                        //显示一个冒号
  45.   u8g.print(month);
  46.   u8g.print(":");                        //显示一个冒号
  47.   u8g.print(date);
  48.   u8g.setPrintPos(0, 45);      //定义显示位置 横向起始位置0 纵向45
  49.   u8g.setFont(u8g_font_fub20); //设定字体(具体请参看 U8GLIB google code页面,大量字体可选)u8g_font_fub20                     
  50.   u8g.print(hour);                    //输出小时的值
  51.   u8g.print(":");                        //显示一个冒号
  52.   u8g.print(minute);                //显示分钟的值
  53.   u8g.setFont(u8g_font_fub20);  //调整显示字体u8g_font_freedoomr10r原
  54.   u8g.print(":");                         //再显示冒号
  55.   u8g.print(second);                       //显示秒
  56.   //u8g.setPrintPos(0, 65);      //定义显示位置 横向起始位置0 纵向45
  57.   //u8g.setFont(u8g_font_fub20); //设定字体(具体请参看 U8GLIB google code页面,大量字体可选)u8g_font_fub20                     
  58.   //u8g.print(temperature);                    //输出小时的值
  59.   //u8g.print("☆");                        //显示一个冒号

  60. }
复制代码


DS3231_TEST.zip

8.24 KB, 下载次数: 49, 下载积分: 黑币 -5

ds3231licheng.zip

1.35 KB, 下载次数: 34, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:232779 发表于 2018-5-25 01:25 来自手机 | 只看该作者
请问~怎么接线呀?是IIC接口吗?
回复

使用道具 举报

板凳
ID:227504 发表于 2018-5-25 17:29 | 只看该作者
小魔杰 发表于 2018-5-25 01:25
请问~怎么接线呀?是IIC接口吗?

嗯,i2c。sda a4,scl a5
回复

使用道具 举报

地板
ID:336617 发表于 2018-5-25 20:02 | 只看该作者
U8glib.h: No such file or directory没有U8glib.h库数
回复

使用道具 举报

5#
ID:227504 发表于 2018-5-25 22:05 | 只看该作者
任情想 发表于 2018-5-25 20:02
U8glib.h: No such file or directory没有U8glib.h库数

去下一个,或者再添加库里添加
回复

使用道具 举报

6#
ID:667692 发表于 2024-7-23 17:14 | 只看该作者
U8glib.h的确省时省力,不错的源码
回复

使用道具 举报

7#
ID:36322 发表于 2024-7-23 19:23 | 只看该作者
用的什么单片机?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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