当前位置: 首页 > news >正文

基于51单片机简易温度计

一.硬件方案

本系统利用51单片机控制温度传感器DS18B20进行温度的实时检测并显示,能够实现快速测量环境温度。硬件以微控制器为核心,外接时钟电路、复位电路、温度测量电路、LED显示电路组成。

二.设计功能

(1)采用DS18B20温度传感器测温,测温范围-55~+125℃摄氏度,精度0.1摄氏度(显示到小数点后一位),误差±0.5度;
(2)采用0.56英寸四位一体共阳数码管显示当前温度;
(3)有一个复位按键。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

/*****主函数*****/
void main()
{uc z;			//定义变量用于for循环for(z=0;z<100;z++)	//循环100次读取温度并显示开机画面,防止开机显示85{Disp_init();	//开机初始化显示check_wendu();	//读取温度}while(1)		//进入while循环{check_wendu();	//读取温度for(z=0;z<10;z++)	//显示10次Disp_Temperature();	//调用显示函数}
}
/*****显示温度子程序*****/
void Disp_Temperature()     //显示温度
{if(qian==0)		  //千位等于0{if(fuhao==1)  //是负温度P0=0x7f;      //显示-else		  //是正温度P0=0xff;	  //不显示P2=0xfd;	  //选中第一位Delay(10);	 //延时P2 = 0xff;	 //关闭位选}else if(qian!=0)	  //千位不等于0{P0 =~led[qian];	  //显示千位数据P2 = 0xfd;		  //打开第一位位选Delay(10);		  //延时P2 = 0xff;		  //关闭位选}if((bai==0)&&(qian==0))//百位千位都是0{P0=0xff;    //不显示P2=0xf7;	//打开第二位Delay(10);	//延时P2=0xff;	//关闭位选}else if((bai==0)&&(qian!=0))//千位不等于0,百位等于0{P0=~led[bai];			//正常显示百位数据P2=0xf7;				//打开第二位Delay(10);				//延时P2=0xff;				//关闭位选}else if(bai!=0)				//百位不等于0{P0=~led[bai];    //显示百位P2=0xf7;		 //打开第二位Delay(10);		 //延时P2=0xff;		 //关闭位选}P0=~led_dian[shi];    //显示十位数据P2=0xdf;			  //打开第三位Delay(10);			  //延时P2=0xff;			  //关闭位选P0=~led[ge];   		  //显示个位数据P2=0x7f;			  //打开第四位Delay(10);			  //延时P2=0xff;              //关闭显示
}

资料链接:https://pan.baidu.com/s/1avrjevXhEHVpYVzXyUTO9A?pwd=f6yj

相关文章:

  • 商品发布功能
  • 在VS Code中进行Java的单元测试
  • 【MySQL精通之路】InnoDB(9)-表和页压缩(1)-表压缩
  • 自由应用大本营?开源免费的Android应用商店:F-Droid Client
  • UniApp 2.0可视化开发工具:引领前端开发新纪元
  • 【前端】面试八股文——BFC
  • ubuntu-24.04系统静态Mac和IP配置
  • 【MySQL精通之路】MySQL-环境变量
  • 鹏哥C语言复习——调试
  • 从零开始搭建Springboot项目脚手架4:保存操作日志
  • 基于飞书机器人跨账号消息提醒
  • redis查看一个key占用了多少内存
  • [nextjs]推荐几个很好看的模板网站
  • shell将文件分割成小块文件
  • 场景文本检测识别学习 day10(MMdetection)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • bootstrap创建登录注册页面
  • HTML中设置input等文本框为不可操作
  • js操作时间(持续更新)
  • js数组之filter
  • Python3爬取英雄联盟英雄皮肤大图
  • Unix命令
  • 从零搭建Koa2 Server
  • 看域名解析域名安全对SEO的影响
  • 如何设计一个比特币钱包服务
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 树莓派 - 使用须知
  • 一些css基础学习笔记
  • 由插件封装引出的一丢丢思考
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #Linux(Source Insight安装及工程建立)
  • (30)数组元素和与数字和的绝对差
  • (55)MOS管专题--->(10)MOS管的封装
  • (6)STL算法之转换
  • (C语言)fread与fwrite详解
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (poj1.2.1)1970(筛选法模拟)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (超详细)语音信号处理之特征提取
  • (动态规划)5. 最长回文子串 java解决
  • (二)Linux——Linux常用指令
  • (二开)Flink 修改源码拓展 SQL 语法
  • (万字长文)Spring的核心知识尽揽其中
  • (学习总结16)C++模版2
  • (一)UDP基本编程步骤
  • (转)jQuery 基础
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET8使用VS2022打包Docker镜像
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET连接数据库方式