双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

DS18B20的程序,找了半天也没找到问题在哪里,温度显示不出来

炼气士 炼气士 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dq=P3^3; // DS18B20
sbit led=P0^0;
sbit E=P2^2;
sbit RS=P2^0;
sbit RW=P2^1;

uchar sign=0;
uchar tempI,tempD;
uchar tempIH,tempIL,tempDH,tempDL;
code uchar datas[]={"0123456789"};

//--1602
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--);
}
void write_com(uchar com)
{
RS = 0;
RW = 0;
P0 = com;
E = 0;
delay_50us(10);
E = 1;
delay_50us(20);
E = 0;
}
void init1602(void)
{
delay_50us(300);
write_com(0x38);
delay_50us(100);
write_com(0x38);
delay_50us(100);
write_com(0x38);
delay_50us(100);
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
}

void write_data(uchar dat)
{
RS = 1;
RW = 0;
P0 = dat;
E = 0;
delay_50us(10);
E = 1;
delay_50us(20);
E = 0;
}
void display()
{
write_com(0x80);
//if(sign)
write_data(sign?'-':'+');

write_data(tempIH);
write_data(tempIL);
write_data('.');
write_data(tempD);
}


// DS18b20
void delay7us(uint i)
{
while(i--);
}
void init_18b20()
{
dq=1;
_nop_();
dq = 0;
delay7us(80);
// 释放总线
dq = 1;
delay7us(60);
// while(dq);
}
void write_18b20(uchar dat)
{
uchar i;
dq=1;
_nop_();
for(i=0;i<8;i++)
{
dq = 0;
_nop_();
_nop_();

dq = dat&0x01;
delay7us(10);
dq = 1;
dat>>=1;
delay7us(1);

}

delay7us(10);
}
uchar read_18b20()
{
uchar i ,value;

for(i=0;i<8;i++)
{
dq = 0;
_nop_();
_nop_();
_nop_();
_nop_();
dq = 1;
_nop_();
_nop_();
value>>=1;
if(dq)
value|=0x80;

delay7us(10);
dq = 1;

}

delay7us(10);
return value;
}
void readTemp()
{
uchar a,b;
uint c;
init_18b20();
write_18b20(0xcc);
write_18b20(0x44);
delay7us(300); // 温度转换

init_18b20();
write_18b20(0xcc);
write_18b20(0xbe);
a = read_18b20();
b = read_18b20();
c = b;
c=c<<8+a;
if(b&0xf0)
{
sign = 1; // 1是负,0是正
c=~c+1;
}else
{
sign = 0;
}

tempI=(c&0x0700)<<4+(c&0x00f0)>>4;
tempD=((c&0x0f)*0.625);

tempIH = datas[tempI/10];
tempIL= datas[tempI%10];

tempD = datas[tempD/10];

}
void main(void)
{
init1602();

while(1)
{
readTemp();
display();
}
}
1602上总是显示+00.0
...全文

相关推荐

AI助力STC单片机开发[项目源码]

本文介绍了如何利用AI工具快速开发基于STC89C52单片机的温度监测系统。通过AI自动生成代码框架,包括主程序结构、DS18B20温度传感器驱动、LCD1602显示驱动和蜂鸣器控制逻辑,显著提高了开发效率。AI生成的代码不仅包含详细的注释,还特别说明了STC特殊功能寄存器的配置方法,如TMOD、TCON等定时器寄存器的配置值。此外,文章还分享了调试过程中的实用技巧,如调整延时函数参数、检查上拉电阻和电源稳定性等。整个项目从零到实现仅用了不到半天时间,比传统开发方式快很多。最后,作者建议虽然AI生成的代码可用性高,但关键部分仍需对照芯片手册检查以确保硬件兼容性。

perl8

【stm32f1】ds18b20单总线模式测温+oled显示(IIC通信)

是因为要做实验,找了半天资料发现找资料太难了,资料都没多少解释,拿到手之后就是不停修改error最终发现还是不行换下一个。 如果你不需要单总线模式,那直接找正点原子的例程就可以了! 最终在csdn下载到的一个代码修改了还是可以用的 我的代码会放在csdn也会放在github,愿意下载哪一个都可以。 文档: 如何修改这份程序? 首先建议先阅读一下ds18b20的文档,了解一下它的地址和单总线实现的原理。 然后你需要运行代码得到你的传感器的地址,这在程序中有解释。 之后修改到 这个位置就可以了 如

蓝莓莓

LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)

内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。

欢多天天写代码

YOLO26算法水面与液体识别+训练好的模型+393张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 52 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8528** mAP50-95 | 0.3441 Precision | 0.7729 Recall | 0.8354 train/box_loss | 1.5367 train/cls_loss | 1.0228 val/box_loss | 1.6809 val/cls_loss | 1.1758 【训练过程分析】 我这次训练了52个周期,模型在训练初期确实收敛速度很快,前20个周期mAP50从0.74逐步提升至0.82,这说明模型开始适应数据集,学习到一些关键特征。但到第30个周期后,提升速度逐渐放缓,到了40个周期时,mAP50达到0.85,这个阶段的曲线走势有些像磨砂玻璃,平滑且不规则,后期更是趋于平缓,表明模型可能已经达到最优解,再继续训练可能会有少量提升但代价较大。整体而言,从loss曲线来看,训练集的box_loss和cls_loss在52个周期内分别从1.80和1.25降到1.54和1.02,下降曲线较为稳定,但到了后期,这两项指标下降幅度逐渐减缓,尤其cls_loss下降至1.10左右后趋于稳定,这可能是模型对训练数据已有了较强的泛化能力,但也提示我们分类的稳定性可能还欠些火候。 至于验证集的表现,box_lo... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

guo_xiao_xiao_

概率神经网络的分类预测-基于PNN的变压器故障诊断(Matlab代码实现)

内容概要:本文系统阐述了基于概率神经网络(PNN)的变压器故障诊断方法,结合Matlab代码实现分类预测。通过提取变压器运行过程中的关键特征参数,构建PNN模型以实现对正常状态与典型故障状态(如绕组短路、铁芯故障等)的高效分类识别。文章深入剖析了PNN的网络结构、概率密度估计原理、训练机制及分类决策过程,并通过仿真实验验证了该方法在故障诊断任务中具备较高的准确率与鲁棒性,展现了其在电力系统状态监测与智能运维中的良好应用前景。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的电气工程、自动化、智能电网等相关领域的研究生、科研人员以及从事电力设备状态监测与故障诊断工作的工程技术人员。; 使用场景及目标:①实现变压器早期故障的智能化诊断与预警,提升电力系统运行安全性;②为基于神经网络的工业设备故障分类任务提供可复现的算法实现范例与技术验证平台; 阅读建议:建议读者结合文中提供的Matlab代码,动手复现实验流程,深入理解PNN在实际分类问题中的参数配置、训练策略、性能评估方法,并鼓励将该方法迁移至其他电力设备或机电系统的故障诊断场景中进行拓展研究与优化改进。

稷下科研社
评论 6
收藏 已收藏
分享
返回顶部
炼气士
单片机/工控 27,522 成员 28,796 内容