基于C51单片机的声光报警器设计.docx
- 文档编号:4919920
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:17
- 大小:265.08KB
基于C51单片机的声光报警器设计.docx
《基于C51单片机的声光报警器设计.docx》由会员分享,可在线阅读,更多相关《基于C51单片机的声光报警器设计.docx(17页珍藏版)》请在冰豆网上搜索。
基于C51单片机的声光报警器设计
基于C51单片机的声光报警器设计
题目
基于C51单片机的声光报警器设计
1、设计目的(题目来源、设计背景及意义)
火灾是指在时间和空间上失去控制的燃烧所造成的灾害。
在各种灾害中,火灾是最经常、最普遍地威胁公众安全和社会发展的主要灾害之一。
随着现代社会的不断发展,现代家庭用火、用电量正在逐年增加,火灾发生的频率越来越高,火灾不仅毁坏物质财产,造成社会秩序的混乱,还直接或间接危害生命,给人们的心灵造成极大的危害。
每年都有许多人被火灾夺去生命。
由于人们的疏忽而发生的火灾与爆炸,不仅造成人员的大量伤亡,还承受着严重的经济损失。
正是由于火灾的巨大危害,报警器才得以应运而生,报警器在火灾报警方面发挥人类本身无可比拟的优势,而声光报警器更是其中的佼佼者。
声光报警器是一种用在危险场所,通过声音和各种光来向人们发出示警信号的一种不会引燃易燃易爆性气体的报警信号装置。
防爆声光报警器适用于安装在含有ⅡC级T6温度组别的爆炸性气体环境场所,还可使用于石油、化工等行业具有防爆要求的1区及2区防爆场所,也可以露天、室外使用。
可以和国内外任何厂家的火灾报警控制器配套使用。
当生产现场发生事故或火灾等紧急情况时,火灾报警控制器送来的控制信号启动声光报警电路,发出声和光报警信号,完成报警目的。
在我国的一些大中城市,几乎每天都发生家庭火灾,所以防火是每个家庭必须时刻注意的问题。
假如能根据您家的实际情况预先采取简单的防火措施,一些悲剧是完全可以避免的。
声光报警器对防家庭火灾,减少火灾损失具有现实意义。
一系列火灾造成的惨痛损失也使全国各界意识到了声光报警器的必要性。
据调查,在最近发生火灾的大多数房屋都没有安装报警器。
所以,声光报警器在预防火灾发生上有着非常重大的意义。
2、设计要求(设计任务、实现功能及技术指标)
本文采用80C51单片机、NIS-09声光传感器、AD574A等模块设计了一种火灾报警器,可以实现声光报警、故障自诊断、报警限设置、延时报警及与上位机串口通信等功能。
是一种结构简单、性能稳定、使用方便、价格低廉的火灾报警器,具有一定的实用价值。
本系统采用ATMEL公司的AT80C51单片机作为处理器,主要完成以下工作:
1.基于AT80C51的火灾报警检测设计方案。
2.NIS-09声光传感器、A/D转换芯片AD574A的选择以及与单片机的接口电路设计。
3.LED数码管驱动芯片ICM7218与单片机的接口电路及其与数码管的硬件连接。
3.设计主要软件程序模块,完成软件设计。
3、设计方案(理论分析、设计步骤或方法)
此次设计是针对于单片机原理及其应用展开的。
运用我们所学的电工技术,传感器技术,单片机技术去设计基于单片机的声光报警系统。
80C51单片机好比一个桥梁,联系着传感器和报警电路设备。
当周围的环境达到我们设定的数值时,声光传感器把被测的物理量作为输入参数,转换为电量(电流、电压、电阻等等)输出。
物理量和测量范围的不同,传感器的工作机理和结构就不同。
通常传感器输出的电信号是模拟信号(已有许多新型传感器采用数字量输出)。
当信号的数值符合A/D转换器的输入等级时,可以不用放大器放大;当信号的数值不符合A/D转换器的输入等级时,就需要放大器放大。
而我们选择前者,不需要用放大器,选择数值符合A/D转换器的输入等级,这样就可以简化整个系统的设置。
传感器将物理信号经过A/D转换器转化为可以利用识别的电信号给单片机,这里我们选择单片机的P1.0为输入方式,接收到信号的单片机经过程序的设定会由P2.0作为单片机的输出直接启动报警电路。
此时,扬声器将发出高、低交替的2种叫声,同时二极管发光,这就达到了声光报警的效果。
4、设计内容(应用的技术原理及具体的实现方法)
一、系统硬件实现
1主控电路设计
硬件设计中最核心的器件是单片机80C51,它一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面,将采集到的数字电压值经计算机处理得到相应的二进制代码,与设定的值作比较。
整个系统的软件编程就是通过汇编语言对单片机80C51实现其控制功能。
1.180C51的基本结构
80C51单片机主要由以下部分组成:
(1)CPU系统8位CPU,含布尔处理器;时钟电路;总线控制逻辑。
(2)存储器系统4KB的程序存储器(ROM/EPROM/Flash,可扩至64KB);128KB数据存储器(RAM,可再扩64KB);特殊功能寄存器SFR。
(3)I/O口和其他动能单元4个并行I/O口;2个16位定时/计数器;1个全双工异步串行口;中断系统(5个中断源,2个优先级)。
1.280C51单片机的的封装和引脚
80C51系列单片机采用双列直插式(DIP).QFP44(QuadFlatPack)和LCC(LeadedChipCaiier)形式封装。
这里仅介绍常用的总线型DIP40封装。
40个引脚按引脚功能大致可分为4个种类:
电源、时钟、控制和I/O引脚,在这里不作详细介绍。
1.380C51单片机的时钟
(1)振荡器和时钟电路
80C51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。
80C51的时钟产生方法有以下两种。
a内部时钟方式
利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。
外接晶振时,Cl和C2的值通常选择为30pF左右;Cl、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz~12MHz之间选择。
为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl和XTAL2靠近。
图1 80C51时钟电路接线方法
b外部时钟方式
此方式是利用外部振荡脉冲接入XTALl或XTAL2。
HMOS和CHMOS单片机外时钟信号接入方式不同。
表180C51单片机外部时钟接入方法
芯片类型
接线方法
XTAL1
XTAL2
HMOS
接地
接片外时钟脉输入端(引脚需接上拉电阻)
CHMOS
接片外时钟脉冲输入端
悬空
1.480C51单片机的复位
在整个声光报警系统中,要进行实验,必须对整个系统先复位。
复位是单片机的初始化操作。
单片机系统在上电启动运行时,都需要先复位。
其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。
单片机的外部复位电路有上电复位和上电和按键均有效的复位两种。
我们在设计单片机复位时,选用上电复位。
上电复位利用电容器的充电实现。
图2-1是80C51单片机的上电复位电路。
图中给出了复位电路参数。
图2-2是80C51单片机的上电+按键复位电路。
上电要求接通电源后,单片机实现自动复位操作。
上电瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平将逐渐下降。
RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
该电路典型的电阻值和我电容参数为:
晶振为12MHZ,电容值为10uF,电阻值为8.2K。
图2-1上电复位电路图2-2上电+按键复位电路
复位状态:
初始复位不改变RAM(包括工作寄存器R0~R7)的状态,复位时,ALE和
成输入状态,即ALE=
=1,片内RAM不受复位影响。
复位后,P0~P3口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余专用寄存器清0。
此时,单片机从起始地址0000H开始重新执行程序。
所以,单片机运行出错或进入死循环时,可使其复位后重新运行。
2外围接口电路设计
2.1NIS-09声光传感器简介
在设计中我们之所以选用NIS-09声光传感器,是因为它的输出模拟量与我们所用的A/D转换器输入等级相符合。
(NIS-09声光传感输出电压是5.6+0.4v,A/D转换器的输入量程是0~+10V)
在本次设计中,我们选用NIS-09声光传感器。
它是离子式烟雾传感器,是日本NEMOTO公司专为检测延误而精心设计的新型传感器。
检测方式:
离子型,一源两室。
放射参数:
电源电压是DC9v,输出电压是5.6+0.4v
电流损耗是27+3pA,灵敏度是0.6+0.1v。
特性参数如下表所示:
a灵敏度特性(根据UL217标准风速0.1M/秒)
b电源电压特性(25℃60﹪RH)
c温湿度特性温度特性(温度60﹪)
d温度特性(温度25℃)源:
放射元素是媚241,
放射量是平均33.3KBq.=0.9uCi(29K——37KBq)。
工作环境:
电源电压是DC6.0-18.0V,最大24V;温度是0-50℃,最大-10-60℃,温度95﹪。
保存温度-25-80℃,温度95﹪。
AD574A
AD574A型快速12位逐次比较式A/D转换器为美国模拟器件公司产品。
一次转换时间为25μs,转换速率为40MSPS,分辨率12位,非线性误差小于±1/2LSB。
采用28脚双立直插式封装,各引脚功能如图3-6所示,图3是其管脚图。
图3管脚图
AD574A引脚功能:
DB11~DB0:
12位数据输出线。
DB11为最高,DB0为最低,它们可由控制逻辑决定是输出数据还是对外成高阻状态。
12/8:
数据模式选择。
当此引脚输入为高电平时,12为数据并行输出;当此引脚为低电平时,与引脚A0配合,把12位数据分两次输入。
应该注意,此引脚不与TTL兼容,若要此引脚为高电平,应直接按脚1;若要此引脚为低电平,应接引脚15.
A0:
字节选择控制。
此引脚有两个功能,一个功能是决定方式是12位是8位。
若A0=0,进行全12位转换,转换时间为25us;若A0=1,仅进行8位转换,转换时间为16us,另一个功能是决定输出数据是高8位还是低4位。
若A0=0,高8位数据有效;若A0=1,低4位有效,中间4位为“0”,高4位为高阻状态。
因此,低4位数据读出时,应遵循左对齐原则(即:
高8位+低4位+中间4位的‘0000’)。
CS:
芯片选择。
当CS=0时,AD574A被选中;否则AD574A不进行任何操作。
R/C:
读/转换选择。
当R/C=1时,允许读取结果;当R/C=0,允许A/D转换。
CE:
芯片启动信号。
CE=1时,允许读取结果,到底是转换还是读取结果与R/C有关。
STS:
状态信号。
STS=1表示正在进行A/D转换,STS=0表示转换已完成。
REFOUT:
+10V基准电压输出。
REIN准电压输入。
只有此脚把从“REFOUT”脚输出的基准电压引入到AD574A内部的12位DAC(AD565),才能进行正常的A/D转换。
BIPOFF:
双极性补偿。
此引脚适当连接,可实现单极性或双极性输入。
10VIN:
10V量程模拟信号输入端。
对单极性信号为10V量程的模拟信号输入端,对双极性信号为±5V模拟信号输入脚。
20VIN:
20V量程输入端。
单极性信号为20V量程模拟信号输入端,对双极性信号为±10V量程模拟信号输入脚。
DG:
数字地。
各字电路(译码器、门电路、触发器等)及“+5V”的电源地。
AG:
模拟地。
各模拟器件(放大器、比较器、多路开关、取样保持器等)地及“+15V”和“-15V”电源地。
VLOG:
逻辑电路供电输入端,‘+5V’.
VCC:
正电源端,VCC=+12~+15V。
VEE:
负电源端,VEE=-15~-12V。
AD574A的单极性和双极性输入如图4所示
图4-1单极性输入图4-2双极性输入
单极性输入电路:
如图4-1所示是AD574A系列的模拟量单极性输入电路。
当输入电压为VIN=0~+10V时,应从引脚10VIN输入,当VIN=0~20V,应从20VIN输入。
数字量D为无符号二进制码,计算公式为D=4096VIN/VFS。
图中电位器RP1用于调零,即保证在VIN=0时,输出数字量D为零。
双极性输入电路:
电路图如图4-2所示。
图中RP2用于调整增益,其作用与图4-1中RP2的作用相同。
图中RP1用于调整双极性电路输入零点。
如果输入信号VIN在-5~=5V之间,应从10VIN引脚输入;当VIN在-10~=10V之间,应从20VIN引脚输入。
根据声光传感器所输出的电压量,故选用单极性输入。
2.2AD574A与80C51单片机接口电路
AD574A系列的所有型号和功能因脚和排列都相同,因而它们与单片机借口也相同。
AD574A所有型号都有内部始终电路,不需要任何外接器件和连线。
图5为AD574A与80C51单片机的接口电路。
该电路采用双极性输入方式。
根据声光传感器输出电压是5.6+0.4v,在设计时我们选用单极性输入方式。
图5AD574A与80C51单片机的接口电路
当AD574A与80C51单片机配置时,由于AD574A输出12位数据,所以当单片机读取转换结果时,应分两次进行:
当A0=0时,读取高8位;当A0=1时,读取低4位。
图中AD574A的STS与80C51的P1.0线相连,故采用查询方式读取转换结果。
2.3声光报警电路
声光报警电路由单片机P2.0口控制,输出报警信号(高低电平间隔1s的脉冲信号),驱动声光报警电路,直至按复位键RESET和开关键。
声光报警电路由555定时器、扬声器和普通发光二极管组成,电路图如图6所示。
其中555定时器接成了一个低频多谐振荡器,其控制电压出入端5脚与单片机80C51的P2.0端相连,受P2.0脚输出的脉冲信号控制。
由电容C4的充冲放电作用,当P2.0=1时,555输出脉冲的振荡频率较低,当P2.0=0时,555输出脉冲的振荡频率较高。
该脉冲信号经隔置电容C2加到扬声器上,扬声器将发出高、低交替的2种叫声,同时P2.0脚输出的高低电平间隔1s的脉冲信号经电阻R1加到发光二极管LED上,LED将闪烁发光,达到声光同时报警的效果。
图6声光报警电路
3.总电路设计
根据要求,设计中我们选用80C51单片机。
80C51单片机的主控电路包括时钟电路、复位电路。
两电路的接法在2-1和2-2中分别做了详细的介绍,这里不再赘述。
而传感器是将非电量需要转换成与非电量有一定关系的电量。
当今信息时代,随着电子计算机技术的非速发展,自动检测,自动控制技术显露非凡的能力,而大多数设备只能处理电信号,也就需要把被测,被控非电量的信息通过传感器转换成电信号。
可见,传感器是实现自动检测和自动控制的首要环节。
没有传感器对原始信息进行精确可靠的捕捉和转换,就没有现代自动检测和自动控制系统。
没有传感器就没有现代科学技术的迅速发展。
设计中,传感器我们选择的是NIS-09声光传感器。
必须利用微粒的特点检测。
而NIS-09声光传感器它的性能参数是我们选择它理由。
声光传感器连接在A/D转换器的输入接口。
我们将主控电路和外围接口电路(80C51与A/D转换器的接口电路、80C51与声光报警电路)连接起来,就得到了基于80C51的声光报警总电路图。
当外部环境达到一定值时,声光传感器就会产生模拟电压,将它作为输出的模拟信号经AD574A转换器转换为80C51单片机所能识别的数字电压量。
通过P1.0检测信号。
当有信号输入时,经程序设定就会驱动80C51单片机的P2.0。
而P2.0是与声光报警电路相连接的。
综上所述,得出总电路图如图7所示:
图7声光报警系统总电路图
二、软件实现
1.编程KEIL环境介绍
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
KEILC51标准C编译器为80C51微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,更加贴近CPU本身,及其它的衍生产品。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编 器,实时操作系统,项目管理器,调试器。
uVision2 IDE可为它们提供单一而灵活的开发环境。
C51 V7版本是目前最高效、灵活的8051开发平台。
它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三 方开发工具。
因此,C51 V7版本无疑是8051开发用户的最佳选择。
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
2.程序流程
在整个程序流程中,经常要控制一部分指令重复执行若干次,以便简短的程序完成大量的处理任务。
这种按某种控制规律重复执行的程序称为循环程序。
循环程序有先执行后判断何先判断后执行两种基本结构。
而我们要选用的是先判断后执行。
因为声光传感器的输出电压量为5.6~6.0v之间。
根据单极性输入的转换关系D=4096VIN/VFS,计算出它的数字量最小值:
D1=4096×5.6/10=2294;最大值D2=4096×6/10=2458.
然后把它们的数字量转化为二进制数。
D1、D2转换为二进制数分别是100111110110、100110011010。
由于AD574A输出12位数据,所以当单片机读取转换结果时,应分两次进行:
当A0=0时,读取高8位;当A0=1时,读取低4位。
AD574A的STS与80C51的P1.0线相连,故采用查询方式读取转换结果。
我们将A/D转换器读取结果存入17H、18H、19H、20H单元中。
其中17H存入的是较小数D1的高八位10011111,18H存入的是较小数D1的低四位0110;19H存入的是较大数的高八位10011001,20H存入的是较大值的低四位1010。
将数值存入单元以后,接下来就是比较。
当被测的数值经计算机的转换在比较范围内,经程序设定80C51单片机的P2.0就会输出脉冲启动报警电路程序。
3.程序
ORG0000H
START:
MOVDPTR,#0FFF8H;送端口地址入DPTR
MOVX@DPTR,A;启动AD574A
SETP1.0;置P1.0为输入方式
LOOP:
JBP1.0,LOOP;检测P1.0口
INCDPTR;使R/C为1
MOVXA,@DPTR;读取高8位数据
MOV41H,A;高8位内容存入41H单元
INCDPTR;使R/C、A0均为1
INCDPTR
MOVXA,@DPTR;读取低4位
MOV40H,A;将低4位内容存入40H单元
MOV17H,#10001111B;将比较的数值存入单元中
MOV18H,#0110B
MOV19H,#10011011B
MOV20H,#1010B
MOVAL,40H;将40H的内容存入AL单元中
MOVAH,41H;将41H的内容存入AH单元中
01:
CMPAH,17H;比较最小数值的高八位
JALP1
JBELP2
LP1:
JMP03
LP2:
JMP01
02:
CMPAL,18H;比较最小值的低四位
JALP3
JBELP4
LP3:
JMP01
LP4:
JMP04
03:
CMPAH,19H;比较最大值的高八位
JALP5
JBELP6
LP6:
JMP03
LP5:
JMP01
04:
CMPAH,20H;比较最大值的低四位
JALP7
JBELP8
LP8:
JMP01
LP7:
JMP04
05:
SETP2.0;报警
DEL:
MOVR7,#200;延时50ms
DEL1:
MOVR6,#123
NOP
DEL2:
DJNZR6,DEL2
DJNZR7,DEL1
RET;返回
END;结束
5、调试及测试方法
1.调试的步骤
(1)源文件的建立:
使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入汇编语言源程序。
保存该文件,加上扩展名(.asm或a51),这里将文件保存为examl1.asm。
(2)建立工程文件:
点击“Project-NewProject”菜单,出现以个对话框,要求给工程起一个名字,我们输入examl1,不需要扩展名,点击保存按钮,出现第二个对话框。
这个对话框要求选择目标CPU(即我们所使用的芯片型号80C51)点击ATMEL前面的“+”号,展开该层,点击其中的80C51,然后点击确定按钮。
回到主界面,此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SouceGroup”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单。
选中其中的“AddfiletoGroup”SouceGroup1”,对话框,要求寻找源文件,注意该对话框下面的“文件类型“默认为CSoucefile(*.c),也就是以C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中找不到examl1.asm,要将文件类型该掉,点击对话框中”文件类型‘后的下拉列表,找到并选中“AsmSouceFile(*.asm,*.a51)”,这样,在列表框中就可以找到examl1.asm文文件了。
双examl1.asm文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其他文件,但初学时常会认为操作没有成功而再次双击同一文件,这时会出现对话框,提示你所选的文件以在列表中,此时点击确定,返回前一对话框,然后,点击”Close”即可返回主界面,返回后,点击“SouceGoup1”前的加号,会发现examl1.asm文件以在其中。
双击文件名,即打开源程序。
(3)工程的详细设置:
首先点击左边Project窗口的Target1,然后使用菜单“Proget-Optionfortarget‘target1’”即出现对工程设置的对话框,对这个对话框可谓非常复杂,共有8个页面,要全部高清可不容易,好在绝大部分设置项取默认值就行了。
设置完成以后安确认返回主界面,工程建立、设置完毕。
(4)编译、连接:
在设置好工程后,既可以进行编译、连接。
选择菜单Project-Buildtarget,对当前工程进行连接,如果当前文件已修改软件会先对该文件进行比阿尼,然后在连接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C51 单片机 声光 报警器 设计