收藏 分销(赏)

毕业设计co气体浓度监测仪设计单片机原理及接口技术课程设计.doc

上传人:a199****6536 文档编号:2169733 上传时间:2024-05-21 格式:DOC 页数:31 大小:825.04KB
下载 相关 举报
毕业设计co气体浓度监测仪设计单片机原理及接口技术课程设计.doc_第1页
第1页 / 共31页
毕业设计co气体浓度监测仪设计单片机原理及接口技术课程设计.doc_第2页
第2页 / 共31页
毕业设计co气体浓度监测仪设计单片机原理及接口技术课程设计.doc_第3页
第3页 / 共31页
毕业设计co气体浓度监测仪设计单片机原理及接口技术课程设计.doc_第4页
第4页 / 共31页
毕业设计co气体浓度监测仪设计单片机原理及接口技术课程设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、辽 宁 工 业 大 学单片机原理及接口技术 课程设计(论文)题目: CO气体浓度监测仪设计 院(系): 电气工程学院 专业班级: 学 号: 学生姓名: 指导教师: (签字)起止时间:2013.06.24-2013.07.12V本科生课程设计(论文) 课程设计(论文)任务及评语院(系):电气工程学院 教研室: 学 号学生姓名专业班级课程设计(论文)题目CO气体浓度监测仪设计课程设计(论文)任务该监测仪主要用于公共场所及某些车间空气中CO浓度的监测,检测标准是:CO浓度小时均值应低于3mg/m3,日均值应低于4mg/m3。. 设计任务:1. CPU最小系统设计(包括CPU选择,晶振电路,复位电路)

2、2. 传感器选择以及模拟量检测电路设计3. 人机对话接口电路设计(要求强弱电隔离)4. .程序流程图设计机程序清单编写技术参数:1CO浓度小时均值应低于3mg/m3,日均值应低于4mg/m3。2工作电源220V设计要求:1、分析系统功能,选择合适的单片机及传感器,模拟量输入电路设计等;2、应用专业绘图软件绘制硬件电路图和软件流程图;3、按规定格式,撰写、打印设计说明书一份,其中程序开发要有详细的软件设计说明,详细阐述系统的工作过程,字数应在4000字以上。进度计划第1天 查阅收集资料第2天 总体设计方案的确定第3-4天 CPU最小系统设计 第5天 传感器选择以及模拟量检测电路设计 第6天人机对

3、话接口电路设计第7天 程序流程图设计第8天 软件编写与调试第9天 设计说明书完成第10天 答辩指导教师评语及成绩 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算摘 要本系统利用51单片机做核心控制模块,利用MQ-7一氧化碳传感器探测一氧化碳。实时监控多处一氧化碳浓度变化,如果某处一氧化碳浓度过高,系统将发出声音报警,并显示报警传感器号码,提醒人们及时抢险。本系统可用于家庭环境,也适用于工业环境。由于单片机成本低廉,自动控制功能比较强大,运行稳定,环境适应性好,所以本系统采用单片机做控制的核心元件。MQ-7一氧化碳传

4、感器对一氧化碳的灵敏度高;长寿命,低成本;简单的驱动电路即可。因此,很适用于家庭的一氧化碳检测。数码管能清晰的显示报警的房间号码,即使在光线较暗时,所以选用数码管做显示模块。关键词:一氧化碳;单片机;检测;报警目 录目 录IV第1章 绪论11.1 CO浓度监测仪研究概况11.2 本文研究内容1第2章 CPU最小系统设计22.1 CO气体浓度监测仪总体设计方案22.2 CPU的选择32.3 时钟电路设计62.4 复位电路设计72.5 单片机最小系统设计7第3章 CO浓度监测仪输入输出电路设计83.1 CO传感器的选择83.2 运算放大器选择103.3 A/D转换电路103.4 声光报警电路113

5、.5 显示电路12第4章 软件设计134.1 流程图设计134.2 程序编写144.2.1 主程序144.2.2 调零子程序154.2.3 显示子程序164.2.4 报警子程序194.2.5 中断取值子程序19第5章 软件仿真22第6章 课程设计总结24参考文献25附录 硬件原理图26第1章 绪论1.1 CO浓度监测仪研究概况燃气(人工煤气、天然气、液化石油气)的普及,提高了生产效率、市民的生活质量,但在使用燃气的过程中,因燃气泄漏、废气等原因造成的燃气爆炸、中毒等意外事故时有发生,给人们的生命和财产安全带来了严重的威胁,因此安全使用燃气一直是燃气主管部门工作的重中之重。CO浓度监测仪能有效监

6、测环境中可燃气体或毒性气体CO的浓度,一旦其浓度超出报警限定值,就能发出声光报警信号,并且能自动开启排风扇把燃气排出室外,甚至能通过联动装置自动切断燃气供应防止燃气继续泄漏,起到安全防范的作用。但监测仪选用得是否合理,直接关系到其功能的充分发挥。该设计所研究的CO浓度监测仪正是应这种要求而开发的。一氧化碳是一种无色、无味的气体,它与血液中的血红素结合的能力是氧的 240 倍,它与血红素形成稳定的络合物,使血红蛋白丧失了输送氧气的能力,从而导致组织低氧症,甚至死亡。一氧化碳浓度的高低是评价空气质量好坏的重要指标之一,也是工厂、煤矿井下是否发生自燃火灾的重要标志之一。为了保证人们身体健康和环境洁净

7、,世界各国都纷纷致力于防止空气污染的产生监测仪是否灵敏可靠关系到人身财产安全,因此监测仪属于强制检定的计量器具。目前大多数报警器用户都使用汽油或液化气等超过以上高浓度的易挥发可燃气体对报警器进行检测, 若报警即判断监测仪正常。这样做虽然省缺了购买可燃气体标准物质的麻烦和费用, 但实际上达不到保证安全的目的, 从而形成重大安全隐患, 有时还会造成报警器检测元件中毒。如果使用标准气体检测报警器, 就能保证人身安全, 同时杜绝报警器检测探头中毒现象。1.2 本文研究内容本文所设计的数字气体报警器采用单片机AT89C51,其价格便宜,易于产品化。本设计能将置于测试环境中的气体传感器输出的模拟电压通过A

8、/D转换器送入单片机AT89C51中进行处理并通过数码管显示,通过设置报警值,当检测到的浓度达到或者超过设定值时,用单片机控制发光二极管发光报警,同时打开喇叭发出声音报警,来达到报警的目的,并通过外接排风扇与电磁阀对其进行程控,以防事故的发生。而当系统出现故障时,黄色LED亮启,便于用户及时对报警器进行维修。系统以MQ-7气体传感器和AT89C51 单片机为核心, 设计气体泄漏报警器。实现:1准确测量周围环境中的可燃性气体、有毒有害气体的泄漏;2实现系统各个模块的功能控制;3实现单片机编程语言系统的控制及传感器电路的控制。4研究单片机各接口的作用及功能;5了解MQ-7气体传感器的具体功能;6实

9、现对基本报警电路的控制。第2章 CPU最小系统设计2.1 CO气体浓度监测仪总体设计方案单片机应用系统的结构分三个层次:(1)单片机:通常指应用系统主处理机,即所选择的单片机器件。(2)单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。(3)单片机应用系统:能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显示器、打印机等)和串行通行口(RS232)以及应用程序等。以此理解,一氧化碳报警器同样具有单片机应用系统的三个层次。其中以AT89C51单

10、片机为核心构成单片机系统。在此系统中,检测信号进入单片机进行运算处理。为了更好的理清设计思路,将整个系统细分为三部分加以设计说明。整个报警器由三个部分组成,分为三大模块:浓度检测模块、主控模块和报警模块。在本次设计中,使用的核心器件是单片机和一氧化碳传感器。为了保重整个系统可靠的运行,设计中必须明确三大部分的实际联系:以单片机为中心,其他各大模块一一展开。其中,浓度检测及显示模块所实现的功能是将房间中的一氧化碳浓度值转换成为单片机能够处理的数字信号,并且浓度值显示出来:主控模块以单片机为主,对其他模块的运行进行控制;报警模块是此系统的外部电路,它的功能是实现报警。系统框图如图2-1所示。单片机

11、转换显示报警声音报警传感器AD图2-1 总体框图2.2 CPU的选择数据处理过程是主要由AT89C51单片机等芯片完成的。AT89C51是一种带4K字节的闪烁可编程可擦除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。其中包括128 字节内部RAM,32个I/O 口线,2个16位定时/计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 降至0Hz 的静态逻辑操作,并支持两种可选的节电工作模式26。空闲方式体制CPU 的工作

12、,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。AT89C51单片机管脚图如图2-2所示图2-2 AT89C51单片机管脚图引脚功能说明如下:VCC:电源电压GND:地P0口:P0口是

13、一组8 位漏极开路型双向I/O口,也即地址/数据总线复用。作为输出口用时,每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8 位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚

14、被外部信号拉低时会输出一个电流(IIL)。Flash 编程和程序校验期间,P1接受低8 位地址。P2口:P2是一个带有内部上拉电阻的8 位双向I/O 口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位四肢的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8 位地址数据,在访问8 位地址的外部数据存储器(例如执行MOVX RI 指令)时,P2口线上的内容(也即特殊功能寄存器(SFR

15、)区中R2 寄存器的内容),在整个访问期间不改变。Flash编程和程序校验时,P2也接收高位地址和其他控制信号。P3口:P3是一个带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE

16、(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元D0位置位,可禁止ALE操作。该位置,只有一条MOVX和MOVC指令ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51由外部存储器取指令(或数据)时,每个

17、机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12v的编程允许电源VPP,当然这必须是该器件使用12v编程电压VPP。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。89C51中有一个用于构成内部振荡器的高增

18、益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,外接石英晶体或陶瓷谐振器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对电容C1、C2虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30Pf10Pf,而如使用陶瓷谐振器建议选择40Pf10Pf。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL端,即内部时钟发生器的输入端XTAL则悬空。2.3 时钟电路设计单片机工作时,从取指令到译码再

19、进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。本课题采用内部时钟方式。在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振频率取12 MHz。外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用,本课题选用33pF的电容。易知:本单片机最小系统的振荡周期=1/(12MHz)=1/12us,时钟周期=1/6us,机器周期=1us。图2-3时钟电路原理图2.4 复位电路设计无论是在单片机刚开

20、始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。单片机的复位形式:上电复位、按键复位。本课题采用按键复位。在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。

21、根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。图2-4 复位电路原理图2.5 单片机最小系统设计单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。图2-5 单片机最小系统原理图第3章 CO浓度监测仪输入输出电路设计3.1 CO传感器的选择选择一氧化碳传感器主要考虑以下的性能指标:(1)输入和输出之间成比例,直线性好、灵敏度高、分辨力强、测量范围宽。 (2)滞后、漂移误差小 (3)动态特性好 (4)功耗小 (5)时间老化特性优良 (6)与被测体匹配良

22、好,既不因接入传感器而使得被测对象受到影响,受被测量之外的影响小。(7)体积小、重量轻、价格低廉。(8)故障率低,易于校准和维护。(9)由于传感元件的输出信号一边比较小,为了便于能够驱动控制电路,在传感器电路中还应该包括放大器。鉴于以上选择要点,本文中用到的传感器必须具备良好的测量效果、功耗小、动态特性良好和体积小、重量轻、价格低廉等几个主要特性。为此我们选择了MQ-7系列传感器。半导体一氧化碳传感器MQ-7所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。采用高低温循环检测方式低温(1.5V加热)检测一氧化碳,传感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V加热

23、)清洗低温时吸附的杂散气体。使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。MQ-7气体传感器对一氧化碳的灵敏度高,这种传感器可检测多种含一氧化碳的气体,是一款适合多种应用的低成本传感器。主要特点及应用:l 对一氧化碳的高灵敏度。l 长寿命,低成本。l 简单的驱动电路即可l 家用气体泄漏报警器l 工业用一氧化碳报警器l 便携式气体检测器MQ-7气敏元件的结构和外形如图3-1所示,由微型Al2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,为了改善传感器的选择性,传感器气室用活性炭过滤层与外界隔开。加热器为气敏元件提供了必要的工作条

24、件。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流。图3-1 MQ-7实物图3.2 运算放大器选择由于气体传感器输出的电压值过低,无法直接使用A/D读取,必须要加入放大电路,对电压放大然后再经过A/D读取。在此,选择LM358作为运算放大器。LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358具备以下特性:内部频率补偿;直流电压增益高(约100dB)

25、;单位增益频带宽(约1MHz);电源电压范围宽:单电源(3-30V)、双电源(1.5-15V) ;低功耗电流,适合于电池供电;低输入偏流,低输入失调电压和失调电流;共模输入电压范围宽,包括接地;差模输入电压范围宽,等于电源电压范围;输出电压摆幅大(0 至Vcc-1.5V)。图3-2 运算放大器电路原理图3.3 A/D转换电路为了方便与AT89C5单片机的链接,本系统采用AD0809模数转换芯片对采集到的气体信息进行数模转换。其分辨率为8位,不必进行零点和满度调整,且具有高阻抗斩波稳定比较器,8个通道的多路开关可直接存取8个单端模拟信号中的一个。利用单片机启动AD0809转换器,转换结束后再由A

26、D0809向AT89C51发出中断请求信号, CPU响应中断请求。通过对译码器的读操作,读取转换结果并送到被测量的响应存储区。再重新选择被测量,并再次启动AD0809转换器转换后中断返回。AD0809与单片机AT89C51连线线路如图3-3所示。图3-3 AD0809与单片机AT89C51连线线路3.4 声光报警电路 系统的声,光报警电路由发光二极管和低电压蜂鸣器构成,分别由PIC单片机的2个端口控制。发光二极管LED具有体积小,抗冲击和抗震性能好,可靠性高,寿命长,工作电压低,功耗小,响应速度快等优点,常用于显示系统的工作状态,有益于控制系统的设计和维护。当该部分工作时,整机的工作电流将增加

27、为未报警状态时的电流的数倍,消耗的功率会比较大,因此采用了分时供电的方法,通过单片机控制该部分电源的通断,即质量浓度达到报警时才给其供电;另外,用单片机输出的周期脉冲报警信号控制振荡器的启停,用振荡器输出信号控制蜂鸣器和发光二极管,振荡器可以用TTL门电路构成的多谐振荡器。采用这2种方法可降低该部分的电路的功耗。设计中,LED发光二极管的工作电流为5-20mA,最大不超过50mA,否则会烧坏器件。为了获得良好的发光效果,LED工作电流控制在10-15mA较为合理。在图3-4中所示电路中,D口得RD4,RD5,RD6,RD7,接声,光报警电路,其中D口的RD5-RD7分别接质量浓度过高,相等,过

28、低的LED。当气体检测仪检测质量浓度低于设定值时,绿灯亮;当气体质量浓度达到某一定值时,黄灯亮;当高于设定值时,红灯亮并发出警报信号。图3-4 声光报警电路原理图3.5 显示电路在该设计中,LED显示器的显示方法采用动态显示。LED动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相应的LED后,即在显示字段上得到显示字形码。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。本设计中处理结果采用4位LED显示,首次显示气体类别,后3位显示气体浓度。逐位轮流点亮各个LED,每一位保持1ms,在10-20ms之内再一次点

29、亮,重复不止。这样利用人的视觉停留,好像4位LED同时点亮一样。图3-5 显示电路原理图第4章 软件设计4.1 流程图设计图4-1 软件流程图4.2 程序编写4.2.1 主程序整个程序一共使用了两个中断,一个外部中断即INT0中断,一个定时/计数器中断即IT0中断.这两个中断各有其作用,INT0中断是用来判断A/D转换器ADC0809对模拟信号的转换是否完成,当A/D转换结束后,ADC0809发出结束EOC(高电平)信号,该信号可供单片机查询,也可反相后作为向单片机发出中断信号,而本设计正是用的这个方法,使得程序进入中断取值程序.而程序中所用到的IT0中断,是为产生一个周期为2S的方波而设计的

30、,其作用是为看门狗产生喂狗子信号.具体程序如下: ORG 00H JMP START ;主程序入口地址 ORG 03H JMP INTO ;外中断INTO入口 ORG 0BH JMP ITOP ; 定时器0中断入口 ORG 0100HSTART: MOV IE,#10000001B ;INT0中断使能 MOV IP,#00000001B ;INT0中断优先 MOV TCON,#00000000B ;设置INT0为电平触发 MOV SCON,#00000000B ;串行口发送,接收标志位请0 MOV SP,#60H ;设堆栈指针 MOV TMOD,#01H ;设置T0为方式1 CALL PT0M

31、0HERE: AJMP HERE ;自身跳转PT0M0: MOV TL0,#0CH ;T0中断服务程序,T0重新置初值 MOV TH0,#0FEH SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 RETITOP: MOV TL0,#0CH ;T0中断服务程序,T0置初值 MOV TH0,0FEH CPL P1.0 ;P1.0状态取反 RETI ACALL LED ;调用LED自检子程序 MOV 33H,#00H ;设置中断完成标志为0 MOV DPTR,#0FEFFH ;ADC0809的端口地址 MOVX DPTR,A ;使BUS为高阻抗,令AD

32、C0809开始转换WAIT:MOV A,33H ;等待A/D转换完成信号 JNZ INTOK JMP WAIT ;未完成则跳回等待INTOK: MOV A,32H ;将最新的浓度值存入累加器中,(若A/D未工作,则A=0) JNZ L1 MOV A,30H JMP L2L1: MOV 30H,31H MOV A,31H ;将新浓度载入累加器L2: CALL BCD ;调用BCD码调整程序 CALL DISP ;显示当前浓度 CALL ADZERO ;调用零点调整子程序 CALL ALARM ;调用判断报警程序 CALL BCD CALL DISP ;调用显示子程序 CLR A ;清除累加器值

33、JMP START ;返回在主程序通过对33H中数值的判断断定A/D是否转换完成,当33H中为1时,转换完成,程序调用调零、报警、显示模块对输入数据进行处理。4.2.2 调零子程序由于未知问题,可能造成送入单片机中显示的模拟电压量与真实电压存在区别,这种误差可以通过在中断处理中对A/D转换的数值加上一个调整值来解决。这样,我们就能根据实际情况来对报警器输出的数值进行控制,使其记数更加精确,使用更方便。我们可以利用对端口的电平高低来判断是否需要进行调零处理,故可将按键开关接于端口P2.2.若开关按下,则说明有调零需要,于是进入调零处理程序;若开关没有按下,则说明没有调零需要,系统进入下一步.通过

34、设置一个按键,既可保证程序顺利进行,又方便用户使用.具体程序如下:ADZERO:CALL DELAYJB P2.2,JMP1 ;判断调零按钮是否按下,没按则跳JMP1.JMP1:RET通过对P2.2位的判断来分辨是否有调零请求,若有则跳入调零模式,调零模式中程序如下:LOOP1:CALL DELAY JNB P2.2,$ ;消除抖动延时 MOV A,40H ;将调零预设值40H送入 CLR C ;清除进位标志 SUBB A,#01H ;调零值减1 JNC LOOP2 ;未借位则跳LOOP2 MOV A,#05H ;有借位则重设调零值为5LOOP2:MOV 40H,A ;将调零值送回40H保存

35、MOV A,R3 ;将当前浓度值送入A JZ XEND DEC A ;当前浓度值减1(响应调整变化)XEND1 :MOV 30H,A ;送回30H保存 MOV 31H,A ;送回31H保存 CALL BCD ;调用BCD码调整 CALL DISP ;调用显示子程序JMP LOOPXEND: MOV A,#63H JMP XEND1进入调零模式后,若有按键则,LED数码管示数响应按键变化。若3秒无任何按键,则退出调零模式返回主程序。4.2.3 显示子程序因为通过A/D转换进入单片机8051的浓度值以十六进制存在,为了让LED显示需要转换为BCD码,其BCD码转换程序如下:BCD:MOV 55H,

36、#00H ;存放BCD转换中的百位数MOV 56H,#00H ;存放BCD转换中的十位数CLR C ;清除进位标志为下面的SUBB准备 MOV R2,#00H ;清除R2CHAN:SUBB A,#64H ;减100JC CHAN1 ;不能减,转INC R1 ;百位值JMP CHAN ;循环判断百位CHAN1: ADD A,#64H ;还原百位数 CLR C ;清除进位标志为下面的SUBB准备CHAN2: SUBB A,#0AH ;减10JC CHAN3 ;不够减,跳INC R2 ;够减十位加1JMP CHAN2 ;重复减10CHAN3: ADD A,#0AH ;还原十位数MOV 60H,R2

37、;把十位数放60H中MOV 61H,A ;把个位数放61H中RET这样把转换成的BCD码,个位存于61H中,十位存入60H中,再编写显示模块如下:DISP: MOV R7,#03H MOV R0,#60HLED1: MOV A,R0 MOV DPTR,#TABLELED2: MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R7,LED1 RET将数值送入到LED显示74LS164驱动数码管的过程:在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔

38、划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。可以提供单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。 MCS-51单片机串行口方式0为移位寄存器方式,外接3片74LS164作为3位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输

39、入信号,共一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hga各段对应的引脚上。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,3片7LS164首尾相串,而时钟端则接在一起,这样,当

40、输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三片74LS164中。由于本设计采用的是机械按键,与地线想连,按键按下,输入为低电平,释放按键则输入为高电平。实际上,机械式按键的落片存在着轻微的弹跳现象其时间由操作员按键的动作所确定,为了确保CPU对按键的一次闭合仅做一次处理,必须去除抖动,一般通过调用子程序延时来解决,在键的稳定闭合或释放时才读出键的状态,具体程序

41、如下:DELAY: MOVR 5,#60 设定30毫秒D1: MOV R6,#248 ;设定0.5毫秒DJNZ R6,$ DJNZ R5,D1 RET因为石英晶体为12MHZ,一个机器周期为1微秒,这样如上程序可达到延时30毫秒的目的。4.2.4 报警子程序本设计采用了声光报警,当探测器探测的浓度超过报警设定值时就会同时产生音乐报警和灯光报警,此时红灯亮启,喇叭发出音乐,而正常时,喇叭关闭,红灯关闭,而显示正常的绿色LED亮启,本设计为了安全起见,还设置了事故处理装置,即出现危险使,探测器除了报警外,还会使排气扇的阀门打开,对室内进行排气,以免产生气体爆炸或是中毒.具体程序如下ALARM: MOV A,30H ;将当前浓度值送如累加器 CLR C ;清除进位标志 SUBB A,50H

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服