• 方案介绍
    • 1.  简介
    • 2.  主要功能
    • 3.  源程序(Keil5)
    • 4.  仿真proteus8.6
    • 5.  设计报告
    • 6.  资料清单
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的温湿度补偿的超声波测距系统设计!!!

04/11 09:06
698
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

单片机仿真设计合集资料获取.pdf

共1个文件

资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频

仿真版本:Proteus8.6及以上版本

程序编译:Keil5 C51

编程语言:C语言

设计编号:【H05】

1.  简介

  本文提出了一种基于51单片机的带温湿度补偿的超声波测距系统。该设计使用ATC89C51单片机、DHT11温湿度传感器模块、HC_SR04超声波测距模块LCD1602显示模块。

2.  主要功能

a.通过LCD1602显示实际距离、当前温湿度。

3.  源程序(Keil5)

本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。

#include <reg51.h>	
#include "LCD1602.h"
#include <intrins.h> 
/*对数据类型进行声明定义*/
typedef unsigned int u16;	  
typedef unsigned char u8;
/*外设IO定义*/
sbit Data = P3^7; //定义DHT11数据线
sbit Trig = P2^6;
sbit Echo = P2^7;
/*变量定义*/
u16 Distance=0;
bit flag =0;		 
u8 TEMP,HR;//采集值

void DHT11_delay_ms(u16 z)
{
   u16 i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}
void DHT11_delay_us(u8 n)
{
    while(--n);
}

void DHT11_start()
{
   Data=1;
   DHT11_delay_us(2);
   Data=0;
   DHT11_delay_ms(30);   //延时18ms以上
   Data=1;
   DHT11_delay_us(30);
}

u8 DHT11_rec_byte()      //接收一个字节
{
   u8 i,dat=0;
   for(i=0;i<8;i++)    //从高到低依次接收8位数据
   {          
      while(!Data);   ////等待50us低电平过去
      DHT11_delay_us(8);     //延时60us,如果还为高则数据为1,否则为0 
      dat<<=1;           //移位使正确接收8位数据,数据为0时直接移位
      if(Data==1)    //数据为1时,使dat加1来接收数据1
         dat+=1;
      while(Data);  //等待数据线拉低    
    }  
    return dat;
}

void DHT11_receive()      //接收40位的数据
{
	u8 R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise; 
  DHT11_start();
  if(Data==0)
	{
		while(Data==0);   //等待拉高     
		DHT11_delay_us(40);  //拉高后延时80us
		R_H=DHT11_rec_byte();    //接收湿度高八位  
		R_L=DHT11_rec_byte();    //接收湿度低八位  
		T_H=DHT11_rec_byte();    //接收温度高八位  
		T_L=DHT11_rec_byte();    //接收温度低八位
		revise=DHT11_rec_byte(); //接收校正位
		DHT11_delay_us(25);    //结束
		if((R_H+R_L+T_H+T_L)==revise)      //校正
		{
				RH=R_H;
				RL=R_L;
				TH=T_H;
				TL=T_L;
		} 
		/*数据处理,方便显示*/
		TEMP=TH;
		HR=RH;
	}
	DisplayOneChar(5,0,'0'+(TEMP/10));
	DisplayOneChar(6,0,'0'+(TEMP%10));
	DisplayOneChar(12,0,'0'+(HR/10));
	DisplayOneChar(13,0,'0'+(HR%10));
}

4.  仿真proteus8.6

本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。

实时显示温湿度值和实际距离:

5.  设计报告

设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。

6.  资料清单

设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。

百度网盘下载链接:【H05】百度网盘下载链接

更多单片机仿真设计合集:单片机仿真设计合集

  • 单片机仿真设计合集资料获取.pdf
    下载

相关推荐