




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、辽宁工业大学单片机原理及接口技术课程设计(论文)题目: co气体浓度监测仪设计_院(系):电气工程学院专业班级: _学 号: _学生姓名:_指导教师: _(签字)起止时间:课程设计(论文)任务及评语院(系):电气工程学院教研室:号 学浓 体 C课程设计论文任务:说 !计 卅 设 件 捌 ;软 检 等 的计 细 则 设 详 侖#)3no3no路 有 机 嶼 抑 电 要 度 吐mgmg入 发 材 豹 4 4 输 开 55 u u序 O O CCCC打 肛,时U U M M低 模图中羽 。毗 施 ,程其字 中3 3肝附m m樂 歸何也000000 气m m,押 于 HWFHWF 4 4 空4444择
2、计郡 ,及稍书 钟于咖狀一1写g/mg/m恂加M M在 卵廿 包量计打 0 0 合制打, 闽日 拟设M M0 0 择绘、程 公3m3m, ,出蟻M#MMM#MM 选件写皿 % H 假依电励 刘W W ,软撰:# 寸 MJMJ 充次 XL-XL- 2 2 匕匕郢 工 弓 幺 J J图 寸 2 2 厶冃 匡 ,匚 0 0 3 3 房溝瞅程b b小功绘式前 战二 孙储用郝 虽源:统业格概 打釦rnom:MFrnom:MF仙求皿W W雌站 側仙血仆心程彬coco皿啟伽|帥帆 W0-W0-、厂 C C 、厂 田 、炙 几又 殳 、 、 、电 谚均谚 1 1 2 2 3434 占 1 1 2 2 1 1
3、2 2 3 3 详进度计划定统检设确系量路的小拟电计试成 料案最漠口设完 资方 及接图与书 77 J J 以话 写 收设P P择对流绕说 阅体C C选机序件计辩 查总:人程软设答 天 天 天天- -4 4天天天天心 1212 00 6 6 7 7 8 8 9 9 1 1 第第第天第第第第第5 5第指导教师评语及成绩日月 希年 指辩昔:轨 时 成 平 总注:成绩:平时20% 论文质量60% 答辩20%以百分制计算本系统利用51单片机做核心控制模块,利用 MQ-7 氧化碳传感器探测一氧 化碳。实时监控多处一氧化碳浓度变化,如果某处一氧化碳浓度过高,系统将发 出声音报警,并显示报警传感器号码,提醒人
4、们及时抢险。本系统可用于家庭环 境,也适用于工业环境。由于单片机成本低廉,自动控制功能比较强大,运行稳定,环境适应性好, 所以本系统采用单片机做控制的核心元件。MQ-7一氧化碳传感器对一氧化碳的灵敏度高;长寿命,低成本;简单的驱动 电路即可。因此,很适用于家庭的一氧化碳检测。数码管能清晰的显示报警的房间号码,即使在光线较暗时,所以选用数码管 做显示模块。关键词:一氧化碳;单片机;检测;报警目录 . 错误!未定义书签第1章绪论. 错误!未定义书签CO浓度监测仪研究概况. 错误!未定义书签本文研究内容 . 错误!未定义书签第2章CPU最小系统设计 . 错误!未定义书签CO气体浓度监测仪总体设计方案
5、 . 错误!未定义书签CPU勺选择 . 错误!未定义书签时钟电路设计 . 错误!未定义书签复位电路设计 . 错误!未定义书签单片机最小系统设计 . 错误!未定义书签第3章CO浓度监测仪输入输出电路设计 . 错误!未定义书签CO专感器的选择 . 错误!未定义书签运算放大器选择. 错误!未定义书签A/D转换电路 . 错误!未定义书签声光报警电路 . 错误!未定义书签显示电路 . 错误!未定义书签第4章软件设计 . 错误!未定义书签流程图设计. 错误!未定义书签程序编写. 错误!未定义书签主程序 . 错误!未定义书签调零子程序 . 错误!未定义书签显示子程序 . 错误!未定义书签报警子程序 . 错误
6、!未定义书签中断取值子程序 . 错误!未定义书签第5章软件仿真 . 错误!未定义书签第6章课程设计总结. 错误!未定义书签参考文献. 错误!未定义书签附录硬件原理图 . 错误!未定义书签第1章绪论1.1 CO浓度监测仪研究概况燃气(人工煤气、天然气、液化石油气)的普及,提高了生产效率、市民的生 活质量,但在使用燃气的过程中,因燃气泄漏、废气等原因造成的燃气爆炸、中 毒等意外事故时有发生,给人们的生命和财产安全带来了严重的威胁,因此安全 使用燃气一直是燃气主管部门工作的重中之重。CO浓度监测仪能有效监测环境中可燃气体或毒性气体co的浓度,一旦其浓度超出报警限定值,就能发出声光报警 信号,并且能自
7、动开启排风扇把燃气排出室外,甚至能通过联动装置自动切断燃 气供应防止燃气继续泄漏,起到安全防范的作用。但监测仪选用得是否合理,直 接关系到其功能的充分发挥。该设计所研究的co浓度监测仪正是应这种要求而开 发的。一氧化碳是一种无色、无味的气体,它与血液中的血红素结合的能力是氧的 240倍,它与血红素形成稳定的络合物,使血红蛋白丧失了输送氧气的能力,从 而导致组织低氧症,甚至死亡。一氧化碳浓度的高低是评价空气质量好坏的重要 指标之一,也是工厂、煤矿井下是否发生自燃火灾的重要标志之一。为了保证人 们身体健康和环境洁净,世界各国都纷纷致力于防止空气污染的产生监测仪是否灵敏可靠关系到人身财产安全,因此监
8、测仪属于强制检定的计量 器具。目前大多数报警器用户都使用汽油或液化气等超过以上高浓度的易挥发可 燃气体对报警器进行检测,若报警即判断监测仪正常。这样做虽然省缺了购买可 燃气体标准物质的麻烦和费用,但实际上达不到保证安全的目的,从而形成重 大安全隐患,有时还会造成报警器检测元件中毒。如果使用标准气体检测报警器 就能保证人身安全,同时杜绝报警器检测探头中毒现象。1.2本文研究内容本文所设计的数字气体报警器采用单片机 AT89C51其价格便宜,易于产品 化。本设计能将置于测试环境中的气体传感器输出的模拟电压通过A/D转换器送入单片机AT89C51中进行处理并通过数码管显示,通过设置报警值,当检测到的
9、 浓度达到或者超过设定值时,用单片机控制发光二极管发光报警,同时打开喇叭 发出声音报警,来达到报警的目的,并通过外接排风扇与电磁阀对其进行程控, 以防事故的发生。而当系统出现故障时,黄色 LED亮启,便于用户及时对报警器进行维修。系统以MQ-7气体传感器和AT89C51单片机为核心,设计气体泄漏报警器 实现:1.准确测量周围环境中的可燃性气体、有毒有害气体的泄漏;2 实现系统各个模块的功能控制;3.实现单片机编程语言系统的控制及传感器电路的控制。4.研究单片机各接口的作用及功能;5.了解MQ-7气体传感器的具体功能;6.实现对基本报警电路的控制。第2章CPU最小系统设计2.1 CO气体浓度监测
10、仪总体设计方案单片机应用系统的结构分三个层次:(1)单片机:通常指应用系统主处理机,即所选择的单片机器件。(2)单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基 本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。(3)单片机应用系统:能满足嵌入对象要求的全部电路系统。在单片机系统的基 础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显 示器、 打印机等)和串行通行口(RS232)以及应用程序等。以此理解,一氧化碳报警器同样具有单片机应用系统的三个层次。其中以 AT89C51单片机为核心构成单片机系统。在此系统中,检测信号进入单片机进行 运
11、算处理。为了更好的理清设计思路,将整个系统细分为三部分加以设计说明。 整个报警器由三个部分组成,分为三大模块:浓度检测模块、主控模块和报警模 块。在本次设计中,使用的核心器件是单片机和一氧化碳传感器。为了保重整个 系统可靠的运行,设计中必须明确三大部分的实际联系:以单片机为中心,其他 各大模块一一展开。其中,浓度检测及显示模块所实现的功能是将房间中的一氧 化碳浓度值转换成为单片机能够处理的数字信号,并且浓度值显示出来:主控模块以单片机为主,对其他模块的运行进行控制;报警模块是此系统的外部电路, 它的功能是实现报警。系统框图如图 2-1所示。图2-1总体框图2.2 CPU的选择数据处理过程是主要
12、由AT89C51单片机等芯片完成的。AT89C51是一种带4K 字节的闪烁可编程可擦除只读存储器 (FPEROM-FlasProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS位微处理器,俗称单片机。其中包 括128字节内部RAM 32个I/O 口线,2个16位定时/计数器,一个5向量两级 中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式26。空闲方式体制CPU 的工作,但允许RAM定时/计数器,串行通信口及中断系统继续工作。掉电方式 保存RAM中的内容,但振
13、荡器体制工作并禁止其他所有不见工作直到下一个硬件 复位。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATME高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由 于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL勺AT89C51是一种 高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉 价的方案。AT89C5仲片机管脚图如图2-2所示图2-2 AT89C51单片机管脚图引脚功能说明如下:VCC电源电压GND地P0口: P0口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用。 作为输出口用时,每位能吸收电流的
14、方式驱动 8个TTL逻辑门电路,对端口写“ 1” 可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编 程时,P0 口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接 上拉电阻。P1 口 :P1是一个带内部上拉电阻的8位双向I/O 口,P1的输出缓冲级可驱动 (吸收或输出电流)4个TTL逻辑门电路。对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻, 某个引脚被外部信号拉低时会输出一个电流 (IIL ) 0 Flash编程和程序校验
15、期间, P1接受低8位地址。P2口: P2是一个带有内部上拉电阻的8位双向I/O 口,P2的输出缓冲级可 驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“ 1”,通过内部的上拉电 阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉 电阻,某个引脚被外部信号拉低时会输出一个电流(IIL )。在访问外部程序存储 器或16位四肢的外部数据存储器(例如执行 MOVDPTR令)时,P2口送出高8位 地址数据,在访问8位地址的外部数据存储器(例如执行 MOVX RI指令)时, P2口线上的内容(也即特殊功能寄存器(SFR区中R2寄存器的内容),在整个 访问期间不改变。Flash编
16、程和程序校验时,P2也接收高位地址和其他控制信号。P3口: P3是一个带有内部上拉电阻的8位双向I/O 口,P3勺输出缓冲级可驱 动(吸收或输出电流)4个TTL逻辑门电路。对端口写“ T,通过内部的上拉电阻 把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL )。P3 口还接收一些用于 Flash闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。即
17、使不访问外部存储器,ALE仍以时钟振荡 频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注 意的是,每当访问外部数据存储器时将跳过一个 ALE脉冲。对Flash存储器编程期 间,该引脚还用于输入编程脉冲(PROG。如有必要,可通过对特殊功能寄存器(SFR区中的8EH单元D(位置位,可禁止ALE操作。该位置,只有一条MOVXMOVC 指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应 设置ALE无效。PSEN程序存储允许输出是外部程序存储器的读选通型号,当89C51由外部存储器取指令(或数据)时,每个机器周期两次PSEI有效,即输出两个脉冲。在此期间
18、,当访问外部数据存储器,这两次有效的 PSE信号不出现。EA/VPP外部访问允许。欲使CP仅访问外部程序存储器(地址为 0000H-FFFFH,EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VC(端),CPU则执行内部程序 存储器中的指令。Flash存储器编程时,该引脚加上+12v的编程允许电源VPP当 然这必须是该器件使用12v编程电压VPRXTAL1振荡器反相放大器及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。89C51中有一个用于构成内部振荡器 的高增益反相放大器,引脚 XTAL1和 XTAL2分别是该放
19、大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器, 外接石英晶体或陶瓷谐振器及电容 C1、C2接在放大器的反馈回路中构成并联振荡 电路。对电容C1、C2虽没有十分严格的要求,但电容容量的大小会轻微影响振荡 频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石 英晶体,我们推荐电容使用 30Pf 10Pf,而如使用陶瓷谐振器建议选择 40Pf 10Pf。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到 XTAL端,即内部时钟发生器的输入端XTAL则悬空2.3时钟电路设计单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下
20、才能 有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通 常有两种产生方式:内部时钟方式和外部时钟方式。本课题采用内部时钟方式。在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单 片机片内的电路构成一个稳定的自激振荡器。晶振频率取12 MHz外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频 率的作用,本课题选用33pF的电容。易知:本单片机最小系统的振荡周期 =1心2MHz)=1/12us,时钟周期=1/6us, 机器周期=1us。图2-3时钟电路原理图2.4复位电路设计无论是在单片机刚开始接上电源时,还是运行过程中
21、发生故障都需要复位。 复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状 态开始工作。单片机的复位条件:必须使其 RST引脚上持续出现两个(或以上)机器周期的 高电平。单片机的复位形式:上电复位、按键复位。本课题采用按键复位。在单片机启动后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于OV, RST处于低电平所以系统正常工作。当按键按下的时候,开关 导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个 过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在内,从5V释放到变为了,甚至更小。根据串联电路电压为各处之和,这个时候1
22、0K电阻两端的电压为,甚至更大,所以 RST引脚又接收到高电平。单片机系统自动复位。图2-4复位电路原理图2.5单片机最小系统设计单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机 之外,还需要包括电源供电电路、时钟电路、复位电路。图2-5单片机最小系统原理图第3章CO浓度监测仪输入输出电路设计3.1 CO传感器的选择选择一氧化碳传感器主要考虑以下的性能指标:(1)输入和输出之间成比例,直线性好、灵敏度高、分辨力强、测量范围宽。(2)滞后、漂移误差小(3)动态特性好功耗小(5)时间老化特性优良(6)与被测体匹配良好,既不因接入传感器而使得被测对象受到影响,受被测量之外的影响小。
23、(7)体积小、重量轻、价格低廉。(8)故障率低,易于校准和维护。(9)由于传感元件的输出信号一边比较小, 为了便于能够驱动控制电路,在传 感器电路中还应该包括放大器。鉴于以上选择要点,本文中用到的传感器必须具备良好的测量效果、功耗小、动态特性良好和体积小、重量轻、价格低廉等几个主要特性。为此我们选择了 MQ-7 系列传感器。半导体一氧化碳传感器 MQ-7所使用的气敏材料是在清洁空气中电导率较低 的二氧化锡(SnO2)。采用高低温循环检测方式低温加热)检测一氧化碳,传感器的 电导率随空气中一氧化碳气体浓度增加而增大,高温加热)清洗低温时吸附的杂散气体。使用简单的电路即可将电导率的变化,转换为与该
24、气体浓度相对应的输出 信号。MQ-7气体传感器对一氧化碳的灵敏度高,这种传感器可检测多种含一氧化 碳的气体,是一款适合多种应用的低成本传感器。主要特点及应用:对一氧化碳的高灵敏度 长寿命,低成本。简单的驱动电路即可家用气体泄漏报警器工业用一氧化碳报警器便携式气体检测器MQ-7气敏元件的结构和外形如图3-1所示,由微型AI2O3陶瓷管、SnO2敏感层, 测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,为了改善 传感器的选择性,传感器气室用活性炭过滤层与外界隔开。加热器为气敏元件提 供了必要的工作条件。封装好的气敏元件有 6只针状管脚,其中4个用于信号取 出,2个用于提供加热电流。图
25、3-1 MQ-7实物图3.2运算放大器选择由于气体传感器输出的电压值过低,无法直接使用A/D读取,必须要加入放大电路,对电压放大然后再经过 A/D读取。在此,选择LM358作为运算放大器。 LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于 电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件 下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和 其他所有可用单电源供电的使用运算放大器的场合。LM358具备以下特性:内部频率补偿;直流电压增益高 (约100dB);单位增益 频带宽(约1MHz;电源电压范围宽:单电源(3-30V)、双电
26、源( 15V);低功耗 电流,适合于电池供电;低输入偏流,低输入失调电压和失调电流;共模输入电 压范围宽,包括接地;差模输入电压范围宽,等于电源电压范围;输出电压摆幅 大(0至)。图3-2运算放大器电路原理图3.3 A/D转换电路为了方便与AT89C5单片机的链接,本系统采用AD0809模数转换芯片对采集 到的气体信息进行数模转换。其分辨率为8位,不必进行零点和满度调整,且具有高阻抗斩波稳定比较器,8个通道的多路开关可直接存取 8个单端模拟信号中 的一个。利用单片机启动 AD0809转换器,转换结束后再由 AD0809向AT89C51发 出中断请求信号,CPU响应中断请求。通过对译码器的读操作
27、,读取转换结果并 送到被测量的响应存储区。再重新选择被测量,并再次启动AD0809转换器转换后 中断返回。AD0809与单片机AT89C51连线线路如图3-3所示。图3-3 AD0809与单片机AT89C51连线线路3.4声光报警电路系统的声,光报警电路由发光二极管和低电压蜂鸣器构成,分别由PIC单片机的2个端口控制。发光二极管LED具有体积小,抗冲击和抗震性能好,可靠性 高,寿命长,工作电压低,功耗小,响应速度快等优点,常用于显示系统的工作 状态,有益于控制系统的设计和维护。当该部分工作时,整机的工作电流将增加 为未报警状态时的电流的数倍,消耗的功率会比较大,因此采用了分时供电的方 法,通过
28、单片机控制该部分电源的通断,即质量浓度达到报警时才给其供电;另 外,用单片机输出的周期脉冲报警信号控制振荡器的启停,用振荡器输出信号控 制蜂鸣器和发光二极管,振荡器可以用TTL门电路构成的多谐振荡器。采用这 2种方法可降低该部分的电路的功耗。设计中,LED发光二极管的工作电流为5-20mA最大不超过50mA否则会烧坏器件。为了获得良好的发光效果,LED工作电流控制在10-15mA较为合理。在图3-4中所示电路中,D口得RD4,RD5 RD6 RD7接声,光报警电路,其中D 口的RD5-RD7分别接质量浓度过高,相等,过低 的LED当气体检测仪检测质量浓度低于设定值时,绿灯亮;当气体质量浓度达
29、到某一定值时,黄灯亮;当高于设定值时,红灯亮并发出警报信号。图3-4声光报警电路原理图3.5显示电路在该设计中,LED显示器的显示方法采用动态显示。LED动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相应的LED后,即在显示字段上得到显示字形码。这种方式不但能提高数码 管的发光效率,并且由于各个数码管的字段线是并联使用的,从而大大简化 了硬件线路。本设计中处理结果采用4位LED显示,首次显示气体类别,后3位显示气体浓度。逐位轮流点亮各个LED,每一位保持1ms,在10-20ms之内再一次点亮,重复不止。这样利用人的视觉停留,好像4位LED同时点亮一样。图3-5显
30、示电路原理图4.1流程图设计JMP ITOP定时器0中断入口START: MOV IE,#B;INT0中断使能MOV IP,#00000001B;INT0MOV TCON,#00000000B中断优先设置INT0为电平触发MOV SCON,#00000000B串行口发送,接收标志位请0MOV SP,#60HMOV TMOD,#01H设堆栈指针设置T0为方式1第4章软件设计图4-1软件流程图4.2程序编写4.2.1主程序整个程序一共使用了两个中断,一个外部中断即INTO中断,一个定时/计数器 中断即IT0中断.这两个中断各有其作用,INTO中断是用来判断A/D转换器 ADC0809寸模拟信号的转
31、换是否完成,当A/D转换结束后,ADC0809发出结束 EOC高电平)信号,该信号可供单片机查询,也可反相后作为向单片机发出中断信 号,而本设计正是用的这个方法,使得程序进入中断取值程序而程序中所用到的 IT0中断,是为产生一个周期为2S的方波而设计的,其作用是为看门狗产生喂狗子 信号.具体程序如下:ORG 00HJMP START ;主程序入口地址ORG 03HJMP INTO ;外中断 INTO入口ORG 0BHORG 0100H:自身跳转;T0中断服务程序,TO重新置初值启动TO允许TO中断开中断;T0中断服务程序,TO置初值状态取反调用LED自检子程序设置中断完成标志为0;ADC080
32、9的端口地址;使BUS为高阻抗,令ADC0809ff等待A/D转换完成信号未完成则跳回等待;将最新的浓度值存入累加器将新浓度载入累加器 调用BCD码调整程序 显示当前浓度 调用零点调整子程序 调用判断报警程序调用显示子程序 清除累加器值返回CALL PTOMOHERE: AJMP HEREPTOMO: MOV TLO,#OCHMOV THO,#OFEHSETB TRO;SETB ETO;SETB EA;CPURETITOP: MOV TLO,#OCHMOV THO,OFEHCPL;RETIACALL LED;MOV 33H,#OOHMOV DPTR,#OFEFFHMOVX DPTR,A 始转换
33、WAIT:MOV A,33H;JNZ INTOKJMP WAIT;INTOK: MOV A,32H中,(若A/D未工作,则A=0)JNZ L1MOV A,30HJMP L2L1:MOV 30H,31HMOV A,31H;L2:CALL BCD;CALL DISP;CALLADZEROCALL ALARMCALL BCDCALL DISP;CLR A;JMP START;程序如下:LOOP1CALL DELAYJNB ,$MOV A,40HCLR CSUBB A,#01HJNC LOOP2MOV A,#05HLOOP2MOV 40H,AMOV A,R3JZ XENDDEC A ;XEND1 :M
34、OV 30H,AMOV 31H,ACALL BCDCALL DISPJMP LOOPXEND: MOV A,#63H在主程序通过对33H中数值的判断断定A/D是否转换完成,当33H中为1时, 转换完成,程序调用调零、报警、显示模块对输入数据进行处理。422调零子程序由于未知问题,可能造成送入单片机中显示的模拟电压量与真实电压存在区 别,这种误差可以通过在中断处理中对 A/D转换的数值加上一个调整值来解决。 这样,我们就能根据实际情况来对报警器输出的数值进行控制,使其记数更加精 确,使用更方便。我们可以利用对端口的电平高低来判断是否需要进行调零处理,故可将按键开关接于端口 若开关按下,则说明有调
35、零需要,于是进入调零处理程 序;若开关没有按下,则说明没有调零需要,系统进入下一步通过设置一个按键, 既可保证程序顺利进行,又方便用户使用.具体程序如下:ADZERO: CALL DELAYJB ,JMP1 ;判断调零按钮是否按下,没按则跳 JMP1JMP1: RET通过对位的判断来分辨是否有调零请求,若有则跳入调零模式,调零模式中消除抖动延时;将调零预设值40H送入;清除进位标志;调零值减1;未借位则跳LOOP2有借位则重设调零值为5将调零值送回40H保存将当前浓度值送入A当前浓度值减1 (响应调整变化) 送回30H保存送回31H保存调用BCD码调整调用显示子程序MOV R2,#00HCHA
36、N: SUBB A,#64HJC CHAN1INC R1JMP CHANCHAN1: ADD A,#64H清除R2减100不能减,转百位值循环判断百位还原百位数CHAN2: SUBB A,#0AHJC CHAN3INC R2JMP CHAN2CHAN3: ADD A,#0AHMOV 60H,R2MOV 61H,A减10不够减,跳够减十位加1重复减10;还原十位数把十位数放60H中把个位数放61H中JMP XEND1进入调零模式后,若有按键则,LED数码管示数响应按键变化。若 3秒无任 何按键,则退出调零模式返回主程序。423显示子程序因为通过A/D转换进入单片机8051的浓度值以十六进制存在,
37、为了让 LED 显示需要转换为BCD码,其BCD码转换程序如下:BCD: MOV 55H,#00H;存放BCD转换中的百位数MOV 56H,#00H; 存放BCD转换中的十位数CLR C ; 清除进位标志为下面的SUBB准备CLR C ;清除进位标志为下面的SUBBt备RET这样把转换成的BCD码,个位存于61H中,十位存入60H中,再编写显示模 块如下:DISP: MOV R7,#03HMOV R0,#60HLED1: MOV A,R0MOV DPTR,#TABLELED2: MOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TIINC RODJNZ R7,LED1RET
38、将数值送入到LED显示74LS164驱动数码管的过程:在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。 所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用 管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片 机中CPU勺开销小。可以提供单独锁存的I/O接口电路很多,这里以常用的串并 转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一 定的了解。MCS-51单片机串行口方式0为移位寄存器方式,外接3片74LS164作 为3位LED显示器的静
39、态显示接口,把8031的RXD乍为数据输出线,TXD作为移 位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。 其中A、B (第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号, 共一个输入信号时可并接。T (第8脚)为时钟输入端,可连接到串行口的 TXD 端。每一个时钟信号的上升沿加到 T端时,移位寄存器移一位,8个时钟脉冲过 后,8位二进制数全部移入74LS164中。R (第9脚)为复位端,当R=0时,移位 寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1Q8(第3-6和10-13 引脚)并行输出端分别接LED显示器的hg a各段对应的引脚上
40、。在给出了 8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲 会有什么发生呢再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点, 下面让我们来看电路,3片7LS164首尾相串,而时钟端则接在一起,这样,当输 入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片 74LS164中了,而 当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的数据被送到 了最左面的164中,其他数据依次出现在第一、二、三片 74LS164中。由于本设计采用的是机械按键,与地线想连,按键按下,输
41、入为低电平,释 放按键则输入为高电平。实际上,机械式按键的落片存在着轻微的弹跳现象其时 间由操作员按键的动作所确定,为了确保 CPU寸按键的一次闭合仅做一次处理, 必须去除抖动,一般通过调用子程序延时来解决,在键的稳定闭合或释放时才读 出键的状态,具体程序如下:DELAY: MOVR 5,#60设定 30 毫秒D1:MOV R6,#248;设定毫秒DJNZ R6,$DJNZ R5,D1RET因为石英晶体为12MHZ 个机器周期为1微秒,这样如上程序可达到延时 30毫秒的目的。424报警子程序本设计采用了声光报警,当探测器探测的浓度超过报警设定值时就会同时产 生音乐报警和灯光报警,此时红灯亮启,
42、喇叭发出音乐,而正常时,喇叭关闭,红灯 关闭,而显示正常的绿色LED亮启,本设计为了安全起见,还设置了事故处理装置, 即出现危险使,探测器除了报警外,还会使排气扇的阀门打开,对室内进行排气,以 免产生气体爆炸或是中毒具体程序如下ALARM: MOV A,30H;将当前浓度值送如累加器CLR C;清除进位标志SUBB A,50H;与预警值进行判断JNC GOOD1;若无借位,则当前浓度值咼于或者等于预警值,跳GOOD报警SETB;关闭声光报警SETBCLR;关闭排气阀门SETB;关闭黄色LEDCLR;打开绿色LED (显示正常)RETGOOD1: CLR;打开声光报警(危险报警)CLRCLR;打
43、开排气阀门SETB;关闭黄色LEDSETB;关闭绿色LED(显示不正常RET4.2.5中断取值子程序从硬件电路图可以看出,A/D0809的INTR端通过反相器与单片机的外部中断INT0相连,由A/D0809的管脚功能可知,当A/D开始转换送入的模拟电压时,INTR端为低电平,转换完成后,INTR端变成高电平,通过反相器变成低电平使单片机89C51产生外部中断,进入中断处理程序:将累加器值压入堆栈保存将PSW6压入堆栈保存将A/D转换好的值送入累加器将A/D读得的值存入32H保存判断获得的电压是否小于1V(50)当前A/D转换的电压小于1V,则调用ADJUS将其调整为浓度对应调用ADD将其与调零
44、预设值相加将调整后的值送入31H保存INT0中断使能,关闭中断至堆栈取回PSW当至堆栈取回ACCfi中断完成,设置完成标记33H为1INTO: PUSH ACCPUSH PSWMOVX A,DPTRMOV 32H,ACLR CSUBB A,51HJNC OKIMOV 32H,#00HA/D转换得的示数为00JMP EMP1OK1: MOV A,32HCALL ADJUST的16进制CALL ADDD得到调整后的16进制MOV 31H,AEMP1: MOV IE,#BPOP PSWPOP ACCMOV 33H,#01HRETI;调整相加子程序 *JADJUST: CLR CSUBB A,#32H
45、;将A/D转换的值减50再除10乘5可得当前浓度的16进制值MOV B,#0AHDIV ABMOV B,#05HMUL ABRETADDD: ADD A,40HTABLE:DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H, 82H, 0F8H,80H, 90HEND在中断处理过程中,因为A/D0809在模拟电压为15V时送入单片机的数值为 50250,为了使示数在099间变化,编写数值转换程序如下:ADJUST: CLR CSUBB A,#32H;将A/D转换的值减50再除10乘5可得当前浓度的16进制值MOV B,#0AHDIV ABMOV B,#05HMUL ABRET第5章软件仿真硬件原理图见附录。为了检测电路设计和软件设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年口腔医学临床技能考核试卷答案及解析
- 施工企业信息化ERP系统推广方案
- 2025年学历类自考专业(护理)内科护理学(二)-护理学导论参考题库含答案解析(5套)
- 光子嫩肤术护理
- 2025年城市河道整治项目社会稳定风险评估与风险评估技术应用前景与挑战报告
- 互联网+教育平台建设2025年资金申请项目预算编制报告
- 网咖消防知识培训课件记录
- 2025年学历类自考专业(建筑工程)流体力学-结构力学(二)参考题库含答案解析(5套)
- 2025年学历类自考专业(建筑工程)建筑经济与企业管理-结构力学(二)参考题库含答案解析(5套)
- 月嫂礼仪知识培训方案课件
- 高中英语必背3500单词表完整版
- 腹部损伤(外科)
- 工程进度计划横道图
- 医药代表销售技巧培训
- GB/T 6913-2023锅炉用水和冷却水分析方法磷酸盐的测定
- 牛的品种及生物学特性
- 阿特拉斯变频无油螺杆空压机说明书
- 口腔解剖生理学颞下颌关节精选课件
- 物料断点管理办法新旧状态零部件切换的交替点管理程序
- 项目经理带班检查记录表(每周一次)
- 人卫九诊断学发热
评论
0/150
提交评论