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接插件、五向开关和板子固定脚均为基于原版上另外加入。
经常有爱好者问,图中的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核心功能实验板】回去测试了所有功能,大家可以去他的淘宝店淘宝
感谢楼主的分享,奥利给!{:victory:} 感谢大家的支持与推荐! 老梁示波器用的 TFT480320的屏,实验箱用的 TFT320240的屏的图片搞几个靓照上来 飞哥,如果是使用I2C接口,要修改哪些地方呢?我现在手上只有I2C接口的OLED12864. zxy 发表于 2023-6-20 10:49
飞哥,如果是使用I2C接口,要修改哪些地方呢?我现在手上只有I2C接口的OLED12864. ...
如果你手头的是4PIN插针的OLED屏幕,那还是换一个SPI的吧。整个电路改动大得去了。反之容易改一点。 同样只有I2C接口的OLED12864 感谢楼主的分享 估计要使用外部32.768不然内部时间会差很多吧。
页:
[1]
2