当前位置:首页 > 嵌入式培训 > 单片机学习 > 单片机教程 > 利用单片机制作报警器及报警系统常见问题分析

利用单片机制作报警器及报警系统常见问题分析 时间:2018-07-26      来源:未知

利用单片机制作报警器及报警系统常见问题分析,在现代社会,家庭安全、财产安全和社会公共安全已成为人们普遍关注的问题。小偷闯入大门,爬上窗户,博物馆展品没有理由失去,河水水位上升…这一系列问题与人们的生活息息相关。

针对这种现象,我们利用单片机原理,专门设计了一种简单的报警装置来解决这些问题。

一、设计规划

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、布线图

四、单片机程序

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

;-------------------------------------

;端口定义

ledg equ p2.4

ledr equ p2.3

bzzr equ p2.0

pls equ p3.4

;-------------------------------------

;数据存储

pulse equ 20h.0

;-------------------------------------

;程序代码

org 0000h

jmp main

org 0100h

;系统初始化

init :

clr pulse

setb ledr

clr ledg

setb bzzr

setb pls

ret

;延时ms毫秒

delay_ms:

mov r7,a

delay1 :mov r6,#5

delay2 :mov r5,#100

djnz r5,$

djnz r6,delay2

djnz r7,delay1

ret

;脉冲检测

pls_ch :

jb pls,fail

mov a,#1

call delay_ms

jnb pls,succ

jmp fail

succ :setb pulse

jmp exit

fail :clr pulse

exit :ret

;报警信号产生

alarm :

cpl bzzr

cpl ledr

mov c,ledr

cpl c

mov ledg,c

ret

;主程序

main :

call init

scan :call pls_ch

jb pulse,start

jmp scan

start :call alarm

mov a,#200

call delay_ms

jmp start

end

说明:汇编程序的设计思路与C语言的有所不同,程序更高效和紧凑,建议选用。

五、应用举例

1、家庭安全:在J2端口接一个大面积按键,置于门口地毯之下,夜间打开报警器,只要有人踏上地毯,J2获得一个低脉冲,即触发报警,如果再在窗棂上安置一个滑触开关,一同接入J2端口,则可达到综合防盗目的。

2、文物安全:在J2端口接一个小按键,置于博物馆文物之下,全天打开报警器,只要有人拿起文物,按键弹起,J2端口立即获得一个高脉冲,即触发报警,如果再增加同样的检测端口和指示灯,则可对多个文物同时监控。

3、水利安全:在J2端口接一个浮力触发装置,放置在江边,设定水位报警点,一旦达到危险水位,同样报警,如果在江边安置一个水位到电压的传感器,经AD转换送入单片机,可实时远程监测水位变化。

……

六、功能扩展

在脉冲端口接入一个温度传感器,如DS18B20,单片机通过对温度采样,可实现自动温度超限报警。

……

说明:本报警器作为一个简单的单片机应用设计,适用于毕业设计或课程设计,而且可依据需求进行相应的扩展设计。

七、常见问题

利用单片机应用系统进行报警的常用方法是什么?

常用的方法就是把采集到的数据送到单片机应用系统进行处理,与该参数的上、下限给定值进行比较,若超过给定值时则进行报警,否则,就作为正常值进行显示或控制。

利用单片机应用系统进行报警的常用方法是什么?

在单片机报警系统中,发光二极管常用何种型号的集成电路驱动?

由于发光二极管的驱动电流在20~30mA,所以不能用TTL门电路的输出直接启动。在单片机报警系统中,发光二极管常见的驱动方法是采用OC门进行驱动,如74LS06或74LS07等型号的OC门。

单片机报警系统有哪两种程序设计方法?

依据报警参数和传感器划分,简单的报警程序可分为两种:一种是全软件报警程序,另一种是硬件申请,软件处理报警程序。

怎样使用全软件报警程序的方法实现报警?

全软件件报警程序的基本方法是:作业现场的被测参数经传感器、变送器、模/数转换器送到单片机后,再与规定的上、下限给定值相比较,根据比较的结果进行报警或处理,其整个过程都由软件实现。

怎样用硬件申请、软件处理报警程序的方法实现报警?

使用这种报警方法时,报警要求不是通过程序比较法得到的,而是直接由传感器产生的。在发现警性,传感器发出报警要求之后,立即向CPU提出中断申请,CPU响应中断后,立刻进入中断服务程序,实现报警或对参数、位置实现监控。例如:电接点压力式报警,吊车的限位控制等。

报警程序根据系统中的参数的要求,可以分为哪两种程序?

报警程序根据系统和参数的要求,可以分为简单的越限报警和报警处理程序两种。

上一篇:单片机延时方法 51单片机精确延时操作详解

下一篇:关于单片机复位的相关问题详解

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部