基于51单片机的温度检测

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

利用51单片机为核心实现温度测量,利用DS18B20温度传感器获取温度信号,将需要测量的温度信号转化为数字信号,利用单总线和单片机交换数据,最终单片机将识别的温度以数码管显示和串口返回数据的形式输出。本次程序使用的是清翔51单片机,温度测量范围为-10~+85°C,精度为+-0.5°C。

使用步骤

1.最终成果代码

代码如下:

#include <reg52.h>
#include <intrins.h>
#include <stdio.h>

#define uint unsigned int 
#define uchar unsigned char
	
sbit WE = P2^7;
sbit DU = P2^6;
sbit DS = P2^2;
uint temp,a=0;

uchar code SMGwei[] = {0xfe,0xfd,0xfb};//共阴数码管段选表0-9
uchar code SMGduan[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};//数码管位选码


//us延时函数,执行一次us--需6.5us,进入一次函数需11.95us
void delay_us(uchar us)
{
	while(us--);
}

//数码管显示
void display(uchar i)
{
	static uchar wei;
	P0 = 0xfe;//清除断码
	WE = 1;//打开位选锁存
	P0 = SMGwei[wei];//
	WE = 0;
	switch(wei)
	{
		case 0:DU = 1;P0 = SMGduan[i / 100]; DU = 0;
		break;
		case 1:DU = 1;P0 = SMGduan[i % 100 /10]|0x80; DU = 0;
		break;
		case 2:DU = 1;P0 = SMGduan[i % 10]; DU = 0;
		break;
	}
	wei++;
	if(wei == 3
  • 12
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值