資源簡介
本系統是基于STC89C51的實時自動報警裝置,本系統通過人體感應模塊檢測人類的接近,并將其傳遞至STC89C51中處理,一方面在LCD1602顯示模塊中顯示報警信息,另一方面將實時得到的信息進行監督。當無人接近時時,LED顯示電路顯示正常。當檢測到人體接近時,LED顯示顯示紅燈,蜂鳴器報警。以此實現了自動滴灌。
此文件中包含 : 設計報告word文檔 keilC51程序 protues仿真原理圖

代碼片段和文件信息
#include? ?????????//調用單片機頭文件
#include?
#define?uchar?unsigned?char??//無符號字符型?宏定義 變量范圍0~255
#define?uint??unsigned?int ?//無符號整型?宏定義 變量范圍0~65535
#define?key_io?P3
uchar?key_can;
//???紅外熱釋電平時為0??有輸出為1
sbit?beep?=?P1^0; ???//蜂鳴器定義
sbit?red??=?P1^3; ???//紅色發光二極管定義
sbit?green?=?P1^2; ???//綠色發光二極管定義
sbit?yellow?=?P1^1; ???//黃色發光二極管定義
sbit?hw????=?P1^4; ???//紅外熱釋傳感器定義
bit?flag_300ms?=?0;
sbit?RS?=?P2^5;
sbit?RW?=?P2^6;
sbit?EN?=?P2^7;
#define?RS_H???????RS?=?1
#define?RS_L???????RS?=?0
#define?RW_H???????RW?=?1
#define?RW_L???????RW?=?0
#define?EN_H???????EN?=?1
#define?EN_L???????EN?=?0
#define?READ_DATA??P0
void?DelayMs(unsigned?int?z)
{
???unsigned?int?x;
???for(;z>0;z--)
?????for(x=110;x>0;x--);
}
/***************************LCD1602液晶寫命令*****************************/
void?LCDWriteCom(unsigned?char?com)
{
RS_L;
RW_L;
READ_DATA?=?com;
EN_H;
DelayMs(5);
EN_L;
}
/***************************LCD1602液晶寫數據*****************************/
void?LCDWriteData(unsigned?char?dat)
{
RS_H;
RW_L;
READ_DATA?=?dat;
EN_H;
DelayMs(5);
EN_L;
}
void?LcdWriteStr(unsigned?char?hangunsigned?char?addchar*s)
{
????unsigned?char?i;
????unsigned?char?length?=?0;
if(hang==1)???
LCDWriteCom(0x80+add);
else
LCDWriteCom(0x80+0x40+add);
????length?=?strlen(s);
????for(i=0;i ??????LCDWriteData(*s++);??????????//指針送完數據后自加一
}
void?Init_1602(void)
{
?LCDWriteCom(0x38); //1602?5x7點陣
?LCDWriteCom(0x0c); //液晶開顯示
?LCDWriteCom(0x06); ?//光標右移
?LCDWriteCom(0x01); ?//清屏
?DelayMs(2);
}
//獨立按鍵處理函數
void?key()
{
static?uchar?key_new?=?0key_old?=?0key_value?=?0;
if(key_new?==?0) ?//按鍵松開
{
if((key_io?&?0x07)?==?0x07)
key_value?++;
else?
key_value?=?0;
if(key_value?>=?5) ?//按鍵松開松手檢測
{
key_value?=?0;
key_new?=?1; //按鍵松開后進入等待按鍵狀態
}
}
else?
{
if((key_io?&?0x07)?!=?0x07) ?//按鍵按下
key_value?++;
else?
key_value?=0;
if(key_value?>=?5) //按鍵按下消抖
{
key_value?=?0;
key_new?=?0; ???//按鍵松開后進入等待松開按鍵狀態
}
}
key_can?=?20;
if((key_new?==?0)?&&?(key_old?==?1))
{
switch(key_io?&?0x07)
{
case?0x06:?key_can?=?1;?break; ??//得到按鍵值?
case?0x05:?key_can?=?2;?break; ??//得到按鍵值?
case?0x03:?key_can?=?3;?break; ??//得到按鍵值?
}
} ?
key_old?=?key_new; ?
}
void?time_init() ??
{
EA???=?1; ? ??//開總中斷
TMOD?=?0X01; ??//定時器0工作方式1
ET0??=?1; ??//開定時器0中斷?
TR0??=?1; ??//允許定時器0定時
}
uchar?flag_alarm?;?????//報警標志位
uchar?flag_bufang?;????//布防標志位
uchar?flag_bufang_en?;?//布防標志位使能
uint??flag_value;??????//用做定時器的變量
uchar?shige;?
uchar?num;
//紅外報警處理???
void?hongwai_dis()
{
????static?uchar?flag_num=0flag_va=1; ??//
????
if(flag_alarm?==?1) ???//報警
{
red?=?~red; ???//紅燈報警
beep?=?~beep; ???//蜂鳴器報警
}
if(flag_bufang_en?==?1)?//準備開始布防
{
green?=?~green; ???//綠燈閃
}??
if(flag_bufang?==?1)???//確認布防
{
green?=?0;?????????//如果延時布防成功?綠燈長亮
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-26?15:48??上交文件\
?????文件??????162889??2018-03-26?15:42??上交文件\Last?Loaded?紅外熱釋電.DBK
?????文件??????709198??2018-03-26?15:43??上交文件\基于STC89C51的防盜報警器.docx
?????目錄???????????0??2018-03-26?15:42??上交文件\源代碼\
?????文件???????11775??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器
?????文件????????4796??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.c
?????文件????????2673??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.hex
?????文件??????????86??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.lnp
?????文件???????11793??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.LST
?????文件???????16076??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.M51
?????文件???????13659??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.OBJ
?????文件?????????194??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.plg
?????文件???????55319??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.uvopt
?????文件???????13331??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器.uvproj
?????文件???????55319??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器_uvopt.bak
?????文件???????????0??2018-03-26?15:42??上交文件\源代碼\基于51單片機?紅外熱釋報警器_uvproj.bak
?????文件??????162763??2018-03-26?15:42??上交文件\紅外熱釋電.DSN
?????文件?????????742??2018-03-26?15:42??上交文件\紅外熱釋電.PWI
- 上一篇:《有限元法》考試試卷
- 下一篇:單片機原理及應用試題庫-
評論
共有 條評論