基于单片机的沼气池温控系统研究毕业论文.doc_第1页
基于单片机的沼气池温控系统研究毕业论文.doc_第2页
基于单片机的沼气池温控系统研究毕业论文.doc_第3页
基于单片机的沼气池温控系统研究毕业论文.doc_第4页
基于单片机的沼气池温控系统研究毕业论文.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

目 录1 引言31.1 本课题的研究目的及意义31.2 本课题的国内外研究现状41.3 沼气发酵概述51.3.1 沼气发酵基本原理51.3.2 影响产气量的因素51.4 沼气发酵工艺的温度因素71.4.1 温度因素在沼气发酵过程中的影响71.4.2 沼气发酵的温控类型81.4.3 太阳能增温系统的沼气池内温度变化规律82 系统软件的实现102.1 proteus简介102.2 Proteus VSM仿真与分析112.3 Proteus与Keil联调112.4 编程思想122.5 系统子程序模块122.5.1 初始化122.5.2 查询温度132.5.3 发送指令142.5.4 读取数据142.5.5 中断处理152.5.6 主程序162.6 温控系统的电路原理图183 系统硬件的实现193.1 温控系统设计的元件功能简介193.1.1 DS18B20简介193.1.2 DS18B20的主要特性193.1.3 DS18B20内部框图203.1.4 高速暂存存储器213.1.5 DS18B20的测温原理233.1.6 系统测温电路233.2 74HC245243.3 AT89C51253.4 系统实物模型263.5 系统实物模型功能简介274 系统抗干扰设计294.1 硬件抗干扰设计294.1.1 电源干扰抑制294.1.2 环境温度变化的干扰抑制294.1.3机械装置的干扰抑制294.2 软件抗干扰设计294.2.1 数字滤波294.2.2软件消除键抖动314.3.电源引线、地线设计315 结论及展望325.1 结论325.2 未来展望325.2.1 原料预处理335.2.2 反应器结构335.2.3 反应器接种335.2.4 发酵条件控制335.2.5 发酵过程相分离346 单片机应用设计注意事项与技巧356.1 DS1820使用中注意事项356.2 技巧总结35致谢38Abstract39基于单片机的沼气池温控系统研究摘 要 沼气是一种清洁的可再生能源, 保持沼气池温度的稳定性是提高沼气产气效率的主要因素之一. 为此, 研究设计了以AT89C51 单片机为核心,由温度采集模块、按键输入模块、执行模块等硬件构成的沼气池温度控制系统, 从而为沼气的发酵提供一个理想的环境,实现了对沼气池温度的实时检测、显示和控制输出. 仿真与演示性实物说明, 设计合理可行, 有一定的推广应用价值. 关键词 沼气; 温度控制; AT89C51微型计算机; DS18B20;PROTEUS软件仿真1 引言1.1 本课题的研究目的及意义在能源渐趋枯竭的今天, 能源紧张对全球和中国的影响都日益突出, 世界开始将目光聚集到了新生能源领域. 在太阳能、核能、风能、水能、潮汐能、地热能、生物质能等诸多新能源当中, 生物质能源是最安全、最稳定的能源, 也是目前国家重点鼓励的新能源领域. 特别是农作物秸秆, 它是一种重要的富含有机质(80%90% )的生物质能源. 据联合国环境规划署(UNEP)报道, 世界上种植的各类谷物每年可提供秸秆17 亿吨. 沼气发酵工程可以将有机质在厌氧微生物的作用下产生一种可替代化石能源的清洁能源沼气. 在美国、希腊、瑞典以及一些发展中国家都开始对秸秆作为沼气原料生产生物质能进行了大量研究. 在中国农作物秸秆也是非常丰富的, 每年约为7亿吨,其中稻草、麦草和玉米秆这3 种秸秆占到70% 以上. 中国有使用沼气的优良传统, 自1949年以来实施过几次大规模的沼气池建设运动, 目前在中国已经建有成千上万的沼气池1. 在20 世纪60 年代, 秸秆曾作为一种主要的发酵原料, 用于沼气工程实践. 中国农作物秸秆产沼气潜力巨大, 但是, 中国目前有关秸秆作为沼气原料生产生物质能源的系统科学研究却较为缺乏. 没有了技术支撑,用秸秆生产沼气出现了一系列问题. 因此慢慢被人们所抛弃. 沼气发酵原料基本转向畜禽粪便, 但是随着农村经济的发展和农业结构调整, 农村将会出现人畜分离的趋势, 现有以畜粪为主的沼气池将会因无发酵原料而停止运行. 因此, 充分利用秸秆制取沼气必然成为中国沼气发展方向. 发展沼气工程是建设资源节约型、环境友好型新农村的重要途径. 沼气就是将一些废弃物、动物粪便等在密闭条件下经过细菌发酵使其产生的气体. 沼气可用做发电、燃料等, 是21世纪的主要能源. 沼气是可再生的清洁能源, 既可替代秸秆、薪柴等传统生物质能源, 也可替代煤炭等商品能源, 而且能源效率明显高于秸秆、薪柴、煤炭等2. 中国农业资源和环境的承载力十分有限, 发展农业和农村经济, 不能以消耗农业资源、牺牲农业环境为代价. 农村沼气把能源建设、生态建设、环境建设、农民增收链接起来, 促进了生产发展和生活文明. 发展农村沼气, 优化广大农村地区能源消费结构, 是中国能源战略的重要组成部分, 对增加优质能源供应、缓解国家能源压力具有重大的现实意义3. 虽然沼气发酵技术在国内已得到了广泛应用, 但存在着沼气池产气效率过低的问题. 基于以上讨论, 本课题对沼气发酵的各种影响因素进行了研究, 找出各种因素与产气率的关系. 并针对国内采用温发酵工艺受环境温度因素的制约这一问题, 设计出基于单片机的温控系统, 以实现沼气池自动温控效果, 从而提高沼气的产气率, 并从一定程度上解决能源问题. 在这样的背景下, 本课题首先分析了国内外沼气技术发展的概况, 之后提出了基于单片机控制的沼气池温控系统的研究和设计. 考虑到设计的要求和技术的指标, 经过研究和分析, 并最终确定了具体的系统设计方案. 然后考虑经济性能, 深入研究和选择了各种芯片和元器件, 完成了以AT89C51单片机为控制核心, 由温度传感器、液晶显示器、光电耦合器、加热装置等组成的硬件电路, 设计出能够实现温度的实时检测、显示和控制输出. 其次在软件程序设计上, 根据程序流程图, 深入研究了单片机汇编语言的设计和使用, 通过使用Keil C51进行编译调试. 最后利用仿真软件Proteus和Keil联合进行仿真, 通过仿真平台可以对实测温度和设定温度进行显示输出, 同时系统可通过液晶显示器进行温度的显示输出. 仿真过程中, 可通过设定值和实测的温度值的比较来控制光耦继电器的吸合状态, 当实测温度高于设定温度值时, 继电器不吸合, 此时电机不运转, 即不对系统加热, 当测试温度低于设定值时, 继电器吸合, 驱动电机运转, 对反应器进行升温作业. 本设计中点亮红色发光二级管表示加热状态, 点亮绿色发光二极光表示对环境温度进行降温. 该温控设计方案具有电路结构简单, 主要使用了AT89C51、74LS04、74HC245、DS18B20等芯片, 从而实现了对沼气池的自动温控. 论文的最后对整个设计方案进行了总结, 指出了系统设计中存在的不足及今后仍然需改进的地方, 并指出了对未来沼气发酵技术的展望. 1.2 本课题的国内外研究现状经过多年的建设与发展, 我国农村沼气实现了历史性跨越, 取得举世瞩目的成就, 全国沼气用户稳步跨上1000万、2000万、3000万三个台阶. 近几年来, 党中央把农村沼气建设作为全面建设农村小康社会、改善农村生产生活条件“六小工程”的重点内容来抓, 20062009年连续四年将沼气建设写入中央一号文件. 2009年安徽省将沼气建设列为民生工程之一. 自2003年开始, 我国政府利用国债项目资金进行重点支持, 各地积极争取中央投资发展当地农村沼气建设. 至2008年底, 全国农村户用沼气由1110万户增至3050万户, 年均增加320多万, 年均增长29.1, 各类农业废弃物处理沼气工程3.95万处(大中型养殖场沼气工程2700处), 乡村沼气服务网点7万个. 各地农村沼气建设呈现出快速发展的势头, 并取得了巨大的成效. 而在国外, 德国、奥地利和丹麦等国家利用能量作物和生物废料生产沼气的项目非常多, 特别是德国, 目前有4 000余个沼气工厂, 2008年超过15个沼气工厂进行了升级扩建. 据统计, 2007年德国所使用的沼气能量产量占欧盟27国沼气能量产量的36%. 德国主流的沼气工程技术是中温(3540 )、高浓度(8%14%)的液态发酵、热电联供技术. 沼气工程发电全部上网, 发电机连续运转, 余热利用系统完善, 综合效率高, 只有在工程启动阶段需要外部热量输入, 正常运行阶段, 发电余热足以提供厌氧发酵系统的增温保温所需的热量. 沼液沼渣均作为肥料施于农田或草地. 能量作物玉米、谷类在沼气工程中作为主要发酵原料, 沼气工程已从解决环保问题上升到解决能源问题的高度6. 1.3 沼气发酵概述1.3.1 沼气发酵基本原理沼气是有机物质(如农作物秸秆、人畜禽粪便、垃圾以及有机废弃物等)在厌氧条件下, 通过特定微生物的发酵作用形成的. 因此, 沼气生产过程中的一系列复杂物理化学变化, 都离不开微生物的作用. 近年来国内外科学家对沼气微生物进行了大量研究, 已发现产甲烷微生物是沼气的生产者和沼气发酵的核心. 它们严格厌氧, 对氧气和氧化剂非常敏感, 最适合H值的范围为中性或微碱性, 它们靠二氧化碳和氢生长, 并以废弃物的形式排出甲烷气体. 产甲烷微生物在自然界分布广泛, 如湖泊、沼泽、土壤中, 淡水或碱水池塘污泥中, 下水道污泥、腐烂秸秆堆以及城乡垃圾堆中都大量存在产甲烷微生物11. 沼气发酵的实质是微生物自身物质代谢和能量代谢的生理过程. 在这一过程中, 微生物在厌氧条件下, 为了取得进行自身生活和繁殖的能量, 将一些高能量的有机物质分解, 使有机物质在转变为简单低能量成分的同时放出能量以提供微生物代谢生活. 从总体上说, 沼气发酵过程一般分为三个阶段. 第一阶段为液化阶段. 由沼气池中微生物的分解酶, 如纤维素酶、淀粉酶、蛋白酶和脂肪酸酶等对有机物质进行酶解, 将多糖水解为单糖或二糖, 将蛋白质分解为多肽和氨基酸, 将脂肪分解为甘油和脂肪酸. 通过这些酶解过程, 把固体有机物转变为可溶性物质, 水解产物可以进入微生物细胞, 参与细胞内的生物化学反应. 第二阶段为产酸阶段. 水解产物进入微生物细胞后, 在细胞内酶的作用下, 进一步分解为小分子化合物, 如低级挥发性脂肪酸、醇、醛、酮、脂类、中性化合物、氢气、二氧化碳、游离态氨等, 其中主要是挥发性酸, 约占80%, 所以此阶段称为产酸阶段. 以上两个阶段是一个连续的过程, 是在厌氧的条件下, 经过多种微生物协同作用, 将原料中的碳水化合物、蛋白质、脂肪等分解成小分子化合物, 同时产生二氧化碳和氢气, 虽然在这两个阶段不产生甲烷, 但脂肪、淀粉和蛋白质分解产生的乙酸, 为生产合成甲烷提供了充足的物质基础. 所以这两个阶段在沼气发酵过程中有很大的作用. 第三阶段为产甲烷阶段. 在这一过程中, 产氨微生物大量繁殖和活动, 氨态氮浓度增高, 挥发性酸浓度下降, 为产甲烷微生物提供了适宜的环境, 产甲烷微生物利用简单的有机物、二氧化碳和氢气等合成甲烷. 沼气发酵的三个阶段是相互连接、交替进行的, 它们之间保持着动态的平衡. 在正常情况下, 有机物质的分解速度和沼气产气速度相对稳定, 如果平衡被破坏, 就会影响产气. 比如液化阶段和产酸阶段的发酵速度过慢, 产气率就会降低, 发酵周期就会加长, 原料分解不完全, 料渣也会很多. 如果前两个阶段的发酵速度过快而超过产甲烷速度, 就会有大量的有机酸积累, 出现酸阻抑, 也会影响生产甲烷, 严重的甚至不能产生甲烷10. 1.3.2 影响产气量的因素沼气发酵过程的实质就是培养厌氧消化菌的过程, 只有发酵微生物的条件满足了, 才能得到较高的沼气生产率或污水净化率. 其影响因素如下:1、沼气发酵原料. 没有适当的发酵原料, 沼气的产生就失去了前体, 发酵生物也就没有生存的原料. 实践证明, 各种畜禽粪便、作物秸秆、杂草、农产品工废物等都是沼气发酵的重要原料. 目前城市有机垃圾及生活污水处理技术也正发展之中. 2、厌氧活性污泥. 沼气发酵微生物在自然界或沼气池中常以活性污泥的形在. 新建沼气池可以进行培养或采取引进(接种)的方式, 生成或加入活性污泥到启动的目的. 3、严格的厌氧环境. 沼气微生物是一种厌氧微生物, 对氧气特别敏感, 其生命活动过程中都不需要氧气, 否则会受到抑制, 甚至死亡. 产甲烷菌只能在严格厌氧的环境中才能够生存. 所以, 修建新沼气池, 要严格密闭, 不漏气、不漏水, 这是产气的需要, 也是贮气的需要. 4、温度. 沼气发酵和其它化学反应相类似, 对温度有一定的范围要求, 在有温度范围内其发酵速度随温度的升高而加快. 沼气发酵可分为3个温度范围:4665称高温发酵, 2045称中温发酵, 以35为最佳, 20以下称低温发酵, 随自然温度变化的发酵方式称为常温发酵, 高于65或低于10都将严重抑制微生物的活性, 影响产气. 常温发酵,产气率低,产气周期长,受环境温度影响大. 中温发酵与常温发酵相比,分解快、产气率高、气质好,有利于规模化生产. 高温发酵,分解快、产气率高、环保效果好,但气质稍差、耗能较多. 农村沼气以常温发酵为主. 5、料液酸碱度. 沼气发酵微生物的生长和繁殖, 要求发酵料液的酸碱度保持中性或微碱性, 即最适pH值为6.87.4. 过酸过碱都会抑制产气. 6、负荷. 农村沼气的负荷常用容积有机负荷表示, 即单位体积沼气池每天所承受的有机物的数量. 容积负荷是沼气池设计和运行的重要参数, 其大小主要由厌氧活性污泥的数量和活性决定. 在实际操作中农村沼气池的负荷通常用发酵原料浓度来代替, 适宜的干物质浓度为6%12%, 且应随季节而变化, 夏季一般为6%8%, 冬季一般为10%12%. 7、C/N比. 发酵原料的C/N比值, 是指原料中有机碳素和氮素含量的比例关系. 沼气发酵适宜的C/N比值范围较宽, 有人认为是1316:1, 有试验认为630:1也合适, 一般认为在启动阶段C/N值应不大于30:1. 沼气发酵原料是以富碳原料和富氮原料配比入池发酵产气, 为了达到产气快、产气率高、产气时间长, 就要求沼气发酵原料有一定的碳氮比, 一般以20301较为适宜, 原料的碳氮比过高过低, 发酵都不易启动. 碳氮比较高的发酵原料如农作物秸秆, 需要同含氮量较高的原料, 如人畜粪便配合以降低原料的碳氮比, 取得最佳的产气效果, 特别是在第一次投料时, 可以加快启动速度. 在使用作物秸秆为主要发酵原料时, 如果人畜粪便的数量不够, 可添加适量的碳酸氢铵等氮肥, 以补充氮素. 农村常用原料的C/N见下表:表 1-1 农村常用原料的C/N18原料总类碳素含量氮素含量C/N干稻草420.6367:1干米秸400.7552:1大豆秧411.0041:1花生秧411.3032:1树叶110.5919:1野草140.5426:18、搅拌. 沼气发酵料液通常自然沉淀而分成4层, 从上到下分别为浮渣层、上清层、活性层和沉渣层. 在此情况下, 微生物活动较为旺盛的场所只限于活性层内, 其它各层厌氧消化不活跃, 影响产气, 所以需要搅拌. 常用的搅拌方法有3种:发酵液回流搅拌、沼气回流搅拌、机械搅拌, .因此, 通常采用人工液体回流搅拌或自循环搅拌较为适宜. 9、毒物控制. 一般情况下, 发酵原料的毒性较低, 但是在畜禽场消毒或防疫时会有较多药物进入粪便, 因此, 这时应注意不要进料, 待毒性消除后再开始重新进料比较安全. 1.4 沼气发酵工艺的温度因素1.4.1 温度因素在沼气发酵过程中的影响沼气发酵中设备简单、见效快, 生物质能得到充分合理利用, 可带来良好的经济效益、社会效益和生态效益. 沼气发酵又称厌氧消化, 是指各种有机物在厌氧条件下, 被各种沼气发酵微生物分解转化, 最终生成沼气的过程. 所产生的沼气是一种可燃性气体, 其主要成分是甲烷和二氧化碳, 通常情况下甲烷(CH4)约占60%, 二氧化碳(CO2)约占40%, 此外还有少量的氢(H2)、氮气(N2)、一氧化碳(CO)、硫化氢(H2S)和氨气(NH3)等. 沼气发酵是一个微生物学的过程, 沼气发酵的工艺条件包括:严格的厌氧环境、温度条件、营养和原料的处理、适宜的酸碱度和有机酸含量、干物质浓度和有机物负荷量、碳氮比对沼气发酵的影响、搅拌、沼气发酵接种物等, 其中环境温度条件是发酵过程中关键性因素. 环境温度首先对沼气发酵系统的启动速度有较大的影响. 环境温度较低时, 系统的启动速度较慢; 当环境温度较高时, 系统启动所需要的时间就相应地缩短. 其次, 环境温度对发酵系统的产气量有很大的影响. 当反应器内发酵液温度在10左右, 只要其它条件达到要求(如酸碱度适宜, 沼气发酵菌较多)就可以发酵产生沼气. 但是沼气发酵的产气量和产气速率与温度有密切关系, 研究表明, 在一定范围以内(1540)随着温度的增高, 细菌的繁殖旺盛, 活力强, 发酵原料的消化速度也相应加快, 其外在表现为产气量和产气率都相应的增高. 在1535范围内, 在每一个发酵周期中, 每单位原料的产气总量大致相等, 但是在15时, 一个发酵周期为12个月, 而在35时一个发酵周期仅为1个月. 当发酵低于10时, 微生物休眠, 产气很少, 达不到使用的目的. 因此, 启动料液的温度要调控在20以上, 运行料液的温度要调控在15以上, 才能达到产气和使用的目的. 一小时内反应器温度上下波动不宜超过23. 短时间内温度升降5, 沼气产气量明显下降, 波动幅度过大时, 甚至停止产气. 因此, 合理控制反应器内部温度是沼气发酵的关键因素. 基于以上的考虑, 在本设计中, 当人为的设置温度低于10或当温度高于60时, 系统会自动报警, 同时拉紧报警显示灯认为设置的温度不合理, 需要重新设置温度, 以满足沼气的发酵时所需的最佳温度选择. 温度对沼气气化率的影响见下图1-1:图1-1 温度对沼气气化率的影响191.4.2 沼气发酵的温控类型沼气发酵的温度范围一般在1060之间, 温度对沼气发酵的影响很大, 温度升高沼气发酵的产气率也随之提高, 通常以沼气发酵温度可区分为:高温发酵、中温发酵和常温发酵工艺. 1、高温发酵工艺 高温发酵工艺指发酵料液温度维持5060的范围之间, 实际控制温度多在532, 该工艺的特点是微生物生长活跃, 有机物分解速度快, 产气率高, 滞留时间短. 采用高温发酵可以有效地杀灭各种致病菌和寄生虫卵, 具有较好的卫生效果, 从除害灭病和发酵剩余物肥料利用的角度看, 选用高温发酵是较为实用的. 但要维持反应器的高温运行, 能量消耗较大. 一般情况下, 在有余热可利用的条件下, 采用高温发酵工艺, 如处理经高温工艺流程排放的酒精废醪、柠檬酸废水和轻工食品废水等. 2、中温发酵工艺 中温发酵工艺指发酵料液温度维持在352的范围之间, 与高温发酵相比, 这种工艺消化速度稍慢一些, 产气率要低一些, 但维持中温发酵的能耗较少, 沼气发酵总体能维持在一个较高的水平, 产气速度比较快, 可保证常年稳定运行. 为减少维持发酵装置的能量消耗, 工程中常采用近中温发酵工艺, 其发酵料液温度为253020. 这种工艺因料液温度稳定, 产气量也比较均衡. 总之, 与经济发展水平相配套, 工程上采取增温保温措施是必要的. 目前国内主要采用太阳能加热的方法对沼气池内温度进行补给. 3、常温发酵工艺 常温发酵工艺指在自然温度下进行沼气发酵, 发酵温度受气温影响而变化, 我国农村户用沼气池基本上采用这种工艺. 其特点是发酵料液的温度随气温、地温的变化而变化, 一般料液温度最高时为25, 低于10以后, 产气效果较差. 改工艺方法的好处是不需要对发酵料液温度进行控制, 节省保温和加热投资, 沼气池本身不消耗热量; 其缺点是同样投料条件下, 一年四季产气率相差较大. 南方农村沼气池在地下, 还可以维持用气量. 北方的沼气池则需建在太阳能暖圈或日光温室下, 这样可确保沼气池安全越冬, 维持正常产气. 1.4.3 太阳能增温系统的沼气池内温度变化规律太阳能双效增温系统是一种利用太阳能加温的温室系统. 系统包括沼气反应器外围的日光温室集热系统和酸化集热系统(由集热室和酸化池组成)两部分12. 另外, 发酵系统的料液温度受天气变化影响很大, 在晴天, 料液温度表现为上升趋势, 太阳能双效增温装置增温效果显著; 在阴天, 料液温度表现为下降趋势, 太阳能双效增温装置增温较弱, 应加强保温措施和启动其他加热装置. 2 系统软件的实现首先分析系统对软件的要求, 然后进行软件总体设计, 包括程序结构设计和对程序进行模块化设计. 按整体功能分成多个不同的模块, 单独设计、编程、调试, 然后将各个模块装配联调, 组成完整的软件系统. 2.1 proteus简介Proteus 软件是由英国 Labcenter Electronics 公司开发的EDA工具软件, 已有近20年的历史, 在全球得到了广泛应用. Proteus 软件的功能强大, 它集电路设计、制版及仿真等多种功能于一身, 不仅能够对电工、电子技术学科涉及的电路进行设计与分析, 还能够对微处理器进行设计和仿真, 并且功能齐全, 界面多彩, 是近年来备受电子设计爱好者青睐的一款新型电子线路设计与仿真软件4. Proteus软件和我们手头的其他电路设计仿真软件最大的不同即它的功能不是单一的. 它的强大的元件库可以和任何电路设计软件相媲美; 它的电路仿真功能可以和Multisim相媲美, 且独特的单片机仿真功能是Multisim及其他任何仿真软件都不具备的; 它的PCB电路制版功能可以和Protel相媲美. 它的功能不但强大, 而且每种功能都毫不逊于Protel, 是广大电子设计爱好者难得的一个工具软件. Proteus是一个基于ProSPICE混合模型仿真器的、完整的嵌入式系统软硬件设计仿真平台. 它包含ISIS和ARES应用软件, 具体功能分布如图1-1所示. 图 2-1 Proteus的具体功能分布4ISIS智能原理图输入系统, 系统设计与仿真的基本平台. ARES 高级PCB布线编辑软件. 在Proteus中, 从原理图设计、单片机编程、系统仿真到PCB设计一气呵成, 真正实现了从概念到产品的完整设计. 其中Proteus ISIS的特点有:实现了单片机仿真和SPICE电路仿真的结合. 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等功能; 有各种虚拟仪器, 如示波器、逻辑分析仪、信号发生器等. l 具有强大的原理图绘制功能. l 支持主流单片机系统的仿真. 目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片. l 提供软件调试功能. 在硬件仿真系统中具有全速、单步、设置断点等调试功能, 同时可以观察各个变量、寄存器等的当前状态, 因此在该软件仿真系统中, 也必须具有这些功能; 同时支持第三方的软件编译和调试环境, 如Keil C51 uVision2等软件. 2.2 Proteus VSM仿真与分析Proteus 软件的ISIS原理图设计界面同时还支持电路仿真模式VSM(虚拟仿真模式). 当电路元件在调用时, 我们选用具有动画演示功能的器件或具有仿真模型的器件, 当电路连接完成无误后, 直接运行仿真按钮, 即可实现声、光、动等逼真的效果, 以检验电路硬件及软件设计的对错, 非常直观. Proteus VSM有两种不同的仿真方式:交互式仿真和基于图表的仿真. 交互式仿真可以实时直观地反映电路设计的仿真结果. 基于图表的仿真(ASF)可以 用来精确分析电路的各种性能, 如频率特性、噪声特性等. Proteus VSM中的整个电路分析是在ISIS原理图设计模块下延续下来的, 原理图中可以包含以下仿真工具:探针 直接布置在线路上, 用于采集和测量电压/电流信号; 电路激励 系统的多种激励信号源; 虚拟仪器 用于观测电路的运行状况; 曲线图表 用于分析电路的参数指标. 设计者可以从Proteus原理图库中调用所需库元件, 然后通过合适连线即可. 单片机内可通过单击单片机芯片加入已编译好的十六进制程序文件, 然后运行仿真即可. 运用Proteus的PCB制版功能设计出的电路板, 可通过原理图生成网络表后设计布局而成. 根据设计的PCB加工而成的电路板和安装焊接完成后的实际电路. 可见, 整个电路从设计到实际电路制作完成, 通过Proteus一个软件即可完美实现. 并且, 它的仿真结果与实际误差很小, 非常适合电子设计爱好者和高校学生自学使用, 缩短了设计周期, 降低了生产成本, 提高了设计成功率. 2.3 Proteus与Keil联调MCS-51系列单片机在很多产品中得到了广泛的应用. 在具体的工程实践中, 单片机应用技术所涉及的实践环节较多, 且硬件投入较大, 如果因为控制方案有误而进行相应的开发设计, 会浪费较多的时间和经费. Proteus仿真软件很好地解决了这些问题, 它可以像Protel一样绘制硬件原理图并实现硬件调试, 再与Keil编程软件进行联调, 实现对控制方案的验证. Keil是德国Keil公司开发的单片机编译器, 是目前最好的51单片机开发工具之一, 可以用来编译C源代码和汇编源程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等, 是一种集成化的文件管理编译环境. 在Proteus中, 可以直接与Keil编程软件进行联调, 进而实现对所设计电路的验证. Proteus与汇编程序调试软件Keil可实现联调, 在微处理器运行中, 如果发现程序有问题, 可直接在Proteus 的菜单中打开Keil对程序进行修改. 如下图:图 2-2 Proteus的菜单中打开Keil对程序进行修改42.4 编程思想一个好的程序要有一个好的编程思想. 现在流行的编程思想是模块化编程和结构化编程, 它们是相辅相成的. 1、模块化编程. 智能仪器的功能实现需要大量而有效的程序来实现. 这么繁琐的程序需要采用模块化编程的方法, 即将一个大的程序分成若干小的模块, 各个模块保持相对的独立性和它们之间只靠少量的出入口参数相联系. 这样一来, 各个程序模块可分别设计, 从而使程序的调试、修改和维护都变得比较容易. 另外, 程序量大了还可以由不同人来同时编写不同的模块. 2、结构化编程. 各个子程序之间使用结构良好的转移和调用, 这样各个模块可有效地组合成一个整体, 使流程明确地从一个程序模块转移到下一个程序模块. 2.5 系统子程序模块2.5.1 初始化在这一部分程序中, 需要将DS18B20的一线总线拉低500ms以上, 将DS18B20复位, 然后将总线置高, 等待DS18B20的回应, 有应答就置标志位, 没有应答就清空标志位. 该设计中, 选择总线上只有一个DS18B20, 所以挑过ROM, 电路中采用的晶振频率fosc=12MHz,通过计算公式, 可以算出空跑的语句行数. DS18B20复位初始化子程序清单如下:; 这是DS18B20复位初始化子程序INIT_1820:SETBDATAIN ; 拉高3.7管脚的电平NOP CLRDATAIN ; 拉低3.7管脚的电平MOVR1,#3TSR1:MOVR0,#107DJNZR0,$ ; 当R0不等于0时, 原地等待DJNZR1,TSR1 ; 当R1不等于0时, 返回TSR1,用于延时SETBDATAIN ; 然后拉高数据线, 将DS18B20中的数据请0NOPNOPNOPMOVR0,#25HTSR2:JNBDATAIN,TSR3 ; 等待DS18B20回应, 有回应则跳转到TSR3DJNZR0,TSR2 ; 如果等没到37次, 则继续等待回应CLRFLAG1SJMPTSR7 ; 跳转到TSR7TSR3:SETBFLAG1 ; 置标志位, 表示DS18B20存在CLRP1.7MOVR0,#117TSR6:DJNZR0,$ ; 时序要求延时一段时间TSR7:SETBDATAIN ; 拉高数据线RET2.5.2 查询温度该设计中, 通过向DS18B20发送指令来查询温度. 在每次操作前, 都需要将DS18B20置位, 先向DS18B20发送温度转化的指令, 根据要求需要750ms的等待时间, 在这段时间中, 通过调用显示子程序来做到延迟. 然后, 向DS18B20发送读取温度的命令, 将温度读取出来, 放到缓冲中区. ; 读出转换后的温度值GET_TEMPER:SETBDATAIN LCALLINIT_1820 ; 先复位DS18B20JBFLAG1,TSS2NOPRET ; 判断DS18B20是否存在?若不存在则返回TSS2:MOVA,#0CCH ; 跳过ROM匹配LCALLWRITE_1820MOVA,#44H ; 发出温度转换命令LCALLWRITE_1820ACALLDISP1 ; 这里通过调用显示子程序显示延时一段时间LCALLINIT_1820 ; 准备读温度前先复位MOVA,#0CCH ; 跳过ROM匹配LCALLWRITE_1820MOVA,#0BEH ; 发出读温度命令LCALLWRITE_1820LCALLREAD_1820 ; 将读出的温度数据保存RET2.5.3 发送指令使用同过I/O口向DS18B20写数据. 该设计中, 通过单总线采取移位的方式来向DS18B20写入数据, 按照8位的方式写进去. 在写的过程中, 需要严格按照DS18B20的产品说明书的时序进行写操作:每次将1Bit数据写入前, 都需要对DS18B20进行写的初始化, 将数据线拉低60us以上, 完成写初始化后, 将1位数据写进DS18B20, 然后等待15us以上, 写操作完成, 继续初始化, 写下1位, 直到写完一字节. 具体程序如下. WRITE_1820:MOVR2,#8 ; 一共8位数据CLRC ; 清除进位标志位WR1: CLRDATAIN ; 拉低数据线60us以上后, 将数据移位写入DS18B20MOVR3,#6DJNZR3,$ ; 等待60us以上, 完成写初始化, 然后写入数据RRCA ; 将累加器中的数据带进位右移MOVDATAIN,C ; 将进位位写进DS18B20后, 等待15us以上MOVR3,#23DJNZR3,$ ; 等待15us以上, 完成1bit的写操作SETBDATAIN ; 拉高数据线, 初始化写NOPDJNZR2,WR1 ; 如果一个字节没写完, 继续写SETBDATAIN ; 拉高数据线RET2.5.4 读取数据使用通过I/O口从DS18B20读取数据. 在该设计中, 也使用移位的方式从DS18B20中读取数据, 需要严格按照DS18B20的产品说明书的时序进行读操作, 每次将1位数据读入前, 都需要对DS18B20进行读的初始化, 将数据线拉高1us以上, 等待读的初始化, 然后拉低数据线1us以上, 使读初始化有效. 完成度初始化后, 从DS18B20将1位数据读入, 然后等待15us以上, 读操作完成, 等待60us后, 继续初始化, 读下1位, 直到读完1B. 这里, 直接完成了温度的计算功能, 因为12位转化时每一位的精度为0.0625度, 不要求显示小数所以可以抛弃29H的低4位, 将28H中的低4位移入29H中的高4位, 这样获得一个新字节, 这个字节就是实际测量获得的温度, 这个转化温度的方法非常简洁无需乘以系数0.0625. 程序如下:; 读DS18B20的子程序(有具体的时序要求), 读DS18B20的程序, 从DS18B20中读出两个字节的温度数据READ_1820:MOVR4,#2 ; 将我呢度高位和低位从DS18B20中读出 MOVR1,#29H ; 低位纯如29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOVR2,#8 ; 数据一共有8位RE01:CLRC ; 清除进位标志位SETBDATAIN ; 拉高数据线后, 等待1us初始化读NOPNOPCLRDATAIN ; 拉低数据线后, 保持1us以上使读初始化有效NOPNOPNOPSETBDATAIN ; 拉高数据线, 开始读操作MOVR3,#9RE10:DJNZR3,RE10 ; 等待15us后, 写入数据正确MOVC,DATAIN ; 将数据读入累加器MOVR3,#23RE20:DJNZR3,RE20 ; 等待60us以上后, 进行下一次读操作RRCA ; 将累加器带进位右移DJNZR2,RE01 ; 如果没读满一个字节, 继续读取数据MOVR1,A ; 将累加器中的数据存储进地址29H中DECR1DJNZR4,RE00 ; 继续读取高位RET2.5.5 中断处理8051提供5个中断, 2个中断请求信号有外部产生并输入请求信号, 称之为外部中断源, 其余的中断请求信号有内部产生并激活中断请求信号, 称为内部中断源. 其中外部中断0请求输入端口位(P3.2), 低电平货负跳变激活中断请求IE0位. 当外部中断0中断请求有效, 则置位TCON.1的IE0中断请求标志位, 主机在每个机器周期相应状态采集相应的IE0标志位, 当条件满足, 则主机响应中断. 有硬件自动复位IE0. 而外部中断1请求输入端口(P3.3), 当外部中断1中断请求有效, 则置位TCON. 3的IE1中断请求标志位. 中断程序如下:; 数码管个位控制键对应的中断处理程序SXXINT0:PUSHACC ; 累加器数据进栈INC75H ; 个位对应的数值加1MOVA,75H ; 个位数值传送至寄存器ACJNEA,#10,SXXINT01 ; 当个位数值小于10时, 转向ZINT01MOV75H,#0 ; 个位数值设置为0SXXINT01:POPACC ; 堆栈中的数据出栈RETI ; 中断返回; 数码管十位控制键对应的中断处理程序SXXINT1:PUSHACC ; 累加器数据进栈INC76H ; 十位对应的数值加1 SETB P3.4 ; 报警蜂鸣响MOVA,76H ; 十位数值传送至寄存器ACJNEA,#10, SXXINT11 ; 当十位数值小于10时, 转向ZINT11TT: SETB P3.4 MOV76H,#0 ; 十位数值设置为0CJNEA,#60, SXXINT11 ; 当十位数值小于60时, 转向ZINT11MOV76H,#0 ; 十位数值设置为0 CLR P3.4 ; 报警蜂鸣器关闭SXXINT11:POPACC ; 累加器数据出栈RETI ; 中断返回2.5.6 主程序有了上面子程序的基础, 通过主程序, 可以方便的实现系统子程序的调用和其间的嵌套调用. 主要包括伪指令、设置外部中断的入口地址、开中断以及主程序对子程序的调用. ; 以下是伪指令, 用于定义TMPLEQU29H ; 低字节寄存器TMPHEQU28H ; 高字节寄存器FLAG1EQU38H ; 标志寄存器, 用于检测温度传感器是否存在DATAINBITP3.7 ; DS18B20所接的数据线; 规定程序的存放地址ORG00H ; 以下程序从00H单元开始存放LJMPMAIN1; 外部中断0的入口地址ORG03H ; 个位控制键所引起的中断服务程序入口地址LJMPZINT0外部中断1的入口地址ORG13H ; 十位控制键所引起的中断服务程序入口地址LJMPZINT1ORG30H; 打开外部中断0和外部中断1MAIN1:SETBIT0 ; ITO置位SETBEA ; 允许打开所有中断SETBEX0 ; 开中断0SETBIT1SETBEX1 ; 开中断1SETBP3.6 ; 控制加热系统SETBP3.2; 定义系统初始化时系统的显示MOV74H,#0 ; 设置复位按钮按下时系统显示全OMOV75H,#0MOV76H,#0MOV77H,#0; 主程序调用子程序MAIN:LCALLGET_TEMPER ; 长调用读出转换后的温度值子程序LCALLCVTTMP ; 长调用比较程序LCALLDISP1

温馨提示

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

评论

0/150

提交评论