家用安全保护装置设计方案说明书_第1页
家用安全保护装置设计方案说明书_第2页
家用安全保护装置设计方案说明书_第3页
家用安全保护装置设计方案说明书_第4页
家用安全保护装置设计方案说明书_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、家用安全保护装置的研究与设计 设计总说明 伴随着社会发展、科技进步,人们生活水平逐步提高。大量现代家用电器和厨 房设施的使用 , 家庭中存在的安全隐患也越来越多,传统的安全防范措施已无法适应 现代化社会的需求,于是各种新型智能报警系统应运而生 。 本文研究了基于 89C51 的家用安全装置,对家庭日常生活中发生的烟雾及燃气进 行了监测。利用 89C51 高性能 16 位单片机设计主控核心,以门磁开关,燃气烟雾传 感器,以 LED 和蜂鸣器为声光信号警示,对传统的安防装置进行了改进,希望改善 我们日常生活安防不足的情况。设计先通过 Protues 软件进行仿真,再通过硬件来 实现以上功能。 关键

2、词: 气体传感器,单片机,烟雾,燃气,报警 目录 1 绪论 1.1 设计说明书研究目的和意义 12智能家居的国内外现状 1.3 本设计主要任务 2 家用安全保护装置总体设计 2.1 设计要求 2.1.1 烟雾、燃气泄漏检测的功能 2.1.2 系统设计框图 2.1.3烟雾、燃气泄漏检测的各个功能模块 2.2 设计原理 2.2.1 气体传感器介绍 2.2.2 气体传感器的选定 3 硬件设计 3.1AT89C51单片机介绍 3.1.1 AT89C51 简介 3.1.2 主要性能参数 3.1.3AT89C51 各引脚说明 3.2 ADC0808转换器介绍 3.2.1 转换器 ADC0808 构成 3.

3、2.2转换器 ADC0808 工作原理 3.3 报警电路 3.3.1 声报警电路 3.3.2 光报警电路 3.4 LED 数码管显示及按键控制电路 4 软件设计 4.1 主程序 4.2A/D 转换程序 4.3 外部中断 1 服务程序 4.4 软件调试与仿真 4.4.1程序调试步骤 4.4.2调试中的问题及解决方法 4.4.3运行结果分析 5 硬件电路的搭建及调试 5.1 硬件电路主要元器件 5.2 搭建硬件面包板注意事项 5.3 硬件调试 1.绪论 1.1 设计说明书研究目的和意义 可燃性气体通常指城市煤气、石油液化气、汽油蒸汽、酒精蒸汽、天然气以及 煤矿瓦斯等 1 。这些气体主要含有烷类、烃

4、类、烯类、醇类、苯类以及一氧化碳和 氢气等成分,易燃、易爆、贮存和使用这些气体的过程中,如违反操作规程和设备 密封不好,都有可能发生可燃气体泄漏现象,进而酿成火灾或爆炸事故,给国家和 人民的生命财产造成损失。可燃性气体检测报警装置是能够检测环境中的可燃性气 体浓度并具有报警功能的仪器。该报警装置是石油化学工业、有可燃性气体泄漏可 能的生产工厂及家庭防火防爆必备的仪器。可燃性气体报警器属于中华人民共和 国强制检定的工作计量器具目录中第 46 项,它归类于物理化学计量器具。建筑 设计防火规范(GBJ16-87第1032条明确规定:“散发可燃气体、可燃蒸汽的甲 类厂房和场所,应设置可燃性气体浓度检测

5、报警装置”。 2003年 1 2月,国家执行新 的可燃性气体探测器标准(GB15322-2003可燃气体探测器,2004年10月国家颁 布可燃气体检测报警器规程 JJG693-2004,研究新型、性能稳定、准确监测可燃 性气体,并合乎国家相关规定的报警器具有极其重要得意义。 目前我国已有许多城市铺设了煤气管道,使用人口约达二亿人,煤气发生基地 及中转站也达几千家。如果这些家用燃气和煤气基地及中转站的报警率按10%计算, 可燃性气体检测报警器的需求量就达 2000 万台以上。随着全社会对防火防爆及人身 安全的重视程度的提高,这个数字会继续增长。 近十年来,农村的沼气使用也得到了极大的发展。到 2

6、006 年底,全国沼气池数 量已达近 1300 万座,这就为检测沼气 主要成分是甲烷)浓度的仪器提供了市场。 可见,可燃性气体报警器具有十分广阔的市场前景。 12智能家居的国内外现状 自1984年世界上第一幢智能建筑在美国出现后,“智能家居”逐步走入人们的 视野。美国、加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国家先后提出了 5 各种智能家居方案。并在美国、德国、新加坡、日本等国得到应用 我国的智能家居始于 20世纪90年代末。 1999年,建设部勘察设计司、建设部住 宅产业化办公室联合实施全国住宅小区智能化术示范工程,该示范工程的启动,标 志着我国智能化住宅小区的建设进入了新的发展阶段

7、5 。智能家居进人中国发展已有 近十年的时间,随着人们从陌生到熟悉,从误解到理解,智能家居的发展道路可谓 非常坎坷。它经过了早期的概念普及期到现在开始进入快速的发展期。 目前,国内智能家居行业结构较为复杂,主流智能家居厂家主要由对讲安防 类、传统家电类和网络通信类厂家发展而来。也有专业从事智能家居生产的厂家。 各类厂家结合自家特色推出的智能家居产品在功能上各有侧重点。专业智能家居生 产厂家对控制功能单一的智能家居产品进行功能组合,把发展的主要目标放在智能 控制系统的研发上。对传统家电类企业在其家电产品中置人通信接口,使其成为网 络家电,此类智能家居产品的推广受到家电品牌选择的限制。网络通信类厂

8、家侧重 在数码产品和信息家电产品中植入某些智能家居控制功能。智能家居的出现对传统 的安防装置进行了改进,改善了我们日常生活安防不足的情况。 1.3 本设计主要任务 本文主要是基于 89C51 单片机的家用安全装置,对家庭日常生活中发生的烟雾 及燃气进行了监测。利用 89C51 高性能 16 位单片机设计主控核心,以门磁开关,燃 起烟雾传感器为监测器,以 LED 和蜂鸣器为声光信号警示,以达到监测的目的,避 免不必要的事故发生。 2 家用安全保护装置总体设计 2.1 设计要求 2.1.1 烟雾、燃气泄漏检测的功能 在本设计中,烟雾及其燃气泄露测试装置的主要功能就是快速准确的检测被测 气体中有害气

9、体的含量 主要是CO气体和甲烷气体),通过LED显示屏将CO等气体 浓度显示出来,当气体浓度达到一定门限值时发出声光报警。为了实现以上功能: 系统应该具备气体传感器、数据采集、A/D转换电路、单片机、LED数码显示、声光 报警单元。 2.1.2 系统设计框图 图2-1系统框图 系统工作流程为:由装在室内的CO传感器和QM-N5传感器获得被测量对象(室 内CO甲烷浓度原始信号,经过温度补偿和取样放大得到矫正后的可匹配信号,进入 A/D转换,得到被测对象的数字量信号,再由单片机进行数据处理,得到最终的室内环 境CO及甲烷浓度值 本次设计中我利用可变电阻模拟烟雾燃气传感器),将此数据 通过数码管显示

10、并保存,同时根据系统设定的限值参数判断环境浓度是否超标,如果 超标立即启动预警信号进行声光报警提示,提示室内人员打开门窗、关闭气源并迅速 撤离事故现场。 COM体技术指标如下: 应用范围:工业生产和人民生活中的 CO检测; 检测对象:CC及他们的混合气体; 检测范围:co:旷loooppm 检测精度:co优于20ppm 报警浓度:100ppm 300ppm 响应时间:w 30ms 电池电压:+12V 工作温度范围:-20+70C ; 工作湿度范围:1095%RH QM-N5传感器 适用范围:用于检测CH4 C4H10 H2等 技术指标:加热电压Vh) AC或 DC 5 0.2V 响应时间(tr

11、ec w 10S 回路电压Vc)最大DC 24V 恢复时间(trec w 30S 负载电阴vRI) 2KQ 元件功耗w 0.7W 检测范围 5010000ppm 灵敏度 4(在 1000ppmC4H1中 2.1.3 烟雾、燃气泄漏检测的各个功能模块 在本设计中,煤气泄露测试装置的主要功能就是快速准确的检测被测气体中有 害气体的含量 半导体气体传感器。 (2 固体电解质气体传感器。 (3 接触感染式气体传感器。 (4 电化学式气体传感器。 (5 光学式气体传感器。 (6 高分子气体传感器。 2. 气体传感器应满足的基本条件 一个气体传感器可以是单功能的,也可以是多功能的;可以是单一的实体,也 可

12、以是由多个不同功能传感器组成的阵列。但是,任何一个完整的气体传感器都必 须具备以下条件: (1 能选择性地检测某种单一气体,而对共存的其它气体不响应或低响应。 (2 对被测气体具有较高的灵敏度,能有效地检测允许范围内的气体浓度。 (3 对检测信号响应速度快,重复性好。 (4 长期工作稳定性好。 (5 使用寿命长。 (6 制造成本低,使用与维护方便。 2.2.2气体传感器的选定 气体传感器是本系统检测的起点也是系统的核心和重点,选择合适的传感器成 为决定系统成功的关键。 CO气体传感器和QM-N5专感器属于气敏传感器,通过 A/D转换电路将模拟量转 换成数字量后送到单片机,进而由单片机完成数据处

13、理、浓度处理及报警控制等工 作。传感器作为煤气泄露测试装置报警器的信号采集部分,是仪表的核心组成部分 之一。由此可见,传感器的选型是非常重要的。 由于监控系统最关键的部分在于室内一氧化碳气体浓度的检测 , 本系统考虑到室 内空气中一氧化碳含量的大致范围,结合国家环境空气质量标(GB3095-1996规定的 一氧化碳分级标准 , 我们选用了 Motorola 生产的一种专门用于家庭用途的 MGS1100 型一氧化碳气体传感器,MGS1100氧化碳传感器是一种应用全微电子工艺制成的半 导体气体传感器,作为 CO敏感元件,对CO响应的选择性好,并具有灵敏度高,稳 定性好等特点在信号采集的同时加以温度

14、补偿。它是在微型硅桥结构中嵌入的加热 器上制作一层SnO2薄膜,这种结构不仅使得SnO2薄膜对CO气体在很宽的温度范围 内具有敏感性,而且硅膜减少热传导的热损失,从而大大降低了功耗。最终设计采用 可变电阻模拟上述所用传感器,通过改变阻值得到不同的电压来实现本次设计的功 其中2、4端为加热器的电源接线端,1、3为传感器输出端,其工作原理是把传感 器置于CO气体环中,SnO2薄膜层的电阻会随着 CO浓度的变化而变化,CO浓度越 大,SnO2薄膜层阻值越小。图22b)为取得传感器输出信号的基本电路图,Vh为加 热电压,传感器电阻RS与负载电阻 RL串联接到工作电压 VCC两端,由此可得关 系:VRL

15、=RL VCC/vRL+RS 传感器阻值RS随着CO浓度的增大而减小时,输出负载电压VRL逐渐变大,所以 通过测量负载电压即可反应出被测对象的CO浓度。MGS110C型一氧化碳气体传感器 的特点:测量浓度范围为 0-1000PPM测量精度为3%分辨率为1PPM工作温度- 2070,零点漂移为 PPMV10 3硬件设计 3.1AT89C51单片机介绍 3.1.1 AT89C51 简介 AT89C51是一种带4K字节闪烁可 编程可擦除 只读存 储器 ADC0808芯片引脚图3-2-1(b ADC0808电路引脚 3.2.2转换器ADC0808工作原理 模拟量输入通道共计 8条,即IN0IN7。AD

16、C0808引脚图如图3-2a)所示。 ADC0808对输入模拟量的要求是信号单极性;电压范围为05V,若信号太小,必 须进行放大;输入的模拟量在转换过程中应保持不变,若模拟量变换太大,则需在 输入前增加采样保持电路。 地址输入和控制线共计 4条,ALE为地址锁存允许输入线,高电平有效。当 ALE线为高电平时,地址锁存与译码器将A、B、C三条地址线的地址信号进行锁 存,经译码器后被选中的通道的模拟量进转换器进行转换。A、B和C为地址输入 线,用于选通IN0IN7上的一路模拟量输入。通道选择见表 3-2。 表3-2 ADC0808通道选择表 C B A 选择的通道 0 0 0 IN0 0 0 1

17、IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 如下图3-2-2所示ADC0808工作电路,ADC0808 A/D转换设计时,待转换的模拟量 是通过IN2输入,由可调变阻器控制模拟量的输入。数字量输出及控制线共计11 条。ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始 进行A/D转换,在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为 高电平时,表明转换结束; 否则,表明在进行 A/D转换。OE为输出允许信号,用于控制三 条输出锁存器向单片机输出转换得到的数据。OE= “1 ”,

18、输出转换得到的数据;OE= “ 0 ”, 输出数据呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号。因 ADC0808的内部没有 时钟电路,所需时钟信号必须由外界提供,通常使用频率为500kHz,VREF+、VREF-为参考电 压输入引脚。 RESPACK-8 CLOCK) P30 P32 P27 P26 P25 P24 P23 P22 P21 P20 P31 CLOCK IN0 START IN1 IN2 EOC IN3 IN4 OUT1 IN5 OUT2 IN6 OUT3 IN7 OUT4 OUT5 ADD a OUT6 ADD B r iT7Ann n OUT8 ALE VREF

19、(+) OE VREF(-) U2 7 25 12 9 16 ADC0808 21 20 19 10 6 18 8 15 14 17 26 27 24 23 22 28 1 2 3 4 5 P30 O P33 Volts Volts RV1 1k RV2 1k 图3-2-2 ADC0808工作电路 3.3报警电路 燃气在泄漏并达到一定浓度后,出于安全考虑,单片机处理从传感器收集到的 信息,通过软件编程输出控制信号给声光报警电路。以便于及时通知相关人员注 意,及时检查。下面,我将对声光报警电路及其原理进行详细解释 3.3.1声报警电路 图3-3-1.声音报警电路 如图3-3-1所示为声音报警电路

20、原理图。图中的蜂鸣器采用压电式约需10mA 驱动电流),在这里我们采用一个晶体三极管驱动。 当P3.5输出高电平“ 1”时,晶体管导通,压电蜂鸣器两端获得约 +5V的电压而 鸣叫;当P3.5输出低电平“ 0”时,三极管截止,蜂鸣器停止发声。 3.3.2光报警电路 如图3-3-2所示为光报警电路原理图。其中,“灯指示”为红色电路的功能是当 燃气泄漏后,在声音报警的同时进行的光报警。即P3.6输出为低电平“0”时,发 光二极管导通。“灯指示”为绿色的电路功能,当燃气泄漏并达到声光报警的浓 度,指示灯点亮。 D? LED-RED 图3-3-2.光报警电路 3.4 LED数码管显示及按键控制电路 在本

21、设计中,我们采用 LED数码管显示电路实现显示功能,采用一个四位共阳 数码管,其中,前三位数码管显示从单片机传出的浓度大小,以便于进行跟踪监 控。它显示的范围为“ 000999”,因为当浓度到达100即万分之一)时,就自动 报警,第四位数码管显示通道号,确保在某一路燃气泄漏时,能及时发现泄漏位 置,在最短的时间内采取措施。在本次设计中我利用键盘来对两路显示浓度进行转 换。图3-4-1为LED数码管显示,图3-4-2为键盘转换控制电路。 图3-4-1 LED数码管显示 P34工 图3-4-2键盘转换控制电路 驱动LED的时候,应该分二种情况比如用共阳接法和共阴接法,共阳的时候LED 正端接正电源

22、,负端通过一个限流电阻接P 口,这时不用接上拉电阻,只要这个限 流电阻取合适就可以了发光管亮的时候电流就是从电源正一一LED限流电阻一一 P 口,P 口为低电位发光管灭的时候没有电流流过,P 口为高电位或高阻状态共阴接 法, LED负端接地,正端直接 P 口,这时候要接上拉电阻,这个上拉电阻是提供LED 发光用的,发光管亮的时候电流是从电源正一一上拉电阻一一LED 地。这时上 拉电阻也是限流用的。P口为高电位或高阻状态发光管暗的时候电流是从电源正一一 上拉电阻一一P 口,这时LED无电流流过,P 口为低电位,限流电阻上流过电流全部 从P口流入。 要从单片机的输出驱动能力开始讲起。单片机输出驱动

23、分为高电平驱动和低电平驱 动两种方式,所谓高电平驱动,就是端口输出高电平时的驱动能力,所谓低电平驱 动,就是端口输出低电平时的驱动能力,当单片机输出咼电平时,其驱动能力实际 上是靠端口的上拉电阻来驱动的,实际测试表明,51单片机的上拉电阻的阻值在 330K左右,也就是说如果靠咼电平驱动,本质上就是靠330K的上拉电阻来提供电流 的,当然该电流是非常小的,小的甚至连发光二极管也难以点亮,如果要保证LED 正常发光,必须要外接一个 1K左右的上拉电阻,如果是一个led还好,要是10 个、20个led的话,就要接10个、20个1K的上拉电阻,接电阻的本身是可以的, 问题是接了上拉电阻以后,每当端口变

24、为低电平0的时候,那么就有10个、20个上 拉电阻被无用的导通,假设每个电阻的电流为5mA计算,20个电阻就是100mA这 将造成电源效率的严重下降,导致发热,纹波增大,以至于造成单片机工作不稳, 因此很少有采用高电平直接驱动led的,高电平驱动led实际上就是共阴。低电平 驱动就不同了,端口为低电平 0时,端口内部的开关管导通,可以驱动高达 30多毫 安的驱动电流,可以直接驱动led等负载,当端口为低电平 0时,尽管内部的上拉 电阻也是消耗电流的,但是由于内部的上拉电阻很大,有330K,因此消耗电流极 小,基本上不会影响电源效率,不会造成无用功的大量消耗,因此51单片机是不能 用高电平直接驱

25、动led的,只能用低电平直接驱动led,即只能用共阳数码管,而不 能直接用共阴数码管 本设计通过观察 LED数码显示器显示 CO甲烷浓度值 即可变电阻两端的电 压),判断CO浓度值是否超过上限值,如果超过,自动报警并使发光二极管点亮。 4软件设计 4.1主程序 本次设计的软件部分主要由转换子程序,报警子程序和中断1服务程序组成 4.2A/D转换程序 在本次设计中所采集到的信号是模拟信号,所以我们必须先把它转换为数字信 号再送入单片机进行计算和处理。 ADC0808具体工作为:当START启动脉冲输入 信号为高电平“ T时开始转换,EOC,A/D转换结束信号为高电平“ 1”时转换结 束,数据输出

26、允许信号0E为高电平“ 1”时打开输出三态门,输出数字量。其流程 图如下: EOC=1 4.3外部中断1服务程序 报警 在这次的设计中报警产生的脉冲由定时器 流程图如下: 定时,定时器1中断函数实现声光 4.4软件调试与仿真 441程序调试步骤 1)打开Keil u Vision 4,新建Project工程,选择 AT89C51单片机作为 CPU,新建C源文 件,编写程序,并将其导入到Source Group 1 ”中。在Option for Target对话框中,选中” Output “选项卡中的” Create HEX File选项和“ Debug ” 选项卡中的“ Use: Proteu

27、s VSM Simula ”选项。编译 C源程序,改正程序中的错误。 2)在Priteus ISIS中,选中 ADT89C51并单击鼠标左键,打开“ Edition Component”对话 框中,设置单片机晶振频率为 12MHZ,在此窗口中的program file ”栏中,选择先前用 KEIL 生成的.HEX文件。在PROteus ISIS的菜单栏中选择“ file ”并“ Save Design “选项,保存设计。 在Priteus ISIS的菜单栏中,打开” Debug “下拉菜单,在菜单中选中”Use Remote Debug Monitor “选项,以支持与 keil的联合调试.

28、Start/stop Debug Session ”图标虫,进入程序调试环境。按“ F5”键,顺序运 行程序。调出Priteus ISIS界面, 4 .4.2运行结果分析 调节滑动变阻器,使其相应阻值发生变化,例如图中此时的电阻占比为92%。 由ADC0808通过28号引脚采集滑动变阻器两端电压值的电信号转换成8位二进制 数通过引脚OUT1-OUT8输出给单片机P2 口,此时将此信号传输给 P2.0-P2.7,在时 钟信号的作用下,LED循环显示转换结果为此时可变电阻两端的电压值和当前哪一 路的信息。满足4位数码管的前三位显示 A/D转换后的电压值,后一位显示通道 数,所以程序和设计的软件符合

29、设计的要求。 5硬件电路的搭建及调试 5.1硬件电路主要元器件 表5-1主要元器件清单 序号 名称 型号 数量 1 单片机丁 AT89S51 1 2 瓷片电容 33pF 2 3 瓷片电容 104 1 4 按键 1 5 晶振 12M 1 6 三极管 NPN 4 7 三极管 PNP 1 8 电阻 10K 1 9 可变电阻: 1K 2 10 排阻 1K 1 11 电解电容 10uF 1 12 蜂鸣器 1 13 二极管 1 14 转换器 ADC0808 1 15 定时器 NE555 1 16 LED 四位8段数码管 1 5.2 搭建硬件面包板注意事项 (1.明确面模板上所插引脚开通与关断,竖直方向为开

30、通,但是就两层格子的模 块则恰好相反,横向为开通方向。 (2.为了分布各器件的最佳布置,应该先对器件在整个面模板上进行整体布局, 以便达到各器件合理分布的良好视觉效果,然后再根据电路原理图将导线连接到相 应的引脚。 (3.各芯片正常工作需要给每个芯片加电源,本次实验所加电压为+5V ,一般芯 片最左下角的引脚接电源,而芯片最左上角接地。但是需要特别强调的是 AD0808 转换器则不同,需要在引脚 11号和引脚 13 号分别接电源和接地。建议参考芯片引 脚正确连接各引脚。 (4.原理图中 AD0808 转换器的时钟信号是外输入的,本次模拟所用的是 TMDM-1 型数电模电实验箱所提供的频率发生器

31、,注意当所给的信号频率越低采集 信号转换的速度越慢,经过实验得出频率在 500HZ 以上转换速度较为明显。 5.3 硬件调试 接通所选的+5V电源以及外加频率发生器,如果发现 LED与发光二极管没有显 示,仔细对照原理图与芯片引脚,比较对照各引脚直到故障排除。值得提出的是当 反复检查引脚没有错误时,是否芯片与面模板接触完好。 当改变滑动变阻器的阻值后显 示也应随之改变。由调试结果可看到 4 位数码管的前三位显示 A/D 转换后的电压值, 后一位显示通道数,所以程序和设计的软件符合设计的要求。 6 毕业设计的收获及心得 通过近三个多月的毕业设计,让我对自己以前所学的知识有了很好的回顾同时 对以前

32、没有能懂得知识也一一破解。在电路分析上也有很大的提高。使对集成芯片 的管脚和工作原理更加牢固。通过本次课程设计,又使我学到了许多书本上无法学 到的知识,也深刻体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知 识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。在做本次课程 设计的过程中,我感触最深的当属查阅了大量的设计资料了。为了让自己的设计更 加完善,查阅这方面的设计资料是十方必要的,同时是必不可少的。其次,我学会 了在网络中查找有关的各硬件的资源,为本次课程设计提供一定的资料。这次设计 使我认识到怎样把所学的知识连贯起来,分析需要将产品有充足的了解,需要有足 够的耐心。当你

33、遇到困难时要敢于克服。在认真、持之以恒的态度下一定能取得设 计成功。通过本次设计我还熟悉掌握了 Proteus 和 klieC 软件。总之,这次毕业设计 让我受益匪浅。这对我将来工作一定带来很大帮助。 致谢 在这次设计过程中,我得到了组里各位老师的支持和帮助,特别是 张晓群和稽 启春老师,更是在毕业论文设计的整个过程中,认真指出我设计的不足之处,耐心 指导我如何完善,还帮助我解决我不懂的地方, 使我们少走了很多弯路。 在此,诚 心感谢我的指导老师成老师!没有你们的指导也不会有今天的我,再次真诚的感谢 我的指导老师,在本次设计中您给我的良言我会谨记在心,您给我的不仅是单独的 知识,您还教会了我在

34、生活中的一些细节,给我传达了谨慎、认真、仔细做事的精 神,老师您辛苦了!在此还要感谢所有在我学习遇到困难时帮助我的老师们和我们 组的同学,和他们一起设计,相互鼓励,共同面对困难,共同解决困难,这才使得 我能够顺利完成学业。 附录 J -:l 11F 1k FflJJUM KI.IM1 HJJW ra/AOi 用阿 FQ5W耳 Hl 驯E raj UH PZJA11 WQ FMfAt PZfi椚 * PZTffi-B on炖 n. oa而 oaiifi HmTI F1ST1 Flff/F pijTd 柑I 居 FX PT RRI odoo g ; j n / I-! -V 卜 0D SPEJEP

35、. TEc( 闵皿圈皿旧Fzi映F31 5 J: S1SIIT IN1 或. MZ HU oim N4 IH om 虧 oirn OUTii oim MX QUTS AUDB OUTl oins LE VRBF) 7 P T1 C u F 1 F I 图1系统原理图 源程序: #in elude 系统宏定义 #defi ne uchar un sig ned char #defi ne uint un sig ned int P1 P0 #defi ne LCon #defi ne Data #defi ne SWITCH_KEY1 #defi ne NO_KEY0 #defi ne DOWN

36、0 #define UP /0808管脚定义 #define DataPortP2/0808的数据输出口 ,注意引脚接线。 sbit ADDA=P3A3。输入选择口 sbit start=P3A0o / AD开始信号,与 ALE连接在一起用 sbit eoc=P3A2。 sbit oe=P3A1o uchar X2 o /端口引脚定义 sbitSpeaker=P3A5o sbitClockPin=P1A7o sbitSysLed=P3A6o sbitSwitchKey=P3A4o /数码管软件译码 unsigned char const s=0 x3f,0 x06,0 x5b,0 x4f,0

37、x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f o /数码 管软件译码 unsigned char code seg=1,2,4,8o/数码管片选信号 /系统变量定义 static uchar index,sam_indexo /当前采样通道 static uchar SpeakStatoe /扬声器状态 uint AlarmLimit2 o /报警输入值,在初始化函数中配置 uchar SampleValue2o /采样获取值, AD 的采样值 uchar ShowControlo /显示的采样通道 uchar RefFlago /数码显示更新标识 /外部引用函数 ext

38、ern uchar ad_search(uchar ko extern void StartTran(uchar IDo extern uchar GetSampleValue(voido extern uchar ADC0808(unsigned char ido extern uchar GetSampleNowait(uchar *valo void delayl(uint n uint i,j o for(i=no i0o i- for(j=114o j0o j-o void delays(unsigned int cnt while(-cnt 。 uchar ad_tr(void/A

39、D 模拟量转换成数字量函数 uchar val。 oe=0。 start=0。 delayl(1。 start=1。 delayl(1。 start=O。/开始转换 delayl(1。 while(!eoc 。 /等待转换结束 oe=1。 delayl(1。 DataPort = Oxff。 val=DataPort。 /读入转换的数字量 oe=O。 return val。 uchar ad_search(uchar k/IN0,IN1,IN2 模拟量的分时转换 if (k1 return 0。 switch(k return X0 。 break。 return X1 。 break。 ad

40、_tr( 。 IN2=val 。 i=0 。 case 0:ADDA=0 。 delayl(5。 X0=ad_tr( 。 case 1:ADDA=1 。 delayl(5。 X1=ad_tr( 。 /case 2:ADDA=0 。 ADDB=1 。 ADDC=0 。 break。 default:k=0。 break。 void StartTran(uchar ID oe=0。 ADDA = ID 。 delays(4。 start=0。 delays(2。 start=1。delays(2。 start=0。 /开始转换 delays(2。 /获取采样的值 uchar GetSampleVa

41、lue(void uchar val。 while(!eoc。 oe=1。 delayl(2。 val=P1。 oe=0。 return val。 uchar ADC0808(u nsig ned char id/0808的转换 un sig ned char va。 if(id = 0 ADDA = 0 。 else ADDA = 1 。 start=1。 /开始 来一个脉冲 start=0。 while(eoc=0。 oe=1。 /允许输出 val = DataPort。 /到 0808 oe=0。 return val。 /功能 : 将整数转化成字符串输入 : value 需要转化的整数

42、 uchar BufTemp4。 /数码管需要显示的值就在这里取的 void IntToChar(uint value if(value999 BufTemp0=9 。 BufTemp1=9 。 BufTemp2=9 。 BufTemp0 = value/100。 value = value%100。 BufTemp1 = value/10。 BufTemp2 = value%10。 1 产生 BufTemp3= ShowControl 。 /打开扬声器输出,扬声器输出靠 PWM 脉冲驱动,脉冲由定时器 void OpenSpeaker(void if(SpeakState = 0 Speak

43、State =1。 else return。 TMOD |= 0 x11 。 ET1=1。 TR1 = 1。 /关闭扬声器输出 void ClosedSpeaker(void SpeakState = 0。 ET1=0。 TR1 = 0。 /定时器 1 中断函数 void Timer1( interrupt 3 TR1=0。 Speaker=Speake。 TH1= 0 xF2 。 TL1= 0 xDA 。 TR1=1。 /初始化系统变量 void InitSystem(void AlarmLimitO = 321。电压值 3.21V,输入 321 AlarmLimit1 = 250 。 Sh

44、owControl = O。 SampleValueO = O。 SampleValue1 = O。 sam_index = O。 index = O。 RefFlag = O。 /转化成采样值 AlarmLimitO = (unsigned longAlarmLimitO*51/1OO 。 AlarmLimit1 = (unsigned longAlarmLimit1*51/1OO 。 EA = 1 。 /按键扫描 uchar scan_key( SwitchKey = 1 。 if(SwitchKey = DOWN delays(35。 /去抖 if(SwitchKey = DOWN while(SwitchKey = DOWN 。 return SWITCH_KEY 。 return NO_KEY 。 /定时器 O 的初始化函数 void InitTimerO(void/3Oms TMOD |= Ox11 。 ETO = 1 。 THO = Ox94 。 TLO = OxOO。 TRO = 1 。 定时器0的中断响应函数,定时器 0实现数码管定时刷新,定时时长是 10ms,实 现 ADC 定时采样,采样采用查询方式。 void Timer0_isr(void interrupt 1 using 1 static uint temp。 TR0 = 0。

温馨提示

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

评论

0/150

提交评论