当前位置: 首页 > news >正文

基于FPGA的温度采集系统工程:Max6675驱动源码与QT控制软件工程代码

基于fpga的温度采集系统工程,max6675驱动源码,可上传到电脑上位机软件绘制温度曲线! fpga代码、和QT控制软件!是工程代码!

该工程包含FPGA端硬件驱动代码与PC端上位机软件代码两大部分,实现了温度采集、实时显示、数据存储及温度曲线绘制功能,核心围绕MAX6675温度传感器展开,适配Cyclone IV E系列FPGA芯片,采用Qt框架开发上位机界面。

一、FPGA端代码(max6675_disp目录)

1. 工程配置文件

  • max6675disp.qpf:Quartus II项目配置文件,记录工程基础信息,包括使用Quartus II 13.1版本,项目创建时间为2020年2月29日,项目版本标识为“max6675disp”,明确版权归属Altera Corporation,限定工具仅用于Altera生产的逻辑器件编程。
  • max6675_disp.qsf:项目设置文件,定义硬件参数与文件依赖,关键配置如下表:
配置项具体参数说明
FPGA芯片型号Cyclone IV E系列EP4CE10F17C8确定硬件适配的核心芯片
顶层模块max6675_disp工程逻辑入口模块
输入输出引脚分配如sysclk(时钟)接PINE1,sysrstn(复位)接PIN_M1定义FPGA与外部硬件的物理连接
核心文件依赖max6675disp.v、segled.v、max6675_dri.v指定工程所需的3个Verilog逻辑文件
工作温度范围0°C~85°C限定芯片正常工作的核心结温
输出目录output_files编译生成文件(如.sof)的存储路径

2. 核心逻辑模块(Verilog代码)

(1)顶层模块:max6675_disp.v
  • 功能:整合温度驱动模块与数码管显示模块,实现信号转发与模块间数据交互。
  • 端口定义
  • 输入:sysclk(系统时钟)、sysrst_n(系统复位,低电平有效)、miso1(MAX6675的SPI从机输出信号);
  • 输出:cs1(MAX6675片选信号)、sck1(MAX6675时钟信号)、sel[5:0](数码管位选信号)、seg_led[7:0](数码管段选信号)。
  • 模块例化
  • 数码管驱动模块(seg_led):接收温度数据,控制6位数码管显示;
  • MAX6675驱动模块(max6675_dri):生成传感器控制信号,采集并转换温度数据。
(2)温度驱动模块:max6675_dri.v
  • 核心功能:实现3路MAX6675传感器的SPI通信控制、温度数据采集与转换,支持0.5秒间隔的周期性采集。
  • 关键逻辑
  • 时钟分频:将50MHz系统时钟分频为1MHz(clk_1us),用于传感器时序控制;
  • 采集时序:通过T_counter计数器控制片选(CS)与时钟(SCK)信号,3路传感器分时采集(避免信号冲突),在SCK下降沿读取16位原始数据;
  • 数据处理:提取原始数据中12位有效温度数据(bit14~bit3),通过“×25”运算(等效于“÷4×100”)将温度值放大100倍,便于数码管显示小数(如25.5°C转换为2550);
  • 输出:3路温度数据(tempdata、tempdata2、temp_data3),均为20位宽(适配数码管模块输入)。
(3)数码管显示模块:seg_led.v
  • 功能:将20位温度数据(放大100倍后)转换为6位数码管的动态显示信号,支持小数点位置控制与正负符号显示。
  • 关键逻辑
  • 数据转换:将20位二进制数拆分为6个4位BCD码(对应十万位、万位、千位、百位、十位、个位);
  • 动态扫描:通过1ms周期的计数器(cnt0)与状态切换(cnt),实现6位数码管轮流点亮(消影);
  • 显示控制:支持小数点位置自定义(point端口)、显示使能(en端口)、正负符号(sign端口,高电平显示“-”),通过seg_led端口输出段选信号(含小数点),sel端口输出位选信号。

二、PC端上位机代码(xAG目录)

基于Qt框架开发,实现串口通信、温度数据接收、实时曲线绘制与数据存储功能,包含5个文件,核心逻辑集中在Widget类与myThread线程类。

1. 核心文件与功能

文件功能
main.cpp程序入口,创建QApplication与Widget窗口实例,启动应用消息循环
widget.h/.cpp主窗口逻辑,负责串口配置、数据接收、数据存储与UI交互
mythread.h/.cpp绘图线程,独立于主线程运行,负责温度曲线绘制与画布更新

2. 关键功能实现

(1)串口通信(widget.cpp)
  • 串口配置:支持自动枚举可用串口,波特率可选(9600、4800、115200),数据位8位、停止位1位、无校验、无流控;
  • 数据接收:通过Read_Data()函数读取串口数据(十六进制格式),转换为温度值(原始值÷100,保留1位小数),并通过sendTemp信号转发至绘图线程与存储模块;
  • UI控制:通过单选按钮(radioButton)切换串口“打开/关闭”状态,关闭时释放串口资源。
(2)温度曲线绘制(mythread.cpp)
  • 独立线程:继承QThread,通过run()函数启动绘图循环,避免阻塞主UI线程;
  • 画布初始化:创建810×610像素的RGB32格式画布,绘制坐标轴(X轴为时间,单位秒,范围0~60s;Y轴为温度,单位°C,范围0~100°C),包含刻度、数值与箭头标识;
  • 数据缓存:使用array0[121]数组缓存121个温度数据(对应0~60s,每0.5s一个点),数据满后自动左移(丢弃最旧数据);
  • 曲线绘制:每500ms更新一次画布,用蓝色点(4像素宽)标记温度数据,红色线(2像素宽)连接相邻点,通过updateImage信号将画布发送至主窗口显示。
(3)数据存储(widget.cpp)
  • 存储路径:默认存储至“../xag.txt”文件,记录格式为“时间(yyyy.MM.dd hh:mm:ss ddd)+ 温度(Temp=XX.X)”;
  • 文件控制:支持通过“清空”按钮(pushButton)删除文件历史数据(通过flag标记控制文件清空),存储时自动追加新数据,不覆盖历史记录。

三、系统整体工作流程

  1. FPGA端
    - 系统上电后,sysrstn复位信号释放,max6675_dri模块开始分频生成1MHz时钟;
    - 每0.5秒分时采集3路MAX6675传感器数据,转换为放大100倍的温度值;
    - 数码管模块接收温度数据,动态扫描显示(如25.5°C显示为“25.5”)。
  2. PC端
    - 上位机启动后,自动枚举可用串口,用户选择串口与波特率并打开;
    - 串口接收FPGA发送的十六进制温度数据,转换为实际温度值;
    - 绘图线程实时绘制温度曲线,主窗口显示曲线并将数据写入文本文件;
    - 用户可通过按钮清空历史数据,关闭窗口时自动停止绘图线程与串口通信。

四、核心特点与适配性

  • 多通道采集:FPGA端支持3路MAX6675,可同时采集多个点位温度;
  • 实时性:0.5秒采集间隔,500ms曲线更新,满足中低速温度监测场景;
  • 兼容性:FPGA适配Cyclone IV E系列芯片,上位机支持Windows系统(Qt跨平台特性可扩展至Linux);
  • 易用性:上位机自动枚举串口,支持数据可视化与历史记录,操作简洁。

基于fpga的温度采集系统工程,max6675驱动源码,可上传到电脑上位机软件绘制温度曲线! fpga代码、和QT控制软件!是工程代码!

http://www.cnnetsun.cn/news/1749107.html

相关文章:

  • c++ 享元模式实现 c++如何运用共享技术有效支持大量细粒度对象
  • 2026年深度解读:Qwen3.6-Plus的MoE重构、500K超长上下文与工程落地实践
  • Rust交叉编译的终极简化:如何用rustup轻松管理多平台target
  • matlab anybody opensim包括人机耦合建模、缩放、运动学_逆动力学分析,以及自由度扩建、肌肉重建、RRA_CMC仿真,从理论到代码手把手教会运动生物力学数据代处理
  • YOLOv5目标检测辅助DeepSeek-OCR-2文档分析
  • HR整理面试录像必看!2026年4款网络视频转文字软件,10分钟输出完整面试纪要
  • 网站 SEO 优化推广效果如何评估
  • 突破音乐版权限制:XiaoMusic让小爱音箱实现自由播放
  • SEO数据分析资源网
  • 深度学习第三章,线性表示
  • 03-Linux网络故障排查:从DNS配置到防火墙设置的全面指南
  • BEVFormer代码复现:从环境配置到数据集链接的完整指南
  • WindowsCleaner系统优化实战指南:从C盘告急到性能重生
  • 基于LabVIEW的纯软件信号发生器功能介绍
  • LOFAR频谱实战:如何用MATLAB精准提取水下目标的‘声学指纹’?
  • 暗数据:智能体探索世界的下一步
  • 从一根线开始省钱:IO-LINK如何帮你简化自动化项目布线(附主流品牌模块选型指南)
  • Shell 脚本编程:从基础逻辑到生产级落地的核心指南
  • 一文吃透抽象类:从概念到实战,新手也能轻松掌握
  • PvZ Toolkit:植物大战僵尸PC版开源修改工具,突破游戏限制的全方位解决方案
  • 网络信息安全相关法律法规
  • 《小而美:持续盈利的经营法则》读书笔记 01|极简主义创业:以独立为锚,以价值为帆
  • Windows系统性能优化全景指南:从诊断到长效管理的科学路径
  • Geist字体:颠覆性开源字体如何重新定义开发者的视觉体验
  • 2026年AI岗位薪资揭秘:高薪背后,门槛与竞争同步飙升!
  • 科研人效率工具:如何用CiteSpace 6.3.R1快速梳理文献,找到你的论文创新点?
  • 基于51单片机的太阳能追光系统设计与仿真:包含光敏控制、电机调速及两种模式的太阳跟踪系统
  • VScode高效开发指南:侧边栏与状态栏的深度解析
  • 基于Transformer-BiGRU 5模型多变量时序预测一键对比 (多输入单输出)附Matlab代码
  • jenkins-持续集成