一、需求剖析
现代社会,家庭安全、产业安全和社会公共安全已成为人们遍及重视的问题。响马破门而入、爬窗而出,博物馆展品无故丢掉,江河水位上涨……这一系列问题都和人们日子休戚相关。
针对这类现象,今使用单片机的原理,特规划了一款简易报警器,来处理这些问题。
二、规划规划
1、全体构思体系,确认作业原理。
2、用Protel99规划电路图,确认所需元件参数,并由此规划PCB图。
3、购买所需元件和试验板,根据PCB焊接电路。
4、用KeilC51编写程序,并用仿真器仿真经过,下载至芯片AT89S52。
5、调试硬件体系,契合预期设想。
6、立异改善体系。
三、原理规划
原理简介
经过单片机AT89S52操控赤色LED2、绿色LED1、蜂鸣器U1和监测信号端口J2,C3扫除搅扰信号。图中S2、EC1和R2组成单片机复位电路,三极管Q0起音频扩大效果,晶振Y0为12MHz,J1接DC5V电源。
作业描绘
安全情况下,绿灯点亮,红灯平息,喇叭无声;一旦信号监测端口有脉冲或电平改变(依场合设置为高脉冲或低脉冲,高电平或低电平)呈现,即触发报警器进入报警状况,红绿灯替换闪耀,喇叭宣布警报声。
除非封闭电源或按下复位键,不然会报警不止,然后到达报警意图。
四、硬件规划
1、PCB的规划
PCB特点:单面板7.62×5.08cm2 (可依场合小型化)
2、%&&&&&%清单
3、元件设备图
4、布线图
5、硬件三维图
五、单片机程序
1、程序流程图
2、C言语程序
#include
#define Signal 0x00 //脉冲信号界说
sbit LED_G=P0^0;//绿灯驱动端口
sbit LED_R=P0^1;//红灯驱动端口
sbit Pulse=P2^0;//脉冲信号检测端口
sbit Buzzer=P2^1;//喇叭驱动端口
unsigned int Count=0;//闪耀时刻计数
//延时1毫秒函数
void Delay_ms(unsigned int ms)
{
unsigned char Temp;
while(ms–)
for(Temp=0;Temp<120;Temp++);
}
//高脉冲信号扫描函数
unsigned char Key_Scan()
{
if(Pulse==0)
{
Delay_ms(100);
if(Pulse==1)
{
Delay_ms(200);
return Signal;
}
else return 0xff;
}
else return 0xff;
}
//定时器0初始化
void Timer_Start()
{
TMOD=0x01;
TH0=0xfc;
TL0=0x18;
TR0=0;
ET0=1;
EA=1;
}
//定时器0中止服务函数,闪灯和鸣喇叭
void Timer0_Serve()interrupt 1
{
TH0=0xfc;
TL0=0x18;
Count++;
if(Count>=200)
{
Count=0;
LED_G=~LED_G;
LED_R=~LED_G;
Buzzer=~Buzzer;
}
}
//主函数
void main()
{
unsigned char Key_Code;
Timer_Start();
LED_G=0;
LED_R=1;
Buzzer=1;
Pulse=1;
while(1)
{
Key_Code=Key_Scan();
switch(Key_Code)
{
case Signal:TR0=1;break;
default:break;
}
}
}3、汇编程序
;程序称号:
; 简易报警器
;硬件资源:
; 赤色LED————-P2.3
; 绿色LED————-P2.4
; 蜂鸣器————–P2.0
; 脉冲输入————P3.4;————————————-
;端口界说
ledgequp2.4
ledrequp2.3
bzzrequp2.0
plsequp3.4;————————————-
;数据存储
pulseequ20h.0;————————————-
;程序代码
org0000h
jmpmain
org0100h
;体系初始化
init :
clrpulse
setbledr
clrledg
setbbzzr
setbpls
ret;延时ms毫秒
delay_ms:
movr7,a
delay1 :movr6,#5
delay2 :movr5,#100
djnzr5,$
djnzr6,delay2
djnzr7,delay1
ret;脉冲检测
pls_ch :
jbpls,fail
mova,#1
calldelay_ms
jnbpls,succ
jmpfail
succ :setbpulse
jmpexit
fail :clrpulse
exit :ret;报警信号发生
alarm :
cplbzzr
cplledr
movc,ledr
cplc
movledg,c
ret;主程序
main :
callinit
scan :callpls_ch
jbpulse,start
jmp scan
start :callalarm
mova,#200
calldelay_ms
jmp start
end阐明:汇编程序的规划思路与C言语的有所不同,程序更高效和紧凑,主张选用。
六、使用举例
1、家庭安全:在J2端口接一个大面积按键,置于门口地毯之下,夜间翻开报警器,只需有人踏上地毯,J2取得一个低脉冲,即触发报警,假如再在窗棂上安顿一个滑触开关,一起接入J2端口,则可到达归纳防盗意图。
2、文物安全:在J2端口接一个小按键,置于博物馆文物之下,全天翻开报警器,只需有人拿起文物,按键弹起,J2端口当即取得一个高脉冲,即触发报警,假如再添加相同的检测端口和指示灯,则可对多个文物一起监控。
3、水利安全:在J2端口接一个浮力触发设备,放置在江边,设定水位报警点,一旦到达风险水位,相同报警,假如在江边安顿一个水位到电压的传感器,经AD转化送入单片机,可实时长途监测水位改变。
……
七、功用扩展
在脉冲端口接入一个温度传感器,如DS18B20,单片机经过对温度采样,可完成主动温度超限报警。
……
阐明:本报警器作为一个简略的单片机使用规划,适用于毕业规划或课程规划,并且可根据需求进行相应的扩展规划。