久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15792|回復: 41
打印 上一主題 下一主題
收起左側

stm32 0.96寸OLED時鐘程序,萬年歷,大字體

  [復制鏈接]
跳轉到指定樓層
樓主
下午閑著沒事,在我們的51hei論壇找了一個小玩意兒(具體誰的我找不著了,抱歉哈),修改了一下。但是他的程序之前寫的時候可能太古老了,所以我就稍微修改完善了一下。用的是stm32自帶的RTC時鐘。硬件連接很簡單,當然程序也是比較簡單的,只寫了溫度(DS18B20),stm32自帶RTC和OLED顯示,大家可自行刪改功能。
硬件連接:
      SDA --》PB13
      SCL --》PB12
DS18B20----》PA15
OLED和DS18B20直接5V供電就成,代碼和工具都在最后,需要的小伙伴自行下載吧。

效果如下:


單片機源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"               
  3. #include "delay.h"        
  4. #include "led.h"
  5. #include "key.h"
  6. #include "oled.h"
  7. #include "beep.h"
  8. #include "rtc.h"
  9. #include "ds18b20.h"

  10. u8 year_buf[4];
  11. u8 month_buf[2];
  12. u8 day_buf[2];
  13. u8 temp_buf[4];

  14. int main(void)
  15. {               
  16.         u16 temp;
  17.         delay_init();             //延時初始化
  18.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  19.     Gpio_IIC_Init();
  20.         RTC_Init();                                  //RTC初始化
  21.         DS18B20_Init();
  22.         OLED_Init();
  23.         delay_ms(200);
  24.         OLED_CLS();
  25.         OLED_P16x16Ch(40,0,36);//第一行第三列顯示年
  26.         OLED_P16x16Ch(72,0,37);        //顯示月
  27.         OLED_P16x16Ch(106,0,38);        //顯示日
  28.         OLED_P16x16Ch(0,6,39);//星
  29.         OLED_P16x16Ch(16,6,41);//期
  30.         OLED_P16x16Ch(32,2,34);
  31.         OLED_P16x16Ch(32,4,35);//:
  32.         OLED_P16x16Ch(80,2,34);
  33.         OLED_P16x16Ch(80,4,35);//:
  34.         while(1)
  35.         {
  36.                 sprintf((char *)year_buf,"%04d",calendar.w_year);
  37.                 OLED_P8x16Str(8,0,year_buf);
  38.                 sprintf((char *)month_buf,"%02d",calendar.w_month);
  39.                 OLED_P8x16Str(58,0,month_buf);
  40.                 sprintf((char *)day_buf,"%02d",calendar.w_date);
  41.                 OLED_P8x16Str(90,0,day_buf);
  42.                
  43.                 OLED_P16x16Ch(0,2,calendar.hour/10*2);
  44.                 OLED_P16x16Ch(0,4,calendar.hour/10*2+1); //
  45.                 OLED_P16x16Ch(16,2,calendar.hour%10*2);
  46.                 OLED_P16x16Ch(16,4,calendar.hour%10*2+1);//
  47.                
  48.                 OLED_P16x16Ch(48,2,calendar.min/10*2);
  49.                 OLED_P16x16Ch(48,4,calendar.min/10*2+1);//
  50.                 OLED_P16x16Ch(64,2,calendar.min%10*2);
  51.                 OLED_P16x16Ch(64,4,calendar.min%10*2+1);//
  52.                
  53.                 OLED_P16x16Ch(95,2,calendar.sec/10*2);
  54.                 OLED_P16x16Ch(95,4,calendar.sec/10*2+1);//
  55.                 OLED_P16x16Ch(111,2,calendar.sec%10*2);
  56.                 OLED_P16x16Ch(111,4,calendar.sec%10*2+1);//

  57.                 OLED_P16x16Ch(32,6,calendar.week+20);//
  58.                
  59.                 temp = DS18B20_Get_Temp();
  60.                 OLED_P16x16str(64,6,11);
  61.                 OLED_P16x16str(80,6,12);
  62.                 OLED_P16x16str(96,6,temp%1000/100);
  63.                 OLED_P16x16str(112,6,temp%100/10);

  64.         }
  65. }
復制代碼

最終 程序.7z (227.01 KB, 下載次數: 824)

取模教程.zip (1.25 MB, 下載次數: 266)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏45 分享淘帖 頂4 踩
回復

使用道具 舉報

沙發
ID:91165 發表于 2020-5-7 11:07 | 只看該作者
謝謝分享
回復

使用道具 舉報

板凳
ID:771891 發表于 2020-6-9 08:37 | 只看該作者
謝謝分享,實測可以用
回復

使用道具 舉報

地板
ID:379551 發表于 2020-6-19 13:04 | 只看該作者
冀州侯 發表于 2020-6-9 08:37
謝謝分享,實測可以用

哈哈,當然。
回復

使用道具 舉報

5#
ID:731426 發表于 2020-6-19 21:15 | 只看該作者
感謝分享
回復

使用道具 舉報

6#
ID:791551 發表于 2020-6-28 10:20 | 只看該作者
請問那些.h文件需要怎么寫
回復

使用道具 舉報

7#
ID:379551 發表于 2020-7-5 16:48 | 只看該作者
aaamm 發表于 2020-6-28 10:20
請問那些.h文件需要怎么寫

比如main.h文件,可以這么寫
#ifndef _MAIN_H
#define _MAIN_H
#include <stdio.h>

#endif
回復

使用道具 舉報

8#
ID:510861 發表于 2020-7-6 12:39 來自觸屏版 | 只看該作者
下載來試試   就是搞不懂這個怎么用的
回復

使用道具 舉報

9#
ID:71535 發表于 2020-7-6 19:13 | 只看該作者
謝謝分享,排版取模要點贊
回復

使用道具 舉報

10#
ID:591382 發表于 2020-8-10 10:45 | 只看該作者
用的是那個型號的stm32呢?是STM32F407ZGT6嗎?
回復

使用道具 舉報

11#
ID:606398 發表于 2020-8-13 09:05 | 只看該作者
這個為什么只能設置一次時間,如何獲取實時時間呀?
回復

使用道具 舉報

12#
ID:606398 發表于 2020-8-13 09:06 | 只看該作者
gjs555 發表于 2020-8-10 10:45
用的是那個型號的stm32呢?是STM32F407ZGT6嗎?

用的是STM32F103系列的,我用STM32F103ZET6可以燒寫
回復

使用道具 舉報

13#
ID:795562 發表于 2020-8-20 14:13 | 只看該作者
樓主,可以編寫一個stm32控制PLL芯片的LC72131,并用0.96寸OLED這個4針接口做顯示的程序嗎,就是收音機鎖相環電路用的PLL程序
回復

使用道具 舉報

14#
ID:510861 發表于 2020-8-21 22:33 來自觸屏版 | 只看該作者
51學到一半    stm32入門還沒有
回復

使用道具 舉報

15#
ID:795562 發表于 2020-9-11 19:56 | 只看該作者
能用STC15W408AS 20腳的單片機編寫一個可以用這個屏顯示的程序嗎?基本原理圖我可以提供,基本程序我可以提供,想改顯示屏。
回復

使用道具 舉報

16#
ID:379551 發表于 2020-10-8 16:07 | 只看該作者
gjs555 發表于 2020-8-10 10:45
用的是那個型號的stm32呢?是STM32F407ZGT6嗎?

stm32f103c8
回復

使用道具 舉報

17#
ID:739707 發表于 2020-10-10 22:25 | 只看該作者
樓主我想知道咋調時間
回復

使用道具 舉報

18#
ID:828886 發表于 2020-10-12 17:57 | 只看該作者
謝謝分享,實測可以用
回復

使用道具 舉報

19#
ID:724445 發表于 2020-10-13 20:07 | 只看該作者
謝謝分享,正在學習,發現18b20程序有個錯誤    if(TH>7)
    {
        TH=~TH;
        TL=~TL;
        temp=0;//ζÈΪ¸º  
    }else temp=1;//ζÈΪÕý                    
    tem=TH; //»ñµÃ¸ß°Ëλ
    tem<<=8;   
    tem+=TL;//»ñµÃµ×°Ëλ
    tem=(float)tem*0.625;//ת»»     
        if(temp)return tem; //·µ»ØÎ¶ÈÖµ
        else return -tem;   
}
負溫度要取反加一,這個程序會有0.0625的偏差
回復

使用道具 舉報

20#
ID:724445 發表于 2020-10-14 12:00 | 只看該作者
又發現程序有個小問題
   

!!!!!這句代碼是多余的,會造成部分屏幕無法顯示,

回復

使用道具 舉報

21#
ID:578842 發表于 2020-10-14 13:32 | 只看該作者
還沒用學到stm32,看著你們眼饞啊。
回復

使用道具 舉報

22#
ID:136337 發表于 2020-11-3 10:16 | 只看該作者
請教一下0.96寸OLED屏,SPI和IIC,那種通訊方式刷屏速度比較快
回復

使用道具 舉報

23#
ID:379551 發表于 2020-11-30 17:31 | 只看該作者
cykhyk 發表于 2020-11-3 10:16
請教一下0.96寸OLED屏,SPI和IIC,那種通訊方式刷屏速度比較快

理論上SPI速度快,但是在這個里面你看不出來的
回復

使用道具 舉報

24#
ID:669279 發表于 2021-4-15 00:21 | 只看該作者
樓主能發一下原理圖嗎
回復

使用道具 舉報

25#
ID:105944 發表于 2021-4-15 07:52 | 只看該作者
作品好!
回復

使用道具 舉報

26#
ID:422924 發表于 2021-4-18 18:00 | 只看該作者
下載一下試試看,感謝樓主!
回復

使用道具 舉報

27#
ID:970610 發表于 2021-10-19 11:04 | 只看該作者
想問問樓主,我的oled屏幕顯示的秒鐘兩秒才跳一次是什么原因
回復

使用道具 舉報

28#
ID:15447 發表于 2021-10-19 15:50 | 只看該作者
感謝大神分享,正在學習STM32中
回復

使用道具 舉報

29#
ID:901262 發表于 2021-10-27 21:22 | 只看該作者
實測好用,但需要在C,C++里加入宏定義STM32F10X_MD,USE_STDPERIPH_DRIVER,不然會有錯誤
回復

使用道具 舉報

30#
ID:730993 發表于 2021-11-1 10:57 | 只看該作者
感謝分享,這個代碼里面好像沒有設置日期和時間的呢?
回復

使用道具 舉報

31#
ID:439809 發表于 2021-11-30 17:28 | 只看該作者
樓主,如何調整日期時間???
回復

使用道具 舉報

32#
ID:1046824 發表于 2022-10-6 21:41 | 只看該作者
這種學習教程,既有趣也很實用。特別是里面那個大字體的實現,很值得參考。
回復

使用道具 舉報

33#
ID:846585 發表于 2022-11-20 09:18 | 只看該作者
謝謝分享很實用
回復

使用道具 舉報

34#
ID:52721 發表于 2023-1-11 11:06 | 只看該作者
STM32內部的時鐘一直沒有用過,不知道精度怎么樣?
回復

使用道具 舉報

35#
ID:65369 發表于 2023-2-24 09:12 | 只看該作者
這個給力, 液晶再加點動態的效果更佳完美
回復

使用道具 舉報

36#
ID:1073726 發表于 2023-4-29 09:33 | 只看該作者
可以加個按鍵嗎
回復

使用道具 舉報

37#
ID:1117741 發表于 2024-4-23 11:11 | 只看該作者
請問這個適用于STM32嗎
回復

使用道具 舉報

38#
ID:1117741 發表于 2024-4-23 11:12 | 只看該作者
請問我的執行不了是什么原因?
回復

使用道具 舉報

39#
ID:1117711 發表于 2024-4-23 14:59 | 只看該作者
感謝分享,好像運行不了
回復

使用道具 舉報

40#
ID:1117741 發表于 2024-4-24 11:24 來自觸屏版 | 只看該作者
看源程序年份和時間前面的函數都是OLED_P16x16Ch,這樣子顯示還能是不一樣大的字體?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色国产| 91久久精品日日躁夜夜躁欧美 | 成年人视频在线播放 | av黄色在线 | 欧美在线观看一区二区 | 香蕉看片 | 91成人在线观看喷潮 | 国产精品免费一区 | 国产九九精品 | 亚洲国产精品一区二区三区 | 午夜精品影院 | 伊人国产精品 | 五月婷婷在线视频 | 日本精品中文字幕 | 日韩欧美在线观看视频 | 日本高潮视频 | 午夜免费小视频 | 亚洲国产精品久久久久久久 | 午夜快播 | www.精品 | 天天射天天射 | a毛片免费看 | 九九热精品在线观看 | 在线视频h | 福利视频导航大全 | 日本特黄特色aaa大片免费 | 成人爱爱| 日韩偷拍自拍 | 日本中文在线观看 | a级片在线播放 | 免费一级a毛片 | 国产女优在线 | 日韩a级片| 欧美精品第一页 | 一级黄色网 | 久久青草视频 | 超碰成人在线观看 | 欧美精品一级片 | 日韩免费一区 | 黄色精品网站 | 国产午夜精品视频 |