基于 FPGA 读取 AHT10 温湿度数据及 OLED 显示详细工程

一、前言

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 器件解析

这是我根据厂家提供的手册写的总结笔记,不是特别详细,但是可以参考一下

二、系统设计

2.1 模块设计

2.2 状态机设计

2.3 代码实现

  • 工程文件:https://pan.baidu.com/s/1eXbAeH29dY2kwKJySTNdpA?pwd=lazt
    提取码:lazt
  • prj 文件夹下的 pin.tcl 脚本中就是管教配置表
    在这里插入图片描述
    在这里插入图片描述
  • 模块较多,但是每个模块代码量较少,相应的注释也有
    在这里插入图片描述
  • 在 tb 文件夹中,存放着 testbench 文件,直接双击 bat 文件即可仿真,不用在 Quartus 中点击仿真
  • 例如,想对 AHT10 部分仿真,只需要双击【aht10部分仿真.bat】即可
    在这里插入图片描述
  • 仿真截图如下(数据进制已经设置好了,易看):
    在这里插入图片描述

三、验证分析


版权声明:本文为ssj925319原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。