太阳能热水器系统毕设论文

太阳能热水器系统毕设论文.txt如果中了一千万,我就去买30套房子租给别人,每天都去收一次房租。哇咔咔~~充实骑白马的不一定是王子,可能是唐僧;带翅膀的也不一定是天使,有时候是鸟人。 本文由Thunderhu贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
河南理工大学毕业设计(论文)说明书


如何很好的节约和利用能源,特别是可持续性能源,一直是人类所 面临的问题了所以研究智能化家庭住宅里的能源如何被更有效的节约和 利用,也有着十分现实和长远的意义。而家用太阳能热水器就是一个节 约能源,有效利用能源的典型。 随着人类生活的不断进步,科学技术的不断发展,电子技术在各个 领域的广泛应用,智能化家庭住宅模式必将成为人类住宅模式的发展趋 势。美国、日本等发达国家已经在这方面做了很多有益的探索和研究, 在我国,随着人民生活水平的日益提高,智能化家庭住宅模式也必将在 我国兴起、发展和完善。所以实现对家用设备的智能化控制也就成了一 种有益的、必要的、积极的探索和研究。 同时,自 21 世纪以来我国太阳能利用取得了举世瞩目的成绩,太阳 能热水器是太阳能热利用中技术最成熟、应用最广泛、产业化发展最快 的领域,并且随着大众文明意识的提高、人民生活水平的不断提高以及 对生活热水需求的日益增长和拥有 9 亿人口的农村潜在市场的开发,研 究、开发与太阳能热水器相配套的智能化控制系统,也就有着重大意义, 同时会创造良好的社会效益。针对这些,开发具有智能度、通用性好、 稳定性好、界面友好的太阳能热水器控制系统,这些都是现在研究的主 流方向。 关键词:太阳能热水器,太阳能,传感器,单片机 关键词
1
河南理工大学毕业设计(论文)说明书
Abstract
To economize and utilize energy resource, especially the lasting energy resource, is a problem that humankind has faced. So it is so realistic and significant to research how to economize and utilize energy resource in home using. And the Solar Heater is a good example in economizing and utilizing energy resource. The intelligentized residential pattern has been a development direction of residential pattern of human being,as continually progress inhuman life and technology and the using of electronic technique in every field. So to make the intelligentized control of residential equipment into reality is a necessary, active thing. At the same time, from the 21 century the using of the Solar energy has been made a progress in our country. And the Solar Energy Heater is the most mature, extensive technique in this field. As the continuous pro

gress of people's civilization consciousness and life, the deploitation of country market of 9 hundreds million people. It is also significant to research, deploitation the intelligentized control system of the Solar Energy Heater. It also can create great social benefit.
Keywords: Solar Energy Heater , Solar Energy ,Sensor,Singlechip
2
河南理工大学毕业设计(论文)说明书
目 录
1 太阳能热水器系统简介 …… 5 1.1 太阳能热水器发展概况 …… 5 1.2 太阳能热水器控制仪的现状 …… 7 1.3 太阳能热水器市场前景分析 …… 8 1.4 太阳能热水器系统功能简介 …… 9 2 单片机系统简介 ……11 2.1 单片机概述……11 2.2 关于单片机的一些基本概 …… 12 2.3 芯片简介…… 15 2.3.1 MSC-51 芯片简介 …… 15 2.3.2 MCS-51 的引脚说明: …… 18 3 传感器的特点及应用 …… 21 3.1 温度传感器及其应用 …… 21 3.2 数字温度传感器 DS18B20 …… 21 4 系统硬件结构与工作原理 …… 24 4.1 系统硬件结构 …… 24 4.2 电加热、电磁阀控制电路 …… 25 4.2.1 光电耦合器 …… 26 4.2.2 双向可控硅 …… 26 4.2.3 电加热、电磁阀控制电路 …… 27 4.3 温度监测与控制电路及其工作原理 …… 28 4.3.1 基本工作原理电路 …… 28 4.3.2 源程序 …… 28 4.4 水位监测及控制电路及其工作原理 …… 38 4.4.1 霍尔效应及霍尔传感器 …… 38 4.4.2 霍尔流量计的工作原理 …… 40 4.4.3 测水量软件流程 …… 41 4.5 显示控制及其实现程序 …… 41 4.5.1 液晶显示器的特点、分类及其他 …… 42 4.5.2 液晶显示器与单片机接口电路 …… 43 4.6 键盘接口电路及其编程 …… 44 4.6.1 键盘接口方式 …… 44 4.6.2 键盘接口电路 …… 45 4.6.3 键盘编程 …… 45 4.7 总模块电路及其编程 …… 46 4.7.1 总模块电路图 …… 46 4.7.2 源程序 …… 47
3
河南理工大学毕业设计(论文)说明书
5 仿真与测试…… 58 5.1 利用 proteus 绘制电路图 …… 58 5.2 在 KEIL 中对程序的调试方法 …… 60 5.3 仿真的实现…… 64 致 谢…… 67 参考文献…… 68
4
河南理工大学毕业设计(论文)说明书
1 太阳能热水器系统简介
1.1 太阳能热水器发展概况
能源是人类生存和社会发展的物质基础,一个能够持续发展的社会 应该是一个既能满足当前需要又不危及后代人前途的社会。因而,随着 世界性能源短缺和环境污染的日益严重,节约能源和寻找新的可再生无 污染的能源就摆在了人们的面前。节约能源,尽可能多的用洁净能源代 替高碳量的矿物燃料,也就成为能源和环境建设必须好遵循的基本原则 之一。 太阳能的开发和利用,正是适应了这种需要,据检测,每平方米太 阳能热水器在其寿命期内可减少一吨煤所造

成的向大气排放的有害化合 物。因而开发利用太阳能,是减少环境污染的重要选择。1992年联合国 召开了全球与环境发展大会之后,许多国家纷纷将太阳能列入重点开发 项目。 充分开发利用太阳能也就成为世界各国政府可持续发展的能源战略 决策,一方面可以广泛地应用于热水、发电、制冷、采暖等诸多方面, 另一方面可以大量节省石油煤碳等不可再生资源,将大大缓解能源匾乏 而带来的严重后果。早在1973年,美国就制定了政府级的阳光发电计划。 而后许多国家都制定了相应的发展计划。80年代,日本、澳大利亚、美 国、以色列和希腊等国家出现新兴的太阳热水工业。 我国幅员辽阔,具有丰富的太阳能资源和良好的开发利用基础。全 国太阳能国辐射总量在3.8- 8.4x 10'千焦/平方米之间,约占全国2/3以 上的地区全年日照时数大于2000小时。经过十余年的努力,我国太阳能 利用取得了举世瞩目的成绩,太阳能热水器是太阳能热利用中技术最成 熟、应用最广泛、产业化发展最快的领域。当前我国自主开发的全玻璃 真空管太阳能热水器在世界上处于领先水平,并出口到日本、美国等发 达国家。 国内应用情况据统计,我国太阳能热水器在2005年年底的年产量为
5
河南理工大学毕业设计(论文)说明书
1500万平方米,占世界总产量的75.6%;保有量为7500万平方米,占世界 总保有量的60.6%。年产量及拥有量均居世界首位,成为我国节能领域的 新兴产业,已引起国际能源界的关注,发展势头很好。进入90年代,中 国在改革开放政策指引下,随着太阳能热水器的不断改进、大众文明意 识的提高、人民生活水平的不断提高以及对生活热水需求的日益增长和 拥有9亿人口的农村潜在,市场的开发,更是促进了太阳热水工业的迅速 发展,太阳能热水器应用同时也得到了一个大规模进展,并且形成了与 空调、彩电、冰箱等一样的大规模市场。 太阳能热水器是利用集热器吸收太阳光,将光能转化成热能,并通 过储水箱将热水储存的装置。目前,技术水平最高的太阳能热水器是真 空集热管太阳能热水器。真空集热管的内、外管之间是真空夹层,确保 冬季管内不结冰,能够正常使用,内管上有一层选择性吸收镀膜,膜层 能充分吸收太阳光。真空管里的水,吸收热量后,通过温差循环,加热 储箱内的水。太阳能中央热水系统采取以太阳能为主,电能为辅的能源 利用方式。一般情况下全年90%的热水来自太阳能,只需10%的电能作补 充, 365天全天候可以供应热水。 太阳能热水器可在全国大部分地区使用, 并被广泛应用于家庭,在宾馆沐浴、工业用水等

方面获得利用。 同时,由于其经济和社会效益显著。不用煤油电而用太阳能热水器 洗浴的城乡居民全国有3000多万,年节约能源200万吨标准煤。太阳热水 不但为广大城乡用户所接受,而且建设部已将它列入建筑节能新技术, 准备推广,太阳热水系统将与被动太阳采暖、光伏器件一起成为21世杨 太阳能建筑结构的一个组成部分。太阳热水要扩展到为工农业生产服务。 太阳能产品本身还存在着使用不方便、不配套、质量档次不高的状况。 同时,由于受自身条件的限制,随着春夏秋冬四季的变化,以及不 同季节不同天气的变化,由于真空集热管太阳能热水器的单一性能,出 水温度和热水存量的不确定性给使用中带来众多不便,同时也造成了对 太阳能的利用效率低下,太阳能热水器也就在一定程度上满足不了不同 用户的不同需要,从而影响了太阳能热水器的长期发展。
6
河南理工大学毕业设计(论文)说明书
1.2 1.2 太阳能热水器控制仪的现状
在太阳能热水器的控制方面,其发展就远远落后于太阳能热水器本 身的发展,绝大多数用户对水位(进水)的控制仍然依赖于观察溢流管有 无溢流。但这种方法有明显缺陷:1)在往水箱进冷水时,水箱内存留的热 水往上升,直至从溢流管溢出,这样从溢流口到用户室内这段溢流管所 含容积的温度较高的水白白浪费了,溢流管越长,损失越大。2)进水进 到溢流管溢出为止,即水箱已充满,但当在太阳能的作用下,随着水温 的不断升高,水的体积不断膨胀,将上层温度最高的水从溢流口不断排 出,又造成了大量热能的流失。 为了满足用户的需要,市场上相应也推出了太阳能热水器控制仪。 调查分析 目前市场上的此类装置,存在如下缺陷: 1.智能化程度不高,一方面,人工上水,用户需占用大量时间,使 用十分不方便;另一方面,也造成了对太阳能利用的效率低下; 2.其关键元件水温、水位探头插入水箱中,依靠探头金属与水导电 产生信号来显示水位。太阳能水温升高时,探头上会产生水垢,影响了 探头与水之间的导电性能,整套水位显示系统也就失去了作用,控制仪 也就不能正常使用 ; 3.虽然此类产品种类多,但功能都不齐全,各有侧重,且通用性较 差; 4.交互界面不友好,用户了解信息和操作都不方便。 基于这几点考虑,针对目前市场上的家用太阳能热水器控制系统存 在的缺陷 ,我们做了必要的、有益的调整、改进和完善。以AT89C51单 片机为核心 ,利用霍尔流量计代替传统的金属探头,解决了升温结垢问 题;同时实现对太阳能热水器的水位、补水方式、补水时间的程序化控

制,提高了系统的智能化,同时提高了对太阳能的利用率;通过液晶显 示与用户建立良好的交互界面。
7
河南理工大学毕业设计(论文)说明书
1.3 太阳能热水器市场前景分析
在全球能源形势紧张、气候变暖严重威胁经济发展和人们生活健康 的今天,世界各国都在寻求新的能源替代战略,以求得可持续发展和在 日后的发展中获取优势地位。太阳能以其清洁、源源不断、安全等显著 优势,成为关注重点。在太阳能产业的发展中,太阳能热水器的热利用 转换技术无疑是最为成熟的,其产业化进程也较光伏电池、太阳能发电 等产业领先一步。但是目前市场还有待规范,消费群体还有待培育,技 术还有尚须改进,因而对于企业来说还有较大的成长空间。 2005年,中国太阳能热水器年产量已突破1500万平方米,保有量超 过6200万平方米,行业总产值已逾150亿元。2005年中国热水器市场销售 量达到1283.4万台,销售额达到101.6亿元,比上年同期分别增长了20% 与33.7%。 2006年,中国燃气、太阳能及类似能源的器具制造行业累计实现工 业总产值24,125,852千元;实现累计产品销售收入22,071,020千元,比 上年同期增长31.32%;实现累计利润总额为759,646千元,比上年同期增 长54.07%。 2007年1-11月,中国燃气、太阳能及类似能源的器具制造行业累计 实现工业总产值28,248,917千元,比上年同期增长了29.14%;累计实现 产品销售收入27,222,371千元,比上年同期增长了41.02%;累计实现利 润总额955,850千元,比上年同期增长了65.14%。 中国太阳能热水器的年生产量是欧洲的2倍,北美的4倍,现已成为 世界上最大的太阳能热水器生产国和最大的太阳能热水器市场,并仍在 以每年20%-30%的速度递增。但是中国太阳能热水器生产的企业有3500 多家,除皇明、清华阳光、华扬、澳柯玛、北大四季沐歌等10个全国性 品牌因质量、售后服务过硬而市场知名度较高外,行业中存在着大量纷 繁芜杂的杂牌子企业,这种状况不利于行业的长远发展。
8
河南理工大学毕业设计(论文)说明书
1.4 太阳能热水器系统功能简介
太阳能热水器控制仪具有功能齐全、智能化强、操作简单方便、人 机交互界面良好等诸多优点:
1.4.1 功能上
1.太阳能热水器水位测定:通过霍尔双向流量计可较精确的测定目 前太阳能热水器的水量,解决了长期困扰太阳能控制器可靠性的难点。 2.太阳能热水器水温测定与控制:通过温度传感器来探测太阳能热 水器的温度,并通过单片机控制在数码管上以数字形式显示;用户也可 以根据需要选用或不选用辅助电加热器。 3.补水方式选择:用户可以根

据自己的需要选择自动补水〔系统一旦 检测到水位低于一定值就自动打开电磁阀补水直到满水位)或手动补水 〔系统根据用户设定的补水时间来进行补水)。同时,也加设了紧急补水 键,(用户第一次按下紧急补水键,就开始补水,系统就会补水到满水位, 若补水当中,用户第二次按下此键,则停止补水)。 3.显示:监测结果以及相应的用户操作,都在液晶上以图形或数字的 方式来显示,直观、明了,用户用起来很方便。 .此外,系统还对多种意外情况做了相应的保护措施。如,当系统检 测到电磁阀打开,而流量计没记数时,则延时2分钟,自动切断电磁阀(防 止用户补水时,自来水公司突然停水);当电加热启动着时,用户如果用 水,则切断电加热,直到用户用水完毕,再重新开启电加热。(防止带电 用水):等等。
1.4.2 智能上
太阳能热水器满足了不同用户的不同需要,可根据季节不同,用水 状况不同,确定每日的上水时间和次数,充分利用太阳能源;可根据家庭 用水时间和温度,自动进行电补温,克服气候的变化,确保家庭用热水; 一次性设定好后无须操心,由控制器进行自动管理。
1.4.3 接口上
9
河南理工大学毕业设计(论文)说明书
单管上下水,一阀多能。它也抛弃了传统的浮球箱来判定水满否, 而是微型化处理,无需溢流管,直接由单片机根据预先设定的满水量判 断并实现自动水满关闭。
1.4.4 实用面上
现在不光有单个的太阳能热水器用户,也有小区式的太阳能热水器 用户,该设计可以同时满足两种用户的需要。另一方面,控制系统可以 单独使用于太阳能热水器,也可以与可与家用电热水器连用进行控制。
10
河南理工大学毕业设计(论文)说明书
2 单片机系统简介
2.1 单片机概述
微型计算机的出现与发展已广泛应用到各行各业中,使人们的日常 生活、工作都发生了重大变化,如果没有微型计算机,人们的工作、生 活的质量将受很大的损失。单片微型计算机是微型计算机发展中的一个 重要分支,其独特的结构与性能越来越普及地应用于国民经济的各个领 域。本绪论主要是介绍什么是单片微型计算机:它与微型计算机的区别是 什么;单片微型计算机的发展概况;它的特点和应用。通过对本绪论的学 习,使读者对单片微型计算机有一个初略的认识和了解。 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力 的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称 为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本 功能部件:中央

处理器、存储器和 I/O 接口电路等。因此,单片机只需 要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片微型计算机简称单片机。它在一块芯片上集成了各种功能部件: 中央处理器(CP切、随机存取存储器(RAM)、只读存储器(RO峋、定时器/ 计数器、 和各种输入/输出(Fo)接口(如并行FO口、 串行FO口和A/D转换器) 等。由于它的结构与指令功能同步,也经历了四个阶段:第一阶段(1971 一1974年),主要是美国Intel 公司从早先的第一台MCS一4微型计算机, 到后来功能较强的8位微处理器Inte18o08和Fairchild公司的FS微处理 器。这些微处理器虽说还不是单片机,但从此拉开了研制单片机的序幕。 第二阶段(1974一1978)初级单片机阶段,以Intel公司的MCS一48为代表。 这个系列的单片机内集成有8位CPU,并行I/0 口,8位定时器/计数器, 寻址范围不大于4K,且无串行口。第三阶段(1978一1983) 高性能单片机 阶段。在这一阶段的单片机普遍带有串行口,有多级中断处理系统,16 位定时器/计数器。片内ROM,R乃初容量加大,且寻址范围可达64K字节,
11
河南理工大学毕业设计(论文)说明书
有的片内还带有A/D转换器接口。这类单片机有INTEL公司的MCS一51, MOTOROLA公司的6801和ZILOG公司的28等。其中MCS一51系列产品,由于 其优良的性能价格比,特别适合我国的国情,MCS一51系列单片机有可能 稳定相当一段时期。现在,国内的MCS一51热正在升温,随着我国经济建 设步伐的加大,MCS一51系列单片机必将在各个领域大显身手。第四阶段 (1983一现在),8位单片机巩固发展及16位单片机推出阶段。此阶段主要 特征是一方面发展16位单片机及专用单片机:另一方面不断完善高档8位 单片机,改善其结构,以满足不同用户的需要。 MCS一5王系列属高档单片机,近年来,工NTEL公司在提高该系列产 品性能方面作了不少工作,相继推出了不少新产品:8052/8752/8032、低 功耗的CHMOS工艺芯片SOC51/87C51/80C31、具有高级语言编程的芯片 8052AH一BASIC、高性能的C252系列等。在本次设计中我们采用了MCS一 51系列中的89C51来完成产品种的CPU的功能。 在单片机的应用领域中按照单片机的特点,单片机可分为单机引用 和多机应用。单机应用领域有:测控系统、智能仪表、机电一体化产品、 智能接口等。多机应用领域有:功能集散系统、并行多机控制系统、局部 网络系统等。我们所设计的太阳能供热控制系统属于单机应用领域的测 控系统,即利用单片机完成对温度的采集、比较、控制等功能。
2.2 关于单片机的一些基本概
随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中, 单片机

的内容比较抽象,相对已熟悉的模拟电路、数字电路,单片机中 有一些新的概念必须要理解,下面就对这些最基本概念作一说明。 一、总线:一个电路总是由元器件通过电线连接而成的,在模拟电 路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件 之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心, 各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就 需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器
12
河南理工大学毕业设计(论文)说明书
件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线 的概念,各个器件共同享用连线,所有器件的 8 根数据线全部接到 8 根 公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两 个器件同时送出数据,一个为 0,一个为 1,那么,接收方接收到的究竟 是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件 分时工作, 任何时候只能有一个器件发送数据 (能有多个器件同时接收) 。 器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。 在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元 要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的, 由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为 地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者 的本质都是一样的──数字,或者说都是一串‘0’和‘1’组成的序列。 换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的 一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不能 由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、 输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更 改,外部的单元能由单片机开发者自行决定,但有一些地址单元是一定 要有的。数据:这是由微处理机处理的对象,在各种不一样的应用电路 中各不相同,一般而言,被处理的数据可能有这么几种情况: 1·地址(如 MOV DPTR,#1000H),即地址 1000H 送入 DPTR。 2·方式字或控制字(如 MOV TMOD,#3),3 即是控制字。 3·常数(如 MOV TH0,#10H)10H 即定时常数。 4·实际输出值(如 P1 口接彩灯,要灯全亮,则执行指令:MOV P1, #0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里 0FFH 和 00H 都是 实际输出值。 三、P0 口、P2 口和 P3 的第二功能使用办法,各端口的第二功能完全 是自动的,不

需要用指令来转换。如 P3.6、P3.7 分别是 WR、RD 信号,
13
河南理工大学毕业设计(论文)说明书
当微片理机外接 RAM 或有外部 I/O 口时,它们被用作第二功能,不能作 为通用 I/O 口使用,只要一微处理机一执行到 MOVX 指令,就会有对应的 信号从 P3.6 或 P3.7 送出,不需要事先用指令说明。事实上‘不能作为 通用 I/O 口使用’也并不是‘不能’而是(使用者)‘不会’将其作为 通用 I/O 口使用。你完全能在指令中按排一条 SETB P3.7 的指令,并且 当单片机执行到这条指令时,也会使 P3.7 变为高电平,但使用者不会这 么去做,因为这常常这会导致系统的崩溃(即死机)。 四、程序的执行过程 单片机在通电复位后 8051 内的程序计数器 (PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也 就是说: 在系统的 ROM 中一定要存在‘0000’这个单元, 并且在‘0000’ 单元中存放的一定是一条指令。 五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有 任何特殊之处,就是内部 RAM 的一部份,特殊的是它存放和取用数据的 方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输 指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈 指针 SP,每当执一次 PUSH 指令时,SP 就(在原来值的基础上)自动加 1, 每当执行一次 POP 指令,SP 就(在原来值的基础上)自动减 1。由于 SP 中的值能用指令加以改变,所以只要在程序开始阶段更改了 SP 的值,就 能把堆栈设置在规定的内存单元中,如在程序开始时,用一条 MOV SP, #5FH 指令,就时把堆栈设置在从内存单元 60H 开始的单元中。一般程序 的开头总有这么一条设置堆栈指针的指令,因为开机时,SP 的初始值为 07H, 这样就使堆栈从 08H 单元开始往后, 08H 到 1FH 这个区域正是 8031 而 的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。 当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是能象 普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存 用了。 六、 单片机的开发过程 这里所说的开发过程并不是一般书中所说的 从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的
14
河南理工大学毕业设计(论文)说明书
工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、 地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计 好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也 就被确定了。然后用文本编缉器(如 EDIT、CCED 等)编

写软件,编写好 后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简 单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。 运行正确后,就能写片(将程序固化在 EPROM 中)。在源程序被编译后, 生成了扩展名为 HEX 的目标文件,一般编程器能够识别这种格式的文件, 只要将此文件调入即可写片。 七、仿真、仿真机 仿真是单片机开发过程中非常重要的一个环节, 除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主 要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一 块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电 路,仿真就是利用仿真机来代替应用电路板(称目标机)的单片机部份, 对应用电路部份进行测试、调试。仿真有 CPU 仿真和 ROM 仿真两种,所 谓 CPU 仿真是指用仿真机代替目标机的 CPU, 由仿真机向目标机的应用电 路部份供给各种信号、数据,进行调试的办法。这种仿真能通过单步运 行、连续运行等多种办法来运行程序,并能观察到单片机内部的变化, 便于改正程序中的错误。 所谓 ROM 仿真, 就是用仿真机代替目标机的 ROM, 目标机的 CPU 工作时,从仿真机中读取程序,并执行。这种仿真其实就 是将仿真机当成一片 EPROM,只是省去了擦片、写片的麻烦,并没有多少 调试手段可言。常常这是二种不一样类型的仿真机,也就是说,一台仿 真机不能既做 CPU 仿真,又做 ROM 仿真。可能的情况下,当然以 CPU 仿 真好。
2.3 2.3 芯片简介
2.3.1 MSC-51 芯片简介
MCS-51 单片机内部结构
15
河南理工大学毕业设计(论文)说明书
89C51 是 MCS-51 系列单片机的典型产品,我们以这一代表性的机型 进行系统的讲解。 89C51 单片机包含中央处理器、程序存储器(ROM)、数据存储器 (RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数 据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器: 中央处理器(CPU)是整个单片机的核心部件, 8 位数据宽度的处理 是 器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元 系统协调的工作,完成运算和控制输入输出功能等操作。 ·数据存储器(RAM) 89C51 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单 元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户 只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图 2-3-1 89C51 内部结构
·程

序存储器(ROM): 89C51 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或 表格。89C51 ·定时/计数器(ROM): 89C51 有两个 16 位的可编程定时/计数器,以实现定时或计数产生
16
河南理工大学毕业设计(论文)说明书
中断用于控制程序转向。 ·并行输入输出(I/O)口: 89C51 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的 传输。 ·全双工串行口: 89C51 内置一个全双工串行通信口,用于与其它设备间的串行数据 传送,该串行口既可以用作异步通信收发器,也可以当同步移位器 使用。 ·中断系统: 中断系统: 中断系统 89C51 具备较完善的中断功能,有两个外中断、两个定时/计数器中 断和一个串行中断,可满足不同的控制要求,并具有 2 级的优先级 别选择。 ·时钟电路: 时钟电路: 时钟电路 89C51 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运 行的脉冲时序,但 89C51 单片机需外置振荡电容。 单片机的结构有两种类型, 一种是程序存储器和数据存储器分开的形 式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存 储器与数据存储器合二为一的结构, 即普林斯顿(Princeton)结构。 INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。 下图是 MCS-51 系列单片机的内部结构示意图 2-3-2。
17
河南理工大学毕业设计(论文)说明书
图 2-3-2 MCS-51 系列单片机的内部结构示意图
2.3.2 MCS-51 的引脚说明:
MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双 列直接 DIP 结构,右图是它们的引脚配置,40 个引脚中,正电源和地线 两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口 线与 P3 口线复用。现在我们对这些引脚的功能加以说明:如图 2-3-3 Pin9:RESET/Vpd 复位信号复用脚,当 89C51 通电,时钟电路开始工作, 在 RESET 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初 始化后,程序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈 指针写入 07H,其它专用寄存器被清“0”。RESET 由高电平下降为低电 平后,系统即从 0000H 地址开始执行程序。然而,初始复位不改变 RAM (包括工作寄存器 R0-R7)的状态,89C51 的初始态。 89C51 的复位方式可以是自动复位,也可以是手动复位。此外,
18
河南理工大学毕业设计(论文)说明书
RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可接上备用电源,以保证单 片机内部 RAM 的数据不丢失。 ·Pin30:ALE/ 当访问外部程序器时, ALE(地址锁存)的输出用于锁
存地址的低位

字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟 频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当 作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE 会跳 过一个脉冲。 如果单片机是 EPROM,在编程其间, ·Pin29: 将用于输入编程脉冲。
当访问外部程序存储器时,此脚输出负脉冲选通信号,
PC 的 16 位地址数据将出现在 P0 和 P2 口上, 外部程序存储器则把指令数 据放到 P0 口上,由 CPU 读入并执行。 ·Pin31:EA/Vpp 程序存储器的内外部选通线,8051 和 8751 单片机, 内置有 4kB 的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读 取内部程序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然, 对内部无程序存储器的 8031,EA 端必须接地。 在编程时,EA/Vpp 脚还需加上 21V 的编程电压。
19
河南理工大学毕业设计(论文)说明书
图 2-3-3 AT89C51 引脚分布图
20
河南理工大学毕业设计(论文)说明书
3 传感器的特点及应用
3.1 温度传感器及其应用
温度传感器是通过物体随温度变化而改变某种特性来间接测量的。 不少材料、元件的特性都随温度的变化而变化,所以能做温度传感器的 材料相当多。温度传感器防温度变化而引起物理参数变化的有:膨胀、电 阻、电容、热电动势、磁性能七频率、光学特性及热噪声等等。随着生 产的发展,新型温度传感器还会不断地涌现。 由于工业生产中温度测量的范围极宽,从零下几百度到零上几千度, 而各种材料做成的温度传感器只能在一定的温度范围内使用。常用的测 温传感器的种类与测温范围如表2一2所示。温度传感器与被测介质的接 触方式分为两大类:接触式与非接触式。接触式温度传感器需要与被测介 质保持热接触,使两者进行充分的热交换而达到同一温度。这一类传感 器主要有电阻式、热电偶、PN结温度传感器等。非接触式温度传感器无 需与被测介质接触而是通过被测介质的热辐射或对流传到温度传感器, 以达到测温的目的。
3.2 3.2 数字温度传感器 DS18B20
数字温度传感器 DS18B20 其外形如小功率三极管。 因每一个 DS18B20 都有一个自己特有的 64 位芯片 ID 序列号,可以在一条信号线上挂接任 意多个数字式传感器。表 1 为分辨率 0.0625°C 时温度/数字量关系表。 2.1DS18B20 特点 (1)独有的 1-Wire 接口,只需一个端口管脚进行通信; (2)可简单构成分布式多分支温度测量应用系统; (3)不需要任何外围元件; (4)可通过数据线进行寄生电源供电

; (5)测温范围为-55~+125℃; (6)测量精度在-10~+85℃测温范围内时为 0.5℃;
21
河南理工大学毕业设计(论文)说明书
(7)可编程 9~12 位数字温度计,相应分辨率为 0.5~0.0625°C,最 大转换时间分别为 93.75ms 与 750ms; (8)用户可定义非易失性温度报警设置及识别。 2.2DS18B20 的工作时序与命令 DS18B20 采用严格的单总线通信协议,以保证数据的完整性。该协议 定义了几种信号类型:复位脉冲、应答脉冲、读/写0和读/写1。所有 这些信号,除了应答脉冲以外,都由主机发出同步信号。命令和数据都 是字节的低位在前。单总线系统中主设备首先对 DS18B20 进行初始化, 以确认总线上有 DS18B20 在线并做好了操作的准备,再可执行 ROM 功能 命令,然后方可执行存储器功能命令以进行启动温度转换及存储器操作 等控制功能。初始化时序中,主机先通过拉低总线至少 480μs,产生复 位脉冲信号(Tx),接着主机释放总线,并进入接收模式(Rx),上拉 电阻将单总线拉高; 之后, 在单总线器件检测到上升沿后, 延时 15~60μs, 接着通过拉低总线 60~240μs,以产生在线应答脉冲。
22
河南理工大学毕业设计(论文)说明书
DSl8B20 的 ROM 功能命令如表 2 所示。 DSl8B20 的存储器功能命令如表 3 所示。
23
河南理工大学毕业设计(论文)说明书
4 系统硬件结构与工作原理
系统由硬件和软件两部分组成:系统的硬件:1)温度传感及控制电 路;2)水位传感及控制电路;3)键盘输入电路;4)液晶显示电路四部分 组成。软件编写主要实现自动监测及控制温度和水位,以及实现建立良 好的人机交互界面。
4.1 4.1 系统硬件结构
AT89C51 单片机共有内共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用 于对外部数据的传输。在控制器中各个端口的工作分配如下: P0口接RESPACK-8排阻,P1.0-P1.3接四位数码管,P2口接键盘,用于水 位开关控制阀,P3.7接DS18B20温度传感器,P3.5和P3.6接蜂鸣器。 图4-1-1为89C51单片机管脚分布图。 图4-1-2为系统结构示意图。 图4-1-3 为系统与太阳能热水器配合的工作示意图。
图4-1-1
89C51 管脚分布
24
河南理工大学毕业设计(论文)说明书
图4-1-2系统结构示意图
图4-1-3控制系统的工作示意图
电加热、 4. 2 电加热、电磁阀控制电路
对电磁阀以及电加热的控制,由于是通过微信号控制大电流,大功 率,所以必须在开关和单片机之间进行很好的隔离,以免大电流信号影
25
河南理工大学毕业设计(论文)说明书
响单片机正常工作。
4.2.1 光电耦合器
光电耦合器是一种以光为媒介来传输电信

号的光电器件,通常是由 发光器件(可见光LED或红外LED)和受光器(光电半导体管)封装在同一管 壳内组成。当输入端加上电信号时,发光器便发出光线,受光器因受到 光照而产生光电流,并从输出端输出,这即实现了“电一光一电”的转 换。光电耦合器可以耦合从零到几百千赫兹的信号。并且响应速度快, 失真小, 电气隔离性能优良。 它的输入端与输出端之间的绝缘电阻达10'” 一10124 ,绝缘电压为1000-500V,其分布电容只有几个pF。光电偶合起 的发光器属于电流驱动器件,具有抗干扰能力强,共模抑制比高,不受 磁场影响,不需磁屏蔽的优点。 光电耦合器的种类很多,有二极管型、达林顿型、低通导型、双向 对称型、高速型等十几种。其中,三极管型光电耦合器的电流传输比较 小,若要得到较大的电流传输比可选用达林顿型(复合管型)光电耦合器; 若采用光电耦合器在电路中作为开关用,要求其饱和压降低,可选用低 通导光电耦合器:在高压电子线路中,如在高压稳压电路中,取样放大管 的信号经过光电耦合器耦合到调整管,就要求光电耦合器输出边与输入 边之间有很高的耐压,此时应选用高压型光电藕合器。
4.2.2 双向可控硅
双向可控硅也称双向晶闸管(TRIAL)。它是在单向晶闸管的基础上发 展而成的新型器件。单向晶闸管实质是一种直流控制器件,而双向晶闸 管是一种理想的交流开关器件。双向可控硅属于一种NPNPN五层器件,有 三个极,分别为G,T1和T2。G称为门极,T1和T2称为主端子。 双向晶闸管的伏安特性如图4-2-2所示。性能良好的双向晶闸管,其 正、反向特性曲线具有很好的对称性。并且其触发电流小,通态平均电 流大,作电压高,也是理想的交流开关器件。
26
河南理工大学毕业设计(论文)说明书
图4-2-2 双向晶闸管的伏安特性
4.2.3 电加热、电磁阀控制电路
控制系统最终要控制交流电路,为隔离强电对弱电部分的影响,采 用了光藕MOC3020及双向可控硅BTA20和BTA04(电磁阀用BTA04,电加热用 BTA20)作为中间继电器,充当交流控制开关。光电隔离和TR工AC驱动部 分电路如图4-3-1所示。电阻R1限制流经MOC3020输出端的电流。与双向 晶闸管并联的RC回路用于降低双向晶闸管的冲击电压,保护双向晶闸管 及MOC3020o
图4-2-1电磁阀、电加热开关控制电路
27
河南理工大学毕业设计(论文)说明书
4.3 温度监测与控制电路及其工作原理
4.3.1 基本工作原理电路
如图4-3-1所示为测温模块电路图
图4-3-1 测温模块电路图
4.3.2 源程序
源程序如下 #include //#include code unsigned char seg7code[11]={0x3f,0x06,

0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //显示段码 sbit jian0=P2^4; sbit jian1=P2^5;
28
河南理工大学毕业设计(论文)说明书
sbit jian2=P2^6; sbit jian3=P2^7; unsigned int sdata; unsigned char xiaoshu1; unsigned char xiaoshu2; unsigned char xiaoshu; bit fg=1; //测量到的温度的整数部分 //小数第一位 //小数第二位 //两位小数 //温度正负标志
unsigned char button; //最近一次被按下的建 unsigned int temp; //温度设定值
void Delay(unsigned int tc) {while( tc != 0 ) {unsigned int i; for(i=0; i<100; i++); tc--;} } void Led() { if(fg==1) { P1=P1&0xfe; P0=seg7code[sdata/10]; Delay(5); P1=P1|0x0f; P1=P1&0xfd;
//显示延时程序
//温度为正时显示的数据
//输出十位数
P0=seg7code[sdata%10]|0x80; //输出个位和小数点 Delay(5); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[xiaoshu1]; //输出小数点后第一位
Delay(5); P1=P1|0x0f; P1=P1&0xf7;
29
河南理工大学毕业设计(论文)说明书
P0=seg7code[xiaoshu2]; Delay(4); P1=P1|0x0f; } if(fg==0) { P1=P1&0xfe; P0=seg7code[10];
//输出小数点后第二位
//温度为负时显示的数据
//负号
Delay(5); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[sdata/10]; //输出十位数 Delay(5); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[sdata%10]|0x80; //输出个位和小数点
Delay(5); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[xiaoshu1]; Delay(4); P1=P1|0x0f; } } void key() { unsigned char temp; unsigned int i,j; P2=0xff; //P2^4=0; jian0=0; temp=P2; temp=temp & 0x0f; if (temp!=0x0f) { for(i=60;i>0;i--)
30
//输出小数点后第一位
河南理工大学毕业设计(论文)说明书
for(j=200;j>0;j--); temp=P2; temp=temp & 0x0f; if (temp!=0x0f) { temp=P2; temp=temp & ;0x0f switch(temp) { case 0x0e: button=0; break; case 0x0d: button=3; break; case 0x0b: button=6; break; case 0x07: button=9; break; } temp=P2; temp=temp & 0x0f; while(temp!=0x0f) { temp=P2; temp=temp & 0x0f;
31
河南理工大学毕业设计(论文)说明书
} } } P2=0xff; //P2^5=0; jian1=0; temp=P2; temp=temp & 0x0f; if (temp!=0x0f) { for(i=60;i>0;i--) for(j=200;j>0;j--); temp=P2; temp=temp & 0x0f; if (temp!=0x0f) { temp=P2; temp=temp & 0x0f; switch(temp) { case 0x0e: button=1; break; case 0x0d: button=4; break; case 0x0b: button=7;
32
河南理工大学毕业设计(论文)说明书
break; case 0x07: button=10; break; } temp=P2; temp=temp & 0x0f; while(temp!=0x0f) { temp=P2; temp=temp & 0x0f; } } } P2=0xff; //P2^6=0; jian2=0; temp=P2; temp=temp & 0x0f; if (temp!=0x0f) { for(i=60;i>0;i--) for(j=200;j>0;j--); temp=P2; temp=temp & 0x0f; if (temp!=0x0f) { temp=P2;
33
河南理工大学毕业设计(论文)说明书
temp=temp & 0x0f; switch(temp) { case 0x0e: button=2; break; case 0x0d: button=5; break; case 0x0b: button=8; break; case 0x07: button=11; break; } temp=P2; temp=temp & 0x0f; while(temp!=0x0f) { temp=P2; temp=tem

p & 0x0f; } } } } void Set_Temp() {
34
河南理工大学毕业设计(论文)说明书
unsigned int button1=10,button2=10; key(); if(0==button) { P1=P1&0xfe; P0=seg7code[10]; //负号
Delay(8); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[temp/10]; //输出十位数 Delay(8); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[temp%10]|0x80; //输出个位和小数点
Delay(8); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[10]; Delay(4); P1=P1|0x0f; } while(button==10) { while(1) { P1=P1&0xfe; P0=seg7code[10]; //负号 //输出小数点后第一位
Delay(8); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[button1]; //输出十位数 Delay(8); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[button2]|0x80; //输出个位和小数点
Delay(8); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[10]; Delay(4); P1=P1|0x0f; key();
35
//输出小数点后第一位
河南理工大学毕业设计(论文)说明书
if(button!=10) { button2=button1; button1=button; P1=P1&0xfe; P0=seg7code[10]; //负号
Delay(8); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[button1]; //输出十位数 Delay(8); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[button2]|0x80; //输出个位和小数点
Delay(8); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[10]; Delay(4); P1=P1|0x0f; key(); if(button1!=button) { button1=button2; button2=button; P1=P1&0xfe; P0=seg7code[10]; //负号 //输出小数点后第一位
Delay(8); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[button1]; //输出十位数 Delay(8); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[button2]|0x80; //输出个位和小数点
Delay(8); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[10]; Delay(4); P1=P1|0x0f; }
36
//输出小数点后第一位
河南理工大学毕业设计(论文)说明书
} key(); if(11==button) { break; temp=button1*10+button2; } } } } void main() { while(1) { Set_Temp(); Led(); if(xdata>50)/*下水*/ { P3^0=1;/*下水电机*/ P3^1=0;/*上水电机*/ } if(xdata<20)/上水*/ { P3^1=1; P3^0=0; } } }
37
河南理工大学毕业设计(论文)说明书
4.4 水位监测及控制电路及其工作原理
对于水位的检测,由于常规的接触式探头探测方法中存在着容易结 水垢的缺陷,在用户使用一段时间后就会失效,所以我们通过双向流量 计技术来解决这一问题。
4.4.1 霍尔效应及霍尔传感器
双向流量计主要是利用霍尔效应及霍尔传感器来设计和完成的。 所谓霍尔效应,即当半导体上通过电流,并且电流的方向与外界磁 场方向垂直时,在垂直于电流和磁场的方向上产生霍尔电动势。霍尔元 件的工作原理如图4-4-1所示。由图可知,在半导体薄片两端通以控制电 流工,并在薄片的垂直方向上施加感应强度为B的磁场,则在垂直于电流 和磁场方向上将产生电势为V的霍尔电势,如图4-4-1所示。它们之间的 关系为: VH= KHIB (2)
式中KH=RH/d为霍尔灵敏度,其中RH为霍尔常数,d为霍尔片的厚度。

可以 看出,霍尔片的厚度d越小,则VH越大。所以霍尔片都是做成薄片形状。 但过薄时,输出电阻过大,影响输出特性。
图 4-4 -1 霍尔元件的工作原理
同时, 由〔2)知,增大电流I,可以增高霍尔电势,但I值受元件发热的 限制,一般取I=4-20mA,B= 数千高斯,这时得到的VH约为几十mV。可见,
38
河南理工大学毕业设计(论文)说明书
霍尔元件的输出很小。 霍尔元件有很多优点,但实际使用时,霍尔电势中迭加着各种误差 电势,它们破坏了霍尔电势V。与控制电流工和磁场B的关系,因而造成 误差。这些误差电势产生的原因主要有两类:一类是由于制造工艺的缺陷; 另一类是由于半导体本身固有的特性。霍尔元件的误差电势主要有不等 位电势、温差电势、热磁电势等。并且,由于霍尔材料的电阻率、载流 子浓度等都随温度变化,所以霍尔元件对温度变化特别敏感。 霍尔传感器是在霍尔元件的基础上发展而来的一种电子器件。它将 霍尔元件与放大器、温度补偿电路及稳压电源做在一个芯片上,因而能 产生较大的电动势,克服了霍尔元件输出电动势小的不足。图4-4-2和图 4-4-3分别是线性型霍尔传感器的内部组成框图和其磁场强度与输出电 压的关系。
图4-4-2 线性型霍尔传感器内部组成框图
39
河南理工大学毕业设计(论文)说明书
图4-4-3磁场强度与输出电压的关系
4.4.2 霍尔流量计的工作原理
霍尔传感器具有灵敏度高、可靠性好、无触点、低功耗、寿命长等 特点,很适合在自动控制、仪器仪表及测量物理量的传感器中使用。测 量时 , 选择在非磁性材料的圆盘上粘一块磁钢,霍尔传感器固定在圆 盘的旁边,圆盘旋转一周,霍尔传感器就输出一个脉冲,对此脉冲进行 监测 。一次脉冲记一次数(转子转了一转),经过实验,可以确定每转代 表的水流量,这样,把检测到的脉冲数乘以单位转的流量就是当前总的 水流量。由于霍尔传感器只能输出一个脉冲信号,而不能判断现在转子 到底是正转(进水),还是反转(出水),所以必须用电磁阀的状态加以确 定,若电磁阀处于打开状态时收到了脉冲,则表示正在进水;若电磁阀处 于闭合状态时收到了脉冲,则表示正在出水。 测量原理如图4-4-4所示。
40
河南理工大学毕业设计(论文)说明书
图4-4-4测转速示意图
4.4.3 测水量软件流程
测水量软件流程图如图4-4-5示。
图4-4-5测水量流程图
4.5 4.5 显示控制及其实现程序
液晶显示器(LCD)由于体积小、质量轻、功耗微等特点。已成为各种 当代高新技术产业、信息产业中最重要的信息处理手段之一。

41
河南理工大学毕业设计(论文)说明书
4.5.1 液晶显示器的特点、分类及其他
一 、液晶显示器的特点 1) 低压微功耗。工作电压是3-5v,每平方厘米液晶显示屏工作电流只有 几个u A. 2) 平板型结构。液晶显示器的基本结构是由两片玻璃组成的很薄的盒 子。这种结构的优点是,一使用上方便,二是工艺上适于大批量生产 。 3) 寿命长。器件本身几乎没有什么劣化问题。 4) 被动显示。环境光线越强,显示内容越清晰。人眼所感受的外部信息, 9 0% 以上是外部物体对光的反射,而不是物体本身发光,所以被动显示 更适合人的视觉习惯。 5) 显示信息量大。液晶显示没有荫罩限制,像素可以做得很小。 6) 无电磁辐射。不会产生电磁辐射,对人体是很安全的。 二、 液晶显示器件的分类 按光电效应分类,液晶显示器件可分为电场效应类、电流效应类、 电热写入效应类和热效应类。电场效应类又可分为扭曲向列(TN)类、宾 主效应(GH)类和超扭曲效应(STN)类等等。 液晶显示器件从其显示内容来分类, 可分为字段式 〔或称为笔划式)、 点阵字符式和点阵图形式三种。 液晶显示器件按其采光方式分类,可分为带背光源和不带背光源两 大类。不带背光的LCD是靠背面的反射膜将射入的自然光从下面反射出来 完成的。如果在弱光或黑暗条件下使用,应选择带背光型。 液晶显示器的驱动有两种方式,当显示容量较小时,一般采用静态 驱动;显示容量较大时,采用多路扫描,或称动态驱动。 三、液晶显示器件使用注意事项 1) 防止施加直流电。驱动电压直流成分越小越好,最好不要超过 50mA,长时间施加过大的直流成分会使电极产生电化学反应而老化。 2) 防止加压过大。 液晶是由两片玻璃做成的液晶盒, 之间仅5-loum> 而玻璃内表面还涂有一层定向层,很易被破坏。
42
河南理工大学毕业设计(论文)说明书
3)防止受潮。由于LCD是低压、微功耗的,液晶材料电阻率极高。 所以由于潮湿造成的玻璃表面导电就足以影响显示。严防静电。由于LCD 工作电压极低,内阻很大,静电会导致串扰现象 。
4.5.2 液晶显示器与单片机接口电路
液晶显示器件与其控制器件、驱动电路是紧密相关的,显示器必须 通过控制器、驱动器才能实现显示。图形液晶显示模块的应用,实际上 就是其配套的控制电路的应用。 二、 液晶显示控制器与89C51的接口电路 在内藏控制器的液晶显示模块中,己经完成了控制器与液晶显示驱 动器显示缓冲区的接日工作, 图4-5-1则是液晶显示模块与89C51的接口电 路。
图4-5-1液晶显示模块与89C51的接口电路
由于在学校实物

设计的局限性,实际采用数码管焊电路。电路图如 下图4-5-2所示。
43
河南理工大学毕业设计(论文)说明书
图4-5-2 数码管与89C51的接口电路
4.6 键盘接口电路及其编程
4.6.1 键盘接口方式
P2.0-P2.4 接按键,用于对热水器的温度和水位控制。
44
河南理工大学毕业设计(论文)说明书
4.6.2 键盘接口电路
图 4-6-1 键盘接口电路图
4.6.3 键盘编程
源程序如下: /*键盘扫描模块*/ unsigned char button=6; //最近一次被按下的建 sbit HOTUP=P2^0;
45
//加热键
河南理工大学毕业设计(论文)说明书
sbit WATER=P2^1; sbit SETTEMP=P2^2; sbit TEMPADD=P2^3; sbit TEMPSUB=P2^4; void key() { Delay(100); if(HOTUP==0)button=1; if(WATER==0)button=2; if(SETTEMP==0)button=3; if(TEMPADD==0)button=4; if(TEMPSUB==0)button=5; }
//加水键 //设置温度键 //温度增加 //温度减小
4.7 总模块电路及其编程
4.7.1 总模块电路图
总模块电路图如下如图 4-7-1:
46
河南理工大学毕业设计(论文)说明书
图4-7-1太阳能热水器总模块电路图
4.7.2 源程序
源程序如下: #include code unsigned char seg7code[11]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xbf}; //显示段码 ////////////////////////////////////////////////////////////// /*测水位模块*/ sbit waterfull=P3^0; sbit water30=P3^1; //水满 //30L水位
////////////////////////////////////////////////////////////// /*测温模块*/ sbit TMDAT = P3^7; //DS18B20的数据输入/输出脚DQ unsigned int sdata; unsigned char xiaoshu1; unsigned char xiaoshu2; unsigned char xiaoshu; bit fg=1; //测量到的温度的整数部分 //小数第一位 //小数第二位 //两位小数 //温度正负标志 //延时程序
void Delay(unsigned int tc) {while( tc != 0 ) {unsigned int i; for(i=0; i<100; i++); tc--;} }
void Delay2(unsigned int useconds) { for(;useconds>0;useconds--);
47
// 延时
河南理工大学毕业设计(论文)说明书
} // // // unsigned char { unsigned char TMDAT = 0; Delay2(45); TMDAT = 1; Delay2(3); presence = TMDAT; Delay2(25); return(presence); // 0=presence, 1 = no part } unsigned char { unsigned char unsigned char i; value = 0; read_byte(void) presence; // pull DQ line low // leave it low for 480us // allow line to return high // wait for presence // get presence signal // wait for end of timeslot // presence signal returned 初始化ds1820 返回1 ds1820存在 0 ds1820不存在 ow_reset(void) //ds18b20复位
for (i=8;i>0;i--) { value>>=1; TMDAT = 0; start timeslot TMDAT = 1; high Delay2(1);
48
// pull DQ low to
// then return
河南理工大学毕业设计(论文)说明书
if(TMDAT)value|=0x80; Delay2(6); of timeslot } return(value); } void write_byte(unsigned char val) { unsigned char i; for (i=8; i>0; i--) at

a time { TMDAT = 0; start timeslot TMDAT = val&0x01; Delay2(5); remainder of timeslot TMDAT = 1; val=val/2; } Delay2(5); } // hold value for // pull DQ low to // writes byte, one bit // wait for rest
void tmstart(void) { ow_reset(); Delay(2); //复位 //延时
//发送ds1820 开始转换
write_byte(0xcc);
//跳过序列号命令
49
河南理工大学毕业设计(论文)说明书
write_byte(0x44); }
//发转换命令 44H,
//********温度存在全局变量 sdata中.小数存在xiaoshu中******** void tmrtemp(void) { unsigned char a,b; ow_reset(); Delay(2); //复位 //延时 //跳过序列号命令 //发送读取命令 //读取温度
write_byte(0xcc); write_byte(0xbe); //a = 0x03; a = read_byte(); //b = 0x0a; b = read_byte(); fg=1; if(b>0x7f) { //a=~a;
//读取低位温度
//读取高位温度
//最高位为1时温度是负
//补码转换,取反加一
if(a==0x00)//修改程序,把补码转换成为源码 b=b-1; a=a-1; a=~a; b=~b; //b=~b+1; fg=0; } sdata = a/16+b*16; //整数部分 //读取温度为负时fg=0
xiaoshu1 = (a&0x0f)*10/16; //小数第一位
50
河南理工大学毕业设计(论文)说明书
xiaoshu2 = (a&0x0f)*100/16%10;//小数第二位 xiaoshu = xiaoshu1*10+xiaoshu2; //小数两位 } void Read_Temp(void) { tmstart(); Delay(5); tmrtemp(); } //如果是不断地读取的话可以不延时 // //读取温度,执行完毕温度将存于TMP中 // /*测温模块*/
////////////////////////////////////////////////////////////// /*显示模块*/ void Led() {int i; Delay(400); for(i=0;i<3;i++) { if(fg==1) { P1=P1&0xfe; P0=seg7code[sdata/10]; Delay(5); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[sdata%10]&0x7f; //输出个位和小数点 Delay(5); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[xiaoshu1]; //输出小数点后第一位 //输出十位数 //温度为正时显示的数据
Delay(5); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[xiaoshu2]; Delay(4); P1=P1|0x0f; }
51
//输出小数点后第二位
河南理工大学毕业设计(论文)说明书
if(fg==0) {
//温度为负时显示的数据
P1=P1&0xfe; P0=seg7code[10]; //负号
Delay(5); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[sdata/10]; //输出十位数 Delay(5); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[sdata%10]&0x7f; //输出个位和小数点
Delay(5); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[xiaoshu1]; Delay(4); P1=P1|0x0f; } } Delay(400);//显示水位 for(i=0;i<3;i++) { if(water30!=0&waterfull!=0)//水位低于30L显示030{ P1=P1&0xfe; P0=seg7code[0]; //0 //输出小数点后第一位
Delay(5); P1=P1|0x0f; P1=P1&0xfd; P0=seg7code[3]&0x7f; //3 Delay(5); P1=P1|0x0f; P1=P1&0xfb; P0=seg7code[0]; //0
Delay(5); P1=P1|0x0f; P1=P1&0xf7; P0=seg7code[10]; Delay(4); P1=P1|0x0f; }
52
//-
河南理工大学毕业设计(论文)说明书
if(water30==0&waterfull!=0)//水位超过30L但是没满显示030+ { P1=P1&0xfe; P0=seg7code[0]; //0
Delay(

相关文档
最新文档