参考1烟雾报警器_第1页
参考1烟雾报警器_第2页
参考1烟雾报警器_第3页
参考1烟雾报警器_第4页
参考1烟雾报警器_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东科技大学泰山科技学院2010届毕业论文PAGEPAGE43基于C51单片机的烟雾报警器设计【摘要】随着现代家庭用火、用电量的增加,家庭火灾发生的频率越来越高。烟雾报警器也随之被广泛应用于各种场合。本设计是利用单片机结合传感器技术而开发设计了这一烟雾报警系统。论文中主要针对烟雾报警系统中的各个组成部件进行了介绍,对它的主控电路和外围设备电路之间的接口技术,还有软件方面进行了重点介绍。关键词:报警器、80C51、烟雾传感器Abstract:Withthemodernhomewithfire,electricityconsumptionincreases,thefrequencyofhomefiresisgettinghigherandhigher.Smokedetectorshavealsobeenwidelyusedinvariousoccasions.Thisdesigniscombinedwiththeuseofsingle-chipsensortechnologydevelopmentanddesignofthesmokealarmsystem.Themainthesisofthesmokealarmsystemforthevariouscomponentsareintroduced,itscontrolcircuitandperipheralequipmentcircuitinterfacebetweentechnologyandsoftwarehavebeenthefocusofintroduction.目录1、绪论 41.1烟雾报警器的发展及现状 41.1.1火灾探测技术 41.1.2火灾探测器的发展趋势 51.2论文研究的目的及意义 51.3论文内容 62、基于C51单片机的烟雾报警的设计方案 72.1任务分析 72.2设计方案 72.2.1方案设计思想 72.2.2总体框图 83、系统硬件实现 93.1主控电路设计 93.1.180C51系列 93.1.280C51的基本结构 103.1.380C51单片机的的封装和引脚 113.1.480C51单片机的时钟 133.1.580C51单片机的复位 143.2外围接口电路设计 173.2.1NIS-09烟雾传感器简介 173.2.2AD574A与80C51单片机接口电路 263.2.3声光报警电路 273.3总电路设计 284、软件实现 314.1编程KEIL环境介绍 314.2程序流程 324.3程序 345、调试 365.1调试的步骤 365.2调试过程中遇到的问题及解决方法 38参考文献 40结束语 41谢辞 421、绪论1.1烟雾报警器的发展及现状1.1.1火灾探测技术火灾作为一种在时空上失去控制的燃烧所引发的灾害,对人类生命财产和社会安全构成了极大的威胁。由此引发的重大安全事故比皆是,所以人类一直也未停止过对它的研究。火灾的发生和发展是一个非常复杂的非平稳过程,它除了自身的物理化学变化以外还会受到许多外界的千扰,火灾一旦产生便以接触式(物质流)和非接触式〔能量流)的形式向外释放能量。接触式形式包括可燃气体、燃烧气体和烟雾、气溶胶等。非接触式如声音、辐射等。火灾探测技术就是利用敏感元件将火灾中出现的物理化学特征转换为另外一种易于处理的物理量。各种探测器对应的火灾物理参量及探测器如图1-1所示。图1-1各种探测器对应的火灾物理参量及探测器1.1.2火灾探测器的发展趋势探测器朝新探测技术的发展进一步拓展了火灾探测的应用领域,为一些传统探测器无法胜任的环境提供了有效的手段。相关技术的发展,如傅立叶近红外光谱技术弱信号处理技术、低功耗MCU技术进一步促进了传统探测技术的改进,使得传统探测器在技术和性能上有了显著的提高。火灾着极早期探测、多传感器复合探测和探测器小型化、智能化的方向发展迈出了更快的步伐。近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机系统,实际上它是一个微控制器或微处理器。由于它功能齐全,体积小,成本低,因此它可以应用到任何电子系统中去,同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完善,可靠性大大提高,以满足社会发展的需要。1.2论文研究的目的及意义目的:随着现代家庭用火、用电量的增加,家庭火灾发生的频率越来越高。家庭火灾一旦发生,很容易出现扑救不及时、灭火器材缺乏及在场人惊慌失措、逃生迟缓等不利因素,最终导致重大生命财产损失。消防部门的统计显示,在所有的火灾比例中,家庭火灾已经占到了全国火灾的30%左右。家庭起火的原因林林种种,可能在我们注意得到的地方,也可能就隐藏在我们根本就注意不到的地方。在现代城市家庭里,许多人因不懂家庭安全常识引起火灾事故,使好端端的幸福家庭眼间毁于一旦,有的导致家破人亡,而且一旦发生居民家庭火灾,处置不当、报警迟缓,是造成人员伤亡的重要因素。所以说,人们应该积极了解家庭火灾的主要起因,还有预防火灾的发生。这就是我们研究烟雾报警器的目的。意义:在我国的一些大中城市,几乎每天都发生家庭火灾,所以防火是每个家庭必须时刻注意的问题。假如能根据您家的实际情况预先采取简单的防火措施,一些悲剧是完全可以避免的。烟雾报警器对防家庭火灾,减少火灾损失具有现实意义。一系列火灾造成的惨痛损失也使全国各界意识到了烟雾报警器的必要性。据调查,在最近发生火灾的大多数房屋都没有安装报警器。所以,烟雾报警器在预防火灾发生上有着非常重大的意义。1.3论文内容第一章绪论本章本主要介绍了烟雾报警器的发展史及发展趋势。对烟雾探测器进行了系统性的阐述。还有论文研究的目的和意义进行了简单的解释。第二章基于C51单片机的烟雾报警的设计方案本章是根据论文的要求分析了论文的主要任务。继而概括出整个设计的主要思想和确定出设计方案。第三章系统硬件实现本章针对的是系统硬件是设计。在对整个系统硬件设计时,我们主要从它的主控电路80C51(单片机的复位电路、时钟电路)的设计和外围电路(声光报警电路、A/D转换电路)的设计来具体介绍。还有对在设计中用到的烟雾传感器进行了重点介绍。第四章软件实现本章是论文的软件部分。其中,我们熟悉了整个程序设计的运行环境keil。还有程序的编写过程,对程序做了相应的注释。第五章调试本章着重与软件的调试。在运行环境中我们调试的步骤以及在运行中出现的问题及解决的方法。2、基于C51单片机的烟雾报警的设计方案2.1任务分析单片机应用系统可以分为只能仪器表和工业测控系统两大类,无论哪仪类,都必须以市场需求为前提。所以,在系统设计前,首先要进行广泛的市场调查,了解该系统的时常应用概况,以分析系统当前存在的问题,研究系统的时市场前景,确定市场开发设计的目的和目标。简单地说,就是通过调研克服旧缺点,开发新功能。根据论文的设计要求:(1)、熟悉Keil编程环境;(2)、熟悉有关探测器的理论知识;(3)、给出设计方案;此次的设计先从硬件设计上着手。先要整理出烟雾报警系统的整体思路。确定出方案设计中需要的硬件设备。我们在确定了大的方向基础上,就应该对系统实现进行规划。包括应该采集的信号种种类、数量、范围,输出信号的匹配和转换,传感器的选择,技术指标的确定等。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烟雾传感器用作采集系统的敏感元件。火灾中气体烟雾主要是CO2和CO。NIS-09烟雾传感器能探测CO2,CO,甲烷、煤气等多种气体,它灵敏度高,稳定性好,适合于火灾中气体的探测。A/D转换器选用AD574A转换器。3、系统硬件实现3.1主控电路设计硬件设计中最核心的器件是单片机80C51,它一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面,将采集到的数字电压值经计算机处理得到相应的二进制代码,与设定的值作比较。整个系统的软件编程就是通过汇编语言对单片机80C51实现其控制功能。3.1.180C51系列

80C51系列单片机产品繁多,主流地位已经形成。多年来的应用实践已经证明,80C51的系统结构合理,技术成熟,许多单片机芯片倾力于提高80C51系列产品的综合功能,从而形成了80C51的主流产品的地位。所以,本次设计选择80C51单片机。3.1.280C51的基本结构80C51的基本结构如图所示图3-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个优先级)3.1.380C51单片机的的封装和引脚80C51系列单片机采用双列直插式(DIP).QFP44(QuadFlatPack)和LCC(LeadedChipCaiier)形式封装。这里仅介绍常用的总线型DIP40封装。如图3-2所示。40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚(1)电源:

VCC-芯片电源,接+5V;VSS-接地端;图3-280C51单片机的的封装和引脚(2)时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。(3)控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲

ALE功能:用来锁存P0口送出的低8位地址PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。PSEN:外ROM读选通信号。RST/VPD:复位/备用电源。

RST(Reset)功能:复位信号输入端。

VPD功能:在Vcc掉电情况下,接备用电源。

EA/Vpp:内外ROM选择/片内EPROM编程电源。

EA功能:内外ROM选择端。

Vpp功能:片内EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

(4)I/O线

80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。3.1.480C51单片机的时钟(1)振荡器和时钟电路80C51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。80C51的时钟产生方法有以下两种。a内部时钟方式利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外接晶振时,Cl和C2的值通常选择为30pF左右;Cl、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz~12MHz之间选择。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl和XTAL2靠近。芯片类型接线方法XTAL1XTAL2HMOS接地接片外时钟脉输入端(引脚需接上拉电阻)CHMOS接片外时钟脉冲输入端悬空图3-3

80C51时钟电路接线方法b外部时钟方式此方式是利用外部振荡脉冲接入XTALl或XTAL2。HMOS和CHMOS单片机外时钟信号接入方式不同。表3-180C51单片机外部时钟接入方法3.1.580C51单片机的复位在整个烟雾报警系统中,要进行实验,必须对整个系统先复位。复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。复位电路设计单片机的外部复位电路有上电复位和上电和按键均有效的复位两种。我们在设计单片机复位时,选用上电复位。上电复位上电复位利用电容器的充电实现。图3-4是80C51单片机的上电复位电路。图中给出了复位电路参数。图3-5是80C51单片机的上电+按键复位电路。上电要求接通电源后,单片机实现自动复位操作。上电瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路典型的电阻值和我电容参数为:晶振为12MHZ,电容值为10uF,电阻值为8.2K。图3-4上电复位电路图3-5上电+按键复位电路复位状态: 初始复位不改变RAM(包括工作寄存器R0~R7)的状态,复位后80C51片内各特殊功能寄存器的状态如表所示,表中“x”为不定数。表3-2复位后的内部特殊功能寄存器状态寄存器复位状态寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HBSW00HTL000HSP07HTH100HDPTR0000HTL000HP0~P3FFHSCON00HIPxx000000BSBUFxxxxxxxxBIE0x000000BPCON0xxx0000B复位时,ALE和成输入状态,即ALE==1,片内RAM不受复位影响。复位后,P0~P3口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余专用寄存器清0。此时,单片机从起始地址0000H开始重新执行程序。所以,单片机运行出错或进入死循环时,可使其复位后重新运行。3.2外围接口电路设计3.2.1NIS-09烟雾传感器简介在设计中我们之所以选用NIS-09烟雾传感器,是因为它的输出模拟量与我们所用的A/D转换器输入等级相符合。(NIS-09烟雾传感输出电压是5.6+0.4v,A/D转换器的输入量程是0~+10V)烟雾是比气体分子大得多的微粒悬浮杂气体中形成的,和一般的气体成分的分析不同,必须利用微粒的特点检测。这类传感器多用于火灾报警器,也是以烟雾的有无决定输出信号的传感器,不能定量的连续测量。(1)散射式在发光管和光敏电阻之间设置遮光屏,无烟时光敏元件接收不到信号,有烟雾时借助微粒的散射光使光敏元件发出信号。这种传感器的灵敏度与烟雾种类无关。(2)离子式用放射性同位素镅Am241放射出微量的a射线,使附近空气电离,当平行平板电极间有直流电压时,产生离子电流Ik。有烟雾时,微粒将离子吸附,而且离子本身也吸收a射线,其结果是离子Ik减小。若有一个密封装有纯净空气的离子室作为参比元件,将两者的离子电流比较,就可以排除外界干扰,得到可靠的检测结果。此法的灵敏度与烟雾种类有关。在本次设计中,我们选用NIS-09烟雾传感器。它是离子式烟雾传感器,是日本NEMOTO公司专为检测延误而精心设计的新型传感器。检测方式:离子型,一源两室。放射参数:电源电压是DC9v,输出电压是5.6+0.4v电流损耗是27+3pA,灵敏度是0.6+0.1v。特性参数如下表所示:a灵敏度特性(根据UL217标准风速0.1M/秒)b电源电压特性(25℃60﹪c温湿度特性温度特性(温度60﹪)d温度特性(温度25℃放射量是平均33.3KBq.=0.9uCi(29K——37KBq)。工作环境:电源电压是DC6.0-18.0V,最大24V;温度是0-50℃,最大-10-60℃,温度95﹪。保存温度-25-80℃,温度95﹪。典型特性:表3-3特性参数烟雾浓度(%英尺)输出电压(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(a)灵敏度特性电源电压输出电压(V)63.3±0.395.6±0.4128.0±0.71510.0±0.851813.0±1.0(b)电源电压特性温度(℃)输出(V)05.15±0.4255.6±0.4505.85±0.4(C)温湿度特性温度(%C)输出(V)305.75±0.5605.6±0.4905.45±0.4(d)温度特性名称方法标准高温储存特性高温80℃±5不通电的情况下储存72小时保持特性参数不变,不变形、不变色、不产生裂纹低温储存特性低温-300℃±5不通电的情况储存72小时保持特性参数不变,不变形、不变色、不产生裂纹高温储存特性在40℃±5,85℃±5RH不通电的情况储存72小时保持特性参数不变,不变形、不变色、不产生裂纹震动实验共振频率10-35HZ,振幅5HZ0.25,如果不产生共振,则用频率35HZ震荡4小时保持特性参数不变,不变形、不变色、不产生裂纹跌落实验三个不同方向把器件从1M高度自由落体跌落到木板上保持特性参数不变,不变形、不变色、不产生裂纹长期稳定性测验如下表所示:表3-4长期稳定性测验3.2.2AD574A简介AD574A型快速12位逐次比较式A/D转换器为美国模拟器件公司产品。一次转换时间为25μs,转换速率为40MSPS,分辨率12位,非线性误差小于±1/2LSB。采用28脚双立直插式封装,各引脚功能如图3-6所示,图3-7是其管脚图。图3-6D574A引脚功能图3-7管脚图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位的‘0000CS:芯片选择。当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的单极性和双极性输入如图3-8所示图3-8(a)单极性输入图3-8(b)双极性输入单极性输入电路:如图3-8(a)所示是AD574A系列的模拟量单极性输入电路。当输入电压为VIN=0~+10V时,应从引脚10VIN输入,当VIN=0~20V,应从20VIN输入。数字量D为无符号二进制码,计算公式为D=4096VIN/VFS。图中电位器RP1用于调零,即保证在VIN=0时,输出数字量D为零。双极性输入电路:电路图如图(b)所示。图中RP2用于调整增益,其作用与图(a)中RP2的作用相同。图中RP1用于调整双极性电路输入零点。如果输入信号VIN在-5~=5V之间,应从10VIN引脚输入;当VIN在-10~=10V之间,应从20VIN引脚输入。根据烟雾传感器所输出的电压量,故选用单极性输入。3.2.2AD574A与80C51单片机接口电路AD574A系列的所有型号和功能因脚和排列都相同,因而它们与单片机借口也相同。AD574A所有型号都有内部始终电路,不需要任何外接器件和连线。图3-9为AD574A与80C51单片机的接口电路。该电路采用双极性输入方式。根据烟雾传感器输出电压是5.6+0.4v,在设计时我们选用单极性输入方式。图3-9AD574A与80C51单片机的接口电路当AD574A与80C51单片机配置时,由于AD574A输出12位数据,所以当单片机读取转换结果时,应分两次进行:当A0=0时,读取高8位;当A0=1时,读取低4位。图中AD574A的STS与80C51的P1.0线相连,故采用查询方式读取转换结果。3.2.3声光报警电路声光报警电路由单片机P2.0口控制,输出报警信号(高低电平间隔1s的脉冲信号),驱动声光报警电路,直至按复位键RESET和开关键。声光报警电路由555定时器、扬声器和普通发光二极管组成,电路图如图3-10所示。其中555定时器接成了一个低频多谐振荡器,其控制电压出入端5脚与单片机80C51的P2.0端相连,受P2.0脚输出的脉冲信号控制。由电容C4的充冲放电作用,当P2.0=1时,555输出脉冲的振荡频率较低,当P2.0=0时,555输出脉冲的振荡频率较高。该脉冲信号经隔置电容C2加到扬声器上,扬声器将发出高、低交替的2种叫声,同时P2.0脚输出的高低电平间隔1s的脉冲信号经电阻R1加到发光二极管LED上,LED将闪烁发光,达到声光同时报警的效果。图3-10声光报警电路 3.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所示:图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的集成开发环境中,这个集成开发环境包含:编译器,汇编

器,实时操作系统,项目管理器,调试器。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中。4.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就会输出脉冲启动报警电路程序。程序流程图如图4-1所示。图4-1流程图4.3程序ORG0000HSTART:MOVDPTR,#0FFF8H;送端口地址入DPTRMOVX@DPTR,A;启动AD574ASETP1.0;置P1.0为输入方式LOOP:JBP1.0,LOOP;检测P1.0口INCDPTR;使R/C为1MOVXA,@DPTR;读取高8位数据MOV41H,A;高8位内容存入41H单元INCDPTR;使R/C、A0均为1INCDPTRMOVXA,@DPTR;读取低4位MOV40H,A;将低4位内容存入40H单元MOV17H,#10001111B;将比较的数值存入单元中MOV18H,#0110BMOV19H,#10011011BMOV20H,#1010BMOVAL,40H;将40H的内容存入AL单元中MOVAH,41H ;将41H的内容存入AH单元中01:CMPAH,17H;比较最小数值的高八位JALP1 JBELP2LP1:JMP03LP2:JMP0102:CMPAL,18H;比较最小值的低四位JALP3JBELP4LP3:JMP01LP4:JMP0403:CMPAH,19H;比较最大值的高八位JALP5JBELP6LP6:JMP03LP5:JMP0104:CMPAH,20H;比较最大值的低四位JALP7JBELP8LP8:JMP01LP7:JMP0405:SETP2.0;报警DEL:MOVR7,#200;延时50msDEL1:MOVR6,#123NOPDEL2:DJNZR6,DEL2DJNZR7,DEL1RET;返回END;结束5、调试5.1调试的步骤(1)源文件的建立:使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入汇编语言源程序(4.2小节所示)。保存该文件,加上扩展名(.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,对当前工程进行连接,如果当前文件已修改软件会先对该文件进行比阿尼,然后在连接以产生目标代码。编译过程中的信息将出现在输出窗口中的Build页中,如果源程序有语法错误,会有错误报告出现,双击该行,可以定到出错的位置,对源程序反复修改后,最终会得到如图5-1所示的结果,提示获得了名为examl1.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其他相关文件可被用于KEIL的仿真与调试。图5-1正确连接、编译之后的结果5.2调试过程中遇到的问题及解决方法在进入环境以后,遇到了很多问题,总结如下:(1)提示无asm文件编译时候提示:F:\...\XX.asmFilehasbeenchangedoutsidetheeditor,reload?解决方法:重新生成项目,产生examl1.asm即可。(2)在进入Keil的调试环境以后,发现程序有错解决方法:将光标定位于需要修改的程序上,用菜单,Debug》InlineAssambly…即可出现对话框,EnterNew后面的编辑框内直接输入需要修改的程序语句,输入完之后键入回车将自动指向下一条语句,可以继续修改,如果不在需要修改,可以点击右上角的关闭按钮关闭窗口。(3)程序调试时,一些程序必须满足一定的条件才能被执行到解决方法:这些条件往往是异步发生或难以预先设定的,这类问题使用的单步实行方法是很难调试的,这时就要使用发哦程序调试中的另一种非常重要是方法断点设置。断点设置的方法有多种,常用的是在某一程序行设置断点,设置好断点后可以全速运行程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论