Proteus(8.9版本) 51单片机-烟雾探测器的设计-仿真

2023-10-26

第一步是收集有关室外温度、湿度和气体浓度的信息,作为敏感元件烟雾传感器的输入信息。当信号输入值与放大模块的A/D转换器输入电平相匹配时,无需放大放大器;当信号输入值与放大模块的A/D转换器输入级别不匹配时,放大器将放大电气信号。

A/D电路的第二阶段将模拟信号转换为单片机进行识别和判断。数字信号后,单片机接收和处理传感器发送的数字信号,分析数据,比较数字信号是否超过设定的浓度阈值(该测试设置为100ppm),并将测量的浓度转换为十进制数字发送到液晶显示器,观察效果更好。如果周围环境烟雾浓度达到设定阈值,启动蜂鸣器报警电路。整体原理图如下所示:

  

 

下面依次介绍几个用到的主要元器件:

1. 由于所有的传感器都是其物理信号转化为电信号,根据此原理就可以利用ADC芯片去模拟烟雾报警的输出。利用ADC0831和单片机89C52连接起来。原理图如下:

                    

驱动代码如下:

sbit adcdo=P0^0;
sbit adcclk=P0^1;
sbit adccs=P0^2;

sbit adcdoa=P0^3;
sbit adcclka=P0^4;
sbit adccsa=P0^5;

char bdata ch;
sbit ch_0 = ch^0;

void delay1(char x)
{
        char i;
        for(i=0;i<x;i++); 
}
//--------------adc1--------------//
void adcck(void) 
{ 
        adcclk=1; 
        delay1(1); 
        adcclk=0; 
        delay1(1); 
}
char readadc(void)
{ 
    char i;
       ch=0;
    adccs=0;
    adcck();
    while(adcdo); 
    for (i=0; i<8; i++) 
    { 
         adcck();
         ch <<= 1;
             ch_0 = adcdo;
    }
    adccs=1;
    return(ch);
}

2. LCD1602拥有功耗小、数据显示丰富、体型轻便,功能也比较强大,本系统的优点较多,当前已在诸多单片机产品中得到了全里面的推广和使用。LCD1602一共有16个引脚,其引脚分布如图所示。

                                      

3. DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便,DHT11的数据端口是连接到了STC89C52的P3.5端口,如图所示。

                     

驱动代码如下:

#include <absacc.h>
#include <intrins.h>
#include <reg51.h>

sbit DATA_DHT11 = P3^5;				

unsigned char sensor_DATA[4]={0x0,0x0,0x0,0x0};


void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }

 void delay(unsigned int n)
 {
   unsigned int i;
	 for(i=0;i<n;i++)
	   delay1ms();
 }
void testChange()
{
  unsigned char i = 0x56;
  sensor_DATA[2] = i;
}
void time_Tgo()
{
    unsigned char i;
	  _nop_();
	  i = 3;
	  while (--i);
}
void start_DHT11()
{
    DATA_DHT11 = 1;
	  _nop_();_nop_();_nop_();_nop_();
    DATA_DHT11 = 0;
    delay(20);
    DATA_DHT11 = 1;             //微处理器的I/O设置为输入状态,由上拉电阻拉高
    time_Tgo();               	//释放总线,13us,等待回应时间应大于proteus上的时间30us
	  time_Tgo();
	  time_Tgo();					        //3*13us
}



void time_delay30us()
{
    unsigned char i;
	  i = 11;
	  while (--i);
}

unsigned char getDHT11_byte()
{
    unsigned char i,dat,temp;
    for ( i = 0; i < 8; i++)
    {
        //time_Tlow_en();//先过54us
        while(!DATA_DHT11);//先过54us,低电平
        time_delay30us();
		    temp = 0;
        
        if(DATA_DHT11 == 1)
        {
            temp = 1;

        }
        while(DATA_DHT11);
		    dat <<= 1;
		    dat = dat|temp;
    }
	return dat;
    
}

void getDHT11_allData()
{
	
	unsigned char RH,RL,TH,TL,revise;
	start_DHT11();
	
	if(DATA_DHT11 == 0)                     //接收83us的应答信号,
	{	
		while(DATA_DHT11 == 0);             //等待拉高现在data为0     
	    while(DATA_DHT11);                  //退出通知单片机接受信号,等87us
        RH=getDHT11_byte();                	//接收湿度高八位  
        RL=getDHT11_byte();                	//接收湿度低八位  
        TH=getDHT11_byte();                	//接收温度高八位  
        TL=getDHT11_byte();                	//接收温度低八位
        revise=getDHT11_byte();             //接收校正位
        //time_Tlow_en();                   //结束
        if((RH+RL+TH+TL)==revise)       	//校正
        {	
			sensor_DATA[0] = RH;
	        sensor_DATA[1] = RL;
	        sensor_DATA[2] = TH;
	        sensor_DATA[3] = TL;
        }
	}
}

  4.  本设计利用Proteus软件中的电源设置成12V去模拟蓄电池的电压。由于单片机、DHT11传感器、LCD1602液晶显示屏的供电电压是5V,故需要降压。本设计利用7805降压芯片,把供电电源的12V降至5V,供给单片机、DHT11传感器、LCD1602液晶显示屏。如图所示。

                         

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Proteus(8.9版本) 51单片机-烟雾探测器的设计-仿真 的相关文章

  • 2023linux面试问答_Linux基础

    1 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统 是一个基于POSIX和Unix 的多用户 多任务 支持多线程和多CPU的操作系统 它能运行主要的Unix工 具软件 应用程序和网络协议 它支持32位和64位硬件
  • 深入随机数Random

    以下内容来自 http www cnblogs com rupeng p 3723018 html 今天再园子上看到了杨老师的一片blog 受益了 原来随机数还有这么多道道 要走的路还远啊 以下为个人收录 几乎所有编程语言中都提供了 生成一

随机推荐

  • windows2008文件服务器端口,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...

    故障现象如题 用netstat ano p tcp 可以看到大量的连接 都处于close wait状态 然后客户端访问共享就很卡 EXCEL也卡死 服务器重启恢复正常 但是过一段时间又出现这个问题 不知道有谁知道这个问题可能出在哪里 服务器
  • apt-cache - 搜索软件包

    Apt cache是一个命令行工具 可以从本地 APT 文件中查询和显示有关包的可用信息 包信息包括包名称 描述 版本 依赖项 repo 和维护者 存储来自 Debian 镜像的副本的本地 apt 文件位于 var lib apt list
  • day03-switch&循环语句

    1 流程控制语句 应用 在一个程序执行的过程中 各条语句的执行顺序对程序的结果是有直接影响的 所以 我们必须清楚每条语句的执行流程 而且 很多时候要通过控制语句的执行顺序来实现我们想要的功能 1 1 流程控制语句分类 顺序结构 分支结构 i
  • 计算机网络第五章——传输层(下)

    安得广厦千万间 大庇天下寒士俱欢颜 文章目录 按序的不丢失的 这个校验也是二进制求反码来判断有没有发送错误 TCP传输的时候就是以一个字节为单位 所以就会把一个字节编一个序号 对于一个文件第一个需要是多少是可以随机的 发送的时候是以报文段为
  • 4元数(转)

    这是国内找不到的超好文章 为什么大陆的4元数文章很垃圾呢 翻译中 奉献给大家 70秒即懂 能使用 用四元数 4元数 阔特尼恩 Quaternion旋转 C 中田 亨 独立行政法人 产业技术综合研究所 数字人类研究中心 研究员 博士 工学 2
  • wireshark抓包图解 TCP三次握手/四次挥手详解

    一 TCP IP协议族 TCP IP是一个协议族 通常分不同层次进行开发 每个层次负责不同的通信功能 包含以下四个层次 1 链路层 也称作数据链路层或者网络接口层 通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡 它们一起处理与电
  • 医疗大数据安全技术实践

    随着医疗大数据的不断积累 其安全性问题也逐渐受到广泛的关注 保护医疗大数据的安全和隐私至关重要 不仅需要制定相应的政策措施 更需要实际的技术实践 下面我将重点介绍医疗大数据安全技术实践的相关措施 1 数据加密技术 数据加密技术是医疗大数据安
  • 源码分享-go语言实现的snow3g加密算法

    源码路径 free5gc nas security snow3g snow3g go package snow3g var sr byte 0x63 0x7c 0x77 0x7b 0xf2 0x6b 0x6f 0xc5 0x30 0x01
  • 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    如需完整代码 加 LiteMango 付费 项目内容 本案例选择 gt gt 商品类目 沙发 数量 共100页 4400个商品 筛选条件 天猫 销量从高到低 价格500元以上 以下是分析 源码点击文末链接 项目目的 1 对商品标题进行文本分
  • Python爬虫要学多久

    Python爬虫要学三个月到半年 自学的话 根据每个人的情况来说 学习周期是不同的 如果没有任何基础 零基础小白进行Python学习的话 需要先进行简单的Python基础知识学习 就需要三个月左右的时间 再进行爬虫知识的学习 少则半年左右
  • 常用网址合集

    常用网址合集 一 壁纸网站 a AweSome Wallpapers 二 音乐网站 a 音乐下载器 三 电子书下载网站 a PDF之家 四 摸鱼网站 a Fakeupdate 很早之前就想收集一些比较常用的网址 最开始是直接放浏览器里面 但
  • 北大学生控诉字节跳动backup制度,怎么破解职场pua?

    5月13日下午 一名北大学生在校内论坛未名BBS上写下4000多字长文 陈述自己在字节跳动实习的经历 该同学表示 2021年1月份在字节跳动办理实习生入职 四月中旬实习期已满 且因毕业事宜繁忙向leader表达了近期需要离职的诉求 但竟遭遇
  • unity3d课后练习(四)

    文章目录 1 基本操作演练 建议做 2 编程实践 1 基本操作演练 建议做 下载 Fantasy Skybox FREE 构建自己的游戏场景 在 Asset Store 中搜索 Fantasy Skybox FREE 下载完成后 按照介绍导
  • better-scroll的学习和使用

    better scroll的学习和初始化 介绍 在日常的移动端开发中 列表滚动条的处理是非常常见的需求 横竖的滚动条使用better scroll都可以帮助我们在开发中实现 什么是better scroll better scroll是一个
  • Lattice Planner从入门到放弃

    Lattice Planner相关背景和更正式的公式推导可以直接参考其原始论文 Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren t Frame ICR
  • protobuf快速上手

    protobuf快速上手 一 序列化与反序列化 序列化与反序列化的场景 常用的工具 二 protobuf工作原理 三 快速上手 protobuf中的数据类型 proto文件格式 编译选项 快速上手 四 通讯录demo 编写proto文件 编
  • 多DBWR进程与IO slave

    DBWn DBWn定期写脏数据到磁盘 频繁的磁盘I O会影响性能 所以每当数据库内存中产生脏数据时 是不一定也不应该产生写数据到磁盘的操作的 DBWn会尽量少的写入磁盘 虽然一个数据库DBW0进程适用于所有系统 为了提高数据库写的能力可以配
  • 使用gSOAP与WebService - 第一部分 为VC++从WSDL读取信息

    CurrencyConvertor How use gSOAP and WebServices Part 1 Get ready with VC 6 from WSDL file Download Demo 42 1 KB Download
  • Angular js 中angular is not defined 的问题

    觉得很搞笑 我现在还是不知道这是什么情况 反正这样能解决问题 1 我用下面这种方式引入js文件 在js文件中使用angular module方法会报angular is not defined 2 然后把引入的angular js文件放在上
  • Proteus(8.9版本) 51单片机-烟雾探测器的设计-仿真

    第一步是收集有关室外温度 湿度和气体浓度的信息 作为敏感元件烟雾传感器的输入信息 当信号输入值与放大模块的A D转换器输入电平相匹配时 无需放大放大器 当信号输入值与放大模块的A D转换器输入级别不匹配时 放大器将放大电气信号 A D电路的