STC89C52驱动DS18B20:单总线协议深度解析与稳定测温实战
1. 项目缘起为什么还在用STC89C52和DS18B20最近在整理一些老项目的资料翻出来一个基于STC89C52和DS18B20的温度监测小模块。可能有人会问现在STM32、ESP32满天飞性能强、外设多、开发方便为什么还要去折腾这个“老古董”组合这不是在开技术倒车吗恰恰相反我认为对于初学者入门、对于特定低成本场景、对于理解底层硬件通信的本质这个组合依然有它不可替代的价值。STC89C52作为经典的51内核单片机结构简单寄存器少没有复杂的时钟树和总线架构你能把每一个IO口、每一个定时器周期都看得清清楚楚。而DS18B20这款单总线数字温度传感器更是学习时序通信的“活教材”。它只用一根线完成供电、数据收发和同步协议里包含了严格的复位、应答、读写时序要求。你搞定了它就相当于亲手打通了单片机与外部器件进行精确“对话”的任督二脉以后再接触I2C、SPI等协议会发现底层逻辑是相通的。这个项目的核心就是用最精简的硬件一根IO口线实现一个可靠的数字温度采集系统。过程中你会深刻体会到在资源受限的单片机世界里如何用软件去精准地模拟硬件时序如何与一个“不听话”指时序要求严格的外设进行稳定通信。这比在高级框架下调用现成的read_temperature()函数学到的东西要多得多。2. 核心器件与单线通信协议深度解析在动手写代码之前我们必须吃透两个核心DS18B20传感器本身以及它赖以生存的“单总线协议”。很多初学者读取温度不稳定、老是得到85℃默认值或者错误值根源往往是对协议的理解浮于表面。2.1 DS18B20不只是个温度计DS18B20的最大特点也是其设计精妙之处在于它将温度传感、ADC转换、协议处理全部集成在了一个三极管封装里。这意味着接口极简仅需三根线VCC GND DQ数据线甚至可以通过“寄生供电”模式只接DQ和GND两根线。数字输出直接输出数字量省去了单片机侧额外的ADC电路和软件滤波算法。精度可选支持9~12位的温度分辨率分辨率越高转换时间越长最长达750ms。它的内部有一个64位的激光ROM码作为全球唯一地址理论上可以在一条总线上挂载无数个DS18B20通过搜索ROM命令来逐一访问。但对于我们单点测温通常使用“跳过ROM”命令直接对总线上的唯一器件进行操作。注意DS18B20的DQ引脚是开漏输出。这意味着它只能主动将总线拉低输出0而不能主动拉高输出1。总线的高电平需要由上拉电阻来提供。因此在硬件电路上DQ线必须接一个4.7kΩ ~ 10kΩ的上拉电阻到VCC这是通信稳定的物理基础。很多仿真图里会省略这个电阻但在实际焊接中绝对不能少。2.2 单总线协议一场严格的时间“舞蹈”单总线协议的精髓在于所有通信都基于严格的时间槽。主机单片机通过控制产生低电平的时间长短来区分写“0”、写“1”、读数据以及最重要的复位和应答脉冲。我们可以把通信过程想象成单片机导演和DS18B20演员之间的一场双人舞导演必须按照精确的节拍发出指令演员才会做出正确的回应。1. 初始化序列复位与应答这是每次通信的开始目的是检查总线上是否有DS18B20器件存在并让其做好接收命令的准备。单片机动作导演喊“预备”》单片机将DQ线拉低至少480μs然后释放设置为输入模式由上拉电阻拉高。DS18B20响应演员回应“到”DS18B20检测到总线被释放后会主动拉低总线60~240μs以示应答。单片机检测单片机在释放总线后切换到输入模式并延时约60μs然后去读取DQ线的电平。如果读到低电平说明有器件应答如果一直是高电平则总线空闲或器件故障。这里有一个关键细节在STC89C52上IO口从输出模式切换到输入模式并不是瞬间完成的。在释放总线输出1后需要加入一个短暂的延时通常1~2μs等待IO口内部电路稳定再去读取否则极易读到错误的高电平误判为无器件。这是很多参考代码里容易忽略的一点。2. 写时序导演发出具体指令写一位数据无论是写“0”还是写“1”都由单片机发起一个至少60μs的低电平起始位开始。写“0”单片机拉低DQ线并持续保持低电平60~120μs然后释放。整个时间槽长度约120μs。写“1”单片机拉低DQ线但在15μs内迅速释放然后保持高电平直到时间槽结束。整个时间槽长度同样约120μs。关键点两个写周期之间必须有至少1μs的恢复时间。DS18B20会在单片机拉低总线后的15~60μs内对总线进行采样以确定是“0”还是“1”。3. 读时序导演听取演员汇报读一位数据也由单片机发起一个至少1μs的低电平起始位开始。单片机动作单片机拉低DQ线1~15μs然后必须立即释放总线并切换到输入模式。DS18B20响应如果DS18B20要输出“0”它会继续保持总线低电平如果输出“1”它则释放总线由上拉电阻拉高。单片机采样在起始位开始后的15μs内单片机必须完成对DQ线的采样。采样宜早不宜迟通常在拉低再释放后的延时5~10μs进行。关键点整个读时间槽也必须控制在60~120μs内完成之后单片机需要释放总线为下一次通信做准备。所有上述时间参数如480μs、60μs、15μs都有最小值和最大值限制。在STC89C52这种运行在11.0592MHz或12MHz下的单片机中一个机器周期是1μs或1.085μs用_nop_()空操作或简单的循环来延时精度是足够的。但必须用示波器或逻辑分析仪校准你的延时函数这是项目成功的基石。3. STC89C52的软件实现从延时函数到完整流程理解了协议我们就可以用C语言在KEIL环境下为STC89C52编写驱动程序了。代码的健壮性就藏在那些细微的延时和IO口操作顺序里。3.1 基础构建精确的微秒级延时STC89C52没有SysTick我们需要自己写一个基于循环的微秒延时函数。这里假设单片机使用11.0592MHz晶振标准串口波特率晶振其机器周期约为1.085μs。#include REGX52.H #include INTRINS.H // 用于_nop_() /** * brief 微秒级延时函数近似值需根据实际晶振校准 * param us: 延时的微秒数对于小us值此函数不精确适用于10us以上 */ void Delay_us(unsigned int us) { while (us--) { _nop_(); _nop_(); _nop_(); _nop_(); // 大约4.34us // 更精确的校准需要根据汇编指令周期计算 } } /** * brief 毫秒级延时函数 * param ms: 延时的毫秒数 */ void Delay_ms(unsigned int ms) { unsigned int i, j; for(i0; ims; i) for(j0; j114; j); // 针对11.0592MHz的近似1ms延时 }实操心得对于DS18B20协议中那些要求严格的15μs、60μs延时单纯用循环很难精确。一个更可靠的方法是使用_nop_()组合。例如在11.0592MHz下一个_nop_()大约1.085μs。要实现15μs延时可以写for(i0; i14; i) _nop_();。最好的办法是编写好基础读写函数后用逻辑分析仪连接DQ线查看波形是否符合数据手册的时序图并据此调整_nop_()的数量。这是从“代码能跑”到“代码稳定”的关键一步。3.2 底层驱动函数编写我们首先定义DQ线连接的IO口。为了代码清晰和可移植我们使用宏定义。sbit DQ P2^0; // 假设DS18B20数据线接在P2.0口 /** * brief DS18B20初始化复位脉冲存在脉冲检测 * retval 1: 初始化失败总线上无器件或故障 * 0: 初始化成功 */ unsigned char DS18B20_Init(void) { unsigned char presence_flag 0; DQ 1; // 先拉高 Delay_us(8); DQ 0; // 单片机拉低总线发出复位脉冲 Delay_us(480); // 保持低电平480us以上典型值480-960us DQ 1; // 释放总线单片机置高转为输入 Delay_us(60); // 等待60us给DS18B20反应时间 // 关键等待IO口输入模式稳定并检测存在脉冲 // 先短暂延时避开总线上升沿的瞬态过程 Delay_us(2); if(DQ 0) { // 如果检测到低电平说明DS18B20拉低了总线应答脉冲 presence_flag 1; } // 等待存在脉冲结束DS18B20释放总线 while(!DQ); // 等待DQ变高即DS18B20释放总线 // 整个初始化序列应持续至少960us Delay_us(420); // 补足时间 return presence_flag; // 返回1成功0失败 }接下来是写一位和读一位的函数它们严格遵循时间槽规范。/** * brief 向DS18B20写入一个位 * param bit_value: 要写入的位值0或1 */ void DS18B20_WriteBit(unsigned char bit_value) { DQ 0; // 拉低总线启动写时间槽 _nop_(); _nop_(); // 此处延时约2us确保低电平建立 // 根据要写的值决定低电平保持时间 if(bit_value 1) { DQ 1; // 如果是写1很快拉高 } // 延时满足写时间槽的持续时间60-120us Delay_us(60); // 保持约60us DQ 1; // 释放总线结束时间槽 // 写周期之间需要至少1us的恢复时间 _nop_(); _nop_(); } /** * brief 从DS18B20读取一个位 * retval 读取到的位值0或1 */ unsigned char DS18B20_ReadBit(void) { unsigned char bit_value 0; DQ 0; // 拉低总线至少1us启动读时间槽 _nop_(); _nop_(); // 约2us DQ 1; // 必须迅速释放总线转为输入 _nop_(); _nop_(); _nop_(); _nop_(); // 延时约5us等待DS18B20输出稳定 // 在起始位下降沿后15us内采样 if(DQ) { bit_value 1; } // 等待读时间槽结束总时长60-120us Delay_us(55); // 补足时间 return bit_value; }基于读写位的函数我们可以轻松构造读写一个字节的函数。/** * brief 向DS18B20写入一个字节LSB first * param dat: 要写入的字节数据 */ void DS18B20_WriteByte(unsigned char dat) { unsigned char i; for(i0; i8; i) { DS18B20_WriteBit(dat 0x01); // 先写最低位 dat 1; // 数据右移准备下一次发送 } } /** * brief 从DS18B20读取一个字节LSB first * retval 读取到的字节数据 */ unsigned char DS18B20_ReadByte(void) { unsigned char i, dat 0; for(i0; i8; i) { dat 1; // 先右移为接收新位腾出空间 if(DS18B20_ReadBit()) { dat | 0x80; // 如果读到1则置最高位为1 } } return dat; }3.3 温度读取完整流程与数据处理有了底层驱动读取温度的流程就变得清晰了。它是一个标准命令序列。/** * brief 启动DS18B20温度转换 */ void DS18B20_StartConvert(void) { DS18B20_Init(); // 1. 复位 DS18B20_WriteByte(0xCC); // 2. 跳过ROM命令针对单器件总线 DS18B20_WriteByte(0x44); // 3. 启动温度转换命令 // 注意发出0x44命令后DS18B20开始转换在此期间总线被拉低 // 如果使用寄生供电此时必须在DQ线上提供强上拉例如通过MOSFET接VCC } /** * brief 从DS18B20读取温度值原始16位数据 * retval 温度的16位原始数据含符号位 */ int DS18B20_ReadTempRaw(void) { unsigned char LSB, MSB; int temp_raw 0; DS18B20_Init(); // 1. 复位 DS18B20_WriteByte(0xCC); // 2. 跳过ROM DS18B20_WriteByte(0xBE); // 3. 读取暂存器命令 LSB DS18B20_ReadByte(); // 先读低字节 MSB DS18B20_ReadByte(); // 再读高字节 temp_raw (MSB 8) | LSB; // 合成16位数据 return temp_raw; } /** * brief 将DS18B20原始数据转换为实际温度值浮点数单位℃ * param raw_data: 16位原始温度数据 * retval 实际温度值浮点型 */ float DS18B20_RawToTemp(int raw_data) { float temperature; // 判断符号位bit151为负温度 if(raw_data 0xF800) { // 或者 (raw_data 0x8000) // 负温度取补码 raw_data ~raw_data 1; temperature - (raw_data * 0.0625); // 12位分辨率时LSB0.0625℃ } else { temperature raw_data * 0.0625; } return temperature; }主函数中的调用流程示例void main() { int temp_raw; float temperature; // 初始化... while(1) { DS18B20_StartConvert(); // 启动转换 Delay_ms(750); // 等待转换完成12位分辨率需750ms temp_raw DS18B20_ReadTempRaw(); // 读取原始值 temperature DS18B20_RawToTemp(temp_raw); // 转换为摄氏度 // 此处可以将temperature显示到LCD、串口发送等 Delay_ms(1000); // 每秒读取一次 } }4. 避坑指南与稳定性优化实战代码写完了但让它稳定可靠地工作才是真正的挑战。下面是我在多个项目中总结出的常见问题和优化方案。4.1 经典问题为什么总是读到85℃0x0550或0℃这是DS18B20新手最常遇到的“入门礼”。问题现象上电后第一次或每次读到的温度都是85℃对应原始数据0x0550或0℃。根因分析初始化/应答失败85℃是DS18B20上电后的默认温度值。如果你每次读取都得到85℃极有可能是初始化序列失败单片机根本没有检测到DS18B20的存在脉冲但后续的读写时序又“侥幸”执行了。由于没有正确的复位-应答DS18B20并未准备好接收命令单片机发出的“跳过ROM”(0xCC)和“读暂存器”(0xBE)命令被忽略读回来的就是上电默认值。解决之道务必检查DS18B20_Init()函数的返回值只有返回成功1后才能进行后续操作。用逻辑分析仪抓取复位和应答脉冲的波形确保低电平时间、释放时机、采样点都正确。供电不足或上拉电阻问题0℃或随机值可能源于供电。在寄生供电模式下DS18B20在进行温度转换尤其是高分辨率时需要较大电流如果总线DQ的上拉电阻太大如10kΩ无法提供足够电流会导致转换失败或数据错误。解决之道对于寄生供电强烈建议在温度转换命令0x44发出后用单片机的IO口或一个MOSFET将DQ线强上拉到VCC提供约1mA电流转换完成后再恢复为弱上拉。或者直接采用外部VCC供电模式这是最稳定的方案。时序精度不够STC89C52的指令执行时间并非绝对精确尤其是当编译器优化等级不同或中断干扰时用循环实现的微秒延时可能偏差较大导致读写时序落在DS18B20的采样窗口之外。解决之道将最核心的位读写函数WriteBit,ReadBit用_nop_()重写减少循环带来的不确定性。确保在操作DS18B20期间关闭所有中断。4.2 硬件连接与PCB布局的“玄学”上拉电阻必不可少无论寄生供电还是外部供电DQ线必须接一个4.7kΩ的上拉电阻到VCC。没有它总线无法被拉高通信完全无法进行。电源去耦电容在DS18B20的VCC和GND引脚之间就近放置一个0.1μF的陶瓷去耦电容可以滤除电源噪声对提高稳定性有奇效。走线长度单总线对走线长度相对宽容但在强干扰环境下建议总线长度不要超过30米。对于板内连接尽量短即可。避免IO口复用尽量使用一个独立的IO口连接DS18B20避免该IO口在其它时间被用于驱动LED、蜂鸣器等大电流负载导致电平异常。4.3 软件层面的鲁棒性增强增加重试机制在DS18B20_Init()失败后不要立即放弃。可以加入一个重试循环例如尝试3次初始化如果都失败再报错。这可以应对偶尔的时序偏差或总线干扰。unsigned char retry 3; while(retry--) { if(DS18B20_Init() 1) { break; // 初始化成功跳出循环 } Delay_ms(2); // 短暂延时后重试 } if(retry 0) { // 处理错误传感器未连接或故障 }CRC校验DS18B20暂存器共9字节最后一个字节是前面8字节的CRC校验码。在读取温度后可以计算CRC并与读取的校验码对比确保数据在传输过程中没有出错。这对于长距离或干扰环境下的通信尤为重要。中断保护在操作DS18B20的整个关键时序期间从初始化到读写完成应关闭全局中断EA 0;防止定时器中断、串口中断等打断微秒级的精确延时。操作完成后再打开中断EA 1;。5. 从原型到应用扩展思路与项目进阶当你成功稳定地读取到室温后这个项目就可以作为基石向更多有趣的方向扩展。5.1 多节点测温与ROM搜索单总线的优势在于可以挂载多个器件。你需要实现更复杂的ROM命令序列搜索ROM0xF0这是一个递归算法用于识别总线上所有DS18B20的64位ROM地址。匹配ROM0x55在获得ROM地址后使用此命令后跟具体的64位地址可以指定操作某一个传感器。报警搜索0xEC用于快速找出温度超出设定阈值的器件。实现多节点测温你的系统就升级为了一个分布式温度监测网络。5.2 与上位机通信数据可视化让STC89C52通过串口UART将温度数据发送到电脑。硬件利用STC89C52的P3.0RXD和P3.1TXD通过一个USB转TTL模块如CH340、CP2102连接电脑。软件在单片机端编写串口初始化设置波特率如9600和发送函数。在电脑端可以使用串口助手、Python的pyserial库、C#的SerialPort控件甚至Node.js来接收数据。你可以将数据格式化为简单的文本如T:25.6C\n。进阶用Python的matplotlib库实时绘制温度曲线或者用PyQt做一个带控件的小型监控界面。5.3 打造一个完整的本地温度监测站结合其他外围模块打造一个独立设备显示连接一个LCD1602或OLED显示屏实时显示温度值和单位。存储连接一个AT24Cxx系列的EEPROM定时记录温度数据实现简单数据记录仪功能。报警设置温度上下限当温度超限时控制一个蜂鸣器鸣叫或LED闪烁。控制作为恒温箱、孵化器的核心控制器当温度低于设定值时通过继电器打开加热片高于设定值时打开风扇。5.4 迁移到其他平台一旦你彻底掌握了DS18B20单总线协议的软件模拟精髓将其移植到任何其他单片机平台如STM32、ESP32、Arduino都将易如反掌。你只需要根据新平台的时钟频率重写或调整那几个微秒级的延时函数并配置好GPIO的输入输出模式即可。核心的协议处理逻辑和命令序列完全通用。这个基于STC89C52和DS18B20的项目就像学习编程时的“Hello World”看似简单却涵盖了嵌入式开发中最核心的硬件交互思想。它强迫你去关注最底层的时序去理解数据手册里的每一个参数去调试波形中的每一个毛刺。这个过程积累的经验是直接调用库函数无法比拟的财富。当你下次遇到一个陌生的传感器通信协议时你会有足够的信心去拆解它、实现它、驯服它。

相关新闻

公寓管理软件对比:全房通、好房通、悦居通,入住交割怎么选?

公寓管理软件对比:全房通、好房通、悦居通,入住交割怎么选?

连锁中介开始经营公寓直营业务后,入住交割往往是最能检验系统能力的环节。它不只是签完合同后把钥匙交给租客,而是要同步确认房屋状态、家具家电、门锁权限、水电底数、费用账单、服务责任和门店业绩。公寓管理软件如果只覆盖合同或成交,交割…

2026/8/1 12:50:32 阅读更多 →
reTerminal E上Arduino实战:RTC、低功耗、音频与触摸集成指南

reTerminal E上Arduino实战:RTC、低功耗、音频与触摸集成指南

1. 项目概述:在reTerminal E系列上玩转Arduino的四大核心模块最近在折腾Seeed Studio的reTerminal E系列开发板,这是一块基于树莓派CM4核心的工业级边缘计算设备,性能强劲,接口丰富。但很多朋友拿到手后,除了跑Linux系…

2026/8/1 12:49:32 阅读更多 →
树莓派5通过PCIe接口集成5G模组:SIM8262E-M2 HAT+实战指南

树莓派5通过PCIe接口集成5G模组:SIM8262E-M2 HAT+实战指南

1. 项目缘起:当树莓派5遇上5G,一个硬件玩家的新玩具最近折腾树莓派5,总感觉少了点什么。千兆网口和Wi-Fi 6对于日常开发是够用了,但作为一个喜欢折腾硬件的玩家,总想给它加点“猛料”。尤其是在一些需要高带宽、低延迟…

2026/8/1 12:49:32 阅读更多 →

最新新闻

计算机毕业设计之基于springboot+vue的校园餐厅菜品自选系统

计算机毕业设计之基于springboot+vue的校园餐厅菜品自选系统

当前,由于人们生活水平的提高和思想观念的改变,然后随着经济全球化的背景之下,互联网技术将进一步提高社会综合发展的效率和速度,互联网技术也会涉及到各个领域,于是传统的管理方式对时间、地点的限制太多,…

2026/8/1 13:31:45 阅读更多 →
Code designs Harness 还是 Model drives Harnesses?

Code designs Harness 还是 Model drives Harnesses?

"If youre not the Model, youre the Harness."这是 Langchain 提出过的观点,强调了 Harness 在构建 Agent 过程中的重要性。从事过后端开发、设计过分布式系统的朋友,肯对对胶水代码、中间件很熟悉,展开本文正文前,我们…

2026/8/1 13:31:45 阅读更多 →
光伏VSG控制技术:提升并网稳定性的关键方案

光伏VSG控制技术:提升并网稳定性的关键方案

1. 项目背景与核心价值 光伏并网发电系统作为可再生能源利用的重要形式,其稳定性和电网友好性一直是行业痛点。传统光伏逆变器采用电流源控制模式,缺乏转动惯量和阻尼特性,导致电网出现扰动时容易引发连锁反应。虚拟同步发电机(VS…

2026/8/1 13:31:45 阅读更多 →
Super Productivity:5步从时间焦虑到高效掌控的终极开源时间管理方案

Super Productivity:5步从时间焦虑到高效掌控的终极开源时间管理方案

Super Productivity:5步从时间焦虑到高效掌控的终极开源时间管理方案 【免费下载链接】super-productivity Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Ji…

2026/8/1 13:31:45 阅读更多 →
终极指南:用OpenCore Legacy Patcher让老款Mac电脑重获新生

终极指南:用OpenCore Legacy Patcher让老款Mac电脑重获新生

终极指南:用OpenCore Legacy Patcher让老款Mac电脑重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老款Mac电脑无法升级到最…

2026/8/1 13:31:45 阅读更多 →
Box64高性能架构实现:深度解析跨平台x86_64模拟器技术原理与优化方案

Box64高性能架构实现:深度解析跨平台x86_64模拟器技术原理与优化方案

Box64高性能架构实现:深度解析跨平台x86_64模拟器技术原理与优化方案 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 …

2026/8/1 13:30:45 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/8/1 13:02:46 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →