飞哥 发表于 2023-5-13 10:05:53

8H8K64U驱动OLED12864显示日历时钟与温度参考程序@开天斧

    之前有几位朋友说需要个基于8H8K64U开天斧开发板编写的类似万年历的功能,于是本人就参考了本网几个经典代码,拼凑成了今天发出的这个代码。代码未能优化,请高手勿喷。发出来可供大家参考,比如自行修改加入DS3231、DS18B20之类。这里要感谢STC提供的开天斧、实验箱演示例程。
    硬件组成:STC8H8K开天斧3,板载4个独立按键,板子上部的OLED屏接口,接插单色OLED 128*64(默认SPI),板载NTC(使用1%精度的MF52 10K@25度的NTC),单片机自带RTC实时时钟。
    实现功能:基于STC8H8K64U为主控芯片的开天斧3开发板,读写芯片内部集成的RTC获取日期和时间;通过NTC获取周围温度,由对应ADC口读取对应电压值并转换成温度数据。由于RTC相关寄存器位于XFR中, 读RTC之前需使能XFR访问。OLED显示日期时间(年月日 小时:分钟:秒), 显示温度(支持负温),分辨率0.1度。按键用于调节时间, 只支持单键按下, 支持长按快速调节。P3.5: 小时+,P3.4: 小时-,P3.3: 分钟+,P3.2: 分钟-。闹钟到时间会在0点(可自行修改)自动显示“Alarm!”。下载时选择时钟24MHZ。





    文件说明:
isr.asm      汇编用于RTC中断向量(入口地址),借用保留中断号13使用RTC中断。
RTC.c      主程序
bmp.h      包含图片数据
oledfont.h      字模数据
STC8H.h      定义STC8H系列单片机的特殊功能寄存器
RTC.hex      编译后的固件,可直接烧录
RTC_NTC.uvproj      KEIL工程文件

    OLED的显存存放格式:
0 1 2 3 ... 127      
0 1 2 3 ... 127      
0 1 2 3 ... 127      
0 1 2 3 ... 127      
0 1 2 3 ... 127      
0 1 2 3 ... 127      
0 1 2 3 ... 127      
0 1 2 3 ... 127         

    OLED的汉字字模数据由“字模3”生成,设置为纵向取模,字节倒序, 小四字体。也可由免费的"PCtoLCD"点阵取模软件生成。这里用到的半角字符8*16大小,每个半角字符占两行,占8列。每个全角汉字(16*16)占两行,占16列。图片由Image2LCD v3.2软件生成,取模设置: “数据水平, 字节垂直,单色,128x64, 字节内像素数据反序, 自左向右, 自顶向底扫描, 低位在前, 颜色反转”。
    STC8H8K开天斧、128x64 OLED屏可在程序注释中的本人店铺地址购买。顺便提一下,屏幕的7PIN接插件、五向开关和板子固定脚均为基于原版上另外加入。




神农鼎 发表于 2023-5-13 10:21:20

经常有爱好者问,图中的OLED12864屏到哪买,TFT屏到哪买,
因为好多爱好者从贸易商处买回来的屏,不能用,浪费了大量的时间
我们经常买的淘宝店是:
https://KCER001.taobao.com   
这个淘宝店的好处是,他们的屏他们都亲自测试过,买过来直接能用,不会浪费你时间
关键他是淘宝店主中,懂技术的淘宝店主,
他卖的屏都是他用过的能用的屏,还有完善的屏的配套程序

https://www.stcaimcu.com/data/attachment/forum/202305/13/100526yfzw47dcw7ztn9m5.jpg
这个懂技术的淘宝店主,买了很多
【STC32G12K128实验箱V9.6版】 回去测试了所有功能,大家可以去他的淘宝店淘宝
【STC8H8K64U实验箱V9.6版】回去测试了所有功能,大家可以去他的淘宝店淘宝
【老梁开源示波器】 回去测试了所有功能,大家可以去他的淘宝店淘宝
【开天斧-STC8H8K64U核心功能实验板】回去测试了所有功能,大家可以去他的淘宝店淘宝
【屠龙刀-STC32G12K128核心功能实验板】回去测试了所有功能,大家可以去他的淘宝店淘宝




芯征程 发表于 2023-5-13 10:19:53

感谢楼主的分享,奥利给!{:victory:}

飞哥 发表于 2023-5-13 11:06:39

感谢大家的支持与推荐!

神农鼎 发表于 2023-5-13 12:28:58

老梁示波器用的 TFT480320的屏,实验箱用的 TFT320240的屏的图片搞几个靓照上来

zxy 发表于 2023-6-20 10:49:26

飞哥,如果是使用I2C接口,要修改哪些地方呢?我现在手上只有I2C接口的OLED12864.

飞哥 发表于 2023-6-20 16:52:40

zxy 发表于 2023-6-20 10:49
飞哥,如果是使用I2C接口,要修改哪些地方呢?我现在手上只有I2C接口的OLED12864. ...

如果你手头的是4PIN插针的OLED屏幕,那还是换一个SPI的吧。整个电路改动大得去了。反之容易改一点。

小涵子爸爸 发表于 2024-1-12 19:29:13

同样只有I2C接口的OLED12864

jackfangxq 发表于 2024-1-13 12:09:08

感谢楼主的分享

soma 发表于 2024-9-20 16:41:48

估计要使用外部32.768不然内部时间会差很多吧。
页: [1] 2
查看完整版本: 8H8K64U驱动OLED12864显示日历时钟与温度参考程序@开天斧