




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及接口技术单片机原理及接口技术 课程设计课程设计 题目:题目: COCO气体浓度监测仪设计气体浓度监测仪设计 院(系):院(系): 电气工程学院电气工程学院 专业班级:专业班级: 学学 号:号: 学生姓名:学生姓名: 指导教师:指导教师: (签字) 起止时间:起止时间: 课程设计(论文)任务及评语课程设计(论文)任务及评语 院(系):电气工程学院 教研室: 摘 要 本系统利用 51 单片机做核心控制模块,利用 MQ-7 一氧化碳传感器探测一 氧化碳。实时监控多处一氧化碳浓度变化,如果某处一氧化碳浓度过高,系统将 发出声音报警,并显示报警传感器号码,提醒人们及时抢险。本系统可用于家庭
2、环境,也适用于工业环境。由于单片机成本低廉,自动控制功能比较强大,运行 学 号学生姓名专业班级 课程设计 (论文) 题目 CO气体浓度监测仪设计 课程设计(论文)任务 该监测仪主要用于公共场所及某些车间空气中 CO 浓度的监测,检测标准是:CO 浓度小时均值应低于 3mg/m3,日均值应低于 4mg/m3。. 设计任务:设计任务: 1. CPU 最小系统设计(包括 CPU 选择,晶振电路,复位电路) 2. 传感器选择以及模拟量检测电路设计 3. 人机对话接口电路设计(要求强弱电隔离) 4. .程序流程图设计机程序清单编写 技术参数:技术参数: 1CO 浓度小时均值应低于 3mg/m3,日均值应
3、低于 4mg/m3。 2工作电源 220V 设计要求设计要求: 1、分析系统功能,选择合适的单片机及传感器,模拟量输入电路设计等; 2、应用专业绘图软件绘制硬件电路图和软件流程图; 3、按规定格式,撰写、打印设计说明书一份,其中程序开发要有详细的软件设计 说明,详细阐述系统的工作过程,字数应在 4000 字以上。 进度计划 第 1 天 查阅收集资料 第 2 天 总体设计方案的确定 第 3-4 天 CPU 最小系统设计 第 5 天 传感器选择以及模拟量检测电路设计 第 6 天人机对话接口电路设计 第 7 天 程序流程图设计 第 8 天 软件编写与调试 第 9 天 设计说明书完成 第 10 天 答
4、辩 指导教师评语 及成绩 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日 稳定,环境适应性好,所以本系统采用单片机做控制的核心元件。 MQ-7 一氧化碳传感器对一氧化碳的灵敏度高;长寿命,低成本;简单的驱 动电路即可。因此,很适用于家庭的一氧化碳检测。 数码管能清晰的显示报警的房间号码,即使在光线较暗时,所以选用数码管 做显示模块。 关键词:一氧化碳;单片机;检测;报警 目 录 目 录 .IV 第 1 章 绪论 .1 1.1 CO 浓度监测仪研究概况 .1 1.2 本文研究内容 .1 第 2 章 CPU 最小系统设计.2 2.1 CO 气体浓度监测仪总体设计方案 .2 2.2
5、 CPU 的选择 .3 2.3 时钟电路设计 .6 2.4 复位电路设计 .7 2.5 单片机最小系统设计 .7 第 3 章 CO 浓度监测仪输入输出电路设计.8 3.1 CO 传感器的选择 .8 3.2 运算放大器选择 .10 3.3 A/D 转换电路 .10 3.4 声光报警电路 .11 3.5 显示电路 .12 第 4 章 软件设计 .13 4.1 流程图设计 .13 4.2 程序编写 .14 4.2.1 主程序.14 4.2.2 调零子程序.15 4.2.3 显示子程序.16 4.2.4 报警子程序.19 4.2.5 中断取值子程序.19 第 5 章 软件仿真 .22 第 6 章 课程
6、设计总结 .24 参考文献 .25 附录 硬件原理图 .26 绪论 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 最小系统设计 CO 气体浓度监测仪总体设计方案 单片机应用系统的结构分三个层次:
10、(1)单片机:通常指应用系统主处理机,即所选择的单片机器件。 (2)单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基 本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。 (3)单片机应用系统:能满足嵌入对象要求的全部电路系统。在单片机系统的基 础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显 示器、打印机等)和串行通行口(RS232)以及应用程序等。 以此理解,一氧化碳报警器同样具有单片机应用系统的三个层次。其中以 AT89C51 单片机为核心构成单片机系统。在此系统中,检测信号进入单片机进行 运算处理。为了更好的理清设计思路,将整个系
11、统细分为三部分加以设计说明。 整个报警器由三个部分组成,分为三大模块:浓度检测模块、主控模块和报警模 块。在本次设计中,使用的核心器件是单片机和一氧化碳传感器。为了保重整个 系统可靠的运行,设计中必须明确三大部分的实际联系:以单片机为中心,其他 各大模块一一展开。其中,浓度检测及显示模块所实现的功能是将房间中的一氧 化碳浓度值转换成为单片机能够处理的数字信号,并且浓度值显示出来:主控模 块以单片机为主,对其他模块的运行进行控制;报警模块是此系统的外部电路, 它的功能是实现报警。系统框图如图 2-1 所示。 2.1 CPU 的选择 数据处理过程是主要由 AT89C51 单片机等芯片完成的。AT8
12、9C51 是一种带 4K 字 节的闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器,俗称单 片机。其中包括 128 字节内部 RAM,32 个 I/O 口线,2 个 16 位定时/计数器,一 个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时, AT89C51 降至 0Hz 的静态逻辑操作,并支持两种可选的节电工作模式26。空闲 方式体制 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续 工作。掉电方式保存 RAM 中的内容,但振荡器体制工作并禁止其他所有不见工作 直到下一个硬件复位。/单片机的可擦除只读存储器可以反复擦除 100
13、 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯 片中,ATMEL 的 AT89C51 是一种高效微控制器。AT89C51 单片机为很多嵌入 式控制系统提供了一种灵活性高且廉价的方案。AT89C51 单片机管脚图如图 2-2 所示 图 2-2 AT89C51 单片机管脚图 AD单片机转换 显示报警 声音报警 传感器 E A /V P 31 X 1 19 X 2 18 R E SE T 9 R D 17 W R 16 IN T 0 12 IN T 1 13 T 0 14 T
14、1 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P0 0 39 P0 1 38 P0 2 37 P0 3 36 P0 4 35 P0 5 34 P0 6 33 P0 7 32 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PS E N 29 A L E /P 30 T X D 11 R X D 10 U 1 89 C5 1 引脚功能说明如下: VCC:电源电压 GND:地 P0口:P0口是一组8 位漏极开路型双向I/O口,也即地址/数据总线
15、复用。 作为输出口用时,每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口写 “1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口 线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时, 要求外接上拉电阻。 P1口:P1是一个带内部上拉电阻的8 位双向I/O口,P1的输出缓冲级可驱动 (吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻 把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电 阻,某个引脚被外部信号拉低时会输出一个电流(I
16、IL)。Flash 编程和程序校 验期间,P1接受低8 位地址。 P2口:P2是一个带有内部上拉电阻的8 位双向I/O 口,P2的输出缓冲级可 驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉 电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上 拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序 存储器或16位四肢的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出 高8 位地址数据,在访问8 位地址的外部数据存储器(例如执行MOVX RI 指令) 时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2 寄存器
17、的内容),在 整个访问期间不改变。Flash编程和程序校验时,P2也接收高位地址和其他控制 信号。 P3口:P3是一个带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱 动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电 阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉 电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P3 口还接收一些用 于Flash闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平 将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,AL
18、E(地址锁存允许) 输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡 频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要 注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程 期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存 器(SFR)区中的8EH单元D0位置位,可禁止ALE操作。该位置,只有一条MOVX和 MOVC指令ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时, 应设置ALE无效。 PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51由外 部存储器取指
19、令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。 EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程, 复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序 存储器中的指令。Flash存储器编程时,该引脚加上+12v的编程允许电源VPP,当 然这必须是该器件使用12v编程电压VPP。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。89C
20、51 中有一个用于构成内部振荡器 的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器, 外接石英晶体或陶瓷谐振器及电容 C1、C2 接在放大器的反馈回路中构成并联振 荡电路。对电容 C1、C2 虽没有十分严格的要求,但电容容量的大小会轻微影响 振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使 用石英晶体,我们推荐电容使用 30Pf10Pf,而如使用陶瓷谐振器建议选择 40Pf10Pf。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到 XTAL 端, 即内部时钟发生
21、器的输入端 XTAL 则悬空。 2.2 时钟电路设计 单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能 有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通 常有两种产生方式:内部时钟方式和外部时钟方式。本课题采用内部时钟方式。 在单片机 XTAL1 和 XTAL2 引脚上跨接上一个晶振和两个稳频电容,可以与 单片机片内的电路构成一个稳定的自激振荡器。晶振频率取 12 MHz。外接电容 的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳 定频率的作用,本课题选用 33pF 的电容。 易知:本单片机最小系统的振荡周期=1/(12MHz)=1
22、/12us,时钟周期=1/6us, 机器周期=1us。 C 1 33p C 2 33p X 1 C RY ST A L 图 2-3 时钟电路原理图 2.3 复位电路设计 无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。 复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状 态开始工作。 单片机的复位条件:必须使其 RST 引脚上持续出现两个(或以上)机器周期的 高电平。 单片机的复位形式:上电复位、按键复位。本课题采用按键复位。 在单片机启动 0.1S 后,电容 C 两端的电压持续充电为 5V,这是时候 10K 电 阻两端的电压接近于 0V,RST 处于低电
23、平所以系统正常工作。当按键按下的时 候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按 下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在 0.1S 内,从 5V 释放到变为了 1.5V,甚至更小。根据串联电路电压为各处之和, 这个时候 10K 电阻两端的电压为 3.5V,甚至更大,所以 RST 引脚又接收到高电 平。单片机系统自动复位。 图 2-4 复位电路原理图 2.4 单片机最小系统设计 单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机 R 2 10 0 +5 V C 2 1u f B R 1 1k 之外,还需要包括电源供电电路、
24、时钟电路、复位电路。 图 2-5 单片机最小系统原理图 第 3 章 CO 浓度监测仪输入输出电路设计 3.1 CO 传感器的选择 选择一氧化碳传感器主要考虑以下的性能指标: (1)输入和输出之间成比例,直线性好、灵敏度高、分辨力强、测量范围宽。 (2)滞后、漂移误差小 (3)动态特性好 (4)功耗小 (5)时间老化特性优良 (6)与被测体匹配良好,既不因接入传感器而使得被测对象受到影响,受被测 量之外的影响小。 (7)体积小、重量轻、价格低廉。 (8)故障率低,易于校准和维护。 (9)由于传感元件的输出信号一边比较小,为了便于能够驱动控制电路,在传 感器电路中还应该包括放大器。 E A /V
25、P 31 X 1 19 X 2 18 R E SE T 9 R D 17 W R 16 IN T 0 12 IN T 1 13 T 0 14 T 1 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P0 0 39 P0 1 38 P0 2 37 P0 3 36 P0 4 35 P0 5 34 P0 6 33 P0 7 32 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PS E N 29 A L E /P 30 T X D 11 R X D 1
26、0 U 1 89 C5 1 C 1 33 p C 2 33 p X 1 C RY ST A L R 2 10 0 +5 V C 2 1u f B R 1 1k +5 V 鉴于以上选择要点,本文中用到的传感器必须具备良好的测量效果、功耗小、 动态特性良好和体积小、重量轻、价格低廉等几个主要特性。为此我们选择了 MQ-7 系列传感器。 半导体一氧化碳传感器 MQ-7 所使用的气敏材料是在清洁空气中电导率较低 的二氧化锡(SnO2)。采用高低温循环检测方式低温(1.5V 加热)检测一氧化碳,传 感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V 加热)清洗低温 时吸附的杂散气体。使用简单
27、的电路即可将电导率的变化,转换为与该气体浓度 相对应的输出信号。MQ-7 气体传感器对一氧化碳的灵敏度高,这种传感器可检 测多种含一氧化碳的气体,是一款适合多种应用的低成本传感器。 主要特点及应用: 对一氧化碳的高灵敏度。 长寿命,低成本。 简单的驱动电路即可 家用气体泄漏报警器 工业用一氧化碳报警器 便携式气体检测器 MQ-7 气敏元件的结构和外形如图 3-1 所示,由微型 Al2O3 陶瓷管、SnO2 敏感层, 测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,为了改善 传感器的选择性,传感器气室用活性炭过滤层与外界隔开。加热器为气敏元件提 供了必要的工作条件。封装好的气敏元件
28、有 6 只针状管脚,其中 4 个用于信号取 出,2 个用于提供加热电流。 图 3-1 MQ-7 实物图 3.2 运算放大器选择 由于气体传感器输出的电压值过低,无法直接使用 A/D 读取,必须要加入放 大电路,对电压放大然后再经过 A/D 读取。在此,选择 LM358 作为运算放大器。 LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于 电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件 下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和 其他所有可用单电源供电的使用运算放大器的场合。 LM358具备以下特性:内部频率补偿;直流
29、电压增益高(约100dB);单位增益 频带宽(约1MHz);电源电压范围宽:单电源(3-30V)、双电源(1.5-15V) ;低功 耗电流,适合于电池供电;低输入偏流,低输入失调电压和失调电流;共模输入 电压范围宽,包括接地;差模输入电压范围宽,等于电源电压范围;输出电压摆 幅大(0 至 Vcc-1.5V) 。 图 3-2 运算放大器电路原理图 3.3 A/D 转换电路 为了方便与 AT89C5 单片机的链接,本系统采用 AD0809 模数转换芯片对采集 到的气体信息进行数模转换。其分辨率为 8 位,不必进行零点和满度调整,且具 有高阻抗斩波稳定比较器,8 个通道的多路开关可直接存取 8 个单
30、端模拟信号中 的一个。利用单片机启动 AD0809 转换器,转换结束后再由 AD0809 向 AT89C51 发 出中断请求信号, CPU 响应中断请求。通过对译码器的读操作,读取转换结果并 送到被测量的响应存储区。再重新选择被测量,并再次启动 AD0809 转换器转换 后中断返回。AD0809 与单片机 AT89C51 连线线路如图 3-3 所示。 图 3-3 AD0809 与单片机 AT89C51 连线线路 3.4 声光报警电路 系统的声,光报警电路由发光二极管和低电压蜂鸣器构成,分别由 PIC 单片 机的 2 个端口控制。发光二极管 LED 具有体积小,抗冲击和抗震性能好,可靠性 高,寿
31、命长,工作电压低,功耗小,响应速度快等优点,常用于显示系统的工作 状态,有益于控制系统的设计和维护。当该部分工作时,整机的工作电流将增加 为未报警状态时的电流的数倍,消耗的功率会比较大,因此采用了分时供电的方 法,通过单片机控制该部分电源的通断,即质量浓度达到报警时才给其供电;另 外,用单片机输出的周期脉冲报警信号控制振荡器的启停,用振荡器输出信号控 制蜂鸣器和发光二极管,振荡器可以用 TTL 门电路构成的多谐振荡器。采用这 2 种方法可降低该部分的电路的功耗。设计中,LED 发光二极管的工作电流为 5- 20mA,最大不超过 50mA,否则会烧坏器件。为了获得良好的发光效果,LED 工作 电
32、流控制在 10-15mA 较为合理。在图 3-4 中所示电路中,D 口得 RD4,RD5,RD6,RD7,接声,光报警电路,其中 D 口的 RD5-RD7 分别接质量浓度 过高,相等,过低的 LED。当气体检测仪检测质量浓度低于设定值时,绿灯亮; 当气体质量浓度达到某一定值时,黄灯亮;当高于设定值时,红灯亮并发出警报 信号。 图 3-4 声光报警电路原理图 3.5 显示电路 在该设计中, LED 显示器的显示方法采用动态显示。 LED 动态显示的基 本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相 应的 LED 后,即在显示字段上得到显示字形码。这种方式不但能提高数码管 的
33、发光效率,并且由于各个数码管的字段线是并联使用的,从而大大简化了硬 件线路。本设计中处理结果采用 4 位 LED 显示,首次显示气体类别,后 3 位显示气体浓度。逐位轮流点亮各个LED,每一位保持 1ms,在 10-20ms 之 内再一次点亮,重复不止。这样利用人的视觉停留,好像4 位 LED 同时点 亮一样。 图 3-5 显示电路原理图 第 4 章 软件设计 4.1 流程图设计 图4-1 软件流程图 4.2 程序编写 4.2.1 主程序 整个程序一共使用了两个中断,一个外部中断即 INT0 中断,一个定时/计数器 中断即 IT0 中断.这两个中断各有其作用,INT0 中断是用来判断 A/D
34、转换器 ADC0809 对模拟信号的转换是否完成,当 A/D 转换结束后,ADC0809 发出结束 EOC(高电平)信号,该信号可供单片机查询,也可反相后作为向单片机发出中断信号, 而本设计正是用的这个方法,使得程序进入中断取值程序.而程序中所用到的 IT0 中断,是为产生一个周期为 2S 的方波而设计的,其作用是为看门狗产生喂狗子信号. 具体程序如下: ORG 00H JMP START ;主程序入口地址 ORG 03H JMP INTO ;外中断 INTO 入口 ORG 0BH JMP ITOP ; 定时器 0 中断入口 ORG 0100H START: MOV IE,#B ;INT0 中
35、断使能 MOV IP,#B ;INT0 中断优先 MOV TCON,#B ;设置 INT0 为电平触发 MOV SCON,#B ;串行口发送,接收标志位请 0 MOV SP,#60H ;设堆栈指针 MOV TMOD,#01H ;设置 T0 为方式 1 CALL PT0M0 HERE: AJMP HERE ;自身跳转 PT0M0: MOV TL0,#0CH ;T0 中断服务程序,T0 重新置初值 MOV TH0,#0FEH SETB TR0 ;启动 T0 SETB ET0 ;允许 T0 中断 SETB EA ;CPU 开中断 RET ITOP: MOV TL0,#0CH ;T0 中断服务程序,T
36、0 置初值 MOV TH0,0FEH CPL P1.0 ;P1.0 状态取反 RETI ACALL LED ;调用 LED 自检子程序 MOV 33H,#00H ;设置中断完成标志为 0 MOV DPTR,#0FEFFH ;ADC0809 的端口地址 MOVX DPTR,A ;使 BUS 为高阻抗,令 ADC0809 开始转换 WAIT:MOV A,33H ;等待 A/D 转换完成信号 JNZ INTOK JMP WAIT ;未完成则跳回等待 INTOK: MOV A,32H ;将最新的浓度值存入累加器中, (若 A/D 未工作,则 A=0) JNZ L1 MOV A,30H JMP L2 L
37、1: MOV 30H,31H MOV A,31H ;将新浓度载入累加器 L2: CALL BCD ;调用 BCD 码调整程序 CALL DISP ;显示当前浓度 CALL ADZERO ;调用零点调整子程序 CALL ALARM ;调用判断报警程序 CALL BCD CALL DISP ;调用显示子程序 CLR A ;清除累加器值 JMP START ;返回 在主程序通过对 33H 中数值的判断断定 A/D 是否转换完成,当 33H 中为 1 时,转换完成,程序调用调零、报警、显示模块对输入数据进行处理。 4.2.2 调零子程序 由于未知问题,可能造成送入单片机中显示的模拟电压量与真实电压存在
38、区 别,这种误差可以通过在中断处理中对 A/D 转换的数值加上一个调整值来解决。 这样,我们就能根据实际情况来对报警器输出的数值进行控制,使其记数更加精 确,使用更方便。我们可以利用对端口的电平高低来判断是否需要进行调零处理, 故可将按键开关接于端口 P2.2.若开关按下,则说明有调零需要,于是进入调零处理 程序;若开关没有按下,则说明没有调零需要,系统进入下一步.通过设置一个按键,既 可保证程序顺利进行,又方便用户使用.具体程序如下: ADZERO: CALL DELAY JB P2.2,JMP1 ;判断调零按钮是否按下,没按则跳 JMP1 . JMP1: RET 通过对 P2.2 位的判断
39、来分辨是否有调零请求,若有则跳入调零模式,调零模 式中程序如下: LOOP1:CALL DELAY JNB P2.2,$ ;消除抖动延时 MOV A,40H ;将调零预设值 40H 送入 CLR C ;清除进位标志 SUBB A,#01H ;调零值减 1 JNC LOOP2 ;未借位则跳 LOOP2 MOV A,#05H ;有借位则重设调零值为 5 LOOP2:MOV 40H,A ;将调零值送回 40H 保存 MOV A,R3 ;将当前浓度值送入 A JZ XEND DEC A ;当前浓度值减 1(响应调整变化) XEND1 :MOV 30H,A ;送回 30H 保存 MOV 31H,A ;送
40、回 31H 保存 CALL BCD ;调用 BCD 码调整 CALL DISP ;调用显示子程序 JMP LOOP XEND: MOV A,#63H JMP XEND1 进入调零模式后,若有按键则,LED 数码管示数响应按键变化。若 3 秒无任 何按键,则退出调零模式返回主程序。 4.2.3 显示子程序 因为通过 A/D 转换进入单片机 8051 的浓度值以十六进制存在,为了让 LED 显示需要转换为 BCD 码,其 BCD 码转换程序如下: BCD:MOV 55H,#00H ;存放 BCD 转换中的百位数 MOV 56H,#00H ;存放 BCD 转换中的十位数 CLR C ;清除进位标志为
41、下面的 SUBB 准备 MOV R2,#00H ;清除 R2 CHAN:SUBB A,#64H ;减 100 JC CHAN1 ;不能减,转 INC R1 ;百位值 JMP CHAN ;循环判断百位 CHAN1: ADD A,#64H ;还原百位数 CLR C ;清除进位标志为下面的 SUBB 准备 CHAN2: SUBB A,#0AH ;减 10 JC CHAN3 ;不够减,跳 INC R2 ;够减十位加 1 JMP CHAN2 ;重复减 10 CHAN3: ADD A,#0AH ;还原十位数 MOV 60H,R2 ;把十位数放 60H 中 MOV 61H,A ;把个位数放 61H 中 RE
42、T 这样把转换成的 BCD 码,个位存于 61H 中,十位存入 60H 中,再编写显示 模块如下: DISP: MOV R7,#03H MOV R0,#60H LED1: MOV A,R0 MOV DPTR,#TABLE LED2: MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R7,LED1 RET 将数值送入到 LED 显示 74LS164 驱动数码管的过程: 在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。 所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的 I/O 接口用于 笔划段字形代码。这样单片
43、机只要把要显示的字形代码发送到接口电路,就不用 管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片 机中 CPU 的开销小。可以提供单独锁存的 I/O 接口电路很多,这里以常用的串并 转换电路 74LS164 为例,介绍一种常用静态显示电路,以使大家对静态显示有一 定的了解。 MCS-51 单片机串行口方式 0 为移位寄存器方式,外接 3 片 74LS164 作为 3 位 LED 显示器的静态显示接口,把 8031 的 RXD 作为数据输出线,TXD 作为移位 时钟脉冲。74LS164 为 TTL 单向 8 位移位寄存器,可实现串行输入,并行输出。 其中 A、B(第 1、2
44、 脚)为串行数据输入端,2 个引脚按逻辑与运算规律输入信 号,共一个输入信号时可并接。T(第 8 脚)为时钟输入端,可连接到串行口的 TXD 端。每一个时钟信号的上升沿加到 T 端时,移位寄存器移一位,8 个时钟脉 冲过后,8 位二进制数全部移入 74LS164 中。R(第 9 脚)为复位端,当 R=0 时, 移位寄存器各位复 0,只有当 R=1 时,时钟脉冲才起作用。Q1Q8(第 3-6 和 10-13 引脚)并行输出端分别接 LED 显示器的 hga 各段对应的引脚上。在给出 了 8 个脉冲后,最先进入 74LS164 的第一个数据到达了最高位,然后再来一个脉 冲会有什么发生呢?再来一个脉
45、冲,第一个脉冲就会从最高位移出,搞清了这一 点,下面让我们来看电路,3 片 7LS164 首尾相串,而时钟端则接在一起,这样, 当输入 8 个脉冲时,从单片机 RXD 端输出的数据就进入到了第一片 74LS164 中 了,而当第二个 8 个脉冲到来后,这个数据就进入了第二片 74LS164,而新的数 据则进入了第一片 74LS164,这样,当第六个 8 个脉冲完成后,首次送出的数据 被送到了最左面的 164 中,其他数据依次出现在第一、二、三片 74LS164 中。 由于本设计采用的是机械按键,与地线想连,按键按下,输入为低电平,释 放按键则输入为高电平。实际上,机械式按键的落片存在着轻微的弹
46、跳现象其时 间由操作员按键的动作所确定,为了确保 CPU 对按键的一次闭合仅做一次处理, 必须去除抖动,一般通过调用子程序延时来解决,在键的稳定闭合或释放时才读 出键的状态,具体程序如下: DELAY: MOVR 5,#60 设定 30 毫秒 D1: MOV R6,#248 ;设定 0.5 毫秒 DJNZ R6,$ DJNZ R5,D1 RET 因为石英晶体为 12MHZ,一个机器周期为 1 微秒,这样如上程序可达到延时 30 毫秒的目的。 4.2.4 报警子程序 本设计采用了声光报警,当探测器探测的浓度超过报警设定值时就会同时产生 音乐报警和灯光报警,此时红灯亮启,喇叭发出音乐,而正常时,喇
47、叭关闭,红灯关闭, 而显示正常的绿色 LED 亮启,本设计为了安全起见,还设置了事故处理装置,即出现 危险使,探测器除了报警外,还会使排气扇的阀门打开,对室内进行排气,以免产生气 体爆炸或是中毒.具体程序如下 ALARM: MOV A,30H ;将当前浓度值送如累加器 CLR C ;清除进位标志 SUBB A,50H ;与预警值进行判断 JNC GOOD1 ;若无借位,则当前浓度值高于或 者等于预警值,跳 GOOD1 报警 SETB P1.6 ;关闭声光报警 SETB P1.7 CLR P2.3 ;关闭排气阀门 SETB P1.5 ;关闭黄色 LED CLR P1.4 ;打开绿色 LED(显示
48、正常) RET GOOD1: CLR P1.6 ;打开声光报警(危险报警) CLR P1.7 CLR P2.3 ;打开排气阀门 SETB P1.5 ;关闭黄色 LED SETB P1.4 ;关闭绿色 LED(显示不正常? RET 4.2.5 中断取值子程序 从硬件电路图可以看出,A/D0809 的 INTR 端通过反相器与单片机的外部中 断 INT0 相连,由 A/D0809 的管脚功能可知,当 A/D 开始转换送入的模拟电压时, INTR 端为低电平,转换完成后,INTR 端变成高电平,通过反相器变成低电平使 单片机 89C51 产生外部中断,进入中断处理程序: ;* * * * * * *
49、 * * * * * * * * * * INTO: PUSH ACC ;将累加器值压入堆栈保存 PUSH PSW ;将 PSW 值压入堆栈保存 MOVX A,DPTR ;将 A/D 转换好的值送入累 加器 MOV 32H,A ;将 A/D 读得的值存入 32H 保存 CLR C SUBB A,51H ;判断获得的电压是否小于 1V(50) JNC OK1 MOV 32H,#00H ;当前 A/D 转换的电压小于 1V, 则 A/D 转换得的示数为 00 JMP EMP1 OK1: MOV A,32H CALL ADJUST ;调用 ADJUST 将其调整为浓度 对应的 16 进制 CALL
50、ADDD ;调用 ADDD 将其与调零预设值 相加,得到调整后的 16 进制 MOV 31H,A ;将调整后的值送入 31H 保存 EMP1: MOV IE,#B ;关闭 INT0 中断使能,关闭中断 POP PSW ;至堆栈取回 PSW 值 POP ACC ;至堆栈取回 ACC 值 MOV 33H,#01H ;中断完成,设置完成标记 33H 为 1 RETI ;* * * * * * * * * * * * * * * * * ; 调整相加子程序 ;* * * * * * * * * * * * * * * * * ADJUST: CLR C SUBB A,#32H ;将 A/D 转换的值减 50 再除 10 乘 5 可得当前浓度的 16 进制值 MOV B,#0AH DIV AB MOV B,#05H MUL AB RET ADDD: ADD A,40H TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H, 82H, 0F8H,80H, 90H END 在中断处理过程中,因为 A/D0809 在模拟电压为 15V 时送入单片机的数值 为 50250,为了使示数在 099 间变化,编写数值转换程序如下: ADJUST: CLR C SUBB A,#32H ;将 A/D 转换的值减 50 再除 10 乘 5 可得当前浓度 的 16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农副产品购销示范合同
- 签订的门面租赁合同条款解析
- 建筑项目施工合同管理人员聘用合同
- 炒股合作经典合同案例
- 车辆采购合同细则
- 国际物流服务合同专业版详解
- 农村土地流转授权合同书
- 城市房屋拆迁补偿安置标准合同样本
- 钢材买卖合同(示范文本GF-0155)
- 委托代理合同(普通1)
- 骶髂关节损伤郭倩课件
- 内科学疾病概要-支气管扩张课件
- 2025陕西渭南光明电力集团限公司招聘39人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年南京旅游职业学院高职单招语文历年参考题库含答案解析
- 《电商直播》 课件 项目一 走入电商直播
- 《中国宫腔镜诊断与手术临床实践指南(2023版)》解读课件
- 中药学电子版教材
- GB/T 9535-1998地面用晶体硅光伏组件设计鉴定和定型
- 复旦校内办事指南
- 建筑公司项目部绩效考核管理制度
- 中药知识文库:天麻形态学
评论
0/150
提交评论