资源简介

主要内容: 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\objects\
     文件        3552  2017-04-07 18:24  源代码 - new\objects\lcd.obj
     文件       26554  2017-06-08 19:42  源代码 - new\objects\main.obj
     文件       24058  2017-06-08 19:42  源代码 - new\objects\Project
     文件        1084  2017-06-08 19:42  源代码 - new\objects\Project.build_log.htm
     文件        9219  2017-06-08 19:42  源代码 - new\objects\Project.hex
     文件         105  2017-06-08 19:42  源代码 - new\objects\Project.lnp
............此处省略6个文件信息

评论

共有 条评论