基于单片机的电加热恒温箱控制器设计
中叠放的对象。工程师可以专注于其目前的编辑任务,也可以完全进入目标区域内的任何其他对象,这增加了在密集、多层设计环境中的编辑速度。
Altium Designer 6.9 引入了强大的?逃逸布线?引擎,尝试将每个定义的焊盘通过布线刚好引到BGA边界,这令对密集BGA类型封装的布线变的非常简单。显著的节省了设计时间,设计师无需手动就可以完成在一大堆焊盘间将线连接这些器件的内部管脚。
Altium Designer 6.9极大减少了带有大量管脚的器件封装在高密度板卡上设计的时间,简化了复杂板卡的设计导航功能,设计师可以有效处理高速差分信号,尤其对大规模可编程器件上的大量LVDS资源。
Altium Designer 6.9 充分利用可得到的板卡空间和现代封装技术,以更有效的设计流程和更低的制造成本缩短上市时间。
Protel是在中国用得最多的EDA工具,电子专业的大学生在大学基本上都学过Protel 99 se,所以学习资源也最广,公司在招聘新人的时候用Protel新人会很快上手。目前Protel版本有许多,如Protel 99、Protel 99 se、Protel 2004、Protel DXP、Protel 2006。随着版本的更新,它的功能越来越强大,对新器件的支持也越来越多。我们专业开设的也是Protel 99 se的课程,自己对Protel 99 se比较熟悉,所以本设计选择Protel 99 se。
2.5.2软件开发环境选择
单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变成CPU可以执行的机器吗有两种方法,一种是手工汇编,另一种是机器汇编,目前已经极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS—51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,单片机的开发软件业在不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件业在不断发展。
方案一:Keil是德国知名软件公司Keil(现已并入Arm 公司)开发的基于8051 内核的微控制器软件开发平台,是目前开发8051内核单片机的主流工具,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分结合在一起。运行Keil软件需要Pentium或以上的CPU,16M或更多的RAM、20M以上的闲散硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用的是C语言,则该软件十分适用,即使使用的是汇编语言,其方便易用的集成环境、强大的软件仿真调试工具也会令工作事半功倍。
方案二:使用伟福软件必须使用伟福的硬件才能仿真,硬件自己也不能搭起来,硬件的支持很少,软件编程起来也比较繁琐。
12
伟福的单片机软件平台内部的编译器不如Keil的好用,如果写的程序行中存在错误,在编译的过程中,Keil可以精确的指出语法错误所在的程序所在行数,而伟福就不能做到非常精确了,所以这次设计选择方案A。 2.5.3编程语言的选择 方案一:选择C语言
C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短、运行速度高、所需存储空间小。
方案二:选择汇编语言
当设计一个小的嵌入式系统时,一般我们都用汇编语言。在很多工程中,这是一个很好的方法,因为,代码一般都不超过8K,而且都比较简单。如果硬件工程师要同时设计软件和硬件,经常会采用汇编语言来做程序。同时还应该认识到,汇编语言是一个非常低级的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:
A. 编写的代码非常难懂,不好维护; B. 很容易产生 Bug,难于调试;
C. 只能针对特定的体系结构和处理器进行优化; D. 开发效率很低,时间长且单调; E. 兼容性不好,与硬件关系非常紧密。
如果使用C51的话,可以很好的解决这些问题。应用C51编程具有以下优点: A. 不需要了解处理器的指令集,对8051的存储器结构也不必要了解; B. 寄存器分配和寻址方式由编译器进行管理; C. 指定操作的变量选择组合提高了程序的可读性; D. 可使用与人的思维更相近的关键字和操作函数;
E. 与使用汇编语言编程相比,程序的开发和调试时间大大缩短;
F. 库文件可提供许多标准的例程(例如格式化输出、数据转换和浮点运算)加入到应用程序当中;
G. 通C可实现模块化编程技术,从而可将已编制好的程序加入到新程序中; H. C语言可移植性好且非常普及,C编译器几乎适用于所有的目标系统,已完成的软件项目可以容易地转换到其它的处理器或环境。
此外,C51语言还有许多强大的功能,如提供丰富的库函数供用户直接调用,完整的编译控制指令为程序调试提供必要的符号信息等等。总之,C51语言是广大单片机开发人员的强有力的工具,所以本设计选择C语言。
C语言的优点:编程具有开发周期短,可读性、可移植性好和修改方便等优点。
13
基于单片机的电加热恒温箱控制器设计
3系统的硬件设计 3.1 系统硬件功能分析
本设计以 P89V51为核心控制器,包括传感器电路,键盘电路,显示电路、报警电路和加热电路5大模块,系统的详细结构框图,如图3-1所示。
P89V51内部没有A/D转换器,需要专门添加,这里使用的是ADC0809,传感器采集到的模拟信号经过两次放大,接着通过ADC0809转换成数字量送给单片机。单片机实时采集温度,通过数码管将当前温度显示出来,并根据采样结果控制加热器,调节平均加热功率的大小;同时定时时间一到,蜂鸣器发出声音报警。
传感器A/D转换电路显示电路电热丝晶闸管触发电路单片机系统键盘电路报警电路图3-1 恒温箱温度控制系统详细结构框图
3.2系统硬件电路设计
3.2.1单片机最小系统的设计
最小系统主要由晶振电路和复位电路组成,图3-2是传统P89V51RD2的最小系统电路。在电路设计中,要注意以下几点:
A. VSS是电源,必须保证稳定可靠; B.
EA管脚不可悬空,必须连到
VSS,或者通过上拉电阻接到VSS;
C. 复位电路采用传统的RC复位,并多带一个复位按键,以方便操作; D. 晶振的频点不是任意的,这里使用12MHz;
E. 注意:/PSEN管脚作悬空处理,不能接地,这和P89V51RD2 的情况不同。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经过一定的延时才能撤消复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。
P89V51RD2的操作频率为0~40MHz,如前面所述,这里使用市场上常见的 12MHz的晶振。单片机内含一个高增益的反相放大器,通过XTAL1、XTAL2外接作为反馈元件的晶体后便成为自激振荡器。晶体呈感性,与C6、C7构成并联谐振电路。振荡器的振荡频率主要取决于晶体 。在应用时为了保证正常起振,振荡
14
器的位置要最接近单片机,且连线要最短。如图3-2所示,外部振荡器电容C1和C2,用于振荡频率微调或振荡器匹配,并可用于调整起振时间,复位电路由C3和S1组成,为了防止抖动现象。
图3-2 P89V51RD2单片机最小系统
3.2.2温度检测电路的设计
利用热电阻温度系数随温度变化而制成的温度传感器,称为热电阻温度传感器。对于大多数金属导体,其电阻值都具有随温度升高而增大的特性。常用的金属导体材料有铂、铜、铁和镍。
热电阻是中低温区最常见的一种温度传感器。它主要特点是测量精度高,性能稳定。热电阻的电阻变化范围很小,如果直接用欧姆表测量其电阻值的变化将十分困难、且误差很大,必须使用电桥电路,然后经过放大电路,放大偏差值。
铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200~650℃)范围的温度测量中。
Pt100是一种广泛应用的测温元件,在-50~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。由于铂电阻的电阻值与温度成非线性关系,所以需要进行非线性校正。校正分为模拟电路校正和微处理器数字化校正,模拟校正有很多现成的电路,其精度不高且易受温漂等干扰因素影响,数字化校正则需要在微处理系统中使用,将Pt电阻的电阻值和温度对应起来后存入EEPROM中,根据电路中实测的AD值以查表方式计算相应温度值,如下表3-1。
15
基于单片机的电加热恒温箱控制器设计
表3-1 Pt100分度表(0~250℃)
温度 ℃ 0 10 20 30 40 50 60 70 80 90 100 103.9 0 1 2 3 4 5 电阻值(Ω) 100.39 100.78 101.17 101.56 101.95 102.34 102.73 103.12 103.51 104.29 104.68 105.07 105.46 105.85 106.24 106.63 107.02 110.9 107.4 111.29 6 7 8 9 107.79 108.18 108.57 108.96 109.35 109.73 110.12 110.51 111.67 112.06 112.45 112.83 113.22 113.61 114 114.38 114.77 115.15 115.54 115.93 116.31 116.7 117.08 117.47 117.86 118.24 118.63 119.01 119.4 119.78 120.17 120.55 120.94 121.32 121.71 122.09 122.47 122.86 123.24 123.63 124.01 124.39 124.78 125.16 125.54 125.93 126.31 126.69 127.08 127.46 127.84 128.22 128.61 128.99 129.37 129.75 130.13 130.52 130.9 131.28 131.66 132.04 132.42 132.8 140.4 133.18 133.57 133.95 134.33 140.78 141.16 141.54 141.91 134.71 135.09 135.47 135.85 136.23 136.61 136.99 137.37 137.75 138.13 100 138.51 138.88 139.26 139.64 140.02 110 142.29 142.67 143.05 143.43 143.8 144.18 144.56 144.94 145.31 145.69 120 146.07 146.44 146.82 147.2 147.57 147.95 148.33 148.7 149.08 149.46 130 149.83 150.21 150.58 150.96 151.33 151.71 152.08 152.46 152.83 153.21 140 153.58 153.96 154.33 154.71 155.08 155.46 155.83 156.2 156.58 156.95 150 157.33 157.7 158.07 158.45 158.82 159.19 159.56 159.94 160.31 160.68 160 161.05 161.43 161.8 162.17 162.54 162.91 163.29 163.66 164.03 164.4 170 164.77 165.14 165.51 165.89 166.26 166.63 167 167.37 167.74 168.11 180 168.48 168.85 169.22 169.59 169.96 170.33 170.7 171.07 171.43 171.8 190 172.17 172.54 172.91 173.28 173.65 174.02 174.38 174.75 175.12 175.49 200 175.86 176.22 176.59 176.96 177.33 177.69 178.06 178.43 178.79 179.16 210 179.53 179.89 180.26 180.63 180.99 181.36 181.72 182.09 182.46 182.82 220 183.19 183.55 183.92 184.28 184.65 185.01 185.38 185.74 186.11 186.47 230 186.84 187.2 187.56 187.93 188.29 188.66 189.02 189.38 189.75 190.11 240 190.47 190.84 250 194.1 191.2 191.56 191.92 192.29 192.65 193.01 193.37 193.74 Pt100温度传感器为正温度系数热敏传感器,主要技术参数如下:
A. 测量范围:-200~+850℃;
B. 允许偏差值△℃:A级±(0.15+0.002 | t | ),B级±(0.30+0.005 | t | ); C. 最小置入深度:热电阻的最下置入深度≥200mm; D. 允通电流≤5mA。
另外,Pt100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。铂热电阻的线性较好,0~100摄氏度之间变化时,最大非线性偏差小于0.5摄氏度。Pt100应用领:宽范围、高精度温度测量领域。如:轴瓦,缸体,油管,水管,汽
16