200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答

时间:2018-06-28 19:18:24

相关推荐

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

文章目录

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)完成事项任务书要求设计说明书摘要设计框架架构设计说明书及设计文件源码展示

完成事项

原理图工程文件原理图截图仿真工程文件源代码仿真截图答辩论文,29335字答辩PPT

任务书要求

一、主要研究内容:

1、 掌握智能楼宇消防监控系统的工作原理;

2、 智能楼宇消防监控系统的单片机编程实现。

二、方法和要求:

1、 阅读大量智能楼宇消防监控系统的相关文献资料,掌握其技术的原理和电路的结构,理解程序实现的核心思想;

2、 积累相关资料确定论文的主体内容,重点进行研究;

3、 每一周进行一次论文进度的汇报,指导老师解答遇到的问题;把握好论文的进度,按照学校的要求完成各个阶段目标。

设计说明书

摘要

本次系统主要有硬件和软件两个部分组成。硬件部分由STC89C52单片机最小系统单元,单片机最小系统,温度检测,烟雾浓度检测,声学光学报警,显示单元组成,在设计上硬件需要考虑到系统的稳定性以及可靠性。软件部分通过对系统软件总流程图绘制,并绘制各个子控制驱动再对驱动程序编写完成系统程序的设计。在硬件与软件的设计上选择按照功能性分区设计,使设计有条理运行可靠。系统设计没有制作实物而是通过仿真方式调试完成。使用仿真软件Proteus来搭建系统硬件电路,调试测试。最后完成了烟雾检测,温度检测,并可以调节阈值实现对系统的报警自定义设置防止误报,通过模拟仿真出实际的楼宇消防系统。

设计框架架构

前 言 1

第一章 消防监控系统概述 2

第一节 研究背景及意义 2

第二节 国内外研究情况 3

第三节 本文的主要研究内容 4

第四节 本章小结 5

第二章 系统方案设计 6

第一节 总体方案设计 6

第二节 主要元器件介绍 6

一、LCD1602液晶显示屏 6

二、DS18B20温度传感器 7

三、气体传感器 8

第三节 本章小结 10

第三章 系统硬件设计 11

第一节 单片机最小系统电路设计 11

一、单片机介绍 11

二、最小系统电路设计 13

第二节 温度检测电路设计 14

第三节 烟雾报警电路设计 15

第四节 显示器电路设计 16

第五节 按键电路设计 16

第六节 报警电路设计 17

一、声学报警电路设计 17

二、光学报警电路设计 18

第七节 系统总电路设计 18

第八节 本章小结 19

第四章 系统软件设计 20

第一节 开发工具介绍 20

第二节 系统软件总流程设计 21

第三节 温度检测程序设计流程 22

第四节 烟雾检测程序设计流程 23

第五节 报警驱动程序设计流程 24

第六节 显示器驱动程序设计流程 25

第七节 本章小结 26

第五章 系统的仿真实现 27

第一节 仿真软件介绍 27

第二节 仿真电路搭建 27

第三节 仿真测试 29

一、温度检测、报警功能测试 29

二、气体浓度检测、报警功能测试 31

三、报警阈值调节功能测试 33

四、综合测试 34

第四节 本章小结 35

结 论 36

致 谢 37

参考文献 38

附 录 40

一、英文原文 40

二、英文翻译 44

三、工程图纸 48

四、源代码 49

设计说明书及设计文件

开发项目需要使用的软件,百度云共享

AD16

链接:/s/1FIhJkE0Pv2mRxJIooRzKNA

提取码:uqvd

Keil4

链接:/s/1_0qtwROJ6hDeioyG0XL-xg

提取码:t82c

Visio

链接:/s/1aS8FCZat7lAdHjclNa8owA

提取码:l9o1

Proteus

链接:/s/1GinRzP3QHtfVOIBxJ5yD3w

提取码:u0vb

资料链接

答辩论文,29335字

源码展示

#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include "intrins.h" #defineu8 unsigned char#defineu16 unsigned int#defineuchar unsigned char#defineuint unsigned intuchar yushe_wendu=50;//温度预设值uchar yushe_yanwu=100;//烟雾预设值uint wendu; //温度值全局变量uchar yanwu; //用于读取ADC数据//运行模式 uchar Mode=0; //=1是设置温度阀值 =2是设置烟雾阀值=0是正常监控模式//管脚声明sbit Led_Reg =P2^2; //红灯sbit Led_Yellow =P2^4; //黄灯sbit Buzzer=P2^0; //蜂鸣器sbit Fan=P3^3; ///********************************************************************* 名称 : delay_1ms()* 功能 : 延时1ms函数* 输入 : q* 输出 : 无***********************************************************************/void delay_ms(uint q){uint i,j;for(i=0;i<q;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 ++;}}//========================================================================// 函数: void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l)// 应用: LCD_Write_Char(0,1,366,4) ;// 描述: 在第0行第一个字节位置显示366的后4位,显示结果为 0366// 参数: x:行,y:列,s:要显示的字,l:显示的位数// 返回: none.// 版本: VER1.0// 日期: -4-1// 备注: 最大显示65535//========================================================================void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l) {SelectPosition(x,y) ;if(l>=5)write_data(0x30+s/10000%10);//万位if(l>=4)write_data(0x30+s/1000%10);//千位if(l>=3)write_data(0x30+s/100%10);//百位if(l>=2)write_data(0x30+s/10%10);//十位if(l>=1)write_data(0x30+s%10);//个位}/*1602指令简介write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁write_com(0x0d);//打开显示 阴影闪烁write_com(0x0d);//打开显示 阴影闪烁*///1602初始化void Init1602(){uchar i=0;write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁write_com(0x06);//当读或写一个字符是指针后一一位write_com(0x01);//清屏}void Display_1602(yushe_wendu,yushe_yanwu,c,temp){//显示预设温度LCD_Write_Char(0,6,yushe_wendu,2) ;//显示预设烟雾LCD_Write_Char(0,13,yushe_yanwu,3) ;//时时温度LCD_Write_Char(1,6,c/10,2) ;write_data('.');LCD_Write_Char(1,9,c%10,1) ;//时时烟雾LCD_Write_Char(1,13,temp,3) ;}/***********************************************************************************************************ADC0832相关函数sbit ADCS =P1^5; //ADC0832 片选sbit ADCLK =P1^2; //ADC0832 时钟sbit ADDI =P1^3; //ADC0832 数据输入/*因为单片机的管脚是双向的,且ADC0832的数据输入输出不同时进行,sbit ADDO =P1^3; //ADC0832 数据输出/*为节省单片机引脚,简化电路所以输入输出连接在同一个引脚上

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。