(毕业设计资料)基于单片机宿舍防火防盗系统的设计

024【毕设课设】基于单片机宿舍防火防盗系统的设计,主要实现防火和红外防盗系统。

说明:选择键选择第几路温度或者烟雾传感显示,设置键选择设置温度上限还是烟雾上限,默认温度上限。加

减键分别对上限值进行加减。

注意:按键需要按下半秒才生效,1/2表示烟雾浓度路数,3/4表示温度路数,本设计并提供实时检测寝室温度,

以确保准确性。声音报警有稍微延迟,仿真中正常现象。

【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

#include <REGX51.H>
#include "1602.H"
#include "DS18B20.h"
extern unsigned char ReadAdc0832( unsigned char channel );


extern void DelayMs( unsigned char t );


unsigned int		Temp[5];                                                                /* 5路温度值温度放大10倍 */
int			DS18B20DATA[3];                                                                 /* DS18B20读到的16位数据 */
code unsigned char	DecimalNum[16] = { 0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9 };    /* DS18B20小数部分对应的数 */
unsigned char code	DuanMa[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f };
sbit			LED	= P3 ^ 1;                                                           /* LED报警 */
sbit			BEEP = P3 ^ 5;                                                          /* 蜂蜜其报警 */
sbit			LE	= P3 ^ 0;
sbit			Key	= P1 ^ 0;

sbit	SET	= P1 ^ 7;                                                                       /* 设置键 */
sbit	ADD	= P3 ^ 3;                                                                       /* 加++1 */
sbit	DEC	= P3 ^ 4;                                                                       /* 减--1 */

unsigned char	flag = 1;
unsigned char	CurID;                                                                      /* 路数ID */
unsigned int	s	= 450;                                                                  /* 烟雾上限 放大十倍 */
unsigned int	t	= 360;                                                                  /* 温度上限 放大十倍 */
/* 显示段码值01234567 */
unsigned char LCDbuf[16];

/* AD模拟量读取 */
void LM35Read( void )
{
	Temp[0] = ReadAdc0832( 0 ) * 10;
	DelayMs( 10 );
	Temp[1] = ReadAdc0832( 1 ) * 10;
	DelayMs( 10 );
}


/* DS18B20温度读取 */
void DS18B20Read()
{
	gettemp( DS18B20DATA );
	Temp[2] = (DS18B20DATA[0] >> 4) * 10 + DecimalNum[DS18B20DATA[0] & 0x0f];
	Temp[3] = (DS18B20DATA[1] >> 4) * 10 + DecimalNum[DS18B20DATA[1] & 0x0f];
	Temp[4] = (DS18B20DATA[2] >> 4) * 10 + DecimalNum[DS18B20DATA[2] & 0x0f]; /* 环境温度 */

 

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值