- 打卡等级:常住居民III
- 打卡总天数:139
- 最近打卡:2024-05-24 15:33:43
金牌会员
- 积分
- 1428
|
之前有几位朋友说需要个基于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。
内部RTC时钟与NTC读温度.rar
(28.13 KB, 下载次数: 459)
文件说明:
isr.asm 汇编用于RTC中断向量(入口地址),借用保留中断号13使用RTC中断。
RTC.c 主程序
bmp.h 包含图片数据
oledfont.h 字模数据
STC8H.h 定义STC8H系列单片机的特殊功能寄存器
RTC.hex 编译后的固件,可直接烧录
RTC_NTC.uvproj KEIL工程文件
OLED的显存存放格式:
[0]0 1 2 3 ... 127
[1]0 1 2 3 ... 127
[2]0 1 2 3 ... 127
[3]0 1 2 3 ... 127
[4]0 1 2 3 ... 127
[5]0 1 2 3 ... 127
[6]0 1 2 3 ... 127
[7]0 1 2 3 ... 127
OLED的汉字字模数据由“字模3”生成,设置为纵向取模,字节倒序, 小四字体。也可由免费的"PCtoLCD"点阵取模软件生成。这里用到的半角字符8*16大小,每个半角字符占两行,占8列。每个全角汉字(16*16)占两行,占16列。图片由Image2LCD v3.2软件生成,取模设置: “数据水平, 字节垂直,单色,128x64, 字节内像素数据反序, 自左向右, 自顶向底扫描, 低位在前, 颜色反转”。
STC8H8K开天斧、128x64 OLED屏可在程序注释中的本人店铺地址购买。顺便提一下,屏幕的7PIN接插件、五向开关和板子固定脚均为基于原版上另外加入。
|
|