MJBZ 发表于 2026-1-20 22:42:20

电子温度/气压计=STC8G1K08A+硬件iic+BMP280+PCF8574T+1602

大家好,我这个帖子展示我组装的电子温度/气压计,
详细开源代码,从本楼附件下载


#--------需求分析------
做一个便宜的电子气压计,



#--------实现目标的指导思想------
单片机+气压模块+显示模块=电子气压计

STC8G1K08A-36I-SOP8 足够便宜,功能强大,性能足够用,
STC8G1K08A-36I-SOP8 支持I2C
1602便宜,显示内容丰富,
使用IIC扩展模块PCF8574T可以把原本需要多个引脚的1602变为只用正极、负极、SCL、SDA四个引脚就可以驱动

STC8G1K08A有内置的上拉电阻,可以简化布线,
IIC最多可以挂载8个设备,目前只用到2个,电容也免了,

使用硬件IIC进行IIC通信,因为查资料得知硬件IIC可以省单片机资源,
使用定时器中断把1602的IIC通信和BMP280的IIC通信隔离开,减少IIC通信冲突。

PCF8574T 和 BMP280参考了论坛里好几位大佬的分享的代码,十分感谢
本人基础比较差,从STC8烧写程序到STC8点灯开始从头学习,
发现STC论坛后如获至宝,检索和学习各位大佬的代码,
不会就去问豆包和kimi,吃透代码之后,再慢慢的修改和迭代,
先查询法iic点亮1602,再改为中断法点亮1602,再加入bmp280,再优化iic通信最终实现了我的需求。



#-------需求的实现方式-------


硬件使用的是淘宝购买的STC8G1K08A开发板+BMP280气压模块5v(4引脚)+1602显示屏使用PCF8574T做IIC扩展,

#-------心得体会-------
所有的模块都要多买几个,要有可验证的方法检测硬件的好坏,
因为当我硬件连接好,代码也跑通之后,但是BMP280的气压和温度一直是零,我一直以为是代码出错了
一直自己修改代码和强迫豆包修改代码,搞了2周,还是不行,直到我又找出论坛里大佬的BMP280代码,
跑了几遍大佬的代码,发现是我的BMP280模块坏了,又换了一个BMP280模块之后,大佬的代码可以显示气压和温度数据
我的代码也有气压和温度数据了,之前2周的苦都白吃了。。。。

在此还要感谢STC公司和聂经理,让我有机会在论坛学习到非常多单单片机知识,还能在Ai8051U实验箱做实践,
让我对STC产品和更先进的编程方法和理念有了进一步的了解。














DebugLab 发表于 2026-1-21 00:15:04

I2C接口,BMP280, 读取温度气压从串口发送程序:
https://www.stcaimcu.com/thread-4613-1-1.html
SHT30读取温湿度从串口发送程序:
https://www.stcaimcu.com/thread-4612-1-1.html
供参考

MJBZ 发表于 2026-1-21 10:39:55

DebugLab 发表于 2026-1-21 00:15
I2C接口,BMP280, 读取温度气压从串口发送程序:
https://www.stcaimcu.com/thread-4613-1-1.html
SHT30读 ...

谢谢大佬,刚才看了看,我用来测试BMP280好坏的程序,就是你写的这个帖子,我以前用的是3V的bmp280模块,跟5v的PCF8547模块一起接入到IIC,总是各种故障,后来才发现是电压不对,哈哈哈。
页: [1]
查看完整版本: 电子温度/气压计=STC8G1K08A+硬件iic+BMP280+PCF8574T+1602