毕业设计火灾报警器.docx
毕业设计学生姓名学 号系 (部 )专业机电一体化技术题 目火灾报警器毕业设计指导教师(姓名)(专业技术职称/学位)(姓名)(专业技术职称/学位)2017 年 9 月 摘 要:随着现代家庭用火、用电量正在逐年增加,家庭火灾发生的频率越来越高,火灾 烟雾报警器也随之被广泛应用于各种场合。本设计是利用单片机结合传感器技术而开发了 这一火灾烟雾报警系统。论文中主要烟雾报警器系统各个组成部分进行了介绍,对它的主 控电路和外围设备电路之间的接口技术,还有软件方面进行了重点介绍。关键词:报警器,80C51,声光传感器目录1 绪论 31.1声光报警器的发展及现状 31.2 论文研究的目的及意义 41.3 论文内容 42基于C51单片机的声光报警的设计方案 52.1 任务分析 52.2 设计方案 53系统硬件实现 63.1 主控电路设计 63.2 外围接口电路设计 103.3 总电路设计 164 软件实现 184.1 编程KEIL环境介绍 184.2 程序流程 184.3 程序 195 调试 215.1 调试的步骤 215.2调试过程中遇到的问题及解决方法 22结论 24致谢 25参考文献 261绪论1.1 声光报警器的发展及现状1.1.1 火灾探测技术火灾作术为一种在时空上失去控制的燃烧所引发的灾害,对人类生命财产和社会安 全构成了极大的威胁。由此引发的重大安全事故比比皆是,所以人类一直也未停止过对它 的研究。火灾的发生和发展是一个非常复杂的非平稳过程,它除了自身的物理化学变化以外还会受到许多外界的干扰,火灾一旦产生便以接触式(物质流)和非接触式能量流)的形式向外释放能量。接触式形式包括可燃气体、燃烧气体和烟雾、气溶胶等。非接触式如声音、 辐射等。火灾探测技术就是利用敏感元件将火灾中出现的物理化学特征转换为另外一种易 于处理的物理量。各种探测器对应的火灾物理参量及探测器如图1-1所示。火焰(菲接触燃烧产物f接融式)耦射火炳探丽辭 毋狀一用係援测器 喝度駁船传感器f (称电探测器 一M 子式男烟探测器*微粒I炯雾形伏一图煤传愚器i气佯卢脚一吒牡传感器燃烧音非按馳式)一向音传機器图1-1各种探测器对应的火灾物理参量及探测器1.1.2 火灾探测器的发展趋势探测器朝新探测技术的发展进一步拓展了火灾探测的应用领域,为一些传统探测器无 法胜任的环境提供了有效的手段。相关技术的发展,如傅立叶近红外光谱技术弱信号处理 技术、低功耗MC技术进一步促进了传统探测技术的改进,使得传统探测器在技术和性能 上有了显著的提高。火灾着极早期探测、多传感器复合探测和探测器小型化、智能化的方 向发展迈出了更快的步伐。近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各 种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机系统,实际上它是 一个微控制器或微处理器。2由于它功能齐全,体积小,成本低,因此它可以应用到任何 电子系统中去,同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完 善,可靠性大大提高,以满足社会发展的需要。1.2 论文研究的目的及意义目的:随着现代家庭用火、用电量的增加,家庭火灾发生的频率越来越高。家庭火灾 一旦发生,很容易出现扑救不及时、灭火器材缺乏及在场人惊慌失措、逃生迟缓等不利因 素,最终导致重大生命财产损失。消防部门的统计显示,在所有的火灾比例中,家庭火灾 已经占到了全国火灾的30%左右。家庭起火的原因林林种种,可能在我们注意得到的地方, 也可能就隐藏在我们根本就注意不到的地方。在现代城市家庭里,许多人因不懂家庭安全常识引起火灾事故,使好端端的幸福家庭 眼间毁于一旦,有的导致家破人亡,而且一旦发生居民家庭火灾,处置不当、报警迟缓,是造 成人员伤亡的重要因素。所以说,人们应该积极了解家庭火灾的主要起因,还有预防火灾 的发生。这就是我们研究声光报警器的目的。意义:在我国的一些大中城市,几乎每天都发生家庭火灾,所以防火是每个家庭必须 时刻注意的问题。假如能根据您家的实际情况预先采取简单的防火措施,一些悲剧是完全 可以避免的。声光报警器对防家庭火灾,减少火灾损失具有现实意义。一系列火灾造成的惨痛损失也使全国各界意识到了声光报警器的必要性。据调查,在 最近发生火灾的大多数房屋都没有安装报警器。所以,声光报警器在预防火灾发生上有着 非常重大的意义。1.3 论文内容第一章绪论本章本主要介绍了声光报警器的发展史及发展趋势。对声光探测器进行 了系统性的阐述。还有论文研究的目的和意义进行了简单的解释。第二章 基于C51单片机的声光报警的设计方案 本章是根据论文的要求分析了论文的 主要任务。继而概括出整个设计的主要思想和确定出设计方案。第三章系统硬件实现本章针对的是系统硬件是设计。在对整个系统硬件设计时,我 们主要从它的主控电路80C51 (单片机的复位电路、时钟电路)的设计和外围电路(声光 报警电路、A/D转换电路)的设计来具体介绍。还有对在设计中用到的声光传感器进行了 重点介绍。第四章 软件实现 本章是论文的软件部分。其中,我们熟悉了整个程序设计的运行环 境keil。还有程序的编写过程,对程序做了相应的注释。第五章调试本章着重与软件的调试。在运行环境中我们调试的步骤以及在运行中出 现的问题及解决的方法。最后附上结束语(我的感想)、谢辞和参考文献。2基于C51单片机的声光报警的设计方案2.1 任务分析单片机应用系统可以分为智能仪器表和工业测控系统两大类,无论哪仪类,都必须以 市场需求为前提。所以,在系统设计前,首先要进行广泛的市场调查,了解该系统的时常 应用概况,以分析系统当前存在的问题,研究系统的时市场前景,确定市场开发设计的目 的和目标。简单地说,就是通过调研克服旧缺点,开发新功能。根据论文的设计要求:熟悉Keil编程环境;熟悉有关探测器的理论知识;给出设计方案;此次的设计先从硬件设计上着手。先要整理出声光报警系统的整体思路。确定出方案 设计中需要的硬件设备。我们在确定了大的方向基础上,就应该对系统实现进行规划。包 括应该采集的信号种种类、数量、范围,输出信号的匹配和转换,传感器的选择,技术指 标的确定等。2.2 设计方案2.2.1 方案设计思想此次设计是针对于单片机原理及其应用展开的。其中包含了我们大学三年中所学到的 相关知识,运用我们所学的电工技术,传感器技术,单片机技术去设计基于单片机的声光 报警系统。80C51单片机好比一个桥梁,联系着传感器和报警电路设备。当周围的环境达 到我们设定的数值时,声光传感器把被测的物理量作为输入参数,转换为电量(电流、电 压、电阻等等)输出。物理量和测量范围的不同,传感器的工作机理和结构就不同。通常 传感器输出的电信号是模拟信号(已有许多新型传感器采用数字量输出)。当信号的数值符合A/D转换器的输入等级时,可以不用放大器放大;当信号的数值不符合A/D转换器的输入等级时,就需要放大器放大。而我们选择前者,不需要用放大器,选择数值符合A/D 转换器的输入等级,这样就可以简化整个系统的设置。传感器将物理信号经过A/D转换器转化为可以利用识别的电信号给单片机,这里我们选择单片机的P1.0为输入方式,接收到信号的单片机经过程序的设定会由P2.0作为单片机的输出直接启动报警电路。此时,扬声器将发出高、低交替的2种叫声,同时二极管发光,这就达到了声光报警的效果。2.2.2 总体框图根据方案的设计思想,我们从中就可以得到了声光报警系统的总体框图如图 2-1所示下:图2-1声光报警系统的总体框图使用80C51单片机,选用声光传感器作为敏感元件,利用AD574A转换器和声光报警电路,开发了可用于家庭或小型单位火灾报警的声光报警器。整个设计由4大部分构成:声光传感器、A/D转换电路、80C51单片机、声光报警电路。其中,声光传感器是将现场 温度、声光等非电信号转化为电信号;转换电路是将完成将声光传感器输出的模拟信号到 数字信号的转换。声光报警模块由单片机和报警电路组成,由单片机控制实现不同的声光 报警功能。综合考虑各因素,本文选择 NIS-09声光传感器用作采集系统的敏感元件。它灵敏度高,稳定性好,适合于火灾中气体的探测。A/D转换器选用AD574A专换器3系统硬件实现3.1 主控电路设计硬件设计中最核心的器件是单片机 80C51,它一方面控制A/D转换器实现模拟信号到 数字信号的转换,另一方面,将采集到的数字电压值经计算机处理得到相应的二进制代码, 与设定的值作比较。整个系统的软件编程就是通过汇编语言对单片机80C51实现其控制功能。3.1.1 80C51 系列80C51系列单片机产品繁多,主流地位已经形成。多年来的应用实践已经证明,80C51的系统结构合理,技术成熟,许多单片机芯片倾力于提高80C51系列产品的综合功能,从而形成了 80C51的主流产品的地位,近年来推出的与 80C51兼容的主要产品有:ATME公司融入Flash存储器技术推出的AT89系列单片机;Philips公司推出的80C51 80C552系列高性能单片机;华邦公司提出的W78C51 W77C5系列高速低价单片机;ADI公司推出的Ady C8xx系列高精度ADO片机;LG公司推出的GMS90/97系列低压高速单片机;Maxim公司推出的DS89420高速(50MIPS)单片机;Cygnal公司推出的C8051F系列高速单片机。由此可见,80C51已经成为事实上的单片机主流系列,所以,本次设计选择80C51单片机。3.1.2 80C51 的基本结构80C51的基本结构如图3-1所示图3-1 80C51 的基本结构由图可见,80C51单片机主要由以下部分组成:CPU系统8位CPU含布尔处理器;时钟电路;总线控制逻辑。存储器系统4KB的程序存储器(ROM/EPROM/Flash可扩至64KB ; 128KB数据存储器(RAM可 再扩64KB ;特殊功能寄存器SFRI/O 口和其他动能单元4个并行I/O 口; 2个16位定时/计数器;1个全双工异步串行口;中断系统(5个中 断源,2个优先级)3.1.3 80C51单片机的的封装和引脚80C51 系列单片机采用双列直插式(DIP) .QFP44( Quad Flat Pack )和 LCC( Leaded Chip Caiier )形式封装。这里仅介绍常用的总线型DIP40封装。如图3-2所示。40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚电源:VCC -芯片电源,接+5V;VSS -接地端;M 0 I r: ?PL 2 5PL 34FL 455 iPL C7FL 1 SBHA'rb pIXD/rJ 0L: 1XD/P3 1IFTif/PJ 2 t ;31jryp? 4 IT17P3 E - T岳出Q jl;丽商I li40 feeLro.o制一前.1茨0433:4202QZT26£5332E一?0上T0上fti.e-M.712 TIJ2.6-K.5? 3F2.1图 3-2 80C51时钟:XTAL1、XTAL2 -晶体振荡电路反相输入端和输出端。控制线:控制线共有4根,ALE/PROG地址锁存允许/片内EPRO编程脉冲ALE功能:用来锁存P0 口送出的低8位地址PROG功能:片内有EPRO的芯片,在EPRO编程期间,此引脚输入编程脉冲 PSEN:外 ROM读选通信号。RST/VPD:复位/备用电源。RST( Reset)功能:复位信号输入端。VPD功能:在Vcc掉电情况下,接备用电源。EA/Vpp:内外ROM选择/片内EPRO编程电源。EA功能:内外ROM选择端。Vpp功能:片内EPROI的芯片,在EPRO编程期间,施加编程电源Vpp。I/O线80C51共有4个8位并行I/O端口: P0、P1、P2、P3 口,共32个引脚。P3 口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)3.1.4 80C51 单片机的时钟振荡器和时钟电路80C51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还 需附加电路。80C51的时钟产生方法有以下两种。a内部时钟方式利用芯片内部的振荡器,然后在引脚XTALI和XTAL2两端跨接晶体振荡器(简称晶振), 就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外接晶振时,C和C2的值通常选择为30pF左右;C、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在 1.2MHz12MHz之间选择。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振 荡器和电容应尽可能安装得与单片机引脚 XTALI和XTAL2靠近。图3-380C51时钟电路接线方法b外部时钟方式此方式是利用外部振荡脉冲接入 XTALI或XTAL2 HMOS口 CHMO单片机外时钟信号接 入方式不同。表3-1 80C51单片机外部时钟接入方法芯片类型接线方法XTAL1XTAL2HMOS接地接片外时钟脉输入端(引脚需接上拉电阻)CHMOS接片外时钟 脉冲输入端悬空3.1.5 80C51 单片机的复位在整个声光报警系统中,要进行实验,必须对整个系统先复位。复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作 方式。但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。复位电路设计单片机的外部复位电路有上电复位和上电和按键均有效的复位两种。我们在设计单片 机复位时,选用上电复位。上电复位上电复位利用电容器的充电实现。图 3-4是80C51单片机的上电复位电路。图中给出 了复位电路参数。图3-5是80C51单片机的上电+按键复位电路。上电要求接通电源后,单片机实现自动复位操作。上电瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路典型的电阻值和我电容参数为:晶振为12MHZ电容值为10uF,电阻值为8.2K图3-4上电复位电路图3-5上电+按键复位电路复位状态:初始复位不改变RAM(包括工作寄存器R旷R7的状态,复位后80C51片内各特殊功 能寄存器的状态如表所示,表中“ x”为不定数。表3-2复位后的内部特殊功能寄存器状态寄存器复位状态寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HBSW00HTL000HSP07HTH100HDPTR0000HTL000HP0P3FFHSCON00HIPxx000000BSBUFxxxxxxxxBIE0x000000BPCON0xxx0000B复位时,ALE和成输入状态,即ALEt = 1,片内RAM不受复位影响。复位后, P0P3 口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余专用寄存器清0。此时,单片机从起始地址0000H开始重新执行程序。所以, 单片机运行出错或进入死循环时,可使其复位后重新运行。3.2夕卜围接口电路设计3.2.1 NIS-09 声光传感器简介在设计中我们之所以选用NIS-09声光传感器,是因为它的输出模拟量与我们所用的 A/D转换器输入等级相符合。(NIS-09声光传感输出电压是5.6+0.4V , A/D转换器的输入 量程是0+10V声光传感器主要有以下两种:散射式在发光管和光敏电阻之间设置遮光屏,无声光时光敏元件接收不到信号,有声光时使光敏元件发出信号。离子式用放射性同位素镅Am241放射出微量的a射线,使附近空气电离,当平行平板电极间 有直流电压时,产生离子电流Ik。有声光时,微粒将离子吸附,而且离子本身也吸收a射线,其结果是离子Ik减小。若有一个密封装有纯净空气的离子室作为参比元件,将两者的离子电流比较,就可以 排除外界干扰,得到可靠的检测结果。在本次设计中,我们选用NIS-09声光传感器。它是离子式烟雾传感器,是日本NEMOTO 公司专为检测延误而精心设计的新型传感器。检测方式:离子型,一源两室。放射参数:电源电压是DC 9v,输出电压是5.6+0.4V电流损耗是27+3pA,灵敏度是0.6+0.1v。特性参数如下表所示: a灵敏度特性 (根据UL217标准风速0.1M/秒) b电源电压特性(25C 60 % RHc温湿度特性温度特性(温度60% d温度特性(温度25T)源: 放射元素是媚241,放射量是平均 33.3KBq.=0.9uCi (29K37KBQ。工作环境: 电源电压是 DC6.0-18.0V,最大24V;温度是0-50 C,最大-10-60 C,温度 95%。保存温度-25-80 C,温度95%。典型特性:声光强度(%英尺)输出电压(V)误差( V)05.6 ± 0.4015.3 ± 0.50.3 ± 0.125.0 ± 0.50.6 ± 0.134.7 ± 0.50.9 ± 0.244.4 ± 0.51.2 ± 0.254.2 ± 0.51.4 ± 0.2表3-3特性参数电源电压输出电压(V)63.3 ± 0.395.6 ± 0.4128.0 ± 0.71510.0 ± 0.851813.0 ± 1.0温度(C)输出(V)05.15 ± 0.4255.6 ± 0.4505.85 ± 0.4(a)灵敏度特性湿度(%C输出(V)305.75 ± 0.5605.6 ± 0.4905.45 ± 0.4(b)电源电压特性(d )温度特性(C)温度特性长期稳定性测验如下表所示:表3-4长期稳定性测验名称方法标准高温储存特性高温80 C± 5不通电的情况下储存 72小时保持特性参数不变,不变形、 不变色、不产生裂纹低温储存特性低温-300 C± 5不通电的情况储存 72小时保持特性参数不变,不变形、 不变色、不产生裂纹高温储存特性在40C± 5,85 C± 5RH不通电的情况储存 7 2小时保持特性参数不变,不变形、 不变色、不产生裂纹震动实验共振频率10-35HZ,振幅5HZ0.25,如果不产生共振,则用频率 35HZ震荡4小时保持特性参数不变,不变形、 不变色、不产生裂纹跌落实验三个不同方向把器件从 1M高度自由落体跌 落到木板上保持特性参数不变,不变形、 不变色、不产生裂纹3.2.2 AD574A 简介AD574A型快速12位逐次比较式A/D转换器为美国模拟器件公司产品。一次转换时间 为25卩s,转换速率为40MSPS分辨率12位,非线性误差小于土 1/2LSB。采用28脚双立 直插式封装,各引脚功能如图3-6所示,图3-7是其管脚图3-6 D574A引脚功能AD5T*Asrs DHL IDR10DRQDBSDB7 DMDBSD04DBS t>P2 W DRO+ 5Vj&R/C CE*rt?FOUt2LREFIN-L2R1POFF 2212/ & AO CEI'j*- "1 "* -f4-5 V R <CDM DIODOAG ajporrRFFfNRLIOUT控利宅刎AD574A引脚功能:DB1仁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准电压输入。只有此脚把从“ REFOU”脚输出的基准电压引入到 AD574A内部的 12位DAC(AD565)才能进行正常的A/D转换。BIPOFF双极性补偿。此引脚适当连接,可实现单极性或双极性输入。10VIN: 10V量程模拟信号输入端。对单极性信号为 10V量程的模拟信号输入端,对双 极性信号为土 5V模拟信号输入脚。20VIN: 20V量程输入端。单极性信号为20V量程模拟信号输入端,对双极性信号为土 10V量程模拟信号输入脚。DG数字地。各字电路(译码器、门电路、触发器等)及“+5V'的电源地。AG模拟地。各模拟器件(放大器、比较器、多路开关、取样保持器等)地及“ +15V 和“-15V ”电源地。VLOG逻辑电路供电输入端, +5V'.VCC 正电源端,VCC=+1 Z+15V。VEE 负电源端,VEE=-1A-12V。AD574A的单极性和双极性输入如图 3-8所示Rt! INECM ) IBIPOFJAil Ri/C Ct STS12R205loo tnLOO QVLvVEE AOND DGND10 呢16TT24辿27J45 住2AGNDREFIN kEFQU T BIPOFF1叫p;20uffl12-5+ V -1010 V§_ 十 3 V00L1icon(b) 双极性输入图3-8( a)单极性输入单极性输入电路:如图(a)所示是AD574A系列的模拟量单极性输入电路。当输入电 压为VIN=0+10V时,应从引脚10VIN输入,当VIN=020V,应从20VIN输入。数字量D 为无符号二进制码,计算公式为D=4096VIN/VFS图中电位器RP1用于调零,即保证在VIN=0 时,输出数字量D为零。双极性输入电路:电路图如图3-8 (b)所示。图中RP2用于调整增益,其作用与图(a) 中RP2的作用相同。图中RP1用于调整双极性电路输入零点。如果输入信号VIN在-5=5V 之间,应从10VIN引脚输入;当VIN在-10=10V之间,应从20VIN引脚输入。根据声光传感器所输出的电压量,故选用单极性输入。3.2.3 AD574A 与80C51单片机接口电路AD574A系列的所有型号和功能因脚和排列都相同,因而它们与单片机借口也相同。AD574A所有型号都有内部始终电路,不需要任何外接器件和连线。图3-9为AD574A与80C51单片机的接口电路。该电路采用双极性输入方式。根据声光传感器输出电压是5.6+0.4V,在设计时我们选用单极性输入方式4.¥Pol I 41ALE8OC5t肋, fro74LS373hi:REFI%2OY!W.I 1OVitumBIPOFF图3-9 AD574A与80C51单片机的接口电路当AD574A与 80C51单片机配置时,由于 AD574A俞出12位数据,所以当单片机读取 转换结果时,应分两次进行:当A0=0时,读取高8位;当A0=1时,读取低4位。图中AD574A 的STS与80C51的P1.0线相连,故采用查询方式读取转换结果。3.2.4 声光报警电路声光报警电路由单片机P2.0 口控制,输出报警信号(高低电平间隔1 s的脉冲信号), 驱动声光报警电路,直至按复位键 RESETS开关键。声光报警电路由555定时器、扬声器和普通发光二极管组成,电路图如图3-10所示。其中555定时器接成了一个低频多谐振荡器,其控制电压出入端5脚与单片机80C51的P2.0端相连,受P2.0脚输出的脉冲信号控制。由电容 C4的充冲放电作用,当P2.0 = 1 时,555输出脉冲的振荡频率较低,当 P2.0 = 0时,555输出脉冲的振荡频率较高。该脉 冲信号经隔置电容C2加到扬声器上,扬声器将发出高、低交替的2种叫声,同时P2.0脚输出的高低电平间隔1 s的脉冲信号经电阻R1加到发光二极管LED上, LED将闪烁发光, 达到声光同时报警的效果。"I Iot rCjNDRESET yCC THIG DICKJIG< VCH.I3.3 总电路设计根据要求,设计中我们选用 80C51单片机。80C51单片机的主控电路包括时钟电路、复位电路。两电路的接法在 3.1.4和3.1.5中分别做了详细的介绍,这里不再赘述。而传感器是将非电量需要转换成与非电量有一定关系的电量。当今信息时代,随着电 子计算机技术的非速发展,自动检测,自动控制技术显露非凡的能力,而大多数设备只能 处理电信号,也就需要把被测,被控非电量的信息通过传感器转换成电信号。可见,传感 器是实现自动检测和自动控制的首要环节。没有传感器对原始信息进行精确可靠的捕捉和 转换,就没有现代自动检测和自动控制系统。没有传感器就没有现代科学技术的迅速发展。设计中,传感器我们选择的是NIS-09声光传感器。必须利用微粒的特点检测。而 NIS-09声 光传感器它的性能参数是我们选择它理由。声光传感器连接在A/D转换器的输入接口。我们将主控电路和外围接口电路(80C51与 A/D转换器的接口电路、80C51与声光报警 电路)连接起来,就得到了基于80C51的声光报警总电路图。当外部环境达到一定值时,声光传感器就会产生模拟电压,将它作为输出的模拟信号 经AD574A专换器转换为80C51单片机所能识别的数字电压量。通过 P1.0检测信号。当有 信号输入时,经程序设定就会驱动80C51单片机的P2.0。而P2.0是与声光报警电路相连接的。综上所述,得出总电路图如图 3-11所示:laaasB aisaa誰-爲理士注3 93ZfECfEEXUZECEffEICtiJ£ £ 5 f e I ££ t£ CE £1 £图3-11声光报警系统总电路图4软件实现4.1 编程KEIL环境介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系 统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易 学易用。用过汇编语言后再使用 C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能 体现高级语言的优势。KEILC51标准C编译器为80C51微控制器的软件开发提供了 C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,更加贴近CPU 本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开 发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVisio n2 IDE可为它们提供单一而灵活的开发环境。C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有 8051的衍生产 品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。C51工具包的整体结构,uVision 与Ishell 分别是C51 for Windows和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人 员可用IDE本身或其它编辑器编辑 C或汇编源文件。然后分别由C51及A51编译器编译生 成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由0H51转换成标准的Hex文件,以供调试器 dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试, 也可以直接写入程序存贮器如 EPRO中。4.2 程序流程在整个程序流程中,经常要控制一部分指令重复执行若干次,以便简短的程序完成大 量的处理任务。这种按某种控制规律重复执行的程序称为循环程序。循环程序有先执行后 判断何先判断后执行两种基本结构。而我们要选用的是先判断后执行。因为声光传感器的输出电压量为5.66.0v之间。根据单极性输入的转换关系D=4096VIN/VFS计算出它的数字量最小值:D仁4096X 5.6/10=2294;最大值D2=4096X6/10=2458.然后把它们的数字量转化为二进制数。D1、D2转换为二进制数分别是100111110110100110011010=由于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就会输出脉冲启动报警电路程序。程序流程图如图4-1所示。4.3 程序ORG 0000HSTART: MOV DPTR, # 0FFF8H MOVX DPTR, ASET P1.0LOOP: JB P1.0, LOOPINCDPTRMOVXA, DPTRMOV41H, AINCDPTRINCDPTRMOVXA, DPTRMOV40H, AMOV17H, #10001111BMOV18H,#0110BMOV19H, #10011011BMOV20H,#1010BMOVAL, 40HMOVAH, 41H01: CMPAH,17HJA LP1JBE LP2LP1: JMP 03LP2: JMP 0102: CMP AL,18H;送端口地址入DPTR;启动 AD574A;置P1.0为输入方式;检测P1.0 口;使R/C为1;读取高8位数据;高8位内容存入41H单元;使R/C、A0均为1;读取低4位;将低4位内容存入40H单元;将比较的数值存入单元中;将40H的内容存入AL单元中;将41H的内容存入AH单元中;比较最小数值的高八位;比较最小值的低四位JALP3JBELP4LP3: JMP01LP4: JMP0403: CMPAH,19HJA LP5JBELP6LP6: JMP03LP5: JMP0104: CMPAH ,20HJA LP7JBELP8LP8: JMP01LP7: JMP0405: SETP2.0;比较最大值的高八位;比较最大值的低四位DEL: MOV R7,#200DEL1: MOV R6,#123NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETEND5调试5.1 调试的步骤;报警;延时50ms;返回;结束源文件的建立:使用菜单“File-New ”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入汇编语言源程序(4.2小节所示)。保存该文件,加上扩展名(.asm或a51),这里将文件保存为examl1.asm。建立工程文件:点击“ Project-New Project ”菜单,出现以个对话框,要求给工程 起一个名字,我们输入 examl1,不需要扩展名,点击保存按钮,出现第二个对话框。这个 对话框要求选择目标CPU(即我们所使用的芯片型号80C51)点击ATME前面的“+”号, 展开该层,点击其中的 80C51,然后点击确定按钮。回到主界面,此时,在工程窗口的文 件页中,出现了 “Targ et1 ”,前面有“ +”号,点击“ +”展开,可以看到下一层的“Source GroupT