资源简介
主要内容:
1、 利用温度传感器完成温度数据的采集,掌握I2C通信接口使用。
2、 利用烟雾传感器完成烟雾浓度采集。
3、 利用单片机对采集的数据尽情处理,并通过lcd屏显示出来;
4、 应用Protel软件设计原理图和PCB。
5、 编写传感器驱动程序以及单片机的处理程序。
6、 硬件、软件调试和综合调试。
毕业设计实现的功能:
1)能实时显示温度,烟雾浓度; 2)当烟雾浓度超过一定值是报警;当温度超过一定值时报警:当两个都超过阈值时,报警;(三个报警信号通过蜂鸣器来实现,通过不同的鸣叫方式区分)
代码片段和文件信息
//头文件:
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^6;
sbit LCD1602_RS=P2^5;
sbit CS = P1^4;
sbit Clk = P1^5;
sbit DATI = P1^6;
sbit DATO = P1^6;
sbit BEEP = P1^0;
sbit KEY1 = P1^1;
sbit KEY2 = P1^2;
sbit KEY3 = P1^3;
sbit DSPORT=P2^2;
uchar dat = 0x00; //AD值
uchar CH; //通道变量
uchar code hot[8]={0x100x060x090x080x080x090x060x00}; //摄氏温度字模
uchar author_data[16]=“C H-NXZ-13090419“;
uchar s_t_data[16]=“S:000% T:-00.00 “;
uchar Interface1_data[16] = “ MAX Temp:00.00 “;
uchar Interface2_data[16] = “ MAX Solu:00.00%“;
uint TempMAX = 3000;//扩大百倍
uchar SoluMAX = 12;
uchar InterfaceStatic = 0;
unsigned char adc0832(unsigned char CH)
{
unsigned char itestadval;
adval = 0x00;
test = 0x00;
Clk = 0; //初始化
DATI = 1;
_nop_();
CS = 0;
_nop_();
Clk = 1;
_nop_();
if(CH == 0x00) //通道选择
{
Clk = 0;
DATI = 1; //通道0的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 0; //通道0的第二位
_nop_();
Clk = 1;
_nop_();
}
else
{
Clk = 0;
DATI = 1; //通道1的第一位
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 1; //通道1的第二位
_nop_();
Clk = 1;
_nop_();
}
Clk = 0;
DATI = 1;
for( i = 0;i < 8;i++ ) //读取前8位的值
{
_nop_();
adval <<= 1;
Clk = 1;
_nop_();
Clk = 0;
if (DATO)
adval |= 0x01;
else
adval |= 0x00;
}
for (i = 0; i < 8; i++) //读取后8位的值
{
test >>= 1;
if (DATO)
test |= 0x80;
else
test |= 0x00;
_nop_();
Clk = 1;
_nop_();
Clk = 0;
}
if (adval == test) //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉
dat = test;
_nop_();
CS = 1; //释放ADC0832
DATO = 1;
Clk = 1;
return dat;
}
void Delay10ms() //@11.0592MHz
{
unsigned char i j;
i = 108;
j = 145;
do
{
while (--j);
} while (--i);
}
uchar KeyScan()
{
uchar i = 0;
uchar keyValue = 0;
if(KEY1 == 0)
{
Delay10ms();
if(KEY1 == 0)
{
keyValue = 1;
i = 0;
while ((i<50) && (KEY1==0)) //检测按键是否松开
{
Delay10ms();
i++;
}
}
}
if(KEY2 == 0)
{
Delay10ms();
if(KEY2 == 0)
{
keyValue = 2;
i = 0;
while ((i<50) && (KEY2==0)) //检测按键是否松开
{
Delay10ms();
i++;
}
}
}
if(KEY3 == 0)
{
Delay10ms();
if(KEY3 == 0)
{
keyValue = 3;
i = 0;
while ((i<50) && (KEY3==0)) //检测按键是否松开
{
Delay10ms();
i++;
}
}
}
return keyValue;
}
//lcd
/*******************************************************************************
* 函 数 名 : Lcd1602_Delay1ms
* 函数功能 : 延时函数,延时1ms
* 输 入 : c
* 输 出 : 无
* 说 名 : 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/
void Lcd1602_Delay1ms(uint
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-15 13:49 原理图\
目录 0 2017-11-15 13:49 原理图\History\
文件 17972 2017-11-15 13:47 原理图\History\基于单片机的自动火灾报警系统.~(1).SchDoc.Zip
文件 21948 2017-11-15 13:48 原理图\History\基于单片机的自动火灾报警系统.~(2).SchDoc.Zip
文件 21960 2017-11-15 13:48 原理图\History\基于单片机的自动火灾报警系统.~(3).SchDoc.Zip
文件 21970 2017-11-15 13:49 原理图\History\基于单片机的自动火灾报警系统.~(4).SchDoc.Zip
目录 0 2017-11-15 13:48 原理图\Project Logs for 基于单片机的自动火灾报警系统\
文件 198 2017-11-15 13:48 原理图\Project Logs for 基于单片机的自动火灾报警系统\基于单片机的自动火灾报警系统 SCH ECO 2017-11-15 13-48-39.LOG
目录 0 2017-06-04 04:18 原理图\__Previews\
文件 34534 2017-04-07 20:20 原理图\__Previews\基于单片机的自动火灾报警系统.PcbDocPreview
文件 63256 2017-11-15 13:49 原理图\__Previews\基于单片机的自动火灾报警系统.SchDocPreview
文件 12909568 2017-04-05 17:17 原理图\基于单片机的自动火灾报警系统.PcbDoc
文件 430714 2017-04-07 20:20 原理图\基于单片机的自动火灾报警系统.PDF
文件 38506 2017-04-05 16:49 原理图\基于单片机的自动火灾报警系统.PrjPCB
文件 143360 2017-11-15 13:49 原理图\基于单片机的自动火灾报警系统.SchDoc
目录 0 2017-06-04 04:18 实物照片\
文件 1692664 2017-04-16 12:56 实物照片\IMG_1802.JPG
目录 0 2017-06-08 20:01 源代码 - new\
目录 0 2017-06-08 19:42 源代码 - new\Listings\
文件 4705 2017-04-07 18:24 源代码 - new\Listings\lcd.lst
文件 28053 2017-06-08 19:42 源代码 - new\Listings\main.lst
文件 34820 2017-06-08 19:42 源代码 - new\Listings\Project.m51
文件 14155 2017-06-08 19:42 源代码 - new\Listings\STARTUP.lst
文件 14975 2017-06-08 19:14 源代码 - new\main.c
目录 0 2017-06-08 19:42 源代码 - new\ob
文件 3552 2017-04-07 18:24 源代码 - new\ob
文件 26554 2017-06-08 19:42 源代码 - new\ob
文件 24058 2017-06-08 19:42 源代码 - new\ob
文件 1084 2017-06-08 19:42 源代码 - new\ob
文件 9219 2017-06-08 19:42 源代码 - new\ob
文件 105 2017-06-08 19:42 源代码 - new\ob
............此处省略6个文件信息
相关资源
- 51单片机 火灾报警器
- STC单片机无线遥控解码程序
- STC单片机原理及应用
- 盆花自动浇水毕业设计单片机
- STC单片机串口接收发送程序
- GA 1151-2014火灾报警系统无线通信功能
- 诺蒂菲尔火灾报警400系列通讯协议
- 基于PLC火灾报警系统的毕业设计
- 基于MSP430的多路火灾报警系统
- 温度传感器在火灾报警系统中的实现
- 基于51单片机的智能火灾报警系统-完
- 基于单片机的火灾报警器
- stc单片机AD 8位和10位数值通过1602液晶
- 读取STC单片机ID号,用CRC-ITU算法加密
- 基于STC单片机的太阳能热水器智能节
- 基于STC单片机的PID温度控制程序
- TFT 240*320 ST7789 C51-STC单片机
- proteldxp STC单片机元件库
- 51STC单片机开发板驱动
- STC单片机配合AD7705的称重传感器源程
- STC单片机原理图库和PCB库
- 基于STC单片机和可控硅的白炽灯调光
- 宏晶STC单片机常见封装及PCB库
- STC单片机触摸C程序
- STC单片机舵机PWM控制教程源码,教程
- 制作STC单片机USB线资料原理图等
- STC单片机读取AT24C02程序
- STC单片机Altium Designer原理图库
- 自动浇花控制系统设计内含原理图、
- 电子体温计设计内含原理图、源代码
评论
共有 条评论