基于单片机太阳能热水器控制系统的设计_第1页
基于单片机太阳能热水器控制系统的设计_第2页
基于单片机太阳能热水器控制系统的设计_第3页
基于单片机太阳能热水器控制系统的设计_第4页
基于单片机太阳能热水器控制系统的设计_第5页
免费预览已结束,剩余45页可下载查看

下载本文档

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

文档简介

题 目:基于单片机太阳能热水器控制系统的设计专 业:自动化45毕业论文基于单片机太阳能热水器控制系统的设计摘要今天,环境问题、能源问题日益突出,给我们的生活带来了极大的压力。尽管这些年新兴能源已经得到了很好的发展,但是依旧还是无法解决日趋严峻的能源压力。由于不可再生资源的逐渐减少我们很自然会把目光对准一些可再生资源,这里就不得不提到太阳能,太阳能对我们目前而言可谓是一种取之不尽用之不竭的宝藏,然而由于我们目前的科学技术手段还不能充分的利用太阳能。在本设计中我会给大家介绍一种目前已经算是比较成熟的太阳能应用技术,他就是太阳能热水器。太阳能热水器以其诸多的优点受到人们的欢迎。 本文结合实际太阳能热水器的具体应用,通过软硬件设计,实现以51系列单片机为核心器件,扩展外围接口电路,如键盘与显示等。实现按设定时间自动上水、手动上水以及上水期间有音量提示;阴冷天按照设定温度要求可自动加热等功能。关键词:单片机;太阳能;热水器毕业论文Solar energy water heater based on MCU controller designAbstractAbstract: Today, environmental issues, energy issues have become increasingly prominent, to give our lives has brought great pressure. Although these years emerging energy already obtained the very good development, but still can not solve the increasingly serious energy pressure. As a result of non-renewable resources are gradually reduced naturally we will focus on some renewable resource, it will have to solar energy, solar energy to our current character it may be said is an inexhaustible inexhaustible treasure, however due to our current scientific and technical hand paragraph was not very good use of its ten one or two. In this design I will give you a present is already relatively mature solar energy application technology, he is the solar water heater.the solar energy water heater with its many advantages is welcome of people.Through the software and hardware design, realization to 51 series microcontroller as the core device, peripheral expansion interface circuit, such as the keyboard and display. According to the set time realize automatic sheung shui, manual sheung shui and sheung shui during the volume tip; Cold day temperature can be set according to requirements heating etc. Function. Keywords: SCM, Solar energy water heater .目录第一章 前言11.1 太阳能热水器的发展概况及市场竞争分析11.2 太阳能热水器的应用及意义2第二章 设计思路及仿真软件32.1 方案设计32.2 关于Proteus3第三章 太阳能热水器控制系统硬件设计93.1 各单元模块功能及设计93.2 基于AT89C51单片机及其外围电路单元93.3 水位检测和温度检测接口电路113.3.1 上水及排空控制电路和辅助加热电路133.3.2 4X4矩阵键盘设计143.3.3 显示接口电路的设计173.4 特殊元件介绍193.4.1 AT89C51芯片193.4.2 温度传感器DS18B20263.4.3 74LS164简介29第四章 控制系统的软件设计314.1 主程序设计314.2 LED显示子程序314.3 键盘中断子程序32参考文献.34附录1.36毕业论文第一章 前言1.1 太阳能热水器的发展概况及市场竞争分析目前,我国已经成为全球最大的太阳能热水器生产销售国家之一,年产量几乎是全世界所有的国家生产量之和,已经有100多家生产太阳能热水器的厂家遍布全国各地。 但是最为核心的控制系统我们目前却还是一直处在研究与开发的初级阶段,这是个很尴尬的事情。我们的控制系统只是简单有一些显示温度和显示液位的功能,而并没有很强的温度控制功能,不能满足需要,因为当遇到各种由光照条件不足的情况下,我们的用户使用起来就非常的不方便;即便是一些有辅助加热功能的热水器,也由于不能很好的控制加热温度加热时间等而产生各种问题,由此大大的浪费了能源。 本设计将重点解决这一问题,这款控制系统我们以AT89C51 这一十分常用的单片机作为我们检测控制的核心元件, 不但可以很好的实现对时间、 温度和水位所有系统参数实时显示和控制,还可以根据用户需要自行实现时间、温度的设定以及控制等强大功能。对于大滞后参数温度我们采用采用模糊控制,这样控制系统就可以根据当地天气状况的实时条件应用系统的辅助加热装置实现在预定时间加热蓄水箱内水的水达到用户预先设定的温度,这样就实现了24小时内都有热水供应的用户需求。目前,太阳能热水器是我们已知的最为常见,最为成熟的一种成熟型产品,他有着十分广阔的市场前景和巨大的经济效益, 现在已经得到了十分迅的推广以及应用,太阳能热水器所必须的热能,为我们使用,方便快捷。当今社会发展日新月异, 人们衣食住行生活水平也在不断的提高。 现在市场上用的电热型热水器虽然也应用很广但是应为费用比较昂贵以及他在安全性的局限性远无法和我们绿色低碳的太阳能热水器比。这样的市场背景就极大的方便了阳能热水器壮大和发展。因为太阳能热水器并没有上述缺点,他是绿色低碳环保型产品。这一款热水器他包括主、 从两部分系统: 主系统的最大特点是在光照条件足够的情况下利用阳光能加热;而从系统就是相当于现有的电热水器。在由于光照条件不足的情况下用电加热它在无光照的情况下利用电辅助加热。 它充分利用太阳能的丰富的免费的资源的优势, 同时考虑到在阴天及夜间无法利用太阳能的来满足用户需求。这就很好的解决了现有市场热水器的一些尴尬问题,方便了人们的日常生活。1.2 太阳能热水器的应用及意义我们都知道,可再生资源,太阳能是一种非常环保且储量及其庞大的新型能源。 随着我们现在经济以及科技的发张能源问题已经日益严重,目前我们拥有的传统能源的储量在迅速的减少,而且这一趋势还将日益严重,这就迫使我们尽量开发新能源,而太阳能毫无疑问是一个绝佳的选择,太阳能以其种种优势今后必将成为我们的主要能源。当然太阳能也有其局限性和其自身的劣势,不过随着我们科学技术的进步这些问题都将得到很好的解决目前的一些技术难题终将被攻克。相比较而言,在现有的太阳能技术的利用中,太阳能热水器已经是最为成熟并且已经得到普遍推广使用的成熟型技术。这一技术已经被人们普遍的接受并广泛应用,已经给我们的能源问题缓解了压力,也已经改善了我们日益严重的环境问题,有理由相信在不久的将来他必将得到更好,更长远的发展。我们国家很早就已经开始发展与推广太阳能热水器了,而且也取得了很好的成绩,现在我国已经是全球从推广、应用等最为成熟的国家。这些年涌现出了许多许多有自己特色的而且规模宏大的, 属于我们自己的太阳能企业。我们拥有自己的学术中心,有我们自己的发展技术中心,可以说我们已经形成了一个体系,一个逐步完善与壮大的太阳能发展利用的体系。当然并不是只用我们能看到太阳能的这一巨大优势,全世界各国都在积极的发展这这一新兴能源,并且也取得了一定的成果。我们并不能放松,还需要继续加大力度。第二章 设计思路及仿真软件2.1 方案设计本设计中的太阳能热水器控制系统AT89C51单片机为检测控制中心单元, 不仅可以同时实现对温度以及水位这两种系统参数的实时性的显示功能,而且还可以根据用户需求对时间、温度以及其水位状况实现与设定。该控制系统还能够根据当地实际的太阳光照条件利用辅助加热器即我们通常的电加热器来使蓄水箱里面的水可以达到用户预先设定好的设定温度,这样就可以实现全天候不间断的24小时热水供应。总体设计框图如图2-1 所示。MCS51单片机水箱电源键盘输入辅助加热LED显示报警提示温度传感器电磁阀液位传感器手动排水手动上水图2-1 系统硬件结构框图2.2 关于ProteusProteus这款软件是由英国Labcenter electronics公司出版的一款EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不但用有很多其他的EDA工具软件所拥有的仿真功能,而且这款软件还可以仿真单片机及外围器件,这是其他一些EDA软件所不具有的。它可以说是目前在单片机及其外围器件的仿真工具中是最为方便快捷,而且功能强大的仿真软件。虽然在我国国内的推广起步比较晚,但是这并不影响其深深地被广大的单片机爱好者以及那些长期以来一直在从事单片机这一相关行业的人士,还有那些长期以来一直致力于单片机系统的开发应用的那些科技工作者们他们的青睐与喜爱。他之所以如此广受好评与欢迎与其自身的强大功能密不可分。不论是原理布图亦或者是单片机其他外围电路的一些协同仿真以及必不可少的代码调试,Proteus是十分的完整与快捷,它还可以非常方便的一键切换到PCB的设计当中,从真正意义上实现了把电路仿真软件、PCB设计软件和模拟模型仿真软件这三款软件三合为一的强大的设计平台。它的处理器模型可以说是支持目前市场上几乎所有常见的那些单片机。更为优越的是他在编译方面,也同样强大支持了常见的多种编译器。 Proteus软件具有原理布图、PCB自动或人工布线及SPICE仿真这些其它EDA工具软件(例:multisim)的功能。并且有自身的突出特点:用户完全能够实时的使用像RAM,ROM,键盘,马达等等这些器件,实现我们设计的电路的互动仿真;可以仿真市场常见的主流51单片机 甚至可以在根据我们自己的原理图实现原理图的虚拟原型上编程,然后再配合适当的显示器进行输出,这样我们就完全可以看到在其必须要运行以后才能看到的输入输出的效果。在配合系统自身配置的虚拟逻辑分析仪、示波器等,Proteus就建立了一个十分完善的功能强大的电子产品的设计与开发的环境。 (1)智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件; 支持智能器件搜索:通过模糊搜索可以方便快捷的找到我们要找的器件;支持智能连线;支持总线结构:非常方便清晰的简化我们的设计中的复杂的线路;支持高质量图纸的输出。 (2)完善的电路仿真功能(Prospice)ProSPICE混合仿真;超过27000个仿真器件还可以自行设计我们需要的仿真器件,Labcenter也在不断地发布这各种新的仿真器件,他还可以导入第三方发布的仿真器件以供我们的方便使用; 多样的激励源;各种虚拟仪器:有13种虚拟仪器,操作效果十分清晰逼真;仿真显示:它的引脚的数字电平是用不同颜色的色点来显示,而且导线以不同颜色还可以表示其对地电压大小,结合各种我们所需的动态器件(如电机、显示器件、按钮)的使用那就使得我们的仿真效果更加清晰直观;高级图形仿真功能(ASF);(3)独特的单片机协同仿真功能(VSM)支持主流的CPU类型,而且CPU类型将会随着版的本升级继续不断的增加,如即将支持CORTEX、DSP处理器; 支持通用外设模型,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通讯; 实时仿真:支持几乎所有的主流仿真; 编译及其调试:支持单片机中最为原始普遍的汇编语言仿真,其内部本身就带有8051等的汇编编译器,还可以与我们熟悉的IAR,KEIL其他第三方集成编译环境(如IAR、Keil和Hitech)相互结合,进行高级语言像C语言,C+等的源码级仿真以及调试的工作; (4)实用的PCB设计平台原理图到PCB的快速通道: 当我们把自己的原理图设计好后,我们非常方便的就可以一键可进入ARES的PCB设计环境,这样我们就能够完美的实现各个产品的概念及实际产品的设计; 强大的布线功能:无需我们自己动手不仅支持自动布局还支持器件自动布线;支持各个不同引脚之间的交换或者不同门之间的交换,这样就使的PCB的设计更加的合理更清晰; PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览; Proteus有着丰富的资源:1Proteus给我们提供了的元器件资源十分丰富,有超过三十个可供我们选择的元件库,除此之外更有远超过几千种的丰富元件来支持我们设计中的不同选择数字模拟,交流直流可谓是应有尽有,给我们的设计带来了极大的方便。 2Proteus可提供的各种仿真仪表资源 :他不仅给我们提供了丰富的元器件资源同时也提供了各种仪表等仿真元件像十分常见的示波器、逻辑分析仪等等亦或者是像SPI调试器、I2C调试器这些高端的调试器或者各种主流信号发生器,模式发生器;还有所有交直流电压电流等仪表。我们实现了同一仪器可以方便的在同一电路中随便的移动调换使用。 3Proteus还超越我们想像的给我们提供了一个十分强大的功能那就是图形显示功能,我们这样就可以随意的将线路上各种不断变化着的信号,以清晰直观的图形的方式非常直观动感的呈现在我们面前,这一功能咋看和示波器有些相似但是却远远的超过示波器,它的功能更加完善。所有这些虚拟仪器仪表都很完美的具有了我们理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。 4Proteus可提供的调试手段 Proteus在电路的信号测试中拥有这非常丰富的测试信号。所有这些测试信号不但包括了包括模拟信号而且还有数字信号。 电路仿真在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,我们可以在PROTEUS的原理图中非常直观的看到我们所模拟出的那些实际物体的运行状态和过程。 PROTEUS 是单片机课堂教学的先进助手。 PROTEUS不但把一些非常枯燥无聊的单片机实例改变的非常形象,而且还把许多实力运行的过程更加直观的呈现在我们面前,是我们更加容易接受。虽然前者我们可以理解为在一定程度上的实现实物演示所带来的直观实验的效果,可是后者却是我们一般的实物演示实验所非常不容易达到的那种效果效果。 他虽然提供很多新的东西但是它的元器件包括它的连接线路等却和我们以前常见的传统意义的单片机实验硬件还能狗非常好的一一对应。这就是说在某些程度上已经替代了我们传统意义上的那些的单片机实验所能狗带来的教学功能。我们现在的学生为了在将来很好的走向就业,我们就要提高我们的实际动手能力,课程设计或者是毕业设计这就是我们提高我们实际能力的一个十分重要平台或者是环节。在我们院校的实际实验室中资源或许并不能满足我们的需求这时PROTEUS就成为我们最好的选择。 现今科学技术发展十分迅猛,我们改变很多与以往不同的想法,以便能更好的利用科技进步所带来的便捷,“计算机仿真技术”或许以前我们并不熟悉,但是在今天他或许已经是我们必不可少的做产品开发设计的一个强大工具。毫无疑问我们它选择他是因为我们看重其设计灵活,过程趣味化,以及结果更加直观的诸多优点。这样就最大限度的缩短了我们的设计时间,提高了效率,同时也降低了过程中的损耗,甚至很大程度的降低了我们设计中或制造中的风险。我们有理由相信在单片机的外来的开发与应用的过程中PROTEUS也势必将得到更好的推广与发展。 基本操作1、选择元件:P按钮2、选择要使用的元件在Pick Device窗口双击相应元件名称,即可将元件添加到主界面左侧的列表中3、放置元件到绘图区单击列表中的元件,然后在右侧的绘图区单击,即可将元件放置到绘图区。(每单击一次鼠标就绘制一个元件,在绘图区空白处单击右键结束这种状态)4、删除元件右击元件一次表示选中(被选中的元件呈红色),选中后再一次右击则是删除。5、移动元件右击选中,然后用左键拖动。6、旋转元件左下角旋转工具栏7、元件连线在引脚上鼠标指针变成X状,单击,移动到目的引脚,再次单击。8、删除连线同删除元件9、绘制电源和地单击工具栏上的左起第8个工具(Inter-Sheet Terminal),左侧工具栏显示TERMINALS,可在其中选择POWER或GROUND,像放置元件一样放置到绘图区。目前Proteus的最新版为7.10,ARM cortex处理器被增加,在7.9中已经增加DSP系列(TMS320)。第三章 太阳能热水器控制系统硬件设计在本章节中主要解决太阳能热水器硬件各单元模块的功能以及要用到的元件。3.1 各单元模块功能及设计硬件部分主要分为AT89C51 外围电路单元、 水位检测及温度检测电路、 辅助加热电路、键盘输入电路和LED 显示电路。3.2 基于AT89C51单片机及其外围电路单元单片机系统由AT89C51 和一定功能的外围电路组成,包括为单片机提供复位的复位电路,提供单片机工作时所必须的时钟信号的时钟电路,如图3-1所示。在单片机中, RST 引脚时复位信号输入端, 复位信号为高电平时有效, 其有效时间应持续24个振荡周期以上才能完成复位操作。 复位电路极性电容C3 的大小直接影响复位时间, 一般采用10至30uF, 容值越大需要的复位时间越短, 在本设计中, 使用的是约为12MH z的石英晶体振荡器,这时电容C3 的大小选取10uF,R1和 R2的大小分别是200 和 和 1K,这样就能进行可靠的上电复位和手动复位操作,时钟是单片机运行的基础,因此,时钟的速度和稳定性都直接影响单片机的工作。单片机的时钟信号一般来说有常见的两种电路方式:内部振荡方式和外部振荡方式。本设计我们采用其更为常见的内部振荡方式,在其引脚XTAL1 和引脚XTAL2 之间外接一个晶振和微调电C1、C2, 这样与AT89C51单片机本身自带一个高增益的反相放大器就可以顺利的一起来构成常见且很有用的自激振荡器 , 以此来产生振荡时钟脉冲。 C1和C2 的作用主要是用来快速起振以及能够很好的稳定振荡频率,本设计中选取的是电容值大小0.01uF 的两个电容。晶振频率的典型值为6MHz、 12MHz 和 24MHz,,高可达到40MHz 。晶振的频率越高, 系统时钟频率也越高, 单片机的运行速度就越快, 本设计选取的是12MHz。单片机是按照一定的时序为基准来工作的,其基准就是时钟的振荡的频率,所有操作都是以时钟频率的倍数为最小单位来进行的。时钟周期是单片机的基本时间单位,晶振的振荡的频率为12MHz 时,时钟周期 时,为1/12us=0.0833us。机器周期是CPU 完成一个基本操作所需要的时间。单片机中常把执行一条指令的过程分为几个机器周期,每个机器周期内完成一个基本操作。单片机以每12振荡周期为一个机器周期,晶振频率为12MHz 时,机器周期为12/12us=1us。图3-1 AT89c51 单片机外围电路这部分单元在proteus 软件里的仿真图如图3-2 所示。图 3-2 AT89c51单片机外围电路仿真图3.3 水位检测和温度检测接口电路热水器都有一个蓄水箱,而我们要对其水位和温度这两个重要参数进行相关检测和控制,这是这一设计的重点,我们只有能够准确的检测出这两个参数才能对其进行相关控制,才能通过单片机的软件部分计算什么时候需要进行辅助加热。然而要真确检测出这些数据我们有很多传感器可以选择,综合考虑系统成本等其他相关因素, 在本设计中我们采用分段式的这种液位传感器,在水位显示上我们也是采用分这种传感器。水位检测部分的硬件连接如图3-3 所示。图 3-3 水位监测及显示接口电路检测原理如下: 当水箱中无水, 4个非门输入端全部由一个大小为1M 欧姆的上拉电阻我们把他上啦成高电平, 所以图中各非门输出就都是低电平,这样发光二极管 LED1LED4 就都不会点亮。向水箱注水当水位高出非门1那个时候由于水的导电作用使得非门1 的输入探针导电这就使得,使其输入端很容易的变为了低电平,所以自然而然其输出端就变为了高电平, LED 就点亮了,其他的都是一个道理就不一一举例。 随着水位的上升, 各非门输出相继为高电平, LED依次点亮。 因为水是有电阻的这就提醒我们所选的上拉电阻不可以太小,要足够大,以保证在水位升高的过程中能把非门的输入端绝对的上啦成为低电平。更具经验, 这个上拉电阻我们一般选择在500k1M 欧姆左右就足以解决上诉问题且能很好地满足电路的工作要求。这部分电路单元在proteus 里的仿真图如3-4所示。由于proteus 里做不出水箱所以本设计里将水位到达的那一位置用开关来表示,即水位到了那一位置, 开关闭合。 如图所示, 假设水位到达第一个水位段, 则开关1 闭合, LED 1亮,依此类推。为了使AT89C51 随时能够读出当前的水位情况, 这里把水位信号直接连接 这里把水位信号直接连接到 P2.4P2.7。蓄水箱温度检测电路采用 DS18B20 芯片使其换成脉冲信号, 与P2. 0 相连送到 AT89C51的 的I/O 口,通过测量输出脉冲频率的大小来换算成水温高低信号,其在 来换算成水温高低信号,在proteus 里的仿真图如图3-5 所示。图 3-4 水位检测电路仿真图图 3-5 DS18B20 与 AT89C51 连接图仿真3.3.1 上水及排空控制电路和辅助加热电路太阳能热水器要具有自动上水以及手动排空的功能。其结构图如图3-6 所示。图 3-6 上水及排空结构图太阳能热水器开始工作后, 其水箱里是要有一定水位的, 在这里设定为1 单位水(这个单位是指水箱满水位后将其平均分成N 份中的一份),不足1 单位水时通过单片机控制冷水水阀来向太阳能热水器水箱里加水,到1 单位后通过水位检测得到结果送到单片机里 得到结果送到单片机里, 其通过控制冷水水阀停止加水。 在单片机里设定用水时间及温度 后, 由于各地日照时间不一样, 因此预加热时间通常是在用水时间前1 小时通过单片机查询得来, 预加热时间到达后开启辅助加热电路, 辅助加热电路如图3-7 所示, 其余部分时间都是有日照来使水温上升的。 水箱里的水温超过设定水温时, 单片机控制冷水水阀向水箱里加1 单位水,加1 单位水后通过水位检测电路返回给单片机,停止加水。在实际生活中,要保持干净卫生,太阳能热水器里的水每隔一段时间是要定期换水,这一部分功能通过手动控制装置来控制,就不与单片机相连增加其复杂度。图3-7 所示是太阳能热水器的辅助加热部分,工作原理: 当单片机AT89C51P2.1 口输出高电平时, 三极管 T1 导通导通, 致使发光二极管发光, 同时光敏三极管T2 导通, 继电器闭合, 电阻丝R1-R4 发热, 这样就完成了加热任务, 此电路虽然简单, 但在太阳能热水器 但在太阳能热水器中是必不可少的。图 3-7辅助加热电路图3.3.2 4X4矩阵键盘设计在我们常见的一些单片机系统中,如果所需要设定的按键数量比较多的时候,我们就可以考虑矩阵式键盘,这种键盘通常也被称作行列式键盘,这种键盘与那种独立式按键键盘相比较能够节省出很多的I/0 口。 图3-8 中为AT89C51单片机P1 口构成的中断方式44键盘键盘电路。 通常, 键盘的工作方式有三种, 即编程扫描、 定时扫描和中断扫描。 采用编程扫描或定时扫描方式时,这样的话不管我们是不是去按下其中的一个键, CPU 都会无时无刻不停的去扫描键盘,但是我们都知道单片机应用系统在正常工作时的情况下,其实根本不需要经常的去烧苗其键盘输入, 这样的话就是说: CPU基本一直处在一种空扫描的状态下,极大的浪费了CPU资源。 为能够更好的提高CPU 的工作效率,在本设计中我们选择中断扫描的这样一种工作方式。 它的工作过程如下: 只要没有按键按下的时候,CPU 就可以不去扫描只处理自己的工作; 当有任意一个键按下的时候, 就产生一个中断请求信号, CPU停下自己的工作在去执行键盘扫描的子程序,这样在识别键号。 图 3-8 中, 键盘的行线与 P1口的低四位相连,键盘的列线与P1 口的高四位相连,因此, P1.0P1.3 是键输出线, P1.4 P1.7 是扫描输入线。图中的4 输入与门用于产生按键中断,其输入端与各行线相连, 在通过上拉电阻接至+5V 电源电源, 其输出端接至单片机的外部中断输入端。 电路工作过程如下: 当键盘无键按下时, 与门各输入端均为高电平, 保持输出端为高电平; 当有键按下时, 输出端为低电平, 向CPU 申请中断, 若CPU 开放外部中断, 则会响应中断请求,转去执行键盘扫描子程序。16 个键号 个键号Ki(I =0-F )次序为从左向右,从上向下依次排列。图 3-8 AT89C51 P1 口构成的 44 中断方式键盘这部分电路在proteus 里的仿真图如图3-9所示。图 3-9中断方式键盘电路的仿真图键盘扫描工作原理: 我们假设以图中“8” 号键的识别过程作为一个例子来详细的说明扫描法究竟是如何识别某一个按键的过程。 按键按下,那么和这个键相连的两条行线、列线就会导通, 行线在没有任何键按下的时候是处于高电平的。 这就必须把每一条列线都让其处在低电平, 只有在这样的情况下, 如果再有某个键按下的时候, 那么这个键所在的那一行,行电平就会由高电平转变为低电平。 这时CPU就会根据这一行电平的变化,来判定相应行的到底是否有键按下。 为进一步的确定具体是那一个键, 这就不能同时把所有的列线在同一个时刻全部都处在低电平,我们可以在某一时刻仅仅让其中一条列线处在低电平,而其余的所有都处在高电平,在另一时刻的时候, 就让下一列处在低电平,这样循环下去。 在“8”号键按下时的整个工作过程, 当第0 列处于低电平时,第2 行处于低电平,而第1、2 列处于低电平时,第2 行却处于高电平,由此可判定按下的键应是第2 行与第0 列的交叉点, 即8 号键。16 个键号, 0 9 定义为数字键了,A F 定义为功能键, A 定义为时间,即A 按下进行时间设定, B 定义为温度,即 B 按下进行温度设定, C 定义为上水,即C 按下单片机通过外接设备对水箱进行加水, D 定义为确定键。 E定义为清除键。3.3.3 显示接口电路的设计LED数码管显示是利用半导体发光制成条形的发光二极管, 封装在一起组成数字或其他符号形状。数码管根据公共端不同,分为共阴极和共阳极两种形式。本设计中选用7SEG-MPX4-CC 4个共阴极二极管显示器。这种类型的显示器,在它的内部中,除各个公共端外,是把各个显示器的同名端并联起来的。比如说,四位一体的LED显示器,是每个脚的同名端并接,所以仍是有8个引脚,再加上4个公共端,就是有12个引脚。本设计中这部分的仿真电路图如图 3-10 所示。图 3-10 显示电路数码管的分类:数码管如果按段数分为七段的和八段的数码管,八段的就是比七段的多出一个二极管(也就是显示小数点的那一位);如果按照显示“8”的个数的多少来分的话那就可以分为:1位,2位和4位数码管;假设按照他们内部单元的连接方式来分的话就可以分为共阴和共阳极,把每个小发光二极管的阳极相连所得到的就是共阳极数码管,在使用的时候需要在公共端接一个高电平,在电路中某一字段的发光二极管由于电平的变化使得其阴极变为了低电平,那么这时候这一字段就会点亮,反之。驱动方式:要使数码管要正常显示,就要使用驱动电路来驱动数码管的各个段码,这样才能显示出我们要的那一个数字,因此根据所用的数码管的使用的不同的驱动方式,这样就可以两种一种是静态式和另一种动态式。 静态显示驱动:通常我们所称的直流驱动也就是通常所谓的静态驱动。静态驱动指的就是将数码管里的每一个段码都要由单片机中的某一个的I/O端口来进行驱动显示。 动态显示驱动:数码管的动态显示接口在一般的常见的单片机的使用中是非常广泛的也是最为常见的一种普通的显示方式之一。数码管应用电流:静态时的时候推荐使用10-15mA的电流,当动态的时候,由于16/1动态扫描的时候,那么平均电流就为4-5mA,峰值为电流50-60mA。 1、显示效果: 由于发光二极管内部本身基本上属于电流的敏感型器件,而其正向电压降的分散性就很大, 而且与温度还有很大关系,数码管必须要具有十分良好的亮度以及均匀度,这就要求他具有非常恒定而且稳定的工作电流,还要尽量避免被温度以及其他外界因素所干扰。另外,如果遇到温度变化的时候驱动芯片必须能够很好的自动调节其输出电流的大小以此来实现色差以及平衡温度的补偿。2、安全性: 发光管很容易收到损坏的即便使是很短时间的电流过载也是非常有可能对这发光管非常严重且是永久性的严重损坏,假设采用恒流驱动后就可以防止由于各种由于电流故障所引起的导致数码管的大面积损坏。像其他一般超大规模集成电路一样都是具有热保护功能的,假设其中任何一片的数码管温度超过其本身的一定值的时候就可以自动关断了,并且还可以很容易的在控制室内看到所有的故障显示。怎样来测量数码管的引脚,分共阴和共阳? 找公共共阴和公共共阳首先,我们找个电源(3到5伏)和1个1K(几百的也欧的也行)的电阻, VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。3.4 特殊元件介绍3.4.1 AT89C51芯片AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、非常高性能的CMOS 8位主流微处理器,也就是人们俗称单片机。单片机的可擦除只读存储器是限制的不可以无限制擦除只可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器的先进的制造技术而制造成的,他是与通常的工业标准的MCS-51的指令集以及输出管脚全部相互兼容的,可以有很好的兼容性。由于将具有很多功能的8位CPU和闪烁存储器而组合而成在单个芯片当中中。主要特性:与MCS-51 兼容 4K字节的可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部ram32位可编程I/O线 两个16位定时器/计数器 5个中断源 可以进行编程的串行式通道 闲置、掉电模式 在片内的振荡器和时钟电路 表1 中断向量表:特性概述:At89c51 提供以下标准功能:4k 字节的Flash(闪存),以及拥有128个字节的内部ram,32 个I/O 口线,还有其自带的两个16位的定时/计数器,以及一个有5个中断向量的二级中断结构,还有那一个全双工方式的串行通信接口,以及单片机的片内自带振荡器及时钟电路。同时,At89c51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口不会停止运行,而且中断系统也还保持原来的状态。在突然掉电的情况下RAM里面的内容将会被完整的保存下来而不丢失,与之不同的是振荡器停止工作,全部的硬件正在执行的工作也会被停止,一直等到一个硬件复位的信号。单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义呢? SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。fosc 代表振荡器的频率,也就是晶振的频率。REM 为允许接收位,REM 置1 时串口允许接收,置0 时禁止接收。REM 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0 来禁止接收,在子程序结束处加入REM=1 再次打开串口接收。大家也可以用上面的实际源码加入REM=0 来进行实验。TB8 发送数据位8,在模式2 和3 是要发送的第9 位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。RB8 接收数据位8,在模式2 和3 是已接收数据的第9 位。该位可能是奇偶位,地址/数据标识位。在模式0 中,RB8 为保留位没有被使用。在模式1 中,当SM2=0,RB8 是已接收数据的停止位。 TI 发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI 置位后,申请中断,CPU 响应中断后,发送下一帧数据。在任何模式下,TI 都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI 不会由硬件清除,所以这时必须用软件对其清零。RI 接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1 中,SM2=1时,当未收到有效的停止位,则不会对RI 置位。同样RI 也必须要靠软件清除。常用的串口模式1 是传输10 个位的,1 位起始位为0,8 位数据位,低位在先,1 位停止位为1。它的波特率是可变的,其速率是取决于定时器1 或定时器2 的定时值(溢出速率)。AT89C51 和AT89C2051 等51 系列芯片只有两个定时器,定时器0 和定时器1,而定时器2是89C52 系列芯片才有的。 波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600 会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是960010=960 字节。51 芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。模式2 的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。模式1 和模式3 的波特率是可变的,取决于定时器1 或2(52 芯片)的溢出速率。那么我们怎么去计算这两个模 式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。 波特率=(2SMOD32)定时器1 溢出速率 上式中如设置了PCON 寄存器中的SMOD 位为1 时就可以把波特率提升2 倍。通常会使用定时器1 工作在定时器工作模式2 下,这时定时值中的TL1 做为计数,TH1 做为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2 下定时器1 溢出速率的计算公式如下: 溢出速率=(计数速率)/(256TH1)管脚说明:VCC:电源。GND:接地端。 P0口:P0口他是一个有8位漏级开路的双向I/O口,其任何一个引脚都可以吸收8个TTL的门电流。假如我们是第一次写当P0口的管脚的时候,这样就被定义成了高阻输入。P0还能当作外部的一些程序的数据存储器使用,在需要低位数据/地址位的时候还可以用p0口来定义,在Flash编程的时候,P0 口可以当作一个原码的输入口使用,当Flash进行相关校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,在这里的内部程的序存储器。在FLASH编程期间,这个引脚通常也用于施加在12V编程电源(VPP)。 Xtal1:内部时钟工作电路的输入也或者是其反向振荡放大器的输入及Xtal2:反向振荡器输出。 如图 3-11 所示。振荡器特性: Xtal1和Xtal2这两个引脚一个是反向放大器的输入,另一个是其输出。这个反向放大器可以采用石晶震荡或者是套餐震荡来以此配置成为一个片内振荡器。假设我们采用外部来的时钟源一次来驱动器这一件,那么Xtal2就不应该连接。由于

温馨提示

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

评论

0/150

提交评论