基于fpga的温度采集系统工程max6675驱动源码可上传到电脑上位机软件绘制温度曲线 fpga代码、和QT控制软件是工程代码该工程包含FPGA端硬件驱动代码与PC端上位机软件代码两大部分实现了温度采集、实时显示、数据存储及温度曲线绘制功能核心围绕MAX6675温度传感器展开适配Cyclone IV E系列FPGA芯片采用Qt框架开发上位机界面。一、FPGA端代码max6675_disp目录1. 工程配置文件max6675disp.qpfQuartus II项目配置文件记录工程基础信息包括使用Quartus II 13.1版本项目创建时间为2020年2月29日项目版本标识为“max6675disp”明确版权归属Altera Corporation限定工具仅用于Altera生产的逻辑器件编程。max6675_disp.qsf项目设置文件定义硬件参数与文件依赖关键配置如下表配置项具体参数说明FPGA芯片型号Cyclone IV E系列EP4CE10F17C8确定硬件适配的核心芯片顶层模块max6675_disp工程逻辑入口模块输入输出引脚分配如sysclk时钟接PINE1sysrstn复位接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系统复位低电平有效、miso1MAX6675的SPI从机输出信号输出cs1MAX6675片选信号、sck1MAX6675时钟信号、sel[5:0]数码管位选信号、seg_led[7:0]数码管段选信号。模块例化数码管驱动模块seg_led接收温度数据控制6位数码管显示MAX6675驱动模块max6675_dri生成传感器控制信号采集并转换温度数据。2温度驱动模块max6675_dri.v核心功能实现3路MAX6675传感器的SPI通信控制、温度数据采集与转换支持0.5秒间隔的周期性采集。关键逻辑时钟分频将50MHz系统时钟分频为1MHzclk_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~60sY轴为温度单位°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 温度TempXX.X”文件控制支持通过“清空”按钮pushButton删除文件历史数据通过flag标记控制文件清空存储时自动追加新数据不覆盖历史记录。三、系统整体工作流程FPGA端- 系统上电后sysrstn复位信号释放max6675_dri模块开始分频生成1MHz时钟- 每0.5秒分时采集3路MAX6675传感器数据转换为放大100倍的温度值- 数码管模块接收温度数据动态扫描显示如25.5°C显示为“25.5”。PC端- 上位机启动后自动枚举可用串口用户选择串口与波特率并打开- 串口接收FPGA发送的十六进制温度数据转换为实际温度值- 绘图线程实时绘制温度曲线主窗口显示曲线并将数据写入文本文件- 用户可通过按钮清空历史数据关闭窗口时自动停止绘图线程与串口通信。四、核心特点与适配性多通道采集FPGA端支持3路MAX6675可同时采集多个点位温度实时性0.5秒采集间隔500ms曲线更新满足中低速温度监测场景兼容性FPGA适配Cyclone IV E系列芯片上位机支持Windows系统Qt跨平台特性可扩展至Linux易用性上位机自动枚举串口支持数据可视化与历史记录操作简洁。基于fpga的温度采集系统工程max6675驱动源码可上传到电脑上位机软件绘制温度曲线 fpga代码、和QT控制软件是工程代码