历史上的今天
今天是:2024年12月15日(星期日)
2021年12月15日 | 51单片机控制的DS18B20温度测量报警系统
2021-12-15 来源:eefocus
需要的功能及作用
单片机DS18B20温度测量系统的测量范围为0-99.9摄氏度,可设置上限报 警温度、下限报 警温度(即高于上限值或者低于下限值时蜂鸣器报 警),默认上限报 警温度为38℃、默认下限报 警温度为5℃。报警值可设置范围:最低上限报警值等于当前下限报警值,最高下限报 警值等于当前上限报 警值。将下限报 警值调为0时为关闭下限报 警功能。电源电压VCC为5V,可以焊一只USB座到板上,然后用相应的USB线连接至电脑,通过电脑USB口供电;DS18B20也可以根据需要用屏蔽电缆引出来。K1为进入/退出设置键;K2为增加键;K3为减少键。
废话不多说,先上实物图



因为项目比较简单就不放一些具体的工艺图片了
本项目C语言参考源代码 如下:
#include #define DQ P3_6 //定义DS18B20总线I/O /延时子程序/ void Delay_DS18B20(int num) { while(num–) ; } /初始化DS18B20/ void Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位 Delay_DS18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay_DS18B20(80); //精确延时,大于480us DQ = 1; //拉高总线 Delay_DS18B20(14); x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B20(20); } /读一个字节/ unsigned char ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i–) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); } return(dat); } /写一个字节/ void WriteOneChar(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i–) { DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat>>=1; } } /读取温度/ unsigned int ReadTemperature(void) { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器 a=ReadOneChar(); //读低8位 b=ReadOneChar(); //读高8位 t=b; t<<=8; t=t|a; tt=t0.0625; t= tt10+0.5; //放大10倍输出并四舍五入 return(t); }
史海拾趣
|
给想学linux的朋友一些建议(我学linux的体会) 一. 什么人会学linux? 这个问题涉及到linux是否会代替Windows。我认为绝对不可能。Windows易上手易学习的特点,以及Microsoft多年的积累,加上丰富的软件选择,是linux不可比拟的。 那为什么我们 ...… 查看全部问答> |
|
摘要:介绍基于SRAM的可重配置CPLD的原理,通过对多种串行配置的比较,提出了由单片机和FLASH存储器组成的串行配置方式,并从系统复杂度、可靠性和经济性等方面进行了比较和分析。 关键词:复杂可编程逻辑器件 静态随机存储器 被动串行 基于SRAM ...… 查看全部问答> |
|
十八般兵器 快使用单片机,哼哼哈兮! 孔子说:“工欲善其事,必先利其器”,学习单片机所用的工具、元器件和数模电路是有一些区别的,我们在学习之前 最好先备齐它们,至少让外人看出我们是搞过单片机的。有几样东东很重要,在上场之前不得不提 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 AMD不久前终于在移动计算机领域向英特尔发起了攻击,推出了一些新的移动处理器。但是,AMD还更新了其台式电脑芯片产品线。然而,总是有推出更多的处理器的空间,因为英特尔定期发布新的芯片。A ...… 查看全部问答> |
|
RT,在网上找了些,发现有个专门做电桥信号放大的芯片,AM457,AM467和AM417,可一问价格,二十几块钱,晕死, 这么贵! 不知道大家知不知道性价比好点的?… 查看全部问答> |
|
Pocket PC2003操作系统中,界面右上角的叉是什么函数控制的啊? 我要在作的程序实现这样的功能:当要退出程序时,点击右上角的叉叉,弹出一个提示对话框,选择是否要退出.但EVC右上角的叉不像VC一样是CMainFrame中的WM_CLOSE事件响应的,哪位高人前辈给我讲讲我该怎么做才能达到这样的效果呢??… 查看全部问答> |
|
发送多于16个自己的数据, pc就接收困难。我PC部分使用com控件接收。在C#下编的程序。 不知道遇到类似问题的人,如何解决 这个问题的 。 我用的2812 。 … 查看全部问答> |
|
小弟最近按照EEWORLDDEC f2812实验板的原理图自己刷了一块PCB 在调试中遇到了一点问题 1。片内flash在烧写时总是不成功,用EEWORLD提供的FLASH测试程序提示FLASH无法写入。小弟想请问在烧写片内FLASH要注意些什么,F2812的引脚定义要注意些什么 2 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:48 编辑 有谁用过NS公司的lmp90100芯片没有,这两天我用这款芯片作为PT100和热电偶的前端处理,但是一直不能让芯片动起来,希望用过的朋友能提供一下调试经验,因为我用的是自己做的板子做的测试,现在无法定 ...… 查看全部问答> |




