資源簡介
主要內容:
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個文件信息
評論
共有 條評論