1、华北科技学院课程设计 目录一、设计要求1二、设计目的1三、设计的具体实现11.系统概述12.单元电路设计32.1微控制器模块32.2 温度测量32.2.1 Pt1000铂电阻温度传感器42.2.2 温度信号放大电路42.2.3 模数转换电路52.3 实时时钟72.4 温度、时钟显示电路82.5 看门狗复位电路103软件程序设计123.1 整体软件设计123.2 模数转换软件设计133.3 LED显示软件设计17四、结论与展望20五、心得体会及建议20六、附录21七、参考文献21电热水器控制系统课程设计一、设计要求1.测量热水器的温度,并显示,范围070摄氏度。2.可人工设置热水器内烧水温度,范
2、围20到70摄氏度。3.当热水器内无水时有报警提示,并且开关自动关闭。4.可以限定烧水时间。二、设计目的运用我们所学的专业知识,采用单片机为主控芯片设计电热水器控制系统并辅以外围电路设计,既能加深我们对专业知识的理解,又能培养专业知识与实践相结合的实践技能,提高我们分析、解决问题的能力。三、设计的具体实现1.系统概述电热水器控制系统的整体设计方案主要包括硬件设计方案和软件设计方案。硬件是指以微控制器作为整个控制系统的核心,再外接温度信号采集电路、实时时钟电路、热水器加热控制开关、LED显示电路、键盘、复位与看门狗电路组成。硬件设计方案如图1所示。系统主要采用51单片机AT89C52作为整个控制
3、系统的主控模块,利用AT89C52的引脚连接其他的外部电路。对于温度的测量根据其环境的特殊性,温度信号的采集主要由Pt1000铂电阻温度传感器、信号放大电路和A/D 转换电路组成;对于实时时钟的实现则是采用现有的PCF8563时钟芯片,主要是取得时钟的小时和分钟;键盘主要是用来设定开机时间、设定热水温度、定时加热时间、校准时钟,因此需设定四个按键;而为了调高系统的性能,系统采用了看门狗复位电路;对于温度及实时时钟的显示选择以CH451作为驱动芯片的LED显示电路。信号放大电路水温采集装置微控制器模块AT89C52晶振电路电 源复位电路实时时钟键 盘设定功能电路LED显示电路加 热 开 关A/D
4、转换图1 系统硬件框图2.单元电路设计2.1微控制器模块本系统主要是使用AT89C52现有的引脚连接外部的其它硬件电路,是一种性价比较高的单片机。AT89C52主要性能说明如下:32个I/O口线;片内有8KB闪速存储器,256B内部随机存取存储器RAM;3个16位定时/计数器,用于实现定时或计数功能;中断系统为一个6向量两级中断结构;一个可编程全双工串行通信口;片内振荡器及时钟电路,全静态工作方式。具有全静态工作方式表明它不一定要求连续的时钟定时,在等待内部事件期间,时钟频率可降至0Hz的静态逻辑操作。AT89C52的功能引脚说明:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用
5、口;P1、P2、P3是一个带内部上拉电阻的8位双向I/O口,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,而P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能;RST是复位输入;ALE/PROG是一个复用引脚,ALE是地址锁存允许,PROG是输入编程脉冲;PSEN是外部程序存储器的读选通信号;EA/VPP是外部访问允许;XTAL1是振荡器反相放大器的及内部时钟发生器的输入端;XTAL1是振荡器反相放大器的输出端。2.2 温度测量温度测量是电热水器控制系统中一个至关重要的部分,其测量过程是比较复杂的。测量温度的标尺是温度计,按照其测量方式可以分为接触式和非接触式两种。在这里
6、温度测量主要由Pt1000铂电阻温度传感器、信号放大电路和模数转换电路组成。2.2.1 Pt1000铂电阻温度传感器温度传感器就是利用各种物理性质随温度变化的规律把温度信号转换为电量的仪器。Pt1000电阻温度传感器则是热电阻式温度传感器的一种。本系统采用的是R0=1000欧姆的铂电阻温度传感器,温度要求范围为070,所以适合式Rt=R01+At+Bt2。此外,引线电阻会影响到测温精度,而由于系统对温度测量精度要求不高,因此采用二线制接法,这种接法需要的材料少价格低,简单实用,只要直接将传感器的两根引线接到放大器的反馈电阻位置即可。2.2.2 温度信号放大电路 由温度传感器采集到的信号比较弱,
7、难以直接进行A/D转换,所以必须一个合适的放大电路来将这个信号放大。电子电路放大的基本特征是功率放大。放大器的种类很多,但在模拟输入通道中使用的是一种具有高放大倍数并带有深度负反馈的直接耦合放大器,即运算放大器。运算放大器具有输入阻抗高,增益大,可靠性高,价格低和使用方便等特点。因此,本系统采用的是噪声小,抗干扰能力较强的TLC2201功率放大器。Pt1000与TLC2201的接口电路如图2所示。图2 温度信号放大电路由图2可知,运算放大器U1的连接方式是电压跟随器的方式,运放U2采用同相比例放大器的连接方式。R1是一个限流电阻,防止电流太大而损坏稳压二极管Z2;C1、C2分别是陶瓷电容和电解
8、电容,主要是用于滤除电源的高频干扰和低频干扰;R2与R3并联后再串联R4形成一个电压可调的电路,并同时输入到U1的同相输入端;Rpt是铂电阻传感器的应变电阻值,在温度发生变化的时候,电阻相应改变。U2的同相输入端输入的是U1输出的固定信号,其反相输入端是由R8与Rpt连接成一个负反馈的放大电路,放大后的模拟信号由CS5513-AIN+标识的引脚输出,最后将接入模数转换电路。2.2.3 模数转换电路由于铂电阻传感器采集到的温度信号是模拟信号,不能直观的观测到,因此需要一个模数转换电路将这种模拟信号转换成数字信号后进行分析。本系统中选用CS5513芯片作为模数转换电路的核心部分。CS5513是20
9、位的串行输出模数转换芯片,用它可以进行直流测量,并且使用简单。CS5513的引脚介绍:模拟部分的引脚V+、V-:为正负电源引脚,CS5513可工作于单电源或双电压源模式AIN+、AIN-:差分模拟输入VREF:参考电压输入,转换器的参考电压为VREF和V-之间的电压,此电压最低为2.5V,最高为(V+)-(V-)V数字部分引脚SDO:串行数据输出,SDO输出的逻辑低电平是以的逻辑低电平为基准的,所以CS5513没有专用的接地管脚SCLK:串行时钟输入,用于控制CS5513中的SDO引脚的输出。当SCLK为高电平并持续2ms后,CS5513进入休眠状态,要终止这种状态只需将SCLK置为低电平即可
10、:片选端,当为高电平时,SDO串口数据输出端输出为高阻态;当为低电平时,SDO输出数据CS5513与模拟输入的接口电路如图3所示,经由信号放大电路放大后的模拟信号输入到CS5513的AIN+端。图3 模数转换电路2.3 实时时钟实时时钟的缩写是RTC(Real-Time Clock)。RTC是集成电路,通常称为时钟芯片。本设计采用PCF8563时钟芯片实现,它是一款工业级低功耗的CMOS实时时钟/日历芯片。它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过IC总线接口串行传递。最大总线速度为400Kb/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。PCF8563芯
11、片引脚排列及功能说明如图4所示。图4 PCF863的引脚排列及功能说明OSCI:振荡器输入OSCO:振荡器输出:中断输出,开漏输出模式(获得更大的驱动),低电平有效Vss:接地SDA:串行数据I/O接口SCL:串行时钟输入CLKOUT:时钟输出,开漏模式Vdd:正电源PCF8563硬件连接原理图如图5所示。图5 实时时钟电路2.4 温度、时钟显示电路 LED是Light Emiting Diode(发光二极管)的缩写,它是能将电信号转换为光信号的电子发光器件,也称数码管。数码管有7段和8段之分,8段数码管是在7段基础上再加了一个圆点形的发光二极管,用于显示小数点。 本系统需要显示温度和时钟两个
12、部分,温度显示需要2个数码管,时钟显示需要4个(小时、分钟)数码管。因此需要可以驱动6个 数码管的驱动电路。本系统采用CH451芯片作为LED显示的驱动电路的核心。CH451是一个整合了数码管显示驱动和键盘扫描控制的多功能外围芯片。CH451内置RC振荡电路,可以直接动态驱动8位数码管或者64位数码管,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能;在外部接口方面,CH451可选择简洁的1线串行接口或高速4线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位两种输出,同时内置看门狗电路。其引脚引脚排列及功能说明如图6所示。Seg0Seg
13、7数码管的段驱动高电平有效,键盘扫描输入,高电平有效,带下拉。Dig0Dig7:数码管的字驱动,低电平有效,键盘扫描输入,高电平有效,带下拉。VCC:正电源,持续电流不小于200mA。GND:接地,持续电流不小于 图6 CH451引脚图 200mA。DOUT:串行接口的数据输出。LOAD:4线串行接口的数据输入控制,带上拉。DIN:4线串行接口的数据输入控制,带上拉。DCLK:串行接口数据时钟,带上拉。CH451与LED连接的显示电路如图7所示。图7 CH451与外部电路连接图如图7所示,电路中主要元件是数码管显示驱动芯片CH451,驱动6个带小数点的8段数码管。在CH451的段输出端即Seg
14、0Seg7加200欧姆的限流电阻调节数码管的工作电流,CH451的位选择输出端Dig0Dig7的输出为低电平有效,因此选用共阴极型数码管。数码管的公共端分别接至Dig0Dig5,由CH451控制刷新相应的位显示。2.5 看门狗复位电路为了避免出现这些使系统不能正常运行的故障,在及时发现的同时,能够使系统自动恢复,本设计采用了看门狗电路。本系统采用了IMP813芯片用于看门狗复位电路,IMP813主要是作为Watchdog计数器重定用的。当程序跑飞时,如果在1.6秒内没有触发该电路(WDI无脉冲输入),则WDO输出由高电平变为低电平,并保持在140ms以上,IMP813就产生复位信号,自动复位,
15、同时看门狗定时器清0。若将WDO端与MR连接,则可组成上电复位及看门狗复位电路。实际应用时,将第RST接CPU的复位脚,MR脚与WDO脚相连,WDI脚与CPU的P2.1相连。在软件设计中,P2.1不断输出脉冲信号。如系统死机导致P2.1无脉冲信号输出,则1.6秒后在IMP813的WDO脚输出低电平。该低电平加到MR脚, IMP813产生复位输出,使CPU有效复位,摆脱死循环的困境。另外,当电源电压低于门限值4.65V时,IMP813也产生复位输出,使CPU不执行任何动作直至电源电压恢复正常。其与单片机连接方式如图8所示 。图8 看门狗复位电路3软件程序设计3.1 整体软件设计 电热水器上电后,
16、首先进行系统初始化,设置时钟时间;其次显示当前的温度和时钟,并判断加热开关是否打开,执行相应的操作;如果有功能键按下,则进入功能设定界面,包括校准时钟、设定开机时间、设定热水温度和设定加热时间4种功能,设定完毕后,再次按下功能键表示设定生效;若无功能键按下或者功能键设定完毕后,则进行各种条件的判断并执行相应的操作;最后各种条件判断完毕后,程序回到温度的读取与显示,进而开始新一轮的程序运行。系统软件整体设计流程图如图9所示。图9 系统软件整体设计流程图3.2 模数转换软件设计通电后CS5513将进行模数转换工作,同时更新输出寄存器。当输出寄存器有新的数据,而此时处于低电平时,SDO串口数据输出端
17、将呈现低电平,表明有新的转换数据可以执行输出操作了。要读出所有的数据需要发24个CLK脉冲,在CLK脉冲的上升沿,从SDO串口数据端读出数据,在CLK脉冲的下降沿输出寄存器中的数据到SDO串口数据输出端。一旦整个转换数据被读完,SDO串口数据输出端又呈现高阻态,如果我们正在读数据而新的转换数据又完成了,那么新的转换数据将丢失,输出寄存器不被更新。用户并不需要读出每一次的转换结果。当新数据有效时,如果在等待17个内部时钟周期后没有执行读操作,新数据将丢失,SDO串口数据输出端又呈现高阻态。CS5513的输出字为24bit(如表1),其中D0D19为20bit有效数据位,D20和D23通常为0 。
18、OD为振荡检测标志位,当调制器不稳定或输入超出最大满量程范围的过大电压时被置1,当调制器稳定后被清0。OF标志位,没有溢出时被清0,当输入信号正向超出正的满量程范围或负向超出负的满量程范围时被置1。表1 CS5513的输出字D23D22D21D20D19D18D17D16D15D14D13D120OFOD0MSB18171615141312D11D10D9D8D7D6D5D4D3D2D1D011109876543210LSB读AD转换值的函数是模数转换设计软件的主要部分,其程序流程图如图10所示,按照CS5513的时序与其特性,开始读4位数据,然后再读20位AD转换后的值,这样可以分别看数据和
19、别的标志位,并且要对读取到的数据进行判断,确定读取的是否为正确数据,同时在读取过程中要关闭串行口中断,以免上位机取得不正确数值。图10 AD模数转换设计软件流程图部分程序实现代码如下:unsigned long CS5513() /读取AD转换值程序实现 uchar i; uchar over_ad=0; unsigned long AD; AD=0; ADCS=0; /片选,低电平有效 delay_1(); /延时 ADCLK=0; delay_1(); time_50ms=0; while(ADSDO); /判断是否数据转换结束 for(i=0;i4;i+) ADCLK=1;delay_1
20、();over_ad1;if(ADSDO) over_d+; /读前面的几位,是标志位ADCLK=0;delay_1(); for(i=0;i20;i+) /读后面的20 位数据值 ADCLK=1;delay_1();AD=AD=6) error_ad=1;ADCLK=0; delay_1();ADCLK=1; delay_1();for (i=0;i48;i+) ADCLK=1; delay_1(); ADCLK=0; delay_1();break; ADCS=1; for(i=0;i4;i+) delay_1(); if(over_ad) error_ad=1; return(AD);
21、/子程序返回一个变量AD的值,以待数据处理用3.3 LED显示软件设计LED的显示程序主要是处理温度显示的功能,在温度显示过程中,需要对CH451的设置及数据的发送,CH451的数据显示功能比较强大,具体代码实现如下。(1)* 写入CH451控制命令 * void CH451_Wcmd (unit command)uchar i;LOAD=0;for(i=0;i=1;LOAD=1;(2)* CH451初始化 * void CH451_Init()DIN=0;DIN=1;CH451_Wcmd (CH451_RESET); CH451_Wcmd (0x401);CH451_Wcmd (0x580)
22、;CH451_Wcmd (0x600);(3)* 向对应的八段数码管写入数据 * void CH45_Wdata (uchar address,uchar da)uchar i;DIN=0;for (i=0;i1;DCLK=0;DCLK=1;for(i=0;i1;DCLK=0;DCLK=1;LOAD=0;LOAD=1;四、结论与展望本课题通过以AT89C52单片机为核心并辅以外围电路的设计方法实现了低成本的控制要求。该系统具备简单、经济的特点,灵活的键盘控制方式来设定功能等参数增加了系统的灵活性,对水温的采集和显示、实时时钟的显示增加了系统的实用性。电热水器内部器件较多,控制也较为复杂,应该说
23、本课题是实时电热水器控制系统的小的缩影,整个系统的框架具有很高的应用价值,可以在此构架的基础上,增加多种传感器和其他一些智能化设计,实现一个功能齐全的电热水器控制系统。五、心得体会及建议通过对本次电热水器的设计,让我深刻了解到电热水器的内部硬件组成以及软件设计,电热水器内部器件较多,控制也较为复杂,应该说本设计是真实电热水器控制系统一个小的缩影,整个系统的构架具有很高的应用价值,可以在此构架的基础上,增加多种传感器和其他一些智能化设计,实现一个功能齐全的电热水器控制系统。在本次设计过程中遇到了许多困难,有时无从下手,通过大量的查找资料和寻求别人的帮助,最终让我顺利的完成了这次课设。在课堂上的学
24、习的内容看似简单,但真正用于实践还是有很多困难,因此要理论结合实践,不断在实践中磨练提升自己。六、附录所用元件:51单片机AT89C52、Pt1000铂电阻温度传感器、PCF8563时钟芯片、LED八段数码、CH451驱动芯片、蜂鸣器、电源指示灯、二极管、开关,此外,电阻、电容、导线若干。七、参考文献1白延敏51单片机典型系统开发电子工业出版社20092李群芳单片微型计算机及接口技术(第二版)电子工业出版社20053王俊杰,张伟仪表技术与传感器机械工业出版社20084童诗白华成英模拟电子技术基础高等教育出版社20095周懂明基于IPC机的两用炉综合性能测试系统的研究南京航空大学20062121