基于FPGA的DS18B20温度监控与管理系统:实时显示温度,按键查看历史数据并存储温度点,超...

基于FPGA的 DS18B20多功能温度显示 实现功能: 1.实时温度显示在数码管上,更新速率1-2s一次 2.按下按键显示最近30s内的最高温和最低温 不包含板子, 3.按下按键可以存储当前温度,最多存5个 4.超过温度报警

最近在搞一个挺有意思的FPGA温度显示项目,用DS18B20数字温度传感器搭配数码管玩出了新花样。这种单总线协议的温度传感器用起来有点小脾气,不过搞定了之后发现FPGA驱动起来还挺带感的。

先上段单总线通信的状态机核心代码:

always@(posedge clk_1mhz) begin case(state) 0: begin // 初始化 if(cnt == 750_000) begin cnt <= 0; state <= 1; end else cnt <= cnt + 1; end 1: begin // 发送跳过ROM命令 if(bit_cnt == 8) begin state <= 2; bit_cnt <= 0; end else begin tx_data <= 8'hCC; // 发送单字节代码... end end // ...后续状态省略 endcase end

这个状态机负责和DS18B20的通信握手。注意时钟用1MHz分频得来,实测发现这个频率下通信最稳定。状态0做传感器复位操作,拉低总线至少480us。这里用计数器实现时间控制比用定时器模块更节省资源。

数码管显示部分玩了个小花招,把温度数据拆成三个数码管显示:

// 温度数据处理 wire [11:0] temp_data = {rx_buffer[1], rx_buffer[0]}; wire [15:0] temp_bcd = bin2bcd(temp_data[11:4]); // 动态扫描模块 always@(posedge scan_clk) begin case(sel) 2'b00: begin seg_data <= temp_bcd[11:8]; // 十位 seg_point <= 1'b0; end 2'b01: begin seg_data <= temp_bcd[7:4]; // 个位 seg_point <= 1'b1; // 点亮小数点 end 2'b10: begin seg_data <= temp_bcd[3:0]; // 小数位 seg_point <= 1'b0; end endcase sel <= sel + 1; end

这里用bin2bcd自定义函数把二进制温度转成BCD码,注意DS18B20的温度数据是12位分辨率,所以只取高8位整数部分。小数位的处理可以自己决定要不要显示,实测发现0.5度精度对大多数场景够用了。

基于FPGA的 DS18B20多功能温度显示 实现功能: 1.实时温度显示在数码管上,更新速率1-2s一次 2.按下按键显示最近30s内的最高温和最低温 不包含板子, 3.按下按键可以存储当前温度,最多存5个 4.超过温度报警

按键处理模块是功能切换的核心:

// 按键状态机 always@(posedge clk) begin case(key_state) 0: begin if(key_pressed) begin key_timer <= 0; key_state <= 1; end end 1: begin if(key_timer == 200_000) begin // 20ms消抖 if(key_hold) begin key_state <= 2; // 触发功能切换 mode <= (mode == 3'd4) ? 3'd0 : mode + 1; end else key_state <= 0; end else key_timer <= key_timer + 1; end // ...状态处理省略 endcase end

这里用时间戳方式实现按键长短按判断。消抖计数器跑在10kHz时钟下,实测比用机械消抖电路更可靠。模式切换时要注意数码管显示内容的切换逻辑,特别是最高最低温需要从环形缓冲区里读取历史数据。

温度存储用了简单的FIFO结构:

reg [7:0] temp_mem [0:4]; reg [2:0] mem_ptr; always@(posedge save_trigger) begin if(mem_ptr <5) begin temp_mem[mem_ptr] <= current_temp; mem_ptr <= mem_ptr +1; end else begin // 循环覆盖旧数据 temp_mem[0] <= temp_mem[1]; temp_mem[1] <= temp_mem[2]; // ...数据移位操作 temp_mem[4] <= current_temp; end end

这里用指针循环覆盖的设计比用真正的FIFO更节省资源,毕竟只需要存5个数据。注意存储触发条件要放在按键处理模块里,避免误触发。

报警模块就比较直接了:

always@(posedge clk) begin if(current_temp > 38 || current_temp <5) begin alarm_led <= 1'b1; buzzer <= ~buzzer; // 产生方波报警声 end else begin alarm_led <= 1'b0; buzzer <= 1'b0; end end

阈值可以改成参数化设计,这里直接写死方便调试。蜂鸣器用PWM控制的话效果更好,不过方波实现起来最简单。

这个项目最坑的地方是单总线时序,建议调试时先用示波器抓波形,确保符合DS18B20的时序要求。数码管刷新率设在60Hz左右比较合适,肉眼看起来不会有闪烁感。最后实测效果挺有意思,按键切换时能看到温度数据像跑马灯一样在数码管上流转,报警时的蜂鸣器尖叫也够刺激——当然,别在图书馆玩这个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

奇灵·第八届AI短剧产业合作大会于1月9日深圳圆满落幕

1月9日&#xff0c;由传商、短剧右先生、短剧新势力联合主办&#xff0c;短剧探访承办&#xff0c;欧美片场协办&#xff0c;上海东方智媒城、Midjourney、马栏山音视频实验室、阿里云快快网络、漫屋、竖店短剧基地、橙调文化等机构共同支持的“奇灵第八届AI短剧产业合作大会”…

采购系统值不值得上?先看它能不能接住这几件日常工作

干采购的兄弟们&#xff0c;是不是经常被供应商催单到怀疑人生&#xff1f;合同漏签了&#xff0c;客户投诉上门库存对不上&#xff0c;月底盘点直接手忙脚乱审批流程卡在领导手机上&#xff0c;等得花儿都谢了我见过太多采购同事&#xff0c;半夜还在群里问谁有空批个单子&…

现代攻防下的网络安全防护:关键技术演进与核心场景实战解析

1&#xff1a;网络基础知识 Internet通过TCP/IP协议将遍布在全世界各地的计算机互联&#xff0c;从而形成超大的计算机网络。 2&#xff1a; 3&#xff1a;网络协议层模型 4&#xff1a;通信网络地址的发出点为源地址&#xff0c;接收点为目的地址&#xff1b; 在通信网络中&…

救命神器10个AI论文写作软件,助本科生搞定毕业论文!

救命神器10个AI论文写作软件&#xff0c;助本科生搞定毕业论文&#xff01; 论文写作的救星&#xff0c;AI 工具正在改变你的学习方式 在当今学术写作日益智能化的背景下&#xff0c;AI 工具正逐步成为学生群体中不可或缺的得力助手。尤其对于本科生而言&#xff0c;面对繁重的…

Minimax大模型算法岗面试全攻略:从基础到进阶,收藏这份超详细面经

本文分享了minimax大模型算法岗面试的详细经历&#xff0c;涵盖一面和二面的各类问题&#xff0c;包括大模型基础知识、项目经验、算法实现等。面试涉及位置编码、预训练推理、超长上下文处理、PPO与DPO算法对比等内容&#xff0c;还包含编程题。一面 自我介绍和项目介绍介绍一…

前后端分离专辑鉴赏网站系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着互联网技术的快速发展&#xff0c;数字音乐产业迎来了前所未有的增长&#xff0c;用户对音乐资源的获取和鉴赏需求日益多样化。传统的音乐网站通常采用前后端耦合的架构&#xff0c;导致系统扩展性差、维护成本高&#xff0c;难以满足现代用户对高性能、高交互性的需求…

基于SpringBoot与微信小程序的文化旅游小程序系统设计与实现

一、系统开发背景与意义 当前文化旅游产业蓬勃发展&#xff0c;但游客在出行中常面临信息分散、体验单一等问题。传统旅游信息获取依赖旅游APP或线下攻略&#xff0c;存在下载门槛高、信息更新不及时等弊端&#xff0c;且难以深度融合文化元素&#xff0c;无法满足游客对文化体…

AI大模型工程架构全解析:从零基础入门到实战精通,一篇就够了!

文章揭示了AI智能体落地的真相&#xff1a;90%工作是工程架构设计&#xff0c;仅10%涉及大模型本身。详细拆解了智能体落地的14个层次&#xff0c;包括算力、基础设施、数据库、ETL、基础模型等&#xff0c;强调企业需全链路打磨而非单点突破。大模型虽是点睛之笔&#xff0c;但…

云边协同架构下:分布式 IDC 集群温湿度远程运维监控方案

原标题&#xff1a;机房智能化温湿度监控系统整体解决方案机房温湿度监控一、方案概述1. 建设目标• 实现机房温湿度 724 小时不间断监测&#xff0c;温度精度 0.2℃、湿度精度 2% RH&#xff0c;满足 GB 50174-2017 标准&#xff08;温度 18~27℃、湿度 40%~60% RH&#xff09…

收藏!程序员必看:5步转型AI大模型开发者,未来5年最值钱的技术路线

兄弟们&#xff01;现在用Cursor写代码确实爽&#xff0c;但你知道这玩意其实是慢性毒药吗&#xff1f; 当编程变得和用Word一样简单&#xff0c;老板还需要花钱雇你写CRUD吗&#xff1f; 未来5年真正值钱的程序员&#xff0c;都是懂大模型原理的程序员&#xff01; 随着模型…

虎贲等考 AI:重新定义智能学术写作,一站式攻克论文全流程难题

在学术研究与论文写作的赛道上&#xff0c;无数科研人、毕业生都曾陷入 “选题迷茫、文献繁杂、查重焦虑、答辩慌乱” 的困境。而虎贲等考 AI 智能写作平台&#xff08;官网&#xff1a;https://www.aihbdk.com/&#xff09;的横空出世&#xff0c;彻底打破了传统论文写作的低效…

SpringBoot+Vue 学生评奖评优管理系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着教育信息化的快速发展&#xff0c;高校学生评奖评优管理工作逐渐从传统纸质化向数字化、智能化转型。传统评奖评优流程中存在效率低、透明度不足、数据管理混乱等问题&#xff0c;亟需一套高效、公平、透明的管理系统来优化流程。学生评奖评优管理系统平台旨在通过信息…

Java版LeetCode热题100之「排序链表」详解

Java版LeetCode热题100之「排序链表」详解 本文约9200字&#xff0c;全面深入剖析 LeetCode 第148题《排序链表》。涵盖题目解析、两种归并排序解法&#xff08;自顶向下 & 自底向上&#xff09;、复杂度分析、面试高频问答、实际开发应用场景、相关题目推荐等&#xff0c;…

改拉刚才这个需求,卡在开机log里,应该过滤什么关键字来看日志找原因?

既然卡在开机 Logo(Bootloop)或者无法进入桌面,通常是因为 Settings(设置)应用或者 SystemServer 在反复崩溃。 因为你修改的是 Settings 里的代码,而且是在初始化阶段(Dashboard 加载时)调用的,一旦这里抛出未捕获的异常,Settings 就会挂掉,导致桌面无法加载。 请…

中小企业设备管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着信息技术的快速发展&#xff0c;中小企业在设备管理方面面临诸多挑战&#xff0c;传统的手工记录和纸质管理方式效率低下且容易出错。设备管理系统的信息化成为提升企业运营效率的关键手段。通过构建一套高效的设备管理系统&#xff0c;企业可以实现设备的全生命周期管…

学Simulink——基础微电网场景实例:基于Simulink的主从控制策略在微电网中的应用仿真

目录 手把手教你学Simulink 一、引言:什么是“主从控制”?为什么它适合微电网? 二、系统整体架构 控制层级: 三、关键模块1:主单元 —— V/f 控制实现 原理: Simulink 实现步骤: 四、关键模块2:从单元 —— PQ 控制实现 原理: 控制流程: 五、关键模块3:并…

基于SpringBoot与微信小程序的小区蔬菜水果商城系统设计与实现

一、系统开发背景与意义 当前小区居民采购蔬菜水果时&#xff0c;常面临线下超市排队久、生鲜不新鲜&#xff0c;以及线上大平台配送慢、起送价高的问题&#xff0c;尤其对老人、上班族等群体不够友好。传统小区蔬果店也缺乏线上渠道&#xff0c;难以触达更多居民&#xff0c;经…

【毕业设计】SpringBoot+Vue+MySQL 专辑鉴赏网站平台源码+数据库+论文+部署文档

摘要 随着数字音乐产业的快速发展&#xff0c;音乐爱好者对专辑鉴赏的需求日益增长。传统的音乐鉴赏方式受限于时间和空间&#xff0c;难以满足用户对个性化、即时化内容的需求。专辑鉴赏网站平台通过整合音乐资源、用户评价和社交互动功能&#xff0c;为用户提供一站式的音乐体…

基于SpringBoot+Vue的创新创业教育中心项目申报管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 在高等教育快速发展的背景下&#xff0c;创新创业教育已成为培养学生综合素质的重要途径。然而&#xff0c;传统的项目申报管理仍依赖纸质材料或简单的电子表格&#xff0c;存在效率低下、数据易丢失、审批流程不透明等问题。为解决这些问题&#xff0c;设计并实现一套高效…

基于SpringBoot与微信小程序的智能瘦身小程序系统设计与实现

一、系统开发背景与意义 当前人们对健康瘦身需求日益增长&#xff0c;但普遍面临痛点&#xff1a;缺乏科学指导易盲目节食、运动计划不贴合自身情况、难以长期坚持。传统瘦身方式依赖线下私教或通用APP&#xff0c;前者成本高&#xff0c;后者无法满足个性化需求&#xff0c;导…