基于单片机的太阳能热水器智能水位水温控制仪的设计.docx
《基于单片机的太阳能热水器智能水位水温控制仪的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的太阳能热水器智能水位水温控制仪的设计.docx(41页珍藏版)》请在咨信网上搜索。
摘 要 本文设计了一个太阳能热水器智能控制系统。它以89C52单片机为核心,配合电阻型4档水位传感器、负温度系数NTC热敏电阻温度传感器、8255A扩展键盘和显示器件 、驱动电路(电磁阀、电加热、报警)等外围器件, 完成对太阳能热水器容器内的水位、水温测量、显示;时间显示;缺水时自动上水,水溢报警;手动上水、参数设置;定时水温过低智能电加热等功能。 其中本文第一章主要说明了太阳能热水器智能控制系统的研究现状和本课题的主要任务,第二章对系统的整体结构作了简单介绍,第三章重点介绍了水位水温测量电路,第四章介绍了时钟电路,第五章介绍了显示和键盘电路,第六章对其他电路作了介绍,第七章是对水位测量电路的硬件调试。 本系统对于水位传感器、水温传感器的电阻数据的处理均采用独特的RC充放电的方法。它与使用A/D转换器相比,电路简单、制造成本低。特别适用于对水位、水温要求不精确的场合。 关键词:太阳能,热水器,控制器,89C52,RC充放电 Abstract This article has designed a intelligence control system for solar-powered water heater. It take the 89C52 microcontroller integrated circuit as the core, the coordinate 4 grades of waters level resistance sensor, the negative temperature coefficient NTC thermistor temperature sensor,the 8255A expansion keyboard and the demonstration component, the actuate circuit (solenoid valve, electric heating, warning) and other periphery component, completes to the water level and temperature measure and demonstrate; the time demonstrate; lack of water automatically upstream, the water overflow warn; fixed time intelligencely electric heat. The first chapter of this article mainly explained the research situation of the solar-powered water heater intelligence control system and the primary mission of this topic. The second chapter has made the simple introduction to the overall construction of the system .The third chapter introduced with emphasis on the water level and water temperature metering circuit.The fourth chapter introduced the clock circuit .The fifth chapter introduced the demonstration and the keyboard circuit,.The sixth chapter has made the introduction to other circuits. The seventh chapter is the hardware debugging of the water level measuring circuit. Regarding the process of the water level sensor and water temperature sensor resistance data this system uses the method of the unique RC electric sufficient and discharging. Compared to using the A/D converter, the electric circuit is simple, the production cost is low. Specially it is suitable for the water level and the water temperature measuring requested unprecise situation. Key word: Solar energy, water heater, controller, 89C52, RC electric sufficient and discharge 目 录 摘 要 I Abstract II 目 录 III 第一章 引 言 1 1.1 课题的背景意义 1 1.2 太阳能热水器和其控制器的发展现状 1 1.3 课题的研究内容 3 第二章 太阳能热水器智能水位控制系统整体结构介绍 4 第三章 水位和水温测量电路硬件设计 5 3.1 水位测量电路 5 3.1.1 方案比较选择 5 3.1.2 水位测量电路的具体设计及优化 8 3.2 水温测量电路 15 3.2.1 方案比较选择 15 3.2.2 水温测量电路的设计及温度计算方法 16 3.3 水位、水温测量电路的整体设计 20 第四章 显示电路 21 4.1 方案选择 21 4.1.1 8255A芯片介绍 21 4.1.2 8255A在太阳能热水器控制电路中的作用 24 4.2 显示电路工作原理 25 4.2.1 8255A显示电路的硬件结构。 25 4.2.2 8255A实现显示方法 27 第五章 其他硬件电路设计 30 5.1 上水电磁阀、电加热、报警等驱动电路 30 5.1.1 上水控制电路 30 5.1.2 电加热控制电路 30 5.1.3 报警控制电路 30 5.1.4 水位显示电路 30 5.2 电源电路 31 参考文献 33 致 谢 34 附 录 35 第一章 引 言 1.1 课题的背景意义 随着太阳能热水器的迅速推广,广大消费者对太阳能热水器特别是太阳能热水器控制器的要求越来越高,太阳能热水器商家为使自己的产品能在市场上生存和发展,在不断提高太阳能热水器热水性能的同时,也不断加大力度满足消费者对于太阳能使用方便的要求,于是太阳能热水器的智能化程度越来越高。 本设计追踪科技应用前沿,跟踪市场,根据论文资料及市场现有产品模型,在加上自己的理解和创意,模仿出了一套智能化的太阳能热水器控制系统。本系统完全跟随太阳能热水器本身智能化程度和成本的要求,为太阳能热水器提供了一套智能化程度高、性能良好、使用方便、经济实惠的配套控制系统。 1.2 太阳能热水器和其控制器的发展现状 中国太阳能热水产业的发展始于上世纪80年代,当时的市场定位是农村或中小城镇的低收入家庭。90年代后期,住宅商品化的发展以及家庭对热水需求的大幅度增长为太阳能热水器的发展提供了市场空间, 太阳能热水器的生产规模进一步扩大,形成了一些有一定知名度的产品和品牌。自上世纪90年代以来,我国太阳能热水器行业保持了10多年的快速增长 ,2005年 太阳能热水器年生产量为1 500万平方米,是2000年640万平方米的2倍多,到2005年底,我国太阳能热水器保有量超过7500万平方米是2000年2600万平方米的近3倍。目前,我国既是世界上最大的太阳能热水器生产国,同时也拥有世界上最大的太阳能热水器市场。至2005年,全国有1000多家有一定规模的太阳热水器生产企业,年总产值达150多亿元,出口创汇2000万美元,全行业提供约30多万个就业机会,产生了显著的经济、环境和社会效益[1]。到目前已有许多太阳能品牌为大家耳熟能详,如皇明、桑乐、四季牧歌、力诺等。总之,太阳能热水器已是一件和电视机、洗衣机一样必不可少的家用电器。 进步源于竞争,在我国太阳能拥有广阔的市场,当然也有更大的竞争,各大商家为了使自己的产品在市场上立足并长远发展,不断提高太阳能热水器的性能,其中太阳能热水器控制器以其灵活、贴近客户成为商家竞争的热点。目前,各大商家纷纷提高太阳能热水器的智能化程度来满足消费者的需求。许多太阳能热水器的功能有:开机自检、温控上水、强制上水、水位预置、水质设置、水温指示、低水压上水、水位显示、防高温空晒、缺水报警、自动防溢流、 缺水上水、手动上水、故障提示等许多贴近客户需求的功能。 目前太阳能控制器的控制器基本实现数字化,以单片机为控制核心的控制系统占领太阳能热水器的主要市场。在市场调查中发现,太阳能控制单片机的型号较多,其中应用最多的是51系列和PIC系列单片机。其基本框图如图1-1所示。 图1-1 市场太阳能热水器基本框图[2] 太阳能热水器控制系统可以实现水位显示、水位控制、温度显示、防冻等多种功能,其中对水位的检测、控制,实现水位显示、自动上水、超限报警是太阳能热水器控制系统的核心。 目前大多数太阳能热水器的水位传感器都采用分段式水位传感器,因为太阳能热水器对水位精确度的要求不高,并且分段式传感器的成本很低。图1-2是常用的一种分段式热水器传感器的基本原理。 对于温度的检测便于用户的使用和控制电加热。目前,温度传感器的应用种类较为繁杂,有直接使用热电阻、热电偶的,也有使用数字温度变送器(如MAX6674)的。在显示方面多采用LED显示或LCD液晶显示。 图1-2 一种分段式水温传感器[3] 1.3 课题的研究内容 本课题主要是对市场现有产品的仿制,要能够实现太阳能热水器的完整功能。本课题以89C52单片机为核心配合传感器、显示器件、电磁阀、电加热器、报警器等外围器件,采集热水器储水箱中的水位、水温信号,通过控制电动机的运转、电加热器加热来控制储水器的水位、温度,并完成水位、水温显示,时间显示,水溢报警等功能。另外配有键盘,可以实现手动上水、手动电加热、设置水位、设置温度等功能。 第二章 太阳能热水器智能水位控制系统整体结构介绍 太阳能热水器整体结构大致可以分为四大部分: 1.水位、水温测量电路。这部分用于采集水位水温信号给单片机,是太阳能热水器控制器最关键的部位。 2.时间、水位、温度显示和键盘电路。这部分用于系统和人的信息交互,有对太阳能热水器状态的直观显示,也有用于人对系统控制的键盘电路。 3.时钟电路。给系统提供时间显示和参考时间。 4.驱动电路。包括电加热、上水电磁阀、报警电路,是整个系统的执行部分。 系统的整体结构图如图2-1所示。 图2-1 太阳能热水器控制系统整体结构图 第三章 水位和水温测量电路硬件设计 水位测量和水温测量是太阳能热水器控制系统的最重要部分,是实现其他功能的基础,此部分性能好坏将关系到整个系统的优良程度,所以设计一个性能良好的水位、水温测量系统是本设计的重点。 3.1 水位测量电路 水位测量可以有多种方法,需从性能和成本两方面进行考虑,选择合适的方案。 3.1.1 方案比较选择 1.排阻分档键盘式水位传感器 在许多资料中都介绍了一种类似键盘电路的分档水位传感器,其原理图如图3-1所示。 图3-1 排阻式水位测试电路示意图[4] 它的工作原理类似于键盘的工作原理,用 5根不锈钢针分别置于水箱内的 四种不同高度的位置,当某个钢针不接触水面时,其输出为高电平;当其与水面接触时则输出低电平。它们的输出接至电子开关CD4069,经过CD4069反向并经74LS244驱动后分别接入89C52的 P1.0~P1.3引脚。CPU对这些引脚进行判断后 ,送去显示相应的水位值。显示共分 4档 ,每档为满水位的25% 。这种方法简单,易实现,省去了传统的 A/D转换器,成本低,虽然不精确但可以满足使用要求[4]。 2.RC充放电式水位传感器测量电路 这种电路资料较少,但我们在市场上购买的桑乐太阳能的水位和水温传感器就是基于这种原理,其基本形状如图3-2所示。 图3-2 桑乐太阳能水位水温传感器外形图 从图3-2中我们可以清楚的地看到传感器外形非常简单,一共只有4个端口,其中一个是防冻接口,没有使用,使用的只有3个端口,在可用的三个端口上分别标有公共、水位、水温标志,由此可知测量水位、水温都只用了一个端口。观察传感器可知水位传感器有5个与水接触点,我们从上到下依次命名它们为1—5触点。我们分别测量了触点不同接法时公共和水位两端口之间的电阻,数据如表3-1所示。 由上述测试结果的电阻值得出这样的规律,那就是电阻的并联短接,其原理如图3-3所示。 表3-1 输出电阻值表 短接方式 无短接 1、2 1、2、3 1、2、3、4 1、2、3、4、5 输出电阻值(kΩ) 极大 25 12.5 8.6 6.3 图3-3 桑乐太阳能水位传感器原理 它的工作原理是,水面每接触一个钢针就会多并联一个电阻,电阻随水位变化而规律的变化。利用单片机的一个口周期性的给电容电路充放电,然后用 图3-4 RC充放电式水位传感器测量电路原理图 单片机监测电容两端电压的变化,因为电容电压的上升或下降时间t=RC,所以用单片机记录这个时间就能判别电阻的变化,进而转化为水位的变化进行显示及其他动作。 3.传感器选择 RC充放电式水位传感器测量电路,明显优于排阻分档键盘式水位传感器的地方有: (1)接线简单,排阻分档键盘式水位传感器需要四根导线传输水位信号,而RC充放电式水位传感器仅需要两根就能完成,这对于线路较长的太阳能热水器传输信号电路来说能节省相当多的导线资源。 (2)给水温测量电路设计带来方便,RC充放电式水位传感器的原理可以同样运用到热电阻温度测量电路中。 (3)占用较少的I/O口,仅需两个I/O口就能完成水位检测任务,极大地节约了单片机的I/O 口资源。 综上比较可见选用第二种方案较为优越。 3.1.2 水位测量电路的具体设计及优化 1.直接接单片机I/O口检测 单片机中的定时器可以提供电压变化时间的纪录,接下来就是如何将电压的变化传递给单片机。一种简单的方案是:用P1.0口给RC电路周期性的充放电,然后用P1.1口监测电容的电平变化,完成计时,这种方案看上去简单易实现,但实际则行不通。按刚才提到的方法接图如图3-5。 这样做得到的结果是P1.1的电压一直保持高电平,即电容电压一直保持高点平。这与单片机内部电路有关,单片机的内部电路如图3-6所示。 图3-5 直接用I/O检测电容电压测量水位电路原理图 图3-6 P1口的位结构[5] 从图中可见,P1口只有高电平和低电平两种状态,当P1.1口为高电平时,将电容端与P1.1连接,VCC会通过内部上拉电阻持续给电容充电,所以监测电容电压一直为高电平。而当将其置低电平时,P1口相当于接地,将会出现相反的情况,其通过地一直给电容放电,电容电压一直低电平。 2.采取与I/O隔离并用中断监测电容电压的电路 这样需要将电容电压与单片机监测端口隔离,采取如图3-7所示电路。 图3-7 水位测量电路 1. LM358的应用 LM358的正向输入端接电容电压正端,反向输入端与输出端相连,构成电压跟随器。电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要达到几兆欧姆是很容易做到的。输出阻抗低,通常可以到几欧姆,甚至更低,也就是说电压跟随器有较好的隔离作用,使输出对输入影像较小,正好满足我们的要求[6]。 LM358的输出电压幅度为0 至Vcc-1.5V,而要跟随的电压范围为0—5V,所以应选用大于+6.5V的电源供电,这里选用+12V单电源供电 2.LM393的作用 给比较器设置+3V的参考电压,将电容电压的指数曲线变成矩形波,波形图如图3-8所示。将参考电压接同相输入端,比较电压接反相输入端,从而实现电容电压在上升到参考电压时比较器产生下降沿信号,作为单片机的外部中断信号。如图3-8所示。 根据LM393的特性本设计电源电路提供的电压,选用+5v给其供电。由LM393的内部原理图可知LM393的输出为集电极开路,它的输出高电平与LM393的电源无关,但须接外部电源和上拉电阻。在图3-7所示的水位测量电路中并未有这样的上拉电压电路,是因为单片机内部INT0、INT1口已经具备了这样的电路。INT0、INT1的内部电路类似于P1口如图3-6所示。另外LM393的同相输入端输入和反相输入端输入之间有相互嵌位作用,+5V电源和分压电阻提供的+3v参考带电平对反相输入端输入有嵌位作用,如果不接LM358 电源跟随器而与电容直接相连,显然会影响电容电压的变化,这就是要加电压跟随器进行隔离的原因。 图3-8 电容电压与比较器输出信号(仿真和实测) 3.充电时间的设定和电容的选择 电容充电时间的计算公式为: (3-1) T即位电容电压上升时间。编程使P1.0口输出周期性的方波,给电容充放电,方波半周期(充电或放电时间)为,应使方波半周期大于电容电压上升时间,即: (3-2) 如果使用单片机主程序一直循环给P1.4口输出方波,方波的周期可以很大,超过几秒甚至几十秒,但是这样主程序就只能干这一项工作,影响单片机的其他工作。所以要用定时器来实现方波输出。这样用定时器就可以用定时中断使P1.4口输出方波,又不影响单片机的其他工作。这样方波的周期就受定时器定时时间的限制。89C52单片机定时器共有4种定时方式,其中定时时间最长的为定时方式1。当定时器/计数器在方式1下做定时器用时,其定时时间计算公式为: (3-3) 采用12M的晶振,晶振周期为S,因为采取定时器终端方式,所以N=0XFFFF=65536。所以: (3-4) 那么当T=30ms,计数初值为0X8AD0=35536。 定时输出30ms其程序如下: void main() { initial(); while(1) display(); } void timer_t1() interrupt 3 { TH1=0X8A; //重新给定时器1赋值 TL1=0XD0; P1_4=!P1_4; //充放电变换 if(P1_4) //充电开始时启动定时器0 { TL0=TH0=0X00; //定时器0赋初值0 TR0=1; //启动定时器0 } } 如图3-6,这里用INT0 中断来监视记录电容变化,内部编程实现计时器对电容电压上升时间的记录,所以可以通过将计时器寄存器里的值显示出来的方式直观显示电容电压结果,来确定合适的电容。以下是编程实现这一过程的结果。 表3-2 不同电容大小时计数器寄存器中的值 一水位 二水位 三水位 四水位 TH0 TL0 TH0 TL0 TH0 TL0 TH0 TL0 2uF A0~B4 —— 85~98 —— 70~83 —— 60~65 —— 1uF 64~70 —— 49~50 —— 38~40 —— 32~34 —— 0.22uF 2 —— 1 80~A3 1 72~80 1 64~72 由表格数据可见当选用2uF电容时,应需较大的充放电时间,充放电不够充分,所以计数器寄存器中的值大而不准;而当取0.22uF电容式计数寄存器TH0的值仅为1或2,非常不利用区分;当取1uF电容时,数据大小合适,分段明显,所以应选用1uF电容。另外,电容两端的最高电压为+5V,最低电压为0V,所以所选电容的耐压留有一定裕量为最大电压的3倍,所以应选取耐压为15V以上的电容。 由表3-2知R最大值为25KΩ,所以: (3-5) 又由式3-8得: (3-6) 这样由公式3-5、3-6得到。 因此取充电和放电时间为30ms。 4、编程实现水位处理 由于水电阻的波动性和电容的不稳定性等原因,计数器中的数值会有一定的波动,所以需要对数据进行相应的处理显示水位。其中buf[1]为计数器0寄存器中的值。 void LvRead() { if(buf[1]>60) { WTLV=1; //显示1水位 L3=0;L2=1;L1=1;L0=1; } else if(buf[1]>45) { WTLV=2; //显示2水位 L3=1;L2=;L1=1;L0=1; } else if(buf[1]>36) { WTLV=3;// 显示3水位 L3=1;L2=1;L1=0;L0=1; } else { WTLV=4;// 显示4水位 L3=1;L2=1;L1=1;L0=0; } } 3.2 水温测量电路 水温测量电路的设计包括传感器的选择和测量电路的选择。考虑到性价比等原因,市场上大部分太阳能热水器的温度传感器都选用NTC负温度系数热电阻,本系统也选用这种。下面主要论述测量电路。 3.2.1 方案比较选择 温度测量方案很多,下面通过比较选择合适的测量方法。 1. 热电阻A/D转换式水温传感器 图3-9 热电阻A/D转换电路原理图 A/D转换式水温传感器的原理是,利用热敏电阻的阻值随温度变化的特性,将随温度变化的电阻信号转化为变化的电压信号,然后将这个电压信号经运放放大处理成0—5V的电压信号,电压信号经A/D转换变成数字信号送给单片机。这种电路测量比较精确,但需用A/D转换器,而A/D转换的价格较贵,会加大成本,另外A/D转换需占用8个数据口和两个片选口及两个控制口共12个I/O口。 2.RC充放电式热电阻水温传感器测量电路 RC充放电式热电阻水温传感器测量电路的原理与前面提到的RC充放电式水位传感器测量电路原理完全相同,只要把水位电阻换成热电阻就可以了。其缺点是不够精确,但成本很低,对于对温度要求不算精确的太阳能热水器系统,完全可以满足我们的需要。另外与A/D转换式温度传感器相比,其优势还是十分突出的: (1)仅需2个I/O口就能完成对温度的检测,节约了单片机的I/O,有利于降低成本。 (2)实现起来也十分简单。 3.2.2 水温测量电路的设计及温度计算方法 1.水温测量电路 图3-10 水温测量电路原理图 对太阳能热水器中水的温度进行控制及显示,需对热水器水温与出水温度进行检测。对于热水器来说温度控制与显示的精度要求并不高,因此本设计采用负温度系数NTC 热敏电阻作为测温元件,利用NTC 热敏电阻阻值随温度变化而改变的特性实现测温。 2.水温计算方法 NTC 热敏电阻的阻值与温度的准确关系为: (3-7) 式中R0 为温度为T0 时的电阻值,T0 为基准温度298.15K, 即25 ℃。为材料系数。R0 与由热敏电阻生产厂家给出[7]。 由式3-7可得: (3-8) 由式3-3和式3-4可得; (3-9) 经测试T0=25℃的计数器寄存器中的值=16384。 将T0 、、值代入上式并用摄氏温度表示时水胆温度为; (3-10) 因为89C52单片机无法进行直接的对数运算,按上述公式计算温度值将是十分困难的。在这里查表法是一种经常采用的解决办法,即事先计算出所有可能的计时结果所对应的温度值以表格形式写入控制程序,每次转换完毕后查表得出所对应的温度值。但此种方法需占用较多的程序储存空间本设计采用一次线性插值法对温度与A/D 转换结果之间的关系进行分段线性化,以少量单片机能直接进行的运算的组合去逼近目标函数。图3-11为温度T 与计时器计时结果N之间的关系曲线。 图3-11 计时寄存器值N与温度T的关系曲线 其中圆滑曲线为实际的T-N关系曲线设计中根据使用要求将曲线在0 -90 范围内分3 段采用图中的3 段直线断代替实际曲线。 曲线按式3-10 计算出图中各线段端点坐标值为: N1=1000,T1=90(℃); N2=7549,T2=43(℃); N3=20000,T3=20(℃); N4=56450,T4=0(℃); 分段线性化后温度T 的近似计算公式: ,(℃) (3-11) ,(℃) (3-12) ,(℃) (3-13) 为了能在单片机上进行计算,将以上三式进一步变换成如下形式(其中int 为取整函数): T=97-int(N*8/1000), (3-14) T=50-int(N/1000), (3-15) T=30-int(N*5/10000), (3-16) 式3-14、 3-15 和3-16 的计算过程仅需通过简单的几步移位与加减法操作即可实现,与通过式3-10 计算并进行四舍五入圆整的结果相比较单片机通过式3-14、 3-15 和3-16计算出的温度值在0~20 范围内误差不超过2℃,在20~ 90 范围内误差不超过1℃,并且计算出的温度值与A/D 转结果之间保持良好的单调递增关系。 3.程序实现 测量水温程序与水位程序类似,由单片机口给电容发矩形波充放电,然后检测中断计时,根据计数器中的值来判断当前温度。也就是水温测量程序包含中断计时和数据处理两部分。定时器0和1已经被水位测量电路,和充电定时占用,所以这里需可以编程序实现水位和水温中断轮流开关,来轮流使用定时器0,计算温度传感器的上升时间。数据处理公式已在上面列出。下面列出数据处理程序,其中buf[3]、buf[2]为中断1得到的定时器1中的值,中断程序见附件。 void TmRead() { uint val; val=buf[3]*256+buf[2]; if(val<7549) TMP=97-int(val*8/1000); else if(val<20000) TMP=50-int(val/1000); else TMP=30-int(val*5/10000); } 3.3 水位、水温测量电路的整体设计 由上面的分析知道,两者的电路原理一样,都是用P1口给电容充电,用中断检测电容电压变化。作为充电口P1口的作用相当于电源(充电时)或地(方电时),所以可以用同一个口为两个冲放电回路充电,两个回路是独立的。LM393和LM358 都是双运放、8脚DIP封装,恰好用于水位和水温检测两路。下面图3-12 是实际的水位和水温测量电路图。 图3-12 水位和水温测量电路实际电路图 以P1.0口作为水位和水温电路的公共充0放电口,以INTO作为水位测量电路的中断检测口,以INT1作为水温测量电路的中断检测 第四章 显示电路 键盘和显示电路是太阳能热水器水位控制系统与用户的接口,用户通过显示来观察水温、水位、时间等状态值,再根据观察到的值,通过键盘对太阳能热水器进行控制。本章设计了较为合理的键盘和显示电路完成这些功能。 4.1 方案选择 太阳能热水器系统需要用数码管显示时间和温度,时间精确到分,24或12小时制,这就需要4位显示;而温度显示范围为0—99度,这又需要2位显示。对于六位显示,采用占用I/O较少的动态扫描方式,也需要六位位选码数据线,八位段选码数据线,共需14个I/O口。键盘采用复用方式,仍需要至少4个I/O口。键盘和显示电路共需18个I/O口,89C52单片机共有4×8个I/O口,而又有8个口有特殊功能,也就是常用的共有3×8个I/O口,该系统的其他设置也还要占用大量I/O口,显然这样太浪费资源。 4.1.1 8255A芯片介绍 图4-1 8255A输入输出口和编程模型 表4-1 8255A引脚定义 引脚名 功能 连接去向 D0~D7 数据总线(双向) CPU RESET 复位输入 CPU 片选信号 译码电路 读信号 CPU 写信号 CPU A0,A1 端口地址 CPU PA0~PA7 端口A 外设 PB0~PB7 端口B 外设 PC0~PC7 端口C 外设 VCC 电源(+5V) / GND 地 / 2.8255的工作方式 图4-2 方式控制字 4.1.2 8255A在太阳能热水器控制电路中的作用 单片机与8255A的连接如图5-3所示,如图所示分别将8255A的 读、写、复位端口与单片机的读、写、复位端口相连。A0、A1、为8255A的地址口,D0-D9为数据口。P2.5与A1相连,P2.6与A2相连,P2.7与相连,提供8255的端口地址信号。单片机的P0口为8255A提供数据输出输入。8255A共占用单片机11个常用I/O口,比直接显示键盘电路节省了7个I/O口。 图5-3 单片机与8255A连接图 4.2 显示电路工作原理 4.2.1 8255A显示电路的硬件结构。 8255A扩展显示及键盘电路如图 5-4所示。 图4-4 用8255A扩展的键盘和显示电路 在显示电路中用8255A的PA口输出位选信号,通过74F07接LED显示器的片选引脚。7407是TTL门集成的六路输出缓冲器/驱动器,因为本系统采用的是共阴极LED显示器,位选应接低电平,可能有几十毫安的电流输出,而单片机的I/O口最大能承受几毫安的灌电流,所以需用7407来接受较大的输出电流。 PB口输出的段选信号,通过74LS245芯片接LED段码引脚,因为8255A的输出电流一般是微安级的,而LED一般则要求5到几十毫安的电流,不能直接驱动LED,而74LS245的高电平输出电流在15毫安左右,可以驱动LED显示。另外74LS245的输出接上拉电阻,帮助驱动显示器。 LED显示器是由发光二极管显示子段组成的显示器件。在单片机系统中通常使用的是七段LED显示器,这种显示器有共阴极共阳极两种,在这次设计中选用共阴极LED显示器。共阴极七段LED显示器的管脚如图5-5所示 图4-5 共阴极LED显示器的原理和管脚图 表4-1 共阴极LED显示器七段码 显示字符 共阴极七段码 显示字符 共阴极七段码 0 3FH 9 6F 1 06 A 77 2 5B B 7C 3 4F C 39 4 66 D 5E 5 6D E 79 6 7D F 71 7 07 P 73 8 7F U 3E 4.2.2 8255A实现显示方法 8255A 的PA、PB口作为输出口驱动数码管显示;PC口用作输入口监测键盘输入,所以这里须用工作方式0——基本输入输出口工作方式,其方式控制字为10001001。8255A的RESET引脚与单片机的RESET引脚直接相连,当单片机复位时,8255A同时复位。单片机的P2.7口与8255A的片选信号 相连,显示期间一直输出低电平,选中8255。 在P2.5、P2.6都输出高电平时,即A1=1,A2=1时,=0,单片机输出写信号,访问控制寄存器,将方式控制字10001001通过单片机的P0口与8255A的D0-D7数据口送给8255的控制字寄存器。由图5-3的连接方式知控制字寄存器地址为:0111 1111 1111 1111,即0x7FFF,向该地址写入控制字即可。 当P2.5、P2.6都输出低电平时,A1=0,A2=0时,=0,单片机输出写信号,访问端口A,将位选码送出,选中要显示的位,即端口A地址为:0001 1111 1111 1111=0x1FFF,向该地址写入位选码即可。然后将P2.5=0,P2.6=1,即A1=0,A2=1,=0,单片机输出写信号,访问端口B,将段选码送出,保持几毫秒的延时,使LED显示。即端口C地址为:0101 1111 1111 1111=0x5FFF,向该地址写入段选码即可。 显示程序如下: /*定义8255A字符型字位口*/ #define DIGPORT XBYTE[0x1FFF]//PA口地址,位选码地址 #define WORDPORT XBYTE[0X3FFF]//PB口地址,段选码地址 #define CCOM XBYTE[0X7FFFF]//控制字寄存器地址 #define KPORT XBYTE[0X5FFF]//PC口,键盘扫描地址 void display(void) { uchar i; //显示缓冲区首址 uchar delay; //显示延时 uchar disp; //显示内容 uchar digit; //定义数码管显示位 digit=0x08; for(i=0;i<2;i++) { if(BUFFER[i]>100) disp=BUFFER[i]%10+10; else disp=BUFFER[i]%10; DIGPORT=digit; WORDPORT=TABLE[disp]; for(delay=0;delay<=200;delay++); digit=digit>>1; disp=BUFFER[i]/10; DIGPORT=digit; WORDPORT=TABLE[disp]; for(delay=0;delay<=200;delay++); digit=digit>>1; } } 第五章 其他硬件电路设计 上水、电加热、报警电路属于大功率驱动电路,需用开关控制外部电源的关断。水位显示是简单的三极管驱动电路。电源电路微单片机的主电路及部分驱动开关提供电源。本章对这些综合介绍。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 太阳能热水器 智能 水位 水温 控制 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文