《太阳能热水器智能水位控制仪的设计.doc》由会员分享,可在线阅读,更多相关《太阳能热水器智能水位控制仪的设计.doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流太阳能热水器智能水位控制仪的设计.精品文档.摘 要本文设计了一个太阳能热水器智能控制系统。它以89C52单片机为核心,配合电阻型4档水位传感器、负温度系数NTC热敏电阻温度传感器、8255A扩展键盘和显示器件 、驱动电路(电磁阀、电加热、报警)等外围器件, 完成对太阳能热水器容器内的水位、水温测量、显示;时间显示;缺水时自动上水,水溢报警;手动上水、参数设置;定时水温过低智能电加热等功能。其中本文第一章主要说明了太阳能热水器智能控制系统的研究现状和本课题的主要任务,第二章对系统的整体结构作了简单介绍,第三章重点介绍了水位水温测量电路,第四章介
2、绍了时钟电路,第五章介绍了显示和键盘电路,第六章对其他电路作了介绍,第七章是对水位测量电路的硬件调试。本系统对于水位传感器、水温传感器的电阻数据的处理均采用独特的RC充放电的方法。它与使用A/D转换器相比,电路简单、制造成本低。特别适用于对水位、水温要求不精确的场合。关键词:太阳能,热水器,控制器,89C52,RC充放电AbstractThis article has designed a intelligence control system for solar-powered water heater. It take the 89C52 microcontroller integrate
3、d 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 c
4、omponent, 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
5、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 intro
6、duced 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 wate
7、r 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 req
8、uested unprecise situation.Key word: Solar energy, water heater, controller, 89C52, RC electric sufficient and discharge 目 录摘 要IAbstract(英文摘要)II目 录III第一章 引 言11.1 课题的背景意义11.2 太阳能热水器和其控制器的发展现状11.3 课题的研究内容3第二章 太阳能热水器智能水位控制系统整体结构介绍4第三章 水位和水温测量电路硬件设计53.1 水位测量电路53.1.1 方案比较选择53.1.2 水位测量电路的具体设计及优化83.2 水温测量电
9、路153.2.1 方案比较选择153.2.2 水温测量电路的设计及温度计算方法163.3 水位、水温测量电路的整体设计20第四章 时钟电路214.1 时钟芯片选择214.1.1 DS12B887并行时钟芯片214.1.2 DS1302串行时钟芯片224.1.3 比较选择234.2 时钟电路的应用设计234.2.1 DS1302 内部寄存器234.2.2 DS1302与单片机的连接及时间读取方法24第五章 键盘和显示电路275.1 方案选择275.1.1 8255A芯片介绍275.1.2 8255A在太阳能热水器控制电路中的作用305.2 显示电路工作原理315.2.1 8255A显示电路的硬件
10、结构315.2.2 8255A实现显示方法335.3 键盘电路原理355.3.1 独立式键盘工作原理355.3.2 键盘功能介绍355.3.3 键盘扫描程序36第六章 其他硬件电路设计376.1 上水电磁阀、电加热、报警等驱动电路376.1.1 上水控制电路376.1.2 电加热控制电路376.1.3 报警控制电路376.1.4 水位显示电路376.2 电源电路38第七章 水位传感器电路的硬件调试397.1 测试P1.3口和电容两端的波形397.2 测试电容电压变化引起的中断信号407.3 显示计数器寄存器中的值和实测水位43结 论44参考文献45致 谢46附 录47第一章 引 言1.1 课题
11、的背景意义随着太阳能热水器的迅速推广,广大消费者对太阳能热水器特别是太阳能热水器控制器的要求越来越高,太阳能热水器商家为使自己的产品能在市场上生存和发展,在不断提高太阳能热水器热水性能的同时,也不断加大力度满足消费者对于太阳能使用方便的要求,于是太阳能热水器的智能化程度越来越高。本设计追踪科技应用前沿,跟踪市场,根据论文资料及市场现有产品模型,在加上自己的理解和创意,模仿出了一套智能化的太阳能热水器控制系统。本系统完全跟随太阳能热水器本身智能化程度和成本的要求,为太阳能热水器提供了一套智能化程度高、性能良好、使用方便、经济实惠的配套控制系统。1.2 太阳能热水器和其控制器的发展现状中国太阳能热
12、水产业的发展始于上世纪80年代,当时的市场定位是农村或中小城镇的低收入家庭。90年代后期,住宅商品化的发展以及家庭对热水需求的大幅度增长为太阳能热水器的发展提供了市场空间, 太阳能热水器的生产规模进一步扩大,形成了一些有一定知名度的产品和品牌。自上世纪90年代以来,我国太阳能热水器行业保持了10多年的快速增长 ,2005年 太阳能热水器年生产量为1 500万平方米,是2000年640万平方米的2倍多,到2005年底,我国太阳能热水器保有量超过7500万平方米是2000年2600万平方米的近3倍。目前,我国既是世界上最大的太阳能热水器生产国,同时也拥有世界上最大的太阳能热水器市场。至2005年,
13、全国有1000多家有一定规模的太阳热水器生产企业,年总产值达150多亿元,出口创汇2000万美元,全行业提供约30多万个就业机会,产生了显著的经济、环境和社会效益1。到目前已有许多太阳能品牌为大家耳熟能详,如皇明、桑乐、四季牧歌、力诺等。总之,太阳能热水器已是一件和电视机、洗衣机一样必不可少的家用电器。进步源于竞争,在我国太阳能拥有广阔的市场,当然也有更大的竞争,各大商家为了使自己的产品在市场上立足并长远发展,不断提高太阳能热水器的性能,其中太阳能热水器控制器以其灵活、贴近客户成为商家竞争的热点。目前,各大商家纷纷提高太阳能热水器的智能化程度来满足消费者的需求。许多太阳能热水器的功能有:开机自
14、检、温控上水、强制上水、水位预置、水质设置、水温指示、低水压上水、水位显示、防高温空晒、缺水报警、自动防溢流、 缺水上水、手动上水、故障提示等许多贴近客户需求的功能。目前太阳能控制器的控制器基本实现数字化,以单片机为控制核心的控制系统占领太阳能热水器的主要市场。在市场调查中发现,太阳能控制单片机的型号较多,其中应用最多的是51系列和PIC系列单片机。其基本框图如图1-1所示。图1-1 市场太阳能热水器基本框图2太阳能热水器控制系统可以实现水位显示、水位控制、温度显示、防冻等多种功能,其中对水位的检测、控制,实现水位显示、自动上水、超限报警是太阳能热水器控制系统的核心。目前大多数太阳能热水器的水
15、位传感器都采用分段式水位传感器,因为太阳能热水器对水位精确度的要求不高,并且分段式传感器的成本很低。图1-2是常用的一种分段式热水器传感器的基本原理。对于温度的检测便于用户的使用和控制电加热。目前,温度传感器的应用种类较为繁杂,有直接使用热电阻、热电偶的,也有使用数字温度变送器(如MAX6674)的。在显示方面多采用LED显示或LCD液晶显示。图1-2 一种分段式水温传感器31.3 课题的研究内容本课题主要是对市场现有产品的仿制,要能够实现太阳能热水器的完整功能。本课题以89C52单片机为核心配合传感器、显示器件、电磁阀、电加热器、报警器等外围器件,采集热水器储水箱中的水位、水温信号,通过控制
16、电动机的运转、电加热器加热来控制储水器的水位、温度,并完成水位、水温显示,时间显示,水溢报警等功能。另外配有键盘,可以实现手动上水、手动电加热、设置水位、设置温度等功能。第二章 太阳能热水器智能水位控制系统整体结构介绍太阳能热水器整体结构大致可以分为四大部分:1水位、水温测量电路。这部分用于采集水位水温信号给单片机,是太阳能热水器控制器最关键的部位。2时间、水位、温度显示和键盘电路。这部分用于系统和人的信息交互,有对太阳能热水器状态的直观显示,也有用于人对系统控制的键盘电路。3时钟电路。给系统提供时间显示和参考时间。4驱动电路。包括电加热、上水电磁阀、报警电路,是整个系统的执行部分。系统的整体
17、结构图如图2-1所示。图2-1 太阳能热水器控制系统整体结构图第三章 水位和水温测量电路硬件设计水位测量和水温测量是太阳能热水器控制系统的最重要部分,是实现其他功能的基础,此部分性能好坏将关系到整个系统的优良程度,所以设计一个性能良好的水位、水温测量系统是本设计的重点。3.1 水位测量电路水位测量可以有多种方法,需从性能和成本两方面进行考虑,选择合适的方案。3.1.1 方案比较选择1排阻分档键盘式水位传感器在许多资料中都介绍了一种类似键盘电路的分档水位传感器,其原理图如图3-1所示。图3-1 排阻式水位测试电路示意图4它的工作原理类似于键盘的工作原理,用 5根不锈钢针分别置于水箱内的 四种不同
18、高度的位置,当某个钢针不接触水面时,其输出为高电平;当其与水面接触时则输出低电平。它们的输出接至电子开关CD4069,经过CD4069反向并经74LS244驱动后分别接入89C52的 P10P13引脚。CPU对这些引脚进行判断后 ,送去显示相应的水位值。显示共分 4档 ,每档为满水位的25% 。这种方法简单,易实现,省去了传统的 AD转换器,成本低,虽然不精确但可以满足使用要求4。2RC充放电式水位传感器测量电路这种电路资料较少,但我们在市场上购买的桑乐太阳能的水位和水温传感器就是基于这种原理,其基本形状如图3-2所示。图3-2 桑乐太阳能水位水温传感器外形图从图3-2中我们可以清楚的地看到传
19、感器外形非常简单,一共只有4个端口,其中一个是防冻接口,没有使用,使用的只有3个端口,在可用的三个端口上分别标有公共、水位、水温标志,由此可知测量水位、水温都只用了一个端口。观察传感器可知水位传感器有5个与水接触点,我们从上到下依次命名它们为15触点。我们分别测量了触点不同接法时公共和水位两端口之间的电阻,数据如表3-1所示。由上述测试结果的电阻值得出这样的规律,那就是电阻的并联短接,其原理如图3-3所示。表3-1 输出电阻值表短接方式无短接1、21、2、31、2、3、41、2、3、4、5输出电阻值(k)极大2512.58.66.3图3-3 桑乐太阳能水位传感器原理它的工作原理是,水面每接触一
20、个钢针就会多并联一个电阻,电阻随水位变化而规律的变化。利用单片机的一个口周期性的给电容电路充放电,然后用图3-4 RC充放电式水位传感器测量电路原理图单片机监测电容两端电压的变化,因为电容电压的上升或下降时间t=RC,所以用单片机记录这个时间就能判别电阻的变化,进而转化为水位的变化进行显示及其他动作。3传感器选择RC充放电式水位传感器测量电路,明显优于排阻分档键盘式水位传感器的地方有:(1)接线简单,排阻分档键盘式水位传感器需要四根导线传输水位信号,而RC充放电式水位传感器仅需要两根就能完成,这对于线路较长的太阳能热水器传输信号电路来说能节省相当多的导线资源。(2)给水温测量电路设计带来方便,
21、RC充放电式水位传感器的原理可以同样运用到热电阻温度测量电路中。(3)占用较少的I/O口,仅需两个I/O口就能完成水位检测任务,极大地节约了单片机的I/O 口资源。综上比较可见选用第二种方案较为优越。3.1.2 水位测量电路的具体设计及优化1直接接单片机I/O口检测单片机中的定时器可以提供电压变化时间的纪录,接下来就是如何将电压的变化传递给单片机。一种简单的方案是:用P1.0口给RC电路周期性的充放电,然后用P1.1口监测电容的电平变化,完成计时,这种方案看上去简单易实现,但实际则行不通。按刚才提到的方法接图如图3-5。这样做得到的结果是P1.1的电压一直保持高电平,即电容电压一直保持高点平。
22、这与单片机内部电路有关,单片机的内部电路如图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的正向输入端接电容电压正端,反向输入端
23、与输出端相连,构成电压跟随器。电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要达到几兆欧姆是很容易做到的。输出阻抗低,通常可以到几欧姆,甚至更低,也就是说电压跟随器有较好的隔离作用,使输出对输入影像较小,正好满足我们的要求6。LM358的输出电压幅度为0 至Vcc-1.5V,而要跟随的电压范围为05V,所以应选用大于+6.5V的电源供电,这里选用+12V单电源供电2LM393的作用给比较器设置+3V的参考电压,将电容电压的指数曲线变成矩形波,波形图如图3-8所示。将参考电压接同相输入端,比较电压接反相输入端,从而实现电容电压在上升到参考电压时比较器产生下降沿信号,作为单
24、片机的外部中断信号。如图3-8所示。根据LM393的特性本设计电源电路提供的电压,选用+5v给其供电。由LM393的内部原理图可知LM393的输出为集电极开路,它的输出高电平与LM393的电源无关,但须接外部电源和上拉电阻。在图3-7所示的水位测量电路中并未有这样的上拉电压电路,是因为单片机内部INT0、INT1口已经具备了这样的电路。INT0、INT1的内部电路类似于P1口如图3-6所示。另外LM393的同相输入端输入和反相输入端输入之间有相互嵌位作用,+5V电源和分压电阻提供的+3v参考带电平对反相输入端输入有嵌位作用,如果不接LM358 电源跟随器而与电容直接相连,显然会影响电容电压的变
25、化,这就是要加电压跟随器进行隔离的原因。图3-8 电容电压与比较器输出信号(仿真和实测)3充电时间的设定和电容的选择电容充电时间的计算公式为: (3-1)T即位电容电压上升时间。编程使P1.0口输出周期性的方波,给电容充放电,方波半周期(充电或放电时间)为,应使方波半周期大于电容电压上升时间,即: (3-2)如果使用单片机主程序一直循环给P1.4口输出方波,方波的周期可以很大,超过几秒甚至几十秒,但是这样主程序就只能干这一项工作,影响单片机的其他工作。所以要用定时器来实现方波输出。这样用定时器就可以用定时中断使P1.4口输出方波,又不影响单片机的其他工作。这样方波的周期就受定时器定时时间的限制
26、。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) /充
27、电开始时启动定时器0 TL0=TH0=0X00; /定时器0赋初值0 TR0=1; /启动定时器0如图3-6,这里用INT0 中断来监视记录电容变化,内部编程实现计时器对电容电压上升时间的记录,所以可以通过将计时器寄存器里的值显示出来的方式直观显示电容电压结果,来确定合适的电容。以下是编程实现这一过程的结果。表3-2 不同电容大小时计数器寄存器中的值一水位二水位三水位四水位TH0TL0TH0TL0TH0TL0TH0TL02uFA0B48598708360651uF64704950384032340.22uF2180A31728016472由表格数据可见当选用2uF电容时,应需较大的充放电时间,
28、充放电不够充分,所以计数器寄存器中的值大而不准;而当取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、编程实现水位处理由于水电阻的波动性和电容的不稳定性等原因,计数器中的数值会有一定的波动,所以需要对数据进行相应的处理显示水位。其中buf1为计
29、数器0寄存器中的值。void LvRead() if(buf160) WTLV=1; /显示1水位L3=0;L2=1;L1=1;L0=1; else if(buf145)WTLV=2; /显示2水位 L3=1;L2=;L1=1;L0=1; else if(buf136)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负温度系数热电阻,本系统也选用这种。下
30、面主要论述测量电路。3.2.1 方案比较选择温度测量方案很多,下面通过比较选择合适的测量方法。1 热电阻A/D转换式水温传感器图3-9 热电阻A/D转换电路原理图A/D转换式水温传感器的原理是,利用热敏电阻的阻值随温度变化的特性,将随温度变化的电阻信号转化为变化的电压信号,然后将这个电压信号经运放放大处理成05V的电压信号,电压信号经A/D转换变成数字信号送给单片机。这种电路测量比较精确,但需用A/D转换器,而A/D转换的价格较贵,会加大成本,另外A/D转换需占用8个数据口和两个片选口及两个控制口共12个I/O口。2RC充放电式热电阻水温传感器测量电路RC充放电式热电阻水温传感器测量电路的原理
31、与前面提到的RC充放电式水位传感器测量电路原理完全相同,只要把水位电阻换成热电阻就可以了。其缺点是不够精确,但成本很低,对于对温度要求不算精确的太阳能热水器系统,完全可以满足我们的需要。另外与A/D转换式温度传感器相比,其优势还是十分突出的:(1)仅需2个I/O口就能完成对温度的检测,节约了单片机的I/O,有利于降低成本。 (2)实现起来也十分简单。3.2.2 水温测量电路的设计及温度计算方法1水温测量电路图3-10 水温测量电路原理图对太阳能热水器中水的温度进行控制及显示,需对热水器水温与出水温度进行检测。对于热水器来说温度控制与显示的精度要求并不高,因此本设计采用负温度系数NTC 热敏电阻
32、作为测温元件,利用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单片机无法进行直接的对数运算,按上述公式计算温度值将是十分困难的。在这里查表法是一种经常采用的解决办法,即事先计算出所有可能的计时结果所对应的
33、温度值以表格形式写入控制程序,每次转换完毕后查表得出所对应的温度值。但此种方法需占用较多的程序储存空间本设计采用一次线性插值法对温度与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(); N
34、4=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计算出的温度值在020 范围内误差不超过2,
35、在20 90 范围内误差不超过1,并且计算出的温度值与A/D 转结果之间保持良好的单调递增关系。3程序实现测量水温程序与水位程序类似,由单片机口给电容发矩形波充放电,然后检测中断计时,根据计数器中的值来判断当前温度。也就是水温测量程序包含中断计时和数据处理两部分。定时器0和1已经被水位测量电路,和充电定时占用,所以这里需可以编程序实现水位和水温中断轮流开关,来轮流使用定时器0,计算温度传感器的上升时间。数据处理公式已在上面列出。下面列出数据处理程序,其中buf3、buf2为中断1得到的定时器1中的值,中断程序见附件。void TmRead() uint val; val=buf3*256+bu
36、f2; if(val7549) TMP=97-int(val*8/1000); else if(val20000) TMP=50-int(val/1000); else TMP=30-int(val*5/10000); 3.3 水位、水温测量电路的整体设计 由上面的分析知道,两者的电路原理一样,都是用P1口给电容充电,用中断检测电容电压变化。作为充电口P1口的作用相当于电源(充电时)或地(方电时),所以可以用同一个口为两个冲放电回路充电,两个回路是独立的。LM393和LM358 都是双运放、8脚DIP封装,恰好用于水位和水温检测两路。下面图3-12 是实际的水位和水温测量电路图。图3-12 水
37、位和水温测量电路实际电路图以P1.0口作为水位和水温电路的公共充0放电口,以INTO作为水位测量电路的中断检测口,以INT1作为水温测量电路的中断检测口。第四章 时钟电路太阳能热水器虽然节能环保,但它也有自身的许多缺点,例如受天气状况的影响太大,如果某天因阴雨天气等原因日照不足,水温偏低,使用者就无法正常使用热水。为了解决这个问题需要为控制系统提供电加热装置。本系统设计了一个利用时钟芯片提供时间信号完成智能加热功能的电加热系统。下面对时钟芯片电路的介绍。4.1 时钟芯片选择为了实现自动加热的功能,需要使用一个适用本系统得时钟芯片,下面通过对两种芯片的性能比较来选择芯片。4.1.1 DS12B8
38、87并行时钟芯片1DS12B887性能特点:在没有外部电源的情况下可工作10年,自带晶体振荡器及电池,可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿,用二进制码或BCD码代表日历和闹钟信息,有12和24小时两种制式,12小时制时有AM和PM提示,可选用夏令时模式,可以应用于MOTOROLA和INTEL两种总线,数据/地址总线复用,内建128字节RAM 14 字节时钟控制寄存器 114 字节通用 RAM,可编程方波输出,三种可编程中断 时间性中断 可产生每秒一次直到每天一次中断 周期性中断122 ms 到 500 ms时钟更新结束中断。2管脚功能描述图4-1是DS
39、12B887时钟芯片管脚图。管脚名称和功能:AD0AD7 地址/数据复用总线;NC 空脚;MOT 总线类型选择(MOTOROLA/INTEL);CS 片选;AS ALE;R/ W 在INTEL总线下作为 /WR;DS 在INTEL总线下作为 /RD;RESET 复位信号;IRQ 中断请求输出;SQW 方波输出;VCC +5 电源;GND 电源地; 图4-1 DS12B887时钟芯片管脚图4.1.2 DS1302串行时钟芯片1DS1302芯片的性能特点:实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力,318 位暂存数据存储RAM,串行I/O 口方式使得管脚数量最
40、少, 宽范围工作电压2.0 5.5V, 工作电流2.0V 时,小于300nA,读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式, 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配, 简单3 线接口,与TTL 兼容Vcc=5V8。2管脚功能描述图4-2为DS13028脚封装管脚图。图4-2 DS13028脚封装管脚图管脚描述:X1 、X2 32.768KHz 晶振管脚;GND 地;RST 复位脚;I/O 数据输入/输出引脚;SCLK 串行时钟;Vcc1,Vcc2 电源供电管脚;4.1.3 比较选择DS12B887的计时功能基本相同,它们的最大区别是DS1302时
41、串行I/O方式,而DS12B887时并行I/O口方式,DS12B887编程实现要容易些,而DS1302要占用较少的I/O资源。可见使用DS1302串行时钟芯片能够节省单片机的硬件资源,并能充分发挥单片机的软件优势,所以应使用串行芯片DS1302来完成时钟信号的提供。4.2 时钟电路的应用设计4.2.1 DS1302 内部寄存器CH: 时钟停止位 寄存器2的第7 位12/24 小时标志CH=0 振荡器工作允许; bit7=1,12 小时模式;CH=1 振荡器停止; bit7=0,24 小时模式;WP: 写保护位 寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入; AP=1 下午
42、模式;WP=1 寄存器数据不能写入; AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电; DS=01 选择一个二极管;TCS=其它 禁止涓流充电; DS=10 选择两个二极管;DS=00 或11, 即使TCS=1010, 充电功能也被禁止表4-1 RS位功能表RS位电阻典型位00没有没有01R12 K10R24 K11R328K4.2.2 DS1302与单片机的连接及时间读取方法DS1302的管脚按前面的说明进行连接,SCLK同步时钟口接P1.5口,I/O数据输入输出口接P1.6口,RET复位引脚接P1.7口,VCC2接+5V电源,VCC1接+5V备
43、用电池,X1、X2接32.768MHZ晶振。单片机与DS1302的连接方式如图4-3所示。读取DS1302的时钟时间是主程序的一部分,首先要定义日期时间等全局变量,然后在主程序中调用时间读取程序,时间程序编程如下。DS1302为串行时钟芯片,每次传送一位数据,通过P1.5给DS1302发同步脉冲实现数据传输的同步。P1.6口与DS1302 I/O引脚相连,将要读取值的控制字串行写入到DS1302中,每写一位,发送一个同步脉冲,控制字为8位,读出的时、分数据也是8位,写完8位控制字,DS1302随后就通过I/O引脚将该值送给单片机。I/O引脚上的数据在SCLK的上升沿串行输入(写数据到DS130
44、2),在SCLK的下降沿串行输出(读数据)。为了启动数据传输,引脚RST应为高电平。DS1302有多种功能的控制字,其中读时和分的控制字分别为0x85和0x83。 图4-3 单片机与DS1302的连接图 #define DS1302_MIN_Reg 0x85/定义读分钟命令控制字#define DS1302_HR_Reg 0x83/定义读小时命令控制字void ReadTime(void) uchar dat; dat=DS1302_Read(DS1302_HR_Reg);/时,调用读时间函数 hour=dat;/返回值给小时数据寄存器 dat=DS1302_Read(DS1302_MIN_Reg);/分,调用读时间函数 minute=dat; /返回值给分钟数据寄存器uchar DS1302_Read(uchar reg) uchar dat=0,i; Clr_DS1302_RST; _nop_();