深入解析:基于51单片机电子称称重压力检测阈值报警系统设计
基于51单片机电子称称重压力检测阈值报警系统设计
1 功能介绍
本设计是一套基于STC89C52单片机的电子称重系统,集成了LCD1602液晶显示电路、HX711称重传感器电路、蜂鸣器报警电路、按键电路和电源电路。系统主要用于实现重量的实时采集、显示与超重报警,并支持阈值设置和掉电保存功能。
其主要功能如下:
- 实时重量显示:LCD1602液晶屏实时显示当前重量和用户设定的报警阈值。
- 阈值设置功能:用户通过按键设置报警阈值,范围为0–5000g,满足日常称重和检测需求。
- 超重报警:当实际重量超过设定阈值时,系统自动驱动蜂鸣器发出报警声。
- 高精度称重:采用HX711称重传感器模块,量程为0–5kg,转换精度高,能够满足小范围高精度测量。
- 掉电数据保存:设置的阈值存储于EEPROM中,即便系统掉电重启后也能保留用户设定数据,避免频繁设置的麻烦。
该系统适用于家庭、实验室、小型商业场合的称重场景,同时具有良好的学习和实验价值,能够帮助电子技术初学者掌握单片机与传感器结合的应用开发方法。
2 系统电路设计
系统电路由多个功能模块组成,下面分别进行详细介绍。
2.1 STC89C52单片机电路
STC89C52单片机是本设计的核心控制单元,基于8051内核,具备丰富的I/O接口,能够轻松实现对液晶显示、传感器数据采集、按键输入和蜂鸣器输出的综合控制。其主要作用包括:
- 接收HX711传感器传输的重量数据;
- 驱动LCD1602液晶显示模块;
- 处理用户按键输入,实现阈值调整;
- 控制蜂鸣器输出报警信号;
- 调用EEPROM存储模块,实现掉电数据保存。
单片机电路需要外接晶振、复位电路和电源管理电路,保证其正常稳定运行。
2.2 LCD1602液晶显示电路
LCD1602是一款常用的字符型液晶显示模块,能够显示两行,每行16个字符。系统中LCD1602用于实时显示两类信息:
- 第一行显示称重传感器采集的实时重量数据,单位为克(g);
- 第二行显示当前用户设置的报警阈值。
通过单片机的I/O端口与LCD1602相连,采用4位数据通信方式,减少了占用引脚数量,同时满足显示需求。
2.3 HX711称重传感器电路
HX711是专用于称重系统的高精度24位A/D转换器模块,能够将传感器输出的微弱模拟电压信号转换为数字信号,并传送给单片机进行处理。其主要特性包括:
- 内部集成稳压电路与时钟电路,外围元件少,简化了电路设计;
- 高分辨率,能够满足0–5000g的重量采集精度要求;
- 与单片机的接口仅需两根信号线(DT和SCK),通信简单可靠。
HX711模块与应变片式传感器结合,可实现稳定精准的重量测量。
2.4 蜂鸣器报警电路
蜂鸣器电路由单片机直接驱动。当检测到实际重量超过用户设定的阈值时,单片机输出高电平信号,蜂鸣器发出报警声,提醒用户重量已超出设定范围。蜂鸣器选用有源蜂鸣器,电路简单,可靠性高。
2.5 按键电路
系统设置有两个按键:
- 增加键:用于增加报警阈值;
- 减少键:用于降低报警阈值。
按键采用独立式接法,每个按键均通过一个I/O口与单片机连接。软件程序中设计了消抖处理机制,保证用户操作的准确性和稳定性。
2.6 电源电路
系统统一采用+5V直流供电,保证STC89C52单片机、LCD1602液晶、HX711模块以及蜂鸣器等器件正常运行。为了提升稳定性,电源电路增加了滤波电容和稳压芯片,以减少电压波动对系统工作的影响。
3 程序设计
程序设计是实现系统功能的核心部分,涵盖初始化、重量采集、阈值设置、LCD显示、报警控制和EEPROM存储。
3.1 主程序框架
主程序流程如下:
- 系统初始化,包括LCD、HX711、EEPROM、蜂鸣器和按键;
- 循环读取HX711传感器数据,计算重量;
- 显示重量和阈值信息;
- 检测重量与阈值的比较结果,决定是否触发报警;
- 处理按键输入,调整阈值,并存储到EEPROM。
#include <reg52.h>#include "lcd1602.h"#include "hx711.h"#include "eeprom.h"unsigned long weight = 0;// 当前重量unsigned int threshold = 1000;// 默认阈值1000gvoid main() {LCD_Init();HX711_Init();EEPROM_Init();threshold = EEPROM_Read(0x00);// 掉电数据恢复while(1) {weight = HX711_Read();LCD_ShowString(1,1,"Weight:");LCD_ShowNum(1,8,weight,5);LCD_ShowString(2,1,"Thresh:");LCD_ShowNum(2,8,threshold,5);if(weight > threshold) {P2 = 0x01;// 蜂鸣器报警} else {P2 = 0x00;// 关闭蜂鸣器}Key_Scan();// 按键处理}}
3.2 HX711数据采集程序
HX711通过时钟信号与单片机通信,采集重量数据。
#include <reg52.h>sbit HX711_DT = P3^2;sbit HX711_SCK = P3^3;long HX711_Read(void) {long count=0;unsigned char i;HX711_DT=1;HX711_SCK=0;while(HX711_DT);for(i=0;i<24;i++) {HX711_SCK=1;count=count<<1;HX711_SCK=0;if(HX711_DT) count++;}HX711_SCK=1;count=count^0x800000;HX711_SCK=0;return(count/100);// 转换为克}
3.3 LCD1602显示程序
LCD用于显示实时重量和阈值信息:
void LCD_Init() {
LCD_WriteCmd(0x38);
LCD_WriteCmd(0x0C);
LCD_WriteCmd(0x06);
LCD_WriteCmd(0x01);
}
void LCD_ShowNum(unsigned char row, unsigned char col, unsigned int num, unsigned char len) {
unsigned char i;
LCD_SetCursor(row,col);
for(i=len;i>
0;i--) {
LCD_WriteData(num/10000%10+'0');
}
}
3.4 按键设置与EEPROM存储
按键用于调整报警阈值,数据存储在EEPROM中。
sbit KEY_UP = P1^0;
sbit KEY_DOWN = P1^1;
void Key_Scan(void) {
if(KEY_UP==0) {
threshold += 10;
EEPROM_Write(0x00, threshold);
while(KEY_UP==0);
}
if(KEY_DOWN==0) {
if(threshold >
10) threshold -= 10;
EEPROM_Write(0x00, threshold);
while(KEY_DOWN==0);
}
}
EEPROM存储读写函数:
unsigned int EEPROM_Read(unsigned char addr) {
return *((unsigned int code*)addr);
}
void EEPROM_Write(unsigned char addr, unsigned int dat) {
unsigned int code *p = (unsigned int code*)addr;
*p = dat;
}
4 总结
本设计利用STC89C52单片机结合HX711高精度称重模块、LCD1602液晶显示、蜂鸣器和EEPROM,构建了一套功能完整的电子称重系统。系统能够实现实时重量采集与显示、阈值设置与报警、掉电数据保存等功能,具有电路简单、实用性强、稳定性高等优点。
该系统不仅适合日常生活和实验室场景的称重与安全提醒,也为电子技术学习者提供了一个综合性较强的单片机应用案例,有助于掌握传感器数据采集、阈值判断、报警处理以及数据存储等核心技术。
相关文章:
深入解析:基于51单片机电子称称重压力检测阈值报警系统设计
深入解析:基于51单片机电子称称重压力检测阈值报警系统设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New",…...
手撕大模型|KVCache 原理及代码解析
在大型语言模型(LLM)的推理过程中,KV Cache 是一项关键技术,它通过缓存中间计算结果显著提升了模型的运行效率。本文将深入解析 KV Cache 的工作原理、实现方式,并通过代码示例展示其在实际应用中的效果。 一、为什么需要 KV Cache? 在 Transformer 进行自回归推理(如文…...
Kuby免疫学读书笔记01——造血干细胞
造血干细胞(HSC, Hematopoietic stem cell) 血细胞的起源造血干细胞位置骨髓(主要) 脾和肝(少量)分裂与分化正常状态多部份沉默 小部分分裂并分化 分裂得到的daughter cells部分依旧保持分裂分化潜力 另一部分分化为祖细胞,自我更新能力下降,并更倾向于分化为血细胞感染状态和…...
微信群机器人开发
使用微信云pad协议来开发微信机器人,可以开发的项目很多,例如一些娱乐机器人、云发单系统,私域流量的智能管理和营销拓客,还有一些自动采集和发朋友圈的云端系统等。每个行业都有需求这样的系统应用,在线教育、金融、电商已经一些个人微商应用。 可开发的功能包括但不限于…...
动态规划和马尔可夫决策对比
二、三大关键维度的效果对比 1. 问题适配性:动态规划适配 “简单线性流程”,MDP 适配 “复杂网状流程” 动态规划的优势在于 “处理线性、低维度的多阶段决策”,MDP 的优势在于 “处理多维、网状的动态决策”,二者在论文场景中的适配效果差异显著:动态规划在问题二中的适配…...
20250913 之所思 - 人生如梦
20250913 之所思这一周发生了太多的事,连续两晚彻夜失眠,咳嗽不止,但是工作又特别忙,没有时间和精力来复盘,今天身体稍微恢复了一点,好好整理一下9.9日晚上十点,软件刚刚发出来,同事们刚刚下班,结果某人说客户那边今天测试发现了两个严重的问题,一定要今天解决,并且…...
电视剧和综艺
综艺团建不能停电视机春色寄情人 爱情剧...
天地图编辑多边形和折线时,双击删除编辑点
天地图的编辑不支持删除编辑点的操作,于是研究写了一个。 // 使用 lodash 的防抖函数,防止双击时触发两次 const removeDotEventListener = debounce((e: T.MapEvent) => {// 获取被点击的目标// @ts-ignoreconst classList: DOMTokenList = e.originalEvent.target.class…...
Codeforces Round 1049 (Div. 2)
这场质量非常高。 A 我像区,我怎么卡 A 卡那么久。 睡眠不足会导致思路不清晰。这种题显然应该考虑所有位置不正确的字符。 对于一个在 \(0\) 位置上的 \(1\) 一定有一个与它未匹配的 \(0\),考虑能否通过一次操作将它们归位。 对于操作我们显然应该选择一个未归位的 \(0\) 和…...
POCamp 2023
P14011 [POCamp 2023] 珿求 / bootfall 神人题目。 令 \(A\) 为当前选择 \(a\) 的和,\(D\) 同理。我们要尽量让 \(\max(0, A - D) > \max(0, A - D)\)。 分类讨论,发现当 \(A - D \leq 0\) 且 \(A - D \leq 0\) 的时候一定平局,然后是两种特殊情况,若 \(A - D < 0 \w…...
美团AI面试
1、什么是正向代理和反向代理?两者有什么区别? 2、正向代理的作用时候,使用正向代理去访问被屏蔽的网站会怎样 3、JMM是什么,volintile的作用是什么 3、多线程中原子性的怎么实现的 4、数据库的事务分别是什么,他们解决了什么问题 5、可重复读是怎么实现的,他是怎么解决幻…...
技术面:Spring (bean的生命周期、创建方式、注入方式、作用域)
Spring Bean的生命周期是什么样的? 在Spring容器里一个Bean的从创建到销毁一般都是经历了以下几个阶段: 定义阶段(Bean元信息配置)=>实例化阶段(创建Bean对象)=>初始化阶段(执行初始化逻辑)=>使用阶段(Bean可用)=>销毁阶段(释放资源)定义阶段(BeanDef…...
马尔可夫决策
马尔可夫决策 马尔可夫决策:随机动态环境下序贯决策,其核心假设是 “马尔可夫性”—— 即 “未来状态的概率分布仅依赖于当前状态,与当前状态之前的历史无关”。MDP 的最终目标是找到一套最优策略 π(π: S→A,即 “在每个状态下选择哪个动作” 的规则) 马尔可夫决策可以…...
十九、指令流水线的基本概念
目录一、核心思想:类比工厂装配线二、一个经典的5级流水线模型(RISC)三、流水线的可视化:时空图四、流水线的优势五、流水线的挑战: hazards(冒险/冲突)总结指令流水线是一个计算机体系结构中的核心概念,旨在提高处理器的效率和吞吐率。 一、核心思想:类比工厂装配线 …...
本地布署Diffusers库 实现文生图 - yi
本地布署Diffusers库 实现文生图本地布署Diffusers库实现文生图 本次随笔,记录开源Python库Diffusers库的使用。 Diffusers库由Hugging Face维护,拥有活跃的社区和丰富的文档。Diffusers库是专注于扩散模型(Diffusion Models)的开源Python库。Diffusers库多任务支持:支…...
【光照】[光照模型]发展里程碑时间线
【从UnityURP开始探索游戏渲染】专栏-直达图形学光照模型发展史:技术演进与里程碑 section 基础奠基期(1960s-1970s)1967 : Lambert模型(漫反射) - Bui Tuong Phong提出 1971 : Gouraud着色 - Henri Gouraud发明顶点插值着色 1973 : Warnock算法 - 首次实现隐藏面消除 1975…...
算法设计作业-week1
任务一:企业内部编码规范参考 https://max.book118.com/html/2020/1120/8077006051003017.shtm任务二:《数学之美》阅读 读《数学之美》第二章:自然语言处理从规则到统计的启示 在阅读吴军博士《数学之美》第二章后,我对自然语言处理(NLP)的发展历程有了深刻的认识。这一…...
git merge
git merge :合并分支,从指定的分支名合并到当前所处的分支上。...
C语言学习
file:/D:/study/C语言/test1.c 现在开始学习c语言了,感觉跟java的大差不差,之后一段时间就学他吧。还有就是想吐槽一下devc的功能性有点差,连把代码文件拖拽到这里都不行。...
Ubuntu 的剪贴板
在 Ubuntu 上可以安装 copyq: sudo apt install copyq然后启动 copyq: copyqUbuntu 默认 Win+V 快捷键是打开通知,可以进行修改:为 copyq 添加快捷键,命令必须是 copyq toggle,名称可以随意。...
IDAPro--MCP详细配置教程
IDAPro--MCP详细配置教程 本文介绍如何配置idamcp实现ai自动化分析二进制文件,用于解决CTF竞赛中reverse与pwn类型的题目 IDA版本:9.1专业版 mcp:cherrystudio,lmstudio(本地部署ai) 一、项目简介 项目地址:https://github.com/mrexodia/ida-pro-mcp 功能:与IDApro实现联动…...
安全不是一个功能-而是一个地基
GitHub 主页 安全不是一个功能,而是一个地基 🔒🏗️ 我入行大概十年的时候,经历过一次让我至今心有余悸的安全事件。我们当时在为一个金融客户做一套在线交易系统。一个年轻的程序员,在写一个查询历史订单的接口时,为了图方便,直接用字符串拼接了 SQL 语句。是的,你没…...
你的测试又慢又不可靠-因为你测错了东西
GitHub 主页 你的测试又慢又不可靠?因为你测错了东西!🧪➡️✅ “我们应该写更多的测试。” 在每一个技术会议上,这句话都会被反复提起,就像一句神圣的咒语。人人都点头称是,人人都知道这是“正确”的。但一回到座位上,很多人脸上的表情就变得痛苦起来。😫 为什么?因…...
别再猜了-开始测量吧-一份实用的Web性能指南
GitHub 主页 别再猜了,开始测量吧:一份实用的 Web 性能指南 又是一年“黑五”,凌晨三点,我的手机像疯了一样尖叫起来。😱 不是闹钟,是监控警报。我们的主打电商服务,那个我们花了半年心血构建的系统,在流量洪峰面前,像纸糊的一样,彻底崩溃了。CPU 100%,内存溢出,日…...
你的中间件一团糟-是时候修复它了-️
GitHub 主页 中间件(Middleware)。这是 Web 开发中最强大的概念之一,也是最容易被滥用的概念之一。理论上,这是一个美妙的想法:一个由可复用组件构成的管道,可以检查、转换或终止请求。但在实践中,在我多年来使用过的许多框架中,它变成了一团乱麻,函数调用函数,控制流…...
文件不只是数据-一份稳健的文件处理指南
GitHub 主页 文件不只是数据:一份稳健的文件处理指南 📁💾 我永远忘不了那个下午。我们刚刚上线了一个允许用户上传个人头像的新功能。一切看起来都很完美。直到一个用户,出于无心或有意,尝试上传了一个他电脑上 2GB 大小的电影文件。🎬 服务器的内存监控瞬间飙红,CP…...
告别框架臃肿-我如何在不牺牲性能的情况下重新发现简单之美
GitHub 主页 我写了四十多年的代码。我刚开始编程的时候,打孔卡还是主流,互联网还只是大学实验室里一个遥不可及的梦想。我见证了无数语言和框架的兴衰起落,如同王朝更迭。我曾驾驭过技术的浪潮,也曾目睹它们在现实的海岸上撞得粉碎。如果说我从中学到了什么,那就是复杂性…...
超越-env-一份成熟的应用程序配置指南
GitHub 主页 超越.env:一份成熟的应用程序配置指南 🧐 让我给你讲个鬼故事。👻 几年前,我们团队的一个新来的小伙子,在一次紧急的线上热修复中,不小心把一个配置项搞错了。他本该把数据库地址指向生产环境的只读副本,结果,他忘了在生产服务器上更新那个小小的.env文件…...
20250913 NFLS 模拟赛 部分题目
简单倍增 #include <bits/stdc++.h> using namespace std; using ll = long long;int main() {freopen("fountain.in","r",stdin);freopen("fountain.out","w",stdout);ios::sync_with_stdio(false);cin.tie(nullptr);int n, q;…...
帐号内容定位
帐号定位原则和逻辑...
基于YOLOv8的茶叶病害识别项目|完整源码数据集+图形化界面+训练教程
本文介绍了一个基于 YOLOv8 的茶叶病害识别系统,从数据集构建、模型训练到 PyQt5 可视化界面实现,完整展示了茶叶病害检测的开发流程。该系统不仅能够识别 8类茶叶病虫害及健康状态,还具备 高精度、实时性强、操作简单 等特点,适用于科研、茶园管理以及智能农业应用场景。未…...
2025第三届“陇剑杯”网络安全大赛初赛-夺旗闯关赛wp
应急 应急响应siem百度网盘:通过网盘分享的文件:siem-加密.rar链接: https://pan.baidu.com/s/1wtfdSY2hThOAzVRGr9jwcg 提取码: e86t 解压密码:x2p1nsWFG4KfXp5BXegb题目描述:题目描述在比赛过程中变了一次,具体如下:初始:某企业内网被攻破了,请分析出问题并给出正确的…...
《Python数据结构与算法分析》第二弹《2.2.2 异序词检测示例》
2.2.2 异序词检测示例 要展示不同数量级的算法,一个好例子就是经典的异序词检测问题。如果一个字符串只是重排了另一个字符串的字符,那么这个字符串就是另一个的异序词,比如heart与earth,以及python与typhon。为了简化问题,假设要检查的两个字符串长度相同,并且都是由26个…...
深入解析:柱状图(Vue3)
深入解析:柱状图(Vue3)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size…...
计算机毕业设计springboot基于微信小程序的手机点餐软件 基于Spring Boot框架的微信小程序点餐体系设计与实现 微信小脚本点餐应用开发:Spring Boot技术的应用
计算机毕业设计springboot基于微信小程序的手机点餐软件 基于Spring Boot框架的微信小程序点餐体系设计与实现 微信小脚本点餐应用开发:Spring Boot技术的应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…...
二叉树的相关知识
二叉树的相关知识 问题一:知道二叉树的后序遍历和中序遍历,如何得到前序遍历 我的想法:遍历后序序列,找到根结点在前序序列中找到你刚刚找到的根结点根据找到的根结点,把前序列表中的序列分为两部分,一部分为根结点的左子树,另一部分为根结点的右子树分别遍历左子树和右…...
原假设的选择准则:总损失视角的假设检验
img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 在假设检验中,原假设(𝐻0)与备择假设(𝐻1)的设定是统计推断的核心。原假设通常代表“无效应”或“现状维持”,提供可操作的基准,例如总体均值等于…...
dfs序基础+树上差分
dfs序基础1 给一棵有根树,这棵树由编号为 \(1\dots N\) 的 \(N\) 个结点组成。根结点的编号为 \(R\)。每个结点都有一个权值,结点 \(i\) 的权值为 \(v_i\)。 接下来有 \(M\) 组操作,操作分为两类:1 a x,表示将结点 \(a\) 的权值增加 \(x\); 2 a,表示求结点 \(a\) 的子树…...
Python中的if __name__ == __main__是什么?
引言 当初学习Python编程语言时,经常会遇到一段代码:if name == "main"。初学者可能会疑惑这段代码的作用和意义是什么,为什么要这样写。本文将对这段代码进行详细地解析,并提供代码示例,帮助初学者更好地理解这一概念。 if name == "main"的基本概念…...
钻石
目前抖音福袋扭蛋机的用户产出的DY钻石比较多,我们努力撮合商家和散户之间的交易,中间向商家收取一定的费用和少许保证金(为保证交易安全)。 收购价格为每100钻石7元,不封顶。比如100钻石/7元,1000钻石/70元,10000钻石/700元。打赏给我们指定的直播间即可。 需要出售和收…...
随机游走理解
随机游走理解赌徒破产定理:为什么赌博最终会归零 引言 在概率论中,"赌徒破产定理"(Gamblers Ruin)是一个经典的结果,它表明在一个公平的赌博游戏中,如果赌徒拥有有限的本金而庄家拥有无限的资金,赌徒最终破产的概率是1。即使游戏是公平的(胜负概率各50%,赔率…...
【基于协同过滤的校园二手交易强大的平台】
【基于协同过滤的校园二手交易强大的平台】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
对于神经网络来说,我们已经习惯了层状网络的思维:数据进来,经过第一层,然后第二层,第三层,最后输出结果。这个过程很像流水线,每一步都是离散的。 但是现实世界的变化是连续的,比如烧开水,谁的温度不是从30度直接跳到40度,而是平滑的上生。球从山坡滚下来速度也是渐渐…...
PKU_Compiler
from pixiv 资源NJU Compiler 课程 中科大 Compiler 课程 LLVM IR Github book教程 Koopa IR 框架 PKU 讲义本体 Github仓库Lv0 环境配置 Docker 获取编译实践的镜像: sudo docker pull maxxing/compiler-devdocker安装配置docker镜像vim /etc/docker/daemon.json{"regist…...
lc1026-节点与其祖先之间的最大差值
难度:中等(伪境)题目描述给定一棵二叉树,找到最大的“节点与其祖先节点的差值的绝对值”示例 输入:root = [8,3,10,1,6,null,14,null,null,4,7,13] 输出:7 解释:8/ \3 10/ \ \ 1 6 14/ \ /4 7 13|8 - 1| = 7输入:root = [1,null,2,null,0,3] 输出:3 解释…...
如何绕过谷歌反爬策略爬取搜索结果
背景 尝试开发一个爬虫,绕过谷歌反爬策略并获取谷歌搜索的结果。 技术栈docker管理开发环境,操作系统为centos7 puppeteer-extra-plugin-stealth插件 + chromium浏览器模拟真实用户 xvfb模拟图形界面环境 相关的实现代码很多,这里不再赘述,只讲解决问题的过程。问题 开发完…...
[SSL]
有免费的SSL证书可以使用,并且通常需要定时更新 ,比较知名的免费SSL证书颁发机构是Lets Encrypt Lets Encrypt特点免费且自动化:提供的SSL证书完全免费,并且支持自动化申请、安装和续期,大大降低了网站部署HTTPS的门槛。 安全性高:所颁发的证书符合行业标准,能提供强大的…...
求细胞数量
2025.9.13 曹立 题目内容 一矩形阵列由数字 \(0\) 到 \(9\) 组成,数字 \(1\) 到 \(9\) 代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数 输入描述 第一行两个整数代表矩阵大小 \(m\) 和 \(m\) 接下来 \(m\) 行,每行一个长度为…...
你的部署流程已然落伍-热重启的失传艺术
GitHub 主页 你的部署流程已然落伍:热重启的失传艺术 我依然清晰地记得那个周五的午夜。我,一个本该在家享受周末的四十多岁男人,却身处冰冷的机房,耳边是服务器风扇的嗡嗡声,眼前是终端上不断滚动的错误日志。一次本应“简单”的版本更新,变成了一场灾难。服务起不来,回…...
[豪の学习笔记] 软考中级备考 基础复习#9
系统设计基本原理、系统总体结构设计、数据流图跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲 Chapter 9 - 结构化开发方法(数据流图) 1 - 系统设计基本原理 抽象 抽象是一种设计技术,重点说明一个实体的本质方面,而忽略或掩盖不是很重要或非本质的方…...