一、前言
1.1 开发环境
- FPGA开发板参数:
型号:EP4CE6F17C8
器件库:Cyclone IV
- AHT10

- OLED 器件参数:
0.96寸
分辨率128×64
I2C协议
芯片SSD1306
1.2 功能阐述
- 温度值需要以十进制形式的摄氏温度显示在 OLED 屏,并且保留两位小
数,显示形式如 xx.xx℃ - 湿度值需要以百分数的形式显示显示在 OLED 屏,并且保留两位小数,
显示形式如:xx.xx% - 可以使用串口将温湿度值打印到上位机界面显示,以 ASCII 码的形式显
示为 xx.xx℃ - 可以在数码管上显示时间,如 xx:xx:xx
- 当温度值或湿度值超过设定的界限时,控制蜂鸣器报警
- 可以使用按键设置温、湿度报警界限
1.3 器件解析
这是我根据厂家提供的手册写的总结笔记,不是特别详细,但是可以参考一下
- aht10 解析手册:https://pan.baidu.com/s/1AaiJc69zr2vRefLnBJHXNQ?pwd=hb90
提取码:hb90 - oled 解析手册:https://pan.baidu.com/s/1D8KgQbPr36oMiK326GvCYw?pwd=yc3b
提取码:yc3b
二、系统设计
2.1 模块设计
- 工程模块说明书:https://pan.baidu.com/s/1Dw-qiLsP3E89kWcRGwQ0QQ?pwd=4cdo
提取码:4cdo - 系统模块框图(看不太清楚没事,工程模块说明书有每一部分的详细介绍以及端口信号解释)

- 模块层次结构

2.2 状态机设计
- 状态转移说明书:https://pan.baidu.com/s/1x1nFaCCGgPedIZIgJWJ70g?pwd=zztz
提取码:zztz - aht10部分状态机

- oled部分状态机

- extras额外器件部分状态机

2.3 代码实现
- 工程文件:https://pan.baidu.com/s/1eXbAeH29dY2kwKJySTNdpA?pwd=lazt
提取码:lazt - prj 文件夹下的 pin.tcl 脚本中就是管教配置表


- 模块较多,但是每个模块代码量较少,相应的注释也有

- 在 tb 文件夹中,存放着 testbench 文件,直接双击 bat 文件即可仿真,不用在 Quartus 中点击仿真
- 例如,想对 AHT10 部分仿真,只需要双击【aht10部分仿真.bat】即可

- 仿真截图如下(数据进制已经设置好了,易看):

三、验证分析
- 验证分析手册:https://pan.baidu.com/s/1aHfWObnWLBSgvOEqPNjHpw?pwd=dc3n
提取码:dc3n - 其中包含仿真截图、设计过程中的问题、解决方法、资源消耗等
- 板上验证:
AHT10与OLED工程
- 效果还可以,成功实现
版权声明:本文为ssj925319原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。