基于单片机的烟雾报警器设计 下载本文

第三章 烟雾检测报警器的硬件设计

在报警仪的设计中,单片机是其核心部件。它一方面要接收来自传感 器送来的烟雾浓度对应的模拟信号和故障检测信号,另一方面要对 两种信号分别进行处理,控制后续电路进行相应动作;与此同时查询是否 有键按下的请求。在单片机完成这些的工作中,尤其是信号处理中,比较 浓度值后送入显示的软件实现比较复杂,要求单片机具备较快的运算速 度,使检测人员能够较准确地观测到烟雾浓度,并根据情况做进行 相应处理。并且也要考虑选择低价实用的机型,并为研制同一系列的低功 耗产品做准备。根据多方面的比较,本设计选用宏晶科技生产的STC12系列单片机。

3.1单片机的选型 3.1.1单片机的选择

单片机是烟雾检测报警器的核心部件,一方面它要接收来自传 感器的烟雾浓度的模拟信号和故障检测信号,另一方面要对两种信 号分别进行处理,控制后续电路的相应工作;同时,查询是否有键按下的命令。在单片机实现的功能中,将模数转换后的信号做数字滤波,再进行 线性化处理,然后送LCD显示,这一过程的软件实现,需要单片机有较 快的运算速度,使仪表监测人员能够观测到实时的烟雾浓度,并进 行相应处理。同时,在能够满足报警器设计的计算速度及接口数的要求的 同类型单片机中,要考虑选择价格低廉且体积轻巧的机型,在保证了报警 器的精确性、可靠性及抗干扰性的基础上,能够不提高成本,缩小体积。

如今市面上比较普遍的单片机有8051系列与STC系列。

8051单片机虽然应用普遍,工具多,易上手,片源广,价格低,但 是速度慢,功耗大,适合民用,商用,不适合工业用途。

STC单片机是MICROCHIP公司的产品,其突出的特点是功耗低, 精简指令集 ,抗干扰性好,可靠性高,但是存在溢出隐患问题。8051系 列采用的是堆栈指针,STC采用硬件堆栈8级。当堆栈指针设定合理,局部变量少的情况下,8051系列用10层的程序嵌套不会出现问题。而STC单片机程序嵌套包括中断最多不能超过8层。所以如果用C语言进行STC编程设计容易堆栈溢出。 汇编语言对于不同的CPU,其汇编语言可能有所差异,所以不易移 植。而C语言是一种结构化的高级语言,虽然占用资源较汇编多,但是可读性好,移植容易,是普遍使用的一种计算机语言。鉴于C语言的易读性和普遍性,本论文的软件设计选择C语言编程,所以STC系列单片机在此处不是非常适合。 为适用于本论文设计的烟雾检测报警器,应选择一种比8051系列速度快,功耗低,抗干扰性好,而又避免C语言编程溢出问题的单 片机。 宏晶科技新推出的STC12系列单片机具有高速、低功耗、超强抗干扰等优点,是的新一代8051单片机,指令代码完全兼容传统8051,速度 却比8051单片机快8~12倍。而且

STC12系列下属的STC12C54xxAD系 列单片机是低功耗Flash单片机,它的高效寻址方式、大容量Flash、 EEPROM、A/D转换、硬件乘法器、硬件脉宽调制器(PWM)等功能特点, 较好的实现了强大的功能与超低功耗的结合。而且在功能同样的情况下, 管脚较少封装体积小,价格比其他型号便宜,因此具有很好的性价比和应 用适应性。

STC12C54xxAD系列单片机有6种型号:分别是STC12C5412AD、 STC12C5410AD、STC12C5408AD、STC12C5406AD、STC12C5404AD、 和STC12C5402AD。 它们是以单片机内部集成Flash的大小区分的。在价格相同的情况下,尽量选择Flash较大的芯片,所以选择了STC12C5410AD单片机作为本论文设计的烟雾报警器的单片机核 心芯片。它体积小,价格低,非常适用于本设计,下面介绍STC12C5410AD的自身特点。

3.1.2 STC12C5410AD单片机的特点

STC12C5410AD单片机较以往的单片机提高了工作效率,使系统的可 靠性、抗干扰能力得到了显著改善,而且进一步小型化和便携化。其 内部集成的Flash几乎拥有现代追求个性化的用户所需要的掉电后数据不 丢失、快速的数据存取时间、电可擦除、容量大、在线可编程、足够多的 擦写次数、价格低廉和高可靠性等所有优点。STC12C5410AD单片机的管 脚结构如图3.1所示。

图3.1 STC12C5410AD单片机管脚图

STC12C5410AD单片机具有以下特点: (1) Flash存储器

STC12C5410AD Flash存储器为10KB。Flash存储器主要用作程序存 储,可经计算机串口接口下载程序;程序运行时能对其中的1段或多段进 行擦、写操作,因此兼有数据存储器功能。Flash存储器的掉电保护功能 可用于程序数据保存,可以按字或字节读写,最小擦除单位为1段,经过 擦除的位为“1”,写入位为“0”。

(2)脉宽调节模式(PWM)

所有PCA模块都可用作PMW输出。输出频率取决于PCA定时器的 时钟源。由于所有模块共用仅有的PCA定时器,所有它们的输出频率相 同。各个模块的输出占空比是独立变化的,与使用的捕获寄存器{EPCnL, CCAPnL}有关。当CL SFR的值小于{EPCnL,CCAPnL}时,输出为低, 当PCACL SFR的值等于或大于{EPCnL,CCAPnL}时,输出为高。当CL的值由FF变为00溢出时,{EPCnH,CCAPnH}的内容装载到{EPCnL, CCAPnL}中。这样就可实现无干扰地更新PWM。要使能PWM模式,模 块CCAPMn寄存器的PWMn和ECOMn位必须置位。

(3) I/O口工作类型设置

STC12C5410AD带有24个I/O引脚,它的I/O与传统的I/O不同,每个I/O口均可由软件设置成4种工作类型之一,使得功能口和通用I/O口复用。 4种类型分别为:准双向口(标准8051输出模式)、推挽输出、仅为输入(高阻)和开漏输出功能。在对同一个I/O口进行操作前要选择其要实现的功能,这样大大地增强了端口的功能和灵活性。其中一些I/O口还可以与STC12C5410AD中的特殊模块相结合完成更为复杂的工作。如与捕获比较 模块相结合可以实现串行通信,与A/D模块结合实现A/D转换等。此外,STC12C5410AD的I/O端口电气特性也十分突出,几乎所有的I/O口都有20mA的驱动能力,对于一般的液晶显示屏、蜂鸣器可以直接驱动而无需 辅助电路。许多端口内部都集成了上拉电阻,可以方便地与外围器件相接 。

(4) A/D模数转换寄存器

STC12C5410AD单片机的A/D转换口在P1口(P1.7~P1.0),有8路10位高速A/D转换器,STC12C5410AD系列是10位精度的A/D,速度 均可达到100KHz(10万次/秒)。8路电压输入型A/D,可以完成温度检测、 电池电压检测、按键扫描、频谱检测等功能。上电复位后P1口是弱上拉 型的I/O口,可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。这样,A/D转换和I/O口 可以灵活的运用,节省了软件及时间。

(5)有配套的仿真开发工具

STC12C5410AD的Flash存储器给用户的开发带来方便。用户可以将 芯片焊接在线路板上后进行下载程序、调试程序和修改程序。同时,STC12C5410AD的片内已集成了程序断点控制等逻辑功能。因此,它的 开发工具较为简单,只需1套PC环境下的调试软件和1个连接于并口的仿真器。仿真器与STC12C5410AD经串口连接。因此,用户只要在设计应用系统时为调试需要预留好STC12C5410AD的串口接口的引出插座,即可实现系统的程序下载调试、系统现场编程硬件仿真或软件升级功能, 而且无需外加编程电压。

3.2烟雾检测报警器硬件电路设计 3.2.1信号采集及前置放大电路

传感器输出信号一般比较微弱,需要经过前置电路对其进行放大、滤波、电平调整,满足单片机对输入信号的要求。本系统采用的半导体烟雾 传感器属于电阻型,因此只需串联一个参考电阻,再经过一个放大电路即可发送给ADC采集。由于系统采用的是单极性供电,所以采用同相比例 放大电路,可以减少硬件开销;反之,如果采用反相放大,则一般需要利 用双极性供电,这就需要系统额外的利用变压芯片产生一个负压,这显然 会造成浪费。常见的运算放大器中,LM324价格低廉、使用简单等优点 比较突出,所以本设计中的前置放大电路采用LM324作为电路的运算放大器。

LM324是单片高增益四运算放大器,可在较宽电压范围内的单电源 或双电源下工作,其电源电流很小且与电源电压无关,四个运放一致性好; 其输入偏流电阻是温度补偿的,也不需外接频率补偿,可做到输出电平与 数字电路兼容。

下面详细介绍运算放大电路:

如图3.2所示,从传感器的上端出来的信号Vi经过运算放大器的同相 输入端,但是为保证引入的是负反馈,输出电压Vo通过电阻R4接到反相输入端,同时,反相输入端通过电阻R3接到参考电压Vref。

同相比例运算电路中反馈的组态为电压串联负反馈,同样可以利用理 想运放工作在线性区时的两个特点来分析其电压放大倍数。 在图3.2中,根据运放的“虚短”和“虚断”的特点可知,I- = I+ = 0,

所以V- = Vo*R3/R3 + R4 +Vref*R4/R3 + R4 (3-1) 而且V- = V+ = Vi

Vo = Vi*(R3 + R4)/R3 (3-2) 由以上两式可求出Vo=Vref-R4/R3 (3-3)

所以本放大电路的放大倍数A =1+ R4 R3 ,此放大电路为同相比例放大电路,它的放大倍数总是大于或等于1。同相比例运算电路有以下几个特点: (1)同相比例运算放大电路是一个深度的电压串联负反馈电路。因为不存在“虚地”现象,所以其输入端有较高的共模输入电压。

(2)电压放大倍数A =1+ R4 R3 ,即输出电压与输入电压的幅值成正比,且相位相同,所以此电路实现了同相比例放大。如果不接R3和R4,则此电 路就成了“电压跟随器”,它可以减少电路模块间由于阻抗引起的干扰。 (3)由于引入了深度电压串联负反馈,因此电路的输入阻抗很高,输出阻抗很低。高输入阻抗就可以减少放大电路对前端电路的影响,同时低输出阻抗也可以提高自身的抗干扰性,这显然有利于电路中其他模块的设 计。 此放大电路还加了参考电压,引入了零点调节功能,这样可以更方便 的调整由于不同传感器导致的零点变化问题。它利用滑动变阻器产生一个参考电压Vref,再利用电压跟随器