

免费预览已结束,剩余34页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
36淮阴工学院毕业设计说明书(论文) 第 36 页 34页1 引 言随着微电子技术与网络技术的飞速发展,人们对于居住环境的安全、方便、舒适提出了越来越高的要求,因此智能化住宅就随之出现,也随着改革开放的深入和市场经济的迅速发展、提高,城市外来流动人口大量增加,带来许多不安定因素,刑事案件特别是入室盗窃、抢劫居高不下,因此家庭智能安全防范系统是智能化小区建设中不可缺少的一项,而以往的做法是安装防盗门、防盗网,但普遍存在有碍美观,不符合防火要求,而且不能有效地防止犯罪分子对住宅的入侵,故利用高科技的电子防盗报警系统也就应运而生。安防,就是安全防范,是指防盗、防入侵、防火、防煤气泄漏等。目前家庭住宅的主要防范措施是利用防盗门,商店的防盗措施主要是监控器和出门口的红外报警器。随着人们认识的深入,利用智能防盗、防火、防煤气将成为人们的首要选择,智能安防也是安防行业的发展趋势。 所谓的智能安防,即指通过相关系统,将安防进行信息化、生动化,而且能把事件控制在发生之前,有效地防止相关危险事件的发生。智能安防一般包括系统控制模块、报警模块、传感器模块等。随着社会的不断进步和科学技术、经济的不断发展,人们生活水平得到很大的提高,对私有财产的保护意识在不断的增强,因而对防盗措施提出了新的要求。本设计就是为了满足现代住宅防盗的需要而设计的家庭式电子防盗系统。 目前市面上装备主要有压力触发式防盗报警器、开关电子防盗报警器和压力遮光触发式防盗报警器等各种报警器,但这几种比较常见的报警器都存在一些缺点。本系统采用了热释电红外传感器,它的制作简单、成本低,安装比较方便,而且防盗性能比较稳定,抗干扰能力强、灵敏度高、安全可靠。这种防盗器安装隐蔽,不易被盗贼发现。同时它的信号经过单片机系统处理后方便和pc机通信,便于多用户统一管理。 本设计包括硬件和软件设计两个部分。硬件部分包括单片机控制电路、红外探头电路、驱动执行报警电路等部分组成。处理器采用51系列单片机at89c2051。整个系统是在系统软件控制下工作的。系统程序可以划分为以下几个模块:数据采集、键盘控制、报警、显示等子函数。本设计的硬件部分由四大模块电路构成:传感器模块电路、单片机控制模块电路、报警模块电路和显示模块。控制模块外围有为该系统设计的复位模块电路和振荡电路,使系统更稳定,更实用2。 控制模块主要利用了at89c2051单片机作为整个报警器的控制系统。传感器部分通过感应通过的物体,形成电平信号输出,并经过单片机处理,实现传感器信号的判断、延时、报警等功能。该系统用于集中检测报警,能对受控制的多个点进行实时检测,当检测到一个或多个点有报警信号时,能用声和数码显示出报警地点,实现了智能报警控制3。 本系统软件部分采用c语言编写,使其数据流程可以清晰的反映在程序中,增强了程序的可读性,便于改进和扩充,从而为系统的使用提供了更方便的软件支持。本课题研究设计了一种基于单片机技术的电话报警器。该防盗报警器通过at89c2051单片机为工作处理器核心,外接热释电人体红外传感器,它是一种新颖的被动式红外探测器件,能够以非接触方式探测出人体发出的红外辐射,并将其转化为相应的电信号输出,同时能有效的抑制人体辐射波长以外的红外光线与可见光的干扰,平时传感器输出低电平,当有人在探测区范围内移动时输出低电平变为高电平,此高电平输入单片机,作为单片机的外部触发信号处理,经单片机内部软件编程处理后,单片机输出控制信号,在不惊动盗贼的情况下,自动拨打主人的手机。当户主接收到自家的电话号码和报警蜂鸣音信息时,便知道家里可能有人入室盗窃,从而做出相应的应急措施。该报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低,同时它的信号经过单片机系统处理后方便和pc机通信,便于多用户统一管理。随着现代人们安全意识的增强以及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用2。2 课题研究意义 随着超大规模集成电路、通信技术、单片机技术的迅猛发展和人们保安意识的日渐提高,利用单片机及其它外围芯片实现自动报警已成为可能,且是一种发展趋势.它不仅有体积小、安装方便、功能较齐全等优点,而且有很高的性价比,因此应用前景广泛.但是现在市场上的家用报警器都有明显的不足之处,所以在现行产品的基础之上研制一种新型的家用自动报警器,进一步完善报警器的功能,提高它的可靠性,具有实际意义;这对于保障居民的生命财产安全,提高公安、消防、医疗、保安等部门的快速反应能力,有着重要的价值。 另一方面,该课题也需要设计者具有一定深度的自动控制、计算机、电子和通信等方面的知识和较丰富的实践经验.通过这次研制,在导师的指导下,利用学校的良好的试验仪器设备和科研环境,进行本课题的研究,能充分发挥自己的长处,将学到的理论知识进一步深化,并与实际的工作结合起来,掌握一定的科学研究能力和新产品的开发能力,同时也为将来的工作奠定良好的基础11。3 报警器发展历程和研究现状 报警器的发展与微电子技术的发展息息相关,它大致可分为三个发展阶段,对应着三代产品: 第一代是利用纯分离元件组成的产品,其特点是电路组成复杂,功能单一,可靠性较差,体积较大. 第二代是利用集成芯片(ic)和分离元件组成的产品,其特点是电路组成较复杂,但是可以实现多种功能,可靠性比第一代产品高。 第三代是以单片机为核心,外加其它集成芯片和分离元件组成的产品,其特点是电路组成较复杂,但是功能齐全.可靠性高。具备一定的智能化功能。 现在市场上主要以第三代产品为主,前两代产品由于功能单一的原因基本己经被淘汰。第三代报警产品又可分为两类,一类是适合单个家庭应用的独立报警器,另一类是适合小区联防报警的联网报警系统。 作为单个家庭用的报警器,产品已经比较成熟,而且功能也比较齐全。多数产品采用单片机作为控制核心部分,通过电话线实现向外界报警功能。但是这种报警器有着自身的不足之处,作为一个独立的系统,它缺乏与外界联系的有效手段,虽然它可以通过固定电话与外界联系, 但是一旦电话线被恶意剪断,则将失去电话报警功能。 作为小区联防的报警系统市场上也有产品,它是作为一个完整系统设计的,多数产品采用分层次互连拓扑结构,将单个报警器(前端控制器)通过专线或电话线与中央控制器相联,中央控制器可对前端控制器进行监测和控制,一旦收到前端控制器的警情信号,由中央控制器向外界报警。值班人员除了在值班室里通过键盘对中央控制器进行操作外,也可对中央控制器实施异地遥控。只要输人正确的密码,即可通过任意一部音频电话机,在中央控制器的语音提示下,通过电话机的键盘完成对中央控制器的异地操作与控制。另外,中央控制器可与internet联接,用户可利用任意一台可上网的电脑,在任何地方通过internet用普通的浏览方式,对中央控制器进行权限范围内的异地访问和控制。因此,它的功能比第一类产品强大,与外界的联系途径也较多,增强了产品的可靠性。由于本报警系统采用分层次互连拓朴结构,极大地增强了系统的可靠性与可扩展性,多个中央控制器之间可以十分方便地实现互联互通,组成更大规模的安全报警网络.因此,该产品适用于小区的整体安装11.4 总体方案设计4.1 报警器的功能要求根据设计的实际要求,本文所研制的报警器的功能要求如下:( 1 )可实现非法侵入的报警。( 2 )可通过固定电话与电话网络联接,报警时能迅速拨打存储的号码。( 3 )可预先存储10组号码,可以更改,且掉电不丢失。( 4 )可录下20秒报警资料,可以更改,且掉电不丢失。( 5 )通过遥控器实现设防、撤防。( 6 )有报警记忆功能。( 7 )用户不需要报警时,可通过密码撤销报警,且密码可更改。( 8 )可实现异常情况的自动复位。1142 基于单片机的电话报警器的设计思路设计的思路:报警系统使用的微处理器为at89c2051单片机 ,能接收热红外探头信号,工作时系统低工耗监控 ,一旦发生警情,系统立即开始工作,把预存的报警信息通过电话自动报告给主人。硬件结构图如图4.1所示:传感器触发开关传感器接口电路单片机控制器at89c2051键盘输入显示电路电源拨号电路电话线报警电路图4.1 硬件结构图图4.1为电话拨号防盗报警器的系统构成方框图,由单片机控制器at89c2051、键盘输入、数码管显示、触发电路、拨号电路及电源等6部分组成。单片机控制器at89c2051是整个系统的核心,负责控制检测输入/输出显示、模拟摘机、拨号报警、挂机等一系列的程序动作。这里使用了小引脚、高性能、低价位的at89c2051。键盘输入电路负责输入单片机中一系列工作参数及功能设定。发光二极管数码管显示器在整个系统工作中充当一个简单的人机界面,用以显示工作状况及输入、输出的数据等。电话拨号防盗报警器的触发电路用热释红外线探测器,以实现全方位远距离检测。报警器应采用隐蔽安装,防止小偷发现。拨号及报警电路用来完成模拟摘机、拨号、发出报警音、挂机等工作过程,它的工作由单片机控制。电源部分负责对整个系统供电。平时由电话线上取得工作电流并对后备电池充电,拨号报警时转由后备电池供电12。5 脉冲拨号报警系统5.1 脉冲拨号原理脉冲拨号是目前电话机两种拨号方式中的一种,另一种为双音多频拨号方式。脉冲拨号就是指在电话机上拨入的电话号码以脉冲个数的形式发出,也就是说,在已经通以直流电流的回路上,利用拨号盘及发号电路将回路断开、再接通而形成的脉冲信号,来完成输入电话号码的发送。在操作中,若用户拨1,则送出1个脉冲,回路中断一次、接通一次;拨2,则发出2个脉冲,回路断一次、接通一次、再断一次、再接通一次;而拨0时,则发出10个脉冲,回路中断、接通轮流10次。图4.1为电话号码“32”的脉冲波形。时间-u(60v)0v通断tbtmtp号码3的脉冲号码字间间隔时间tid号码2的脉冲 图5.1 电话号码“32”的脉冲波形正常拨号时,电路电流中断的时间一般在58-65ms之间,视断续比的不同而不同。快速拨号时,只要取一半的时间即可。电路电流接通的时间(即在同一位号码中的2个断脉冲之间的接通电流时间)约在32-42ms之间,视断续比的不同而不同。快速拨号时,只要取一半的时间即可。显然脉冲周期等于脉冲中断时间和脉冲接通时间之和,每一个周期的时间为100ms左右。快速拨号时,在50ms左右。2位号码(即2组脉冲串)之间的最小时间间隔,通常为800ms左右;而快速拨号时,其值减半,为400ms左右。我国目前采用的电话脉冲拨号的速率是10pps(每秒的脉冲数),即每秒发出10个脉冲,因此上述各参数不存在快速拨号时的值。为了提高拨号的可靠性及稳定性,这里设定时选定更低的脉冲拨号速率:1个脉冲代表拨出1,2个脉冲代表拨出2,10个脉冲代表拨出0,每个脉冲的宽度和间隔均为100ms。工作时首先进行模拟摘机,然后开始脉冲拨号,拨出一位号码后停顿500ms(保持接通)再拨下一位,直至全部拨完后再发报警音,最后挂机11.13。5.2 脉冲拨号实现过程图5.2为脉冲拨号的实现电路。平时电话线上的电压均为50-60v左右。未拨号时单片机的p3.0,p3.1均输出低电平。拨号过程如下:1.单片机的p3.0输出高电平,使tr1导通,由于电话线路上接入了负载r1,这样电话线的电压下降,模拟摘机。2.单片机的p3.0开始输出拨号脉冲,使电话线的电压(电平)也呈高、低变化。1个脉冲代表拨出1,2个脉冲代表拨出2,10个脉冲代表拨出0,每个脉冲的宽度和间隔均为100ms。拨出一位号码后停顿500ms(保持p3.0高电平)再拨下一位,直至全部拨完。3.p3.0保持高电平(保持电话线路接通),p3.1输出1khz的报警音脉冲驱动tr2,以2hz进行调制(即接通1khz信号0.5s、断开1khz信号0.5s),这样从接听方的电话中就会听到“嘟、嘟”的报警声。报警音的时间根据设定为60s。4.60s后,p3.1输出低电平,tr2截止,停止报警。随后p3.0也输出低电平,模拟挂机1.10。 图5.2 脉冲拨号实现电路5.3 信号检测电路图5.3 信号检测电路上图中传感器采用p2288被动式热释电人体红外传感器。它采用平衡检差方式工作,只感应714m波长的活动人体辐射红外线,不会受环境温度及可见光的影响,传感器加装菲尔透镜可感应十米以内的人体辐射红外线。当有活动人体辐射的红外线被传感器检测到后,将产生微弱电信号,经滤波、放大,送给双向比较器,为防误动作,与门限电平进行比较,产生脉冲信号输出,将高电平作为告警信号,送入cpu。热释电人体红外传感器是上世纪80年代末期出现的一种新型传感器件。现在,已经得到越来越广泛的应用。目前,市场上出现的热释电人体红外传感器主要有上海产的sd02、ph5324,德国产的lh1954、lh1598,美国hamamatsu生产地p2288,日本nippon ceramic公司的sca02-1、rs02d等。虽然它们的型号不一样,但其结构、外型和电参数大致相同,大部分可以彼此互换使用。热释电人体红外传感器有敏感元件、阻抗变换器和滤光窗等三大部分组成。对不同的传感器来说,敏感单元的制造材料有所不同(即一种高热电系数的材料),如sd02的敏感单元由锆钛酸铅制成;p2288由litao3制成。在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,该透镜用透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10-20米范围内人的行动。菲涅尔透镜利用透镜的特殊光学原理,在探测器前方产生一个交替变化的“盲区”和“高灵敏区”,以提高它的探测接收灵敏度。当有人从透镜前走过时,人体发出的红外线就不断地交替从“盲区”进入“高灵敏区”,这样就使接收到的红外信号以忽强忽弱的脉冲形式输入,从而强其能量幅度。人体辐射的红外线中心波长为9-10um,而探测元件的波长灵敏度在0.2-20um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7-10um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。在电子防盗、人体探测器领域中,被动式热释电红外探测器的应用非常广泛,因其价格低廉、技术性能稳定而受到广大用户和专业人士的欢迎。 被动式热释电红外探头的工作原理及特性: 人体都有恒定的体温,一般在37度,所以会发出特定波长10um左右的红外线,被动式红外探头就是靠探测人体发射的10um左右的红外线而进行工作的。人体发射的10um左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。 1)这种探头是以探测人体辐射为目标的。所以热释电元件对波长为10um左右的红外辐射必须非常敏感。 2)为了仅仅对人体的红外辐射敏感,在它的辐射照面通常覆盖有特殊的菲泥尔滤光片,使环境的干扰受到明显的控制作用。 3)被动红外探头,其传感器包含两个互相串联或并联的热释电元。而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。 4)一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,经信号处理而报警。 5)菲泥尔滤光片根据性能要求不同,具有不同的焦距(感应距离),从而产生不同的监控视场,视场越多,控制越严密。 被动式热释电红外探头的优缺点: 优点: 本身不发任何类型的辐射,器件功耗很小,隐蔽性好。价格低廉。 缺点: 1)容易受各种热源、光源干扰 2)被动红外穿透力差,人体的红外辐射容易被遮挡,不易被探头接收。 3)易受射频辐射的干扰。 4)环境温度和人体温度接近时,探测和灵敏度明显下降,有时造成短时失灵。 抗干扰性能: 1)防小动物干扰 探测器安装在推荐地使用高度,对探测范围内地面上地小动物,一般不产生报警。 2)抗电磁干扰 探测器的抗电磁波干扰性能符合gb10408中4.6.1要求,一般手机电磁干扰不会引起误报。 3)抗灯光干扰 探测器在正常灵敏度的范围内,受3米外h4卤素灯透过玻璃照射,不产生报警。 红外线热释电传感器的安装要求: 红外线热释电人体传感器只能安装在室内,其误报率与安装的位置和方式有极大的关系.。正确的安装应满足下列条件: 1)红外线热释电传感器应离地面2.0-2.2米。 2)红外线热释电传感器远离空调, 冰箱,火炉等空气温度变化敏感的地方。 3)红外线热释电传感器探测范围内不得隔屏、家具、大型盆景或其他隔离物。 4)红外线热释电传感器不要直对窗口,否则窗外的热气流扰动和人员走动会引起误报,有条件的最好把窗帘拉上。红外线热释电传感器也不要安装在有强气流活动的地方。 红外线热释电传感器对人体的敏感程度还和人的运动方向关系很大。红外线热释电传感器对于径向移动反应最不敏感, 而对于横切方向(即与半径垂直的方向)移动则最为敏感.在现场选择合适的安装位置是避免红外探头误报、求得最佳检测灵敏度极为重要的一环。85.4 at89c2051单片机的功能特点电话拨号防盗报警器的核心控制器是单片机at89c2051.at89c2051是美国atmel半导体公司生产的一种高性能单片机。该单片机以与mcs-51系列单片机高度兼容、低功耗、可以在接近零频率下工作等诸多优点,而广泛应用 各类计算机系统、工业控制、电信设备、消费类产品中。由于atmel是全球最大的flash和eeprom生产制造公司之一,加之以其eeprom技术与intel的80c51内核技术交换,使atmel拥有了80c51内核的使用权,其生产出的at89系列单片机不仅与80c51有极好的兼容性,而且其具有极高的性能价格比。5.145.4.1 at89c2051的主要性能特点 指令与mcs-51完全兼容;内带2kb可编程闪速存储器(flash memory)可重复擦写1000次;数据保留10年;工作电压范围2.7-6v;工作频率0-24mhz;两级程序加密锁定;128m内部ram;15条可编程双向i/o口线;2个16位定时器计数器;5个中断源;可编程串行uart通道;输出口可直接驱动led;片内含模拟比较器;低功耗的闲置和掉电模式。at89c2051是at89系列单片机中的一种精简产品。它是将at89c51的p0口、p2口、eavpp、aleprog、psen口线省去后,形成的一种仅20个引脚的单片机,相当于早期intel8031的最小应用系统。这对于一些不太复杂的控制场合,仅用一片at89c2051就足够了,是正真意义上的“单片机“。由于将多功能8位cpu和2kb的闪速存储器集成在单个芯片中,使其成为一种高效的微控制器。at89c2051的出现为很多规模不太大的嵌入式控制系统提供了一种极佳的选择方案,使传统的51系列单片机的体积大、功耗大、可选模式少等诸多困扰设计工程师们的致命弱点不复存在。5.4.2 引脚功能介绍at89c2051引脚外形如图5.4所示。图5.4 at89c2051引脚外形vcc:电源端。gnd:接地。p1口(p1.0-p1.7):是一个8位双向io口,其中p1.2-p1.7提供内部上拉电阻,p1.0和p1.1需外接上拉电阻。p1.0和p1.1也可做为片内精确模拟比较器的正向输入(ain0)和反向输入(ain1)。p1口输出缓冲器能提供20ma的灌电流,可以直接驱动led。p1口写入“1”后可用作输入。p3口:引脚p3.0至p3.7(p3.5除外)是7个带内部上拉电阻的双向io口线。原p3.6不能使用,已连接片内比较器输出端。与p1口相同,p3口也能提供20ma的灌电流,并可直接驱动led显示器。与80c51相同,p3口也有第2功能,p3.0作为串行数据接收rxd;p3.1作为串行数据发送txd;p3.2为外部中断0申请int0;p3.3为中断1申请int1;p3.4为定时器计数器0输入;p3.5为定时器计数器1输入;p3.7无第二功能rd。rst:复位输入。要使芯片可靠复位,要保持rst引脚2个机器周期的高电平。xtal1:反向振荡放大的输入及内部时钟电路的输入。xtal2:来自反向振荡放大器的输出。5.4. 程序存储器锁定at89c2051片内有2个锁定位,可以不编程(u),也可以编程(p),以获得一些附加的特性,如表5.1所列。 表5.1 程序存储器锁定编程锁定位lb1lb2 保护模式1uu没有编程锁定特性2pu禁止对闪速存储器进一步编程3p同模式,同时禁止校验5.4.4 闲置模式在闲置模式下,cpu自身处于休眠状态。该模式是软件生成的。在该模式期间,片内ram和所有特殊功能寄存器都保持不变。闲置模式可以允许由中断或硬件复位终止。如果不采用外部上拉,p1.0和p1.1应置0;如果采用外部上拉,则置1.应注意的是,当闲置模式被硬件复位中止时,器件要从闲置处恢复程序的执行,执行2个机器周期后,内部复位算法才起作用。此时,硬件禁止访问内部ram,但允许访问端口引脚。为了排除闲置被复位中止时对端口意外写入的可能性,跟在生成闲置模式后的指令不应是对端口引脚的读写操作。5.4.5 掉电模式在掉电模式下,振荡器停止工作,生成掉电状态的指令是最后执行的一条指令。片内ram和特殊功能寄存器保持其值不变直到掉电模式终止。从掉电模式退出的唯一办法是硬件复位。复位将重新定义特殊功能寄存器(sfr),但不会影响片内ram。在vcc没有恢复到其正常工作电压之前,不应进行复位,且复位的保持时间应足够长,使振荡能重新开始工作并稳定下来。同样,如果不采用外部上拉,p1.0和p1.1应置0,如果采用外部上拉,则置1. 155.5 电路设计为了发挥单片机强大的计算、控制能力,充分发挥软件的优势,这里极大地简化了电路,但可实现以前需要几片甚至十几片中小规模数字电路才能完成的任务。电路原理如图4.5所示,共有4个按键,即rst、ok、up、set。图5.5 电路原理图rst:系统复位键。ok:输入数据确认键。up:显示的数字增加键。set:工作模式设定键,可设定关机、工作、输入时间t1、输入时间t2及输入电话号码5种模式。磁性开关即为装于门或窗口的防盗感应开关,门关闭时常开,门打开时闭合接通。当然也可改用其他的感应器件,如激光探测、超声波感应、热释电感应、主动红外线探测或无线门磁等,以实现全方位远距离检测。为了防止磁性开关离控制器较远而产生引入干扰,使用了光耦作信号传递,效果良好。led数码管用于工作状态指示或输入数据指示。l1、l2接电话线,znd为击穿电压120v的压敏二极管,防止电路受雷电干扰。平时系统处于低功耗待机状态(此时耗电仅2ma左右),有电话线上取电工作,并对3.6v/60ma鎳鉻电池充电,当输入数据进行设定或进行设定或进行拨号报警时,耗电会达到10ma,这时主要由镍鉻电池供电。由于有镍鉻电池后备供电,即使电话线断电也不会使已输入的数据丢失。该机除用于防盗报警外,若对软件进行一些修改,也可通过电话线进行远程数据传递。三极管t1、t2及电阻r1、r2构成拨号及报警电路,其工作原理前面已作详细介绍。3.116 系统软件设计6.1 主程序设计主程序的工作过程为:现行初始化工作,随后根据输入的键值分别散转至对应的子程序(关机、警戒工作、输入时间t1、输入时间t2、输入电话号码)循环工作。t0为100ms定时中断服务子程序,它实现精确的拨号脉冲时序。int0外中断服务值子函数用于实现功能选择;而int1外中断服务子函数则检测防盗器触发开关的状态。4.11主程序状态流程图如图6.1所示。开始定时器t0初始化关闭拨号、报警线路根据set键值散转关机工作输入t1输入t2输入号码图6.1 主程序状态流程图/*-主函数-*/void main()init_timer(); /*定时器t0初始化*/ea=1;ex0=1; /*开总中断,开外中断0*/p3_0=0; /*关闭线路(挂机)*/p3_1=0; while(1) /*无限循环*/switch(set) /*根据set标志散转*/case 0:stop();break; /*关机*/case 1:work();break; /*警戒工作*/case 2:in_time1();break; /*输入时间t1*/case 3:in_time2();break; /*输入时间t2*/case 4:in_data();break; /*输入电话号码*/default:break; if(flag!=0x55) /*若flag标志变化,数码管显示e(错误)*/ p1=0x86;delay(1); 6.2 变量定义及初始化模块程序设计时需设立3个数组data20、x3、y3。data20用于存放电话号码(最长20位),x3用于存放时间t1(000-999s),y3用于时间t2(000-999s).另外还要设立三个软件计数器data_flag、t1_flag、t2_flag。data_flag用于统计输入的电话号码位长,t1_flag用于统计输入时间t1位长,t2_flag用于统计输入时间t2位长。6.7uchar data20; /* 存放电话号码的数组*/uchar x3; /*存放时间t1数组*/uchar y3; /*存放时间t2数组*/uchar flag; /*ram区防干扰标志*/uchar data_flag=0; /*输入电话号码计数器(最长二十位)*/uchar set=0; /*功能键值*/uchar m=0; /全局变量uchar n=0;uint f;uchar t1_flag=0; /*输入时间1计数器(最长三位)*/uchar t2_flag=0; /*输入时间2计数器(最长三位)*/uchar cnt_1=0; /*时间t1单元数学运算后暂存单元*/uchar cnt_2=0; /*时间t2单元数学运算后暂存单元*/void delay(uint k); /*延时子函数声明*/void stop(); /*关机子函数声明*/void bh(); /*拨号子函数声明*/*定时器t0初始化*/void init_timer()tmod=0x01;th0=-(50000/256);tl0=-(50000%256);ie=0x82;6.3 启动子程序模块/*-启动报警器进入警戒工作-*/4.12void work() uchar h; p1=0xdf; /*数码管左上角显示1*/ delay(1);if(set=1) /*进入时间1循环*/while(cnt_1=x0*100+x1*10+x2) ex1=1;cnt_1=0; /*时间1到,打开外中断1,计数器归零*/ /*进入待机。若有1秒以上开关动作,退出待机*/ while(1) pcon=0x01;if(f=5)pcon=0x00;break; /*-*/ ex1=0; /*关闭外中断1*/if(set=1) /*进入时间2循环*/while(cnt_2=y0*100+y1*10+y2) delay(1000); cnt_2+; /*计数器cnt_2累加*/ if(set!=1)cnt_2=0;break; /*如按下set键,则退出此循环*/if(set=1)bh(); /*时间2到,调用拨号子程序*/delay(3000);p3_7=0;/控制输出端为低for(h=0;h60;h+) /*发出60秒警音*/ for(f=0;f500;f+) f+; p3_1=!p3_1;p1=0x5f; delay(1); p3_1=0;p1=0x7f;delay(500);p3_7=1;/控制输出端恢复高cnt_1=0;cnt_2=0; /*有关计数器、端口回到初始状态*/p3_0=0;p3_1=0;p1_7=1;for(f=0;f3;f+)delay(60000);/*关闭3分钟,以便进行电话报警*/6.4 拨号脉冲子程序模块开机拨号是否有效?对方摘机?送另一号码等待?挂断返回yyynnn图6.2拨号脉冲子程序框图 拨号脉冲子程序首先判断号码是否有效,如有效,则进入下一步;第二步通过判断对方是否摘机来决定是否拨打下一个电话号码。4.7/*-拨号-*/ void bh()data_flag=0; /*电话号码计数器(二十位)归零*/ p3_0=1; /*接通线路*/ p1_7=0; /*数码管小数点亮*/ delay(1000); while(datadata_flag0) /*若号码0*/ tr0=1; /*启动t0定时器*/ if(n=(datadata_flag)*2)/*进行号码x2次中断,产生号码个脉冲*/ data_flag+; n=0;tr0=0; p3_0=1;p1_7=0; delay(500); tr0=0;6.5 int0外中断服务子函数int0外中断服务子函数开始如set键按下,则set键加1如键值大于等于5,则键值回0系统进入低功耗待机状态int0外中断服务子函数结束图6.3 int0外中断服务子函数状态流程int0外中断服务子函数用来间断set是否按下,如按下则set键加1,当键值大于等于5时,键值就会回到0,并且系统进入低功耗待机状态。7.12/*int0中断服务子函数*/void zd_int0()interrupt 0 delay(10);if(p3_2=0)set+; /功能键值递增if(set=5)set=0; /键值的范围04if(set=1)flag=0x55; /向ram区的标志flag写入55hpcon=0x00;f=8;again:if(p3_2=0)goto again; /若按键未释放,则等待6.6 int1外中断服务子函数int1外中断服务子函数开始int1外中断服务子函数结束查询门控开关共10次图6.4 int1外中断服务子函数状态流程int1外中断服务子函数主要用来查询门控开关,它对门控开关进行多次查询,直到第10次为止。6/*int1中断服务子函数*/void zd_int1()interrupt 2 uchar h;f=0;for(h=0;h10;h+) /*检查磁性开关(p3_3状态)10次,共1秒*/delay(100);if(p3_3=0)f+;6.7 关机子程序模块关机子程序模块用以完成电话拨号防盗报警器进入待机工作状态的任务(退出警戒),以实现主人回家后使其不再进行警戒。4/*-关机-*/void stop()if(flag=0x55)p1=0xfb; else p1=0x86; /数码管右下角显示1。delay(1);if(flag=0x55)pcon=0x01; /*进入节电待机状态*/delay(1);6.8 完整代码#include /器件配置文件#define uchar unsigned char /变量类型的宏定义#define uint unsigned intuchar code data_7seg10=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,;/*0-9数码管段码*/uchar data20; /* 存放电话号码的数组*/uchar x3; /*存放时间t1数组*/uchar y3; /*存放时间t2数组*/uchar flag; /*ram区防干扰标志*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职场人设测试题及答案
- 广西两校2025年高考物理考前最后一卷预测卷含解析
- 系统架构设计师职业发展试题及答案
- 解答光电工程师证书考试的常见疑惑试题及答案
- 选对资料备考系统规划与管理师试题及答案
- 2024-2025学年湖南省怀化市中方县一中高考仿真模拟物理试卷含解析
- pep小学英语7年级上册试卷及答案
- 金川公司第一高级中学2025届高考冲刺模拟物理试题含解析
- 浙江省嘉兴一中2024-2025学年高三第二次调研物理试卷含解析
- 山东省青岛经济开发区致远中学2025届高考考前提分物理仿真卷含解析
- 2024年1月浙江省普通高校招生选考物理试题和答案
- DL∕T 619-2012 水电厂自动化元件(装置)及其系统运行维护与检修试验规程
- 新版工贸企业重大事故隐患-题库
- 内蒙古建筑图集 DBJ-T 03-76-2018 自保温砌块建筑构造图集
- 企业规范化管理与标准化建设
- 物流营销与客户关系 习题答案 张广敬
- CHT 8023-2011 机载激光雷达数据处理技术规范
- 河北省唐山市路北区2023-2024学年八年级下学期4月期中物理试题
- 2024届高中语文高考作文资料及素材系列
- 幼儿园中班韵律《阿凡提寻宝记》课件
- 海面之下:海洋生物形态图鉴
评论
0/150
提交评论