• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-07-19
  • 语言: 其他
  • 标签: C51  DS18B20  51单片机  

资源简介

采用DS18B20温度传感器的单总线传输机制,通过单片机MCU的I/O实现温度采集,并将数据显示在数码管上。开启温度报警功能,设置一个阈值,利用手指触碰传感器导致温度超过阈值时,开启嗡鸣器报警

资源截图

代码片段和文件信息

#include “reg51.h“
#include “intrins.h“
#define uchar unsigned char
#define uint unsigned int
uchar code discode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
//数码管显示0~9的段码表
sbit DQ=P3^7;
sbit speaker= P1^5; //P1^5控制蜂鸣器
void delay5(uchar);
void init_ds18b20(void);
uchar readbyte(void);
void writebyte(uchar);
uchar retemp(void);

void main(void) //主函数
{
uchar itempsound;
delay5(1000);
while(1)
{
temp=retemp();
for(i=0;i<10;i++) //连续扫描数码管10次
{
P2=04; //LED由P2的234位控制
//因此令P2=00000100控制LED2显示十位
P0=discode[temp/10];//输出十位段码
delay5(1100); //延时5.5ms
P2=00; //令P2=00000000控制LED1显示个位
P0=discode[temp%10];//输出个位段码
delay5(1100); //延时5.5ms
if(temp>30) //温度超过30则令蜂鸣器报警
for(sound=114514;sound>0;sound--)
{
speaker=~speaker;
}
}
}
}

void delay5(uchar n) //延时

评论

共有 条评论