当前位置:   article > 正文

基于51单片机智能家居监控系统设计_基于单片机的家居环境监测系统

基于单片机的家居环境监测系统

基于51单片机智能家居监控系统设计

(仿真+程序+设计报告)

功能介绍

具体功能:

1.温度、煤气、烟雾检测;

2.5110液晶屏实时显示温度值、煤气浓度、烟雾浓度;

3.超过设定温度、烟雾、煤气阈值,蜂鸣器+LED声光报警;

4.设定外人闯入报警;

  1. #include "lcd5110.h"
  2. #include "adc0809.h"
  3. #include <math.h>
  4. sbit tube = P3^2;//干簧管
  5. sbit beep = P3^6;//蜂鸣器
  6. sbit led = P3^7;//LED灯
  7. uint temperature;//温度
  8. uint smoke;//煤气浓度
  9. uint fire;//烟雾浓度
  10. uchar index;//定义发送数据个数
  11. uchar ad_Value[3];//定义AD采集数据
  12. float getVoltage[3];//定义电压采集数值
  13. uchar receivedata;//定义串口接收数据
  14. bit people_flag;//外人闯入标志位
  15. bit temper_flag;//温度异常标志位
  16. bit smoke_flag;//煤气浓度异常标志位
  17. bit fire_flag;//烟雾浓度异常标志位
  18. bit cancel_flag;//取消报警标志位
  19. void delay(uint num)
  20. {
  21. uint x,y;
  22. for(x=num;x>0;x--)
  23. for(y=110;y>0;y--);
  24. }
  25. void init_interrupt(void)
  26. {
  27. TMOD = 0x02;
  28. TH0 = 0xfb;
  29. TL0 = 0xfb;
  30. EA = 1;
  31. ET0 = 1;
  32. TR0 = 1;
  33. }
  34. void ex_init(void)
  35. {
  36. IT0 = 1;
  37. EX0 =1;
  38. EA = 1;
  39. }
  40. void usart(void)
  41. {
  42. TMOD |= 0x20;
  43. SCON = 0x50;
  44. PCON = 0x00;
  45. TH1 = 0xfd;
  46. TL1 = 0xfd;
  47. TR1 = 1;
  48. EA = 1;
  49. ES = 1;
  50. }
  51. //显示函数
  52. void display(void)
  53. {
  54. //显示温度
  55. LCD_Set_XY(0,1);
  56. LCD_Write_Char(temperature/1000+0x30);
  57. LCD_Write_Char((temperature%1000)/100+0x30);
  58. LCD_Write_Char((temperature%100)/10+0x30);
  59. LCD_Write_Char('.');
  60. LCD_Write_Char(temperature%10+0x30);
  61. //显示煤气浓度
  62. LCD_Set_XY(0,3);
  63. LCD_Write_Char(smoke/1000+0x30);
  64. LCD_Write_Char((smoke%1000)/100+0x30);
  65. LCD_Write_Char((smoke%100)/10+0x30);
  66. LCD_Write_Char('.');
  67. LCD_Write_Char(smoke%10+0x30);
  68. //显示烟雾浓度
  69. LCD_Set_XY(0,5);
  70. LCD_Write_Char(fire/1000+0x30);
  71. LCD_Write_Char((fire%1000)/100+0x30);
  72. LCD_Write_Char((fire%100)/10+0x30);
  73. LCD_Write_Char('.');
  74. LCD_Write_Char(fire%10+0x30);
  75. }
  76. //报警函数
  77. void alarm(void)
  78. {
  79. //报警判断
  80. if(temperature/10>=45)
  81. {
  82. temper_flag = 1;//自动报警
  83. }
  84. else
  85. {
  86. temper_flag = 0;//取消报警
  87. }
  88. if(smoke/10>=30)
  89. {
  90. smoke_flag = 1;//自动报警
  91. }
  92. else
  93. {
  94. smoke_flag = 0;//取消报警
  95. }
  96. if(fire/10>=30)
  97. {
  98. fire_flag = 1;//自动报警
  99. }
  100. else
  101. {
  102. fire_flag = 0;//取消报警
  103. }
  104. //声光报警
  105. if(people_flag==1||temper_flag==1||smoke_flag==1||fire_flag==1)
  106. {
  107. if(!cancel_flag)
  108. {
  109. beep = 1;
  110. delay(20);
  111. beep = 0;
  112. delay(20);
  113. led = 1;
  114. }
  115. else
  116. {
  117. beep = 1;
  118. led = 0;
  119. }
  120. }
  121. else
  122. {
  123. beep = 1;
  124. led = 0;
  125. }
  126. }
  127. //数据格式转换
  128. uchar change(uchar dat)
  129. {
  130. uchar result;
  131. uchar temp_H,temp_L;
  132. temp_H = dat/10;
  133. temp_L = dat%10;
  134. result = temp_H*16+temp_L;
  135. return result;
  136. }

硬件设计

使用元器件:

单片机:AC89C52;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

设计资料

01 仿真图

本设计使用proteus8.9版本设计,没有软件可以在本公众号获取,无需担心!具体如图!

02 程序

本设计使用软件keil4和keil5两个版本编程设计,无需担心!具体如图

03 设计报告

五千字设计报告,具体如下!

04 设计资料

全部资料包括仿真源文件 、程序(含注释)、设计报告、流程图、仿真操作视频等。具体内容如下,全网最全! !

 

下面是开源51单片机设计资料

​大家共同学习进步:

链接:百度网盘 请输入提取码

提取码:1qoi

点赞分享,一起学习进步!一起成长。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/693047
推荐阅读
相关标签
  

闽ICP备14008679号