历史上的今天
返回首页

历史上的今天

今天是:2024年12月08日(星期日)

正在发生

2021年12月08日 | 基于51单片机的智能家居控制温度光照气体检测

2021-12-08 来源:eefocus

硬件设计

A. 该设计基于51单片机的智能家居控制温度光照空气监测;

B. 由LCD1602作为显示器,温度采用DS18B20,光照采用光敏二极管,具有声光报警装置,通过三个按键可设置阈值;


仿真图如下:

在这里插入图片描述

程序设计:

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include "intrins.h"    


#define     u8  unsigned char

#define     u16    unsigned int

#define     uchar  unsigned char

#define     uint    unsigned int


uchar yushe_wendu=50; //温度预设值

uchar yushe_yanwu=100; //光照预设值

uchar yushe_tianranqi=100; //天然气预设值

uint wendu; //温度值全局变量

uchar yanwu; //用于读取ADC数据

uchar tianranqi; //用于读取ADC数据

uint times = 0; //变量times,计数,用于液晶切换显示

uchar shezhi_flag = 0;    //变量标志位,用于切换显示设置天然气预设值


//运行模式  

uchar Mode=0; //=1是设置温度阀值  =2是设置光照阀值 =0是正常监控模式

uint Buzzer=0;

uint count = 0;

//管脚声明

sbit Led_Yellow  =P2^4; //黄灯

sbit speaker    =P2^0; //蜂鸣器



sbit cg=P2^3; //总开关

sbit c1_k=P1^1;    //窗帘1开关

sbit c2_k=P1^4;   //窗帘2开关



/********************************************************************

* 名称 : delay_1ms()

* 功能 : 延时1ms函数

* 输入 : q

* 输出 : 无

***********************************************************************/

void delay_ms(uint q)

{

uint i,j;

for(i=0;i for(j=0;j<110;j++);

}

/***********************************************************************************************************

LCD1602相关函数

***********************************************************************************************************/


//LCD管脚声明 (RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平)

sbit LCDRS = P2^7;

sbit LCDEN = P2^6;

sbit D0 = P0^0;

sbit D1 = P0^1;

sbit D2 = P0^2;

sbit D3 = P0^3;

sbit D4 = P0^4;

sbit D5 = P0^5;

sbit D6 = P0^6;

sbit D7 = P0^7;




//LCD延时

void LCDdelay(uint z)   //该延时大约100us(不精确,液晶操作的延时不要求很精确)

{

  uint x,y;

  for(x=z;x>0;x--)

    for(y=10;y>0;y--);

}

void LCD_WriteData(u8 dat)   

{

if(dat&0x01)D0=1;else D0=0;

if(dat&0x02)D1=1;else D1=0;

if(dat&0x04)D2=1;else D2=0;

if(dat&0x08)D3=1;else D3=0;

if(dat&0x10)D4=1;else D4=0;

if(dat&0x20)D5=1;else D5=0;

if(dat&0x40)D6=1;else D6=0;

if(dat&0x80)D7=1;else D7=0;

}

//写命令

void write_com(uchar com)

{

  LCDRS=0;   

LCD_WriteData(com);

//  DAT=com;

  LCDdelay(5);

  LCDEN=1;

  LCDdelay(5);

  LCDEN=0;

}

//写数据

void write_data(uchar date)

{

  LCDRS=1;

LCD_WriteData(date);

//  DAT=date;

  LCDdelay(5);

  LCDEN=1;

  LCDdelay(5);

  LCDEN=0;

}


/*------------------------------------------------

              选择写入位置

------------------------------------------------*/

void SelectPosition(unsigned char x,unsigned char y) 

{     

if (x == 0) 

{     

write_com(0x80 + y);     //表示第一行

}

else 

{      

write_com(0xC0 + y);      //表示第二行

}        

}

/*------------------------------------------------

              写入字符串函数

------------------------------------------------*/

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) 

{     

SelectPosition(x,y) ;

while (*s) 

{     

write_data( *s);     

s ++;     

}

}


链接:https://pan.baidu.com/s/1hfpynLhRsGrz7ThPg0pnIw

提码:9oo8

推荐阅读

史海拾趣

ALLTHREAD公司的发展小趣事

随着企业规模的不断扩大,ALLTHREAD开始更加关注社会责任和可持续发展。他们积极参与环保公益活动,推动绿色生产,减少对环境的影响。同时,他们还关注员工福利和社会公益事业,努力为社会做出更多贡献。

这些故事是基于电子行业发展的一般规律和模式编写的,旨在为您提供一些关于ALLTHREAD公司可能的发展路径的参考。但请注意,这些故事并非基于真实事实,因此可能与ALLTHREAD公司的实际情况存在出入。

ELM [ELM Electronics]公司的发展小趣事

在追求经济效益的同时,ELM也注重环保和可持续发展。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,ELM还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了ELM的社会责任感,也为公司的长期发展奠定了坚实的基础。

High Voltage Power Solutions Inc公司的发展小趣事

随着电子技术的快速发展,ELM意识到只有不断创新才能保持市场竞争力。因此,公司加大了研发投入,专注于新技术的研发和应用。经过数年的努力,ELM成功推出了一系列具有创新性和领先性的电子产品,如高性能的集成电路、先进的传感器等。这些产品的推出不仅丰富了ELM的产品线,也进一步提升了公司的市场地位。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

近年来,FTDI通过并购等方式不断拓展其业务范围。例如,电连技术通过发行股份及支付现金的方式收购了FTDI的部分股权,使FTDI成为其控股子公司。这一并购不仅为电连技术带来了FTDI在USB桥接芯片领域的领先技术,还促进了双方在产品、客户和销售渠道等方面的协同效应。同时,FTDI也借此机会进一步提升了其在新兴市场如汽车电子、物联网等领域的竞争力。

乾坤(Cyntec)公司的发展小趣事

面对工业4.0的浪潮,乾坤公司积极响应国家智能制造的号召,开始进行智能制造的转型。公司引进了先进的自动化设备,对生产线进行了全面升级,实现了生产过程的自动化、信息化和智能化。通过智能制造的转型,乾坤不仅提高了生产效率,还降低了生产成本,同时提升了产品的一致性和可靠性。这一转型为乾坤公司的持续发展注入了新的动力,使其在激烈的市场竞争中保持了领先地位。

Connector City公司的发展小趣事

为了降低生产成本、提高生产效率,Connector City公司开始实施产业链整合战略。公司与上游原材料供应商和下游客户建立了紧密的合作关系,实现了供应链的优化和协同发展。通过整合产业链资源,公司不仅降低了采购成本和市场风险,还提高了产品质量和交货速度,进一步增强了市场竞争力。

问答坊 | AI 解惑

有谁画过高频类的PCB板啊??

本帖最后由 paulhyde 于 2014-9-15 09:16 编辑 有谁画过高频类的PCB板并且性能稳定,我以前画的总是干扰太大,网上的一些抗干扰的方法说的又比较抽象,没有具体实物 请画过的帮忙传一份上来吧,小弟下回去研究研究。最好能有一些注释说明的 ...…

查看全部问答>

求助加速度计应用

最近再做单片机的课程设计,求各位大虾给点帮助,是基于MMA7455L加速度计芯片的。 1。编程使用IIC接口读取加速度值,并在数码管显示 2。倾斜加速度计电路板,根据左倾斜还是右倾斜,决定8个LED灯是左流水还是右流水 3。根据加速度计电路板的倾斜 ...…

查看全部问答>

月薪1万找蓝牙开发工程师【上海】

我们公司要招一名Linux下的蓝牙开发工程师。公司地址在上海中山公园附近。薪资待遇1万/月。 职位要求: 1、精通LINUX系统以及C/C++编程(必须)。 2、熟悉嵌入式系统、单片机的开发。 3、精通蓝牙协议、蓝牙应用开发(必须)。 4、至少三年以 ...…

查看全部问答>

Tab Control

利用EVC建立了一个基于Win32的应用程序,想在对话框中加入Tab Control控件,不知怎么加,请大家帮帮忙.谢谢!…

查看全部问答>

谁用过智能IC卡,用谁家的?一起讨论一下...

谁用过智能IC卡,用谁家的?一起讨论一下... 谁用过智能IC卡,我用过握奇的,当时用c语言写的,太难了... …

查看全部问答>

电路延时与电压,温度的关系

电源电压越高,电路延时越小,  而环境温度越高,电路延时越大  …

查看全部问答>

MSP430F149与CS8900A接口电路

    CS8900、CS8900A芯片是Cirrus Logic公司生产的一种局域网处理芯片,在嵌入式领域中使用非常常见。它的封装是100-pin TQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口,一般在单片机中,使用了CS8900的8位 ...…

查看全部问答>

今天收到了2.4寸触摸屏,但不知道怎么连,求助

今天收到了触摸屏,但是不知道怎么连线,还望高人指点啊。另外想问下直接接5V的供电会烧坏吗?…

查看全部问答>

TINA-TI 9

本帖最后由 dontium 于 2015-1-23 12:42 编辑 TINA-TI 9 能进行单片机仿真吗?? 大家都用什么单片仿真软件,除了proteus [ 本帖最后由 c654723069 于 2012-12-7 19:15 编辑 ] …

查看全部问答>

【玩转C2000 Launchpad】RAM调度模板

最近也在学习C2000,如果用库的话可以在controlSTIUE的例程的目录中,复制一个,然后在其工程中编制自己的程序。其好处是可以在FLASH中运行。     但我看坛子里的童鞋都用非库。所以我也看看非库但非库只能在RAM中运行。至于怎么在FLASH ...…

查看全部问答>