1.91k likes | 2.04k Views
第 13 章 单片机实用技术举例. 13.1 智能化温度仪表的设计 13.2 PID 智能控制器的设计 13.3 单片机数字万用表的设计 13.4 电子血压计的设计 13.5 步进电机在精确走步中的应用 13.6 单片机在串行通信中的应用 13.7 单片机在气象参数测量中的应用 13.8 单片机在模糊控制中的应用. 第 13 章 单片机实用技术举例.
E N D
第13章 单片机实用技术举例 • 13.1 智能化温度仪表的设计 • 13.2 PID智能控制器的设计 • 13.3 单片机数字万用表的设计 • 13.4 电子血压计的设计 • 13.5 步进电机在精确走步中的应用 • 13.6 单片机在串行通信中的应用 • 13.7 单片机在气象参数测量中的应用 • 13.8 单片机在模糊控制中的应用
第13章 单片机实用技术举例 • 随着单片机技术的发展,单片机应用已经渗透到各个领域。从家用电器、测量控制仪表、机电—体化产品到人工智能、航天航空等领域都大量应用单片机技术。本章介绍单片机的8个应用例子,来说明如何应用已经学到的知识,结合具体对象的特殊要求,设计单片机的应用电路,阐述单片机的应用方法和设计步骤。
l3.1 智能化温度仪表的设计 • 在工业生产、科学研究和日常生活中,温度是最常用的一个测量参数。传统的温度测量仪表结构复杂,功能有限,特别是在温度值的显示和非线性处理方面,存在许多的缺陷。应用单片机制造的智能化温度测量仪表,具有量程宽,线性度好,显示方便灵活,可以设置操作键盘和语音功能。
l3.1 智能化温度仪表的设计 l. 智能化仪表的概念 • 智能化仪表是常规测量仪表与单片机相结合的产物。智能化仪表能够解决常规仪表不易解决的问题,能够简化仪表电路,提高仪表的可靠性,降低仪表成本。
显示 传感器 变送器 单 片 机 A / D 串行通信 面板 l3.1 智能化温度仪表的设计智能化仪表的组成框图如下图所示。
l3.1 智能化温度仪表的设计 • 在图中,传感器用于信号的检测,通过传感器把要检测的值转换成相应的物理量或电信号。由于这个信号比较微弱,而且通常是非线性的,需要进行放大和线性化处理,具有这种功能的电路就是变送器,它能把检测到的微弱的、非线性的信号变换成标准的1-5V或4-20mA线性变化的电压、电流信号,再由A/D转换器把检测到的模拟量信号转换成对应的0-255的数字量(相对于8位单片机),输入单片机CPU中。在CPU中,通过内部的数据处理程序把测量值在显示器中显示,或者通过单片机的串行输出口把信号传送到其它地方。
l3.1 智能化温度仪表的设计 • 人们可以使用仪表的面板操作键,对仪表的测量功能进行选择。在智能化仪表中,单片机是主要的部分,单片机有存储器、运算器、控制器、输入输出端口和程序存储器,能够实现四则运算、逻辑判断、自诊断、自校正、自适应、自学习等功能。由于有了单片机,可以用软件的方法对测量信号进行线性化处理,从而简化了测量信号处理部分的电路,可以用软件的方法实现测量值的数字化显示,可以通过串行通信实现数据的远程传送,可以与PC机相连,对测量值进行统计、存储、打印等。
l3.1 智能化温度仪表的设计 • 由于有了单片机,可以采用自校正软件技术来消除测量仪表内部的电子元器件产生的电压漂移。可以采用自诊断技术实现仪表的故障自检,或通过面板操作键,进入故障自诊断状态,进行仪表的自诊断,通过显示器来表示故障的类型。可以采用数字滤波技术和单片机的逻辑判断功能,提高测量仪表的抗干扰能力。
l3.1 智能化温度仪表的设计 2. 智能化温度仪表的总体设计 (l) 仪表设计要求 • 温度测量范围: -5℃~55℃ • 温度测量精度: ±0.5℃ • 仪表为便携式,三位半液晶显示,设置二个按钮:电源开关、功能键 • 供电:二节7号电池
l3.1 智能化温度仪表的设计 • (2) 设计思路 • 根据温度仪表的设计要求,必须首先进行仪表的外壳设计、液晶显示器选型、按钮选型等工作。然后进行电路的设计和软件的编写。 • 仪表外壳设计:由于温度仪表是便携式的,要考虑仪表的大小、材质、颜色、显示窗口尺寸位置、按钮位置和电池安放位置,要考虑电路板的大小尺寸和安装方式及以后维修拆装的问题。或者是到市场上选择合适的现成的仪表壳,现成的仪表外壳总有不尽如意的地方,但前期费用小,开发周期短。
l3.1 智能化温度仪表的设计 • 液晶显示器选型:为了适合便携式仪表省电的特点,一般都选择液晶显示器。但是液晶显示器有字段式、点阵字符式、点阵图型等,为了获得较好的显示效果和仪表的个性,需要进行液晶显示器的设计。包括显示的字符多少、大小和位置,包括显示器的引脚排列和使用的驱动器。对于一般的温度测量仪表,可以直接在市场上选择现成的通用的字段式液晶显示器。
l3.1 智能化温度仪表的设计 • 按钮选型:一般电源按钮使用开关式按钮,在关机时切断电源。功能按钮常常使用乒乓式开关,主要用于向单片机在瞬时输入一个电脉冲信号。应该考虑按钮在仪表面板上的安放位置、大小和颜色,使之操作方便,与外壳成为一体。 • 电路和软件的设计:要充分发挥智能化仪表的特长,尽量简化硬件电路,利用单片机的智能化功能,能用软件解决的尽量用软件来解决,可以节约硬件费用,提高智能化程度。硬件电路要与软件相辅相成。
l3.1 智能化温度仪表的设计 3. 硬件电路的设计 • 根据温度仪表的技术设计要求,硬件电路设计如图13.2所示。
l3.1 智能化温度仪表的设计 电路原理图分析如下。 (1) 温度检测部分 • 图中Rt、电阻Rl组成温度信号的取样电路,其中Rt为热敏电阻温度传感器,运算 • 放大器A和电阻R2~R5、电位器W1为温度测量电路,由运算放大器A输出与测量温度相对应 • 的电压信号。 • 因为温度仪表的温度测量范围是-5℃~55℃,在这一范围内,可以选择的温度传感器有铂电阻、铜电阻、热敏电阻等,但是热敏电阻灵敏度高,反应速度快,测量电路简单,是测量温度的理想传感器。可是热敏电阻的非线性比较严重,在传统测量方法中难以获得好的测量效果,有了单片机,这个问题就可以很方便地予以解决。在本设计方案中,从两个方面采取措施来解决热敏电阻产生的非线性问题。
l3.1 智能化温度仪表的设计 • 措施一,三点式线性校正。所谓三点式线性校正,就是在测量电路里,串联一只固定电阻来补偿热敏电阻的非线性,如图13.3所示。测量电路供电电压为E,使测温范围二等分的三点上误差为0,三点以外的其它各点的误差特性为“S”字形曲线。热敏电阻是负温度系数的非线性的热敏电阻,补偿后,在10ºC范围内,最大误差约为±0.01ºC。在30ºC范围内,约为±0.5ºC。50ºC范围约为±0.6ºC,100ºC范围约为±3ºC。 • 设0℃时热敏电阻值为Ra,25℃时的热敏电阻值为Rb,50℃时的热敏电阻值为Rc,对应的电路输出分别为Va、Vb、Vc,选择一个电阻R1,使得在0℃、25℃、50℃三点测量无误差。
E E E Ra R1+Ra Rb R1+Rb R1 R1+Rb Rc R1+Rc l3.1 智能化温度仪表的设计 • 热敏电阻阻值-温度特性曲线(-20-+120ºC),不言而喻,它是非线性的。如图13.4所示,曲线a是热敏电阻没有线性化时的输出电压,把固定电阻R1和热敏电阻Rt串联,使热敏电阻Rt在Ta,Tb,Tc三点的输出电压完全满足线性关系,在三点外的其它温度下,呈现稍有“S”字形的特性,见图13.4中曲线b。当选择两端温度Ta、Tc在测温范围稍内一点的地方时,由于曲线b与理想直线c相交,最大误差比原来的还要小。例如,测温范围是0-50ºC,选择Ta=+3ºC,Tc=+47ºC。此时,误差特性曲线变成0ºC稍有一点误差,+3ºC误差为0,然后又产生误差,并在+25ºC又为0,接着再次出现误差,并在+47ºC再次回到0,+50ºC又稍有一点误差的情形。 • 补偿电阻R的数值可按下述方法求出。首先,把测量区间划分成二等分,所得三个温度点由低至高分别是Ta、Tb和Tc,相对应的热敏电阻阻值分别是Ra、Rb和Rc。 • 即有:Vc-Vb=Vb-Va
l3.1 智能化温度仪表的设计 • 从上面的式子中可以知道,选择一个合适的固定电阻R1,就可以在测量过程中,在0℃、25℃、50℃三点没有无误差。在本例,选用MF5E系列高精度的热敏电阻,B值为3935,25℃时的阻值R25=l0KΩ。该电阻随温度变化的电阻值见表13.1。通过运算可以知道,温度范围在0℃~50℃时,Rl=7.8296KΩ,测量的最大误差点在12.5℃和37.5℃,误差在0.5℃左右,当温度低于-3℃或超过53℃时,误差开始增大。所以本例中仅用一个电阻,电路非常简单,就大大改善了热敏电阻的非线性状态。
l3.1 智能化温度仪表的设计 • 若测量电路的电源电压E=5V,那么 • 0℃时输出电压 V0=E×R0/(R1十RO)=5×32.6505/(32.6505十7.8296) =4.0329V • 25℃时输出电压 V25=E×R25/(R1十R25)=5×10/(10十7.8296) =2.8043V • 50℃时输出电压 V50=E×R50/(R1十R5O)=5×3.6031/(3.6031十7.8296) =1.5758V
l3.1 智能化温度仪表的设计 • 分析上面的数据,可以发现25℃的温度差,产生1.2285V的电压差。通过线性化的校正,把电路随温度变化产生的很严重的曲线校正为近似于直线的S形曲线,校正的效果见图13.4所示。
l3.1 智能化温度仪表的设计 • 由于在热敏电阻上输出的电压与温度变化成反比,温度越高,电压越低,为了使输出电压与温度变化成正比,并且使-5℃时的输出电压为0V,图13.2中的放大器A和电阻R2~R5、电位器W1构成一个减法比例放大器,使A的输出电压在-5℃时为0V,55℃时为5V。调节电位器W1使运算放大器A的正向输入端输入一个正电压信号,它的大小等于热敏电阻在-5℃时的输出电压,在运算放大器A的作用,进行减法运算,使运算放大器A在此时输出的电压为OV。然后调节反馈电阻R3使温度在55℃时运算放大器的输出电压为5V,实现了信号的零点调整和满度调节,完成了把温度信号转换成电压信号的工作。 • 措施二,由于采用三点式线性校正,得到的温度与输出电压信号之间的关系仍为S型曲线,为了得到更好的线性效果,在CPU内部,用软件的方法对曲线进行拟合,求出该曲线的方程,得到最佳的线性化效果。由于三点式线性的校正,降低了曲线方程的次数,便于单片机软件的编程,具体见下面部分的叙述。
l3.1 智能化温度仪表的设计 (2) A/D转换部分 • 主要用于完成将检测到的温度信号的电压模拟量,变换成计算机能够接受的数字量的工作。为了获得温度的正确值,要求A/D转换器有较高的转换精度和较快的转换速度,在本例中,温度的测量范围是 –5℃ - +55℃,精度为±0.5℃,考虑到传感器和测量电路带来的误差和其他因素,要求A/D转换芯片的测量精度在0.2℃左右。而8位A/D转换芯片的测量精度达到0.2℃,其最大的测温范围为50℃左右,所以需要10位A/D转换芯片才能满足测量要求。
l3.1 智能化温度仪表的设计 • 10位的A/D转换芯片与8位的单片机接口比较复杂,考虑到温度是一个变化缓慢的量,在本设计方案中采用V/F转换方式来实现A/D转换。V/F转换方式是把电压模拟量转换成脉冲频率信号,由单片机对脉冲频率信号进行计数来实现A/D转换功能的。LM331是一个简单的、廉价的电压/频率变换电路,非常适合用作模/数转换,有极高的转换精度,且十分适用于低电压,低功耗的数字电路,十分适合用作光电隔离,有良好的共模抑制能力,关于LM331集成电路的性能介绍参见本书的A/D转换部分。LM33l与单片机的接口电路原理见图13.5所示。
l3.1 智能化温度仪表的设计 • 图中,模拟量检测电路的输出电压Vin输入到LM331的第7脚,在第3脚输出的方波脉冲频率信号,通过10KΩ接到V+电源,目的是使输出的方波脉冲频率信号更加稳定可靠。脉冲频率信号直接加到单片机的T0口,单片机通过计数器记录T0口输入的频率信号,就可以计算出模拟量的大小。从图13.5可以知道,采用V/F转换电路,大大简化了单片机的A/D转换电路,而且只占用单片机的一个端口。LM331的输入电压为0-5V,输出频率最高达100KHz,若转换为1000Hz/V,则测量精度达到1mV,相当于12位A/D转换,非常实用。
Rs·Vin 2.09 R8·R7·C2 f= l3.1 智能化温度仪表的设计 • 在本例图13.2中的V/F转换电路是LM331的典型应用。运算放大器的输出电压通过电阻R6和电容C1从7脚输入LM331,转换后的方波频率信号从3脚输出到单片机T0口,为了保证信号的电压稳定,接了一个上拉电平电阻R11。电压与频率的转换关系如下式:
l3.1 智能化温度仪表的设计 • 其中Vin为输入测量电压,在本例中即运算放大器的输出电压,Rs接在2脚为可调电阻,用来校正输出频率。上式中,当R8=100kΩ,R7=6.8 kΩ,C2=0.01μF,调节Rs,可以使Vin=0~5V时,输出频率f=0~5000Hz,即达到电压/频率比为1000Hz/1V。
l3.1 智能化温度仪表的设计 • 在温度值通过热敏电阻Rt、算放大器A和电压/频率变换器LM331后,变成了0~5000Hz的频率信号,可以方便地与单片机CPU相连,其输出频率直接与CPU的定时器/计数器相接就可以了。当频率信号进入单片机CPU后,就可以应用软件的方法,例如最小二乘法,实现对热敏电阻的非线性校正。由于前面的三点式校正已使非线性得到了极大的改善。再使用软件的方法,可以进一步提高线性化效果。实践证明,使用这种方法,在0~100℃的范围内,其测量误差可达到±0.1℃。
l3.1 智能化温度仪表的设计 • 在本例中,-5~55℃的温度变换成0~5000Hz的频率信号后,其分辨率可达到8.3Hz/0.1℃,或0.012℃/1Hz,这种A/D转换的方式电路极其简单,占用CPU的输入/出口少,只占用一个端口,而且分辨率高,可以达到12位A/D转换芯片的效果。所以这种温度测量电路的精度完全能够达到±0.5℃的设计要求。
l3.1 智能化温度仪表的设计 (3) 面板操作部分 • 温度仪表的面板按钮开关键共有二个。一个是电源开关Kl,用于电源的接通与切断。另一个是功能键K2,接到单片机的P3.3端口。K2是乒乓式按钮,当没有按下时,P3.3口的电平信号为高,单片机不作任何处理。当K2按下时,P3.3口的电平信号为低,软件根据K2按下的情况作出相应的处理。 • 在开机的同时按下K2键并维持3S,表示系统进入自检,显示仪表的征状; • 在正常情况下按K2键并维持3S以上,仪表以闪烁的方式显示测量值的最高、最低值; • 在正常情况下按K2键,使当时测量的值保持不变,以便观察。 • 在本例中,使用一个键,配合适当的软件实现多键的功能,是智能化仪表的一个显著的特点,是硬件与软件相结合的例子。
l3.1 智能化温度仪表的设计 (4) 单片机CPU部分 • 智能化温度测量仪表的主要部分是单片机。本例选用MCS-51单片机系列中的AT89C52单片机,是CMOS型的单片机,属于低功耗单片机,内带256字节RAM和8KB字节FLASH ROM,程序可以反复多次电改写,非常适合便携式仪表。在设计中没有对单片机的输入输出口进行扩展,而是充分利用了单片机本身的软硬件资源。
l3.1 智能化温度仪表的设计 • 整个系统5V供电,因为使用内部ROM程序存储器,单片机的3l脚通过电阻接5V,在电源40脚与接地20脚之间加一大的电解电容,是为了改善系统的供电质量。复位电路采用简单的阻容充放电来完成,当电源开关接通5V电源时,5V电平通过电解电容在电阻上产生一个时间宽度大于2OmS的高电平,使单片机CPU得到有效稳定的复位工作信号,使CPU进入正常的工作状态。该仪表没有设计防干扰的看门狗电路,也没有设计手动复位开关。因为作为测量仪表,万一发生干扰使单片机不能正常工作,不会产生什么影响,只要关断电源然后再打开就可以了,同时简化了电路。
l3.1 智能化温度仪表的设计 • 单片机采用12MHz晶体振荡器,补偿电容在20p-40p之间选择,能够可靠地起振。单片机的P1口用于显示驱动、译码和数据传送。P3.0、P3.1用于串行数据传输,P3.2用于接收电源电压低信号,当接收到低电平时,表示电池需要更换,在液晶显示器中显示LOBAT信号提示。P3.3为CPU的定时器/计数器0,即T0。用于接收LM331电路输出的频率脉冲信号,使T0工作在方式l,设定为l6位计数方式,采用外部输入脉冲作为计数脉冲。
l3.1 智能化温度仪表的设计 • 在启动TO开始计数时,使CPU的定时器/计数器T0即Tl为定时器工作方式,采用晶体振荡器的振荡脉冲的12分频信号为计数器的计数信号。由于温度信号是缓慢变化的信号,可以使T0采样0.5S或1S时间的频率值,然后按照相应的关系求出对应的温度值。单片机的其余引脚空余不用。
l3.1 智能化温度仪表的设计 • (5) 液晶显示部分 • 液晶显示器采用通用的三位半字段式芯片,本例采用静态显示方式,程序编写方便。图13.2中的CD4543是液晶BCD-7段锁存/译码/驱动器,P1.0-P1.3与CD4543的数据端A,B,C,D相接,将要显示的温度值以四位二进制的BCD码输出到A、B、C、D,通过CD4543译码成7段字符去驱动液晶显示器显示。P1.4-P1.7与4片CD4543的片选端LD相接,把译码好的十进制数送到被译中的CD4543,并加以锁存后驱动相应的液晶显示字段。由555电路组成的振荡器,向CD4543和液晶显示器提供交流信号电源。温度显示共占三位,由三片CD4543来驱动。另外一片CD4543用于小数点、十,- 号、L0BAT等笔划的显示。关于液晶显示器和CD4543有关内容请参看第十章。
l3.1 智能化温度仪表的设计 (6) 电源供电部分 • 温度仪表的供电电压为5V,为了适合便携式的要求,减少重量和体积,而且整个系统是低功耗的,所以采用普通的7号电池二节。二节7号电池在新的时候,串联的最高电压在3.2V左右,用尽时,电压在2.4-2.5V左右。因此必需寻找一种升压电路,使输入电压在2-3.5V的情况下能稳定输出5V电压,并且在输出电压低于4.8V时,能产生一个低电平信号,让单片机作为源电压供电不足的判断。
l3.1 智能化温度仪表的设计 • 在本例中选用NCP1400A列的微功率固定频率脉宽调制升压直流一直流变换器,是安森美半导体公司产品。该系列产品可以在0.8V电池电压起动工作,只需要四个外围器件,可以用简单的方法实现高效变换,其输出电流达到100mA。在器件内部有振荡器、脉宽调制控制器、不连续模式运行的相位补偿误差放大器,图13.6为芯片的引脚排列和典型应用。
l3.1 智能化温度仪表的设计 • 图中电感值在18μH到27μH为好,电容最好选用钽电容,二极管的正向压降要小于0.3V,其中NCP1400ASN50T1芯片的输入电压Vin=0.8-3.5V,输出电压Vout=4.875-5.125V。因此用二节7号电池可以变换成稳定的5V电压,即使电池用旧仍可以用一段时间,整个温度仪表的最大功耗是单片机89C52,约10-15mA,而芯片能提供100mA电流,完全能够满足。 • 4. 软件设计
设置T0、T1工作方式 启动T0工作,设置一次采样时间值 启动T1开始计时 一次采样时间到否? 停止T0、T1工作 保持采样值 l3.1 智能化温度仪表的设计 • 4. 软件设计 • 在智能化温度仪表中的软件有温度检测、信号处理、数字显示、键盘判别等程序。 • 温度检测程序 温度信号通过热敏电阻变换成电压值,由LM33l转换成频率信号,通过T0口对外部输入脉冲计数来测量的,程序框图见图13.7。
l3.1 智能化温度仪表的设计 • 参考程序如下: • MOV TMOD,#15H ;设置T0为十六位计数的工作方式 • MOV TH0,#00H ; • MOV TL0,#00H ;置T0计数器空,为采用频率信号准备 • MOV 30H,#0AH ;设置一次计数的时间 • SETB TR0 ;启动T0计数器开始计数工作 • Y1: MOV TH1,#3CH ; • MOV TL1,#20H ;置T1计时器初值 • SETB TR1 ;启动T1计时器开始计时 • Y2: JBC TF1,Y3 ;判时间到否 • AJMP Y2 ;继续计时 • Y3: DJNZ 30H,Y1 ;判总的时间到否 • CLR TR0 ;计时时间到,停止计数 • CLR TR1 ; • MOV 7BH,TH0 ; • MOV 7AH,TL0 ;将T0计数的频率值送CPU内存保
l3.1 智能化温度仪表的设计 • 一次采样的时间可以根据需要而设定,由于单片机的工作频率不同,所以Tl的初值也不同,为了提高温度检测的正确性,可以多次采样,然后求平均值作为采样值。由于采用V/F转换方法,所以程序比较简单明了。 • 信号处理 虽然三点式线性校正改善了热敏电阻的非线性特性,但还不是完全线性的,需要用软件作进一步的线性化处理。可以用最小二乘法进行,最小二乘法是一种数据统计的计算方法。在本例中,可以根据热敏电阻的阻值与温度之间的关系,用电阻箱模拟温度值,记录温度与电路输出频率T一F的对应数据,就可以用最小二乘法求出温度T与频率之间的函数T=f(F),将此函数输入单片机中,就可以很方便地应用软件的方法对测量值作进一步的线性化处理,提高测量精度。关于用最小二乘法求取函数的方法,可以参考有关的书籍。
l3.1 智能化温度仪表的设计 • 除此以外,信号处理程序还包括对检测信号的滤波处理,减少测量过程中的干扰,最简单的方法是算术平均法。对N个采样值,寻找一个Y值作为本次检测的有效值,使Y值与各采样值之间的偏差的平方和为最小,在具体应用中,N值不宜太大,温度测量取N=5-10为好,既保持一定的灵敏度,又有恰当的平滑度。计算方法为: • Y=(X1+X2+….+XN)/N,式中X1、、、、X2、、….XN为N次检测量 • 实践证明用这种方法能正确测量温度值。在获得正确的测量值后,还需要将它转换成相应的实际温度值。 • 例如,在本例中,如果-5℃一55℃对应的频率为100Hz—4800Hz,且是线性的,那么温度与频率的关系为0.0125℃/Hz,当测量到的频率值为1000Hz,则实际温度是:0.0125℃/Hz×1000-5℃=7.5℃ • 在编写程序时必须注意到这一点。
l3.1 智能化温度仪表的设计 • 数字显示 在把测量值转变成实际的温度值后,可以把内存中的数据通过P1口输出到外部进行显示。根据原理图13.2可知,P1.0-P1.3为温度数据,P1.4-P1.7为四片CD4543的片选信号,设数据和片选信号存放在CPU的四个内存单元中,逐次传送到30H单元中,30H的低四位为温度数据,高四位为片选信号值,则显示程序可以用语句: MOV 30H,P1 • 来实现。由于CD4543有数据锁存功能,采用静态显示方式,所以执行三次这样的语句,就可以显示温度的三位数据了,再执行一次这样的语句用于显示小数点位置、+,-符号和其它提示字符,编写的程序也比较简单。
l3.1 智能化温度仪表的设计 • 键盘判别 在本例中只有一个电源开关和功能开关,键盘判别程序主要用于功能开关。如前所述,在开机的同时,CPU检查到K2键按下,并持续3S钟以上,程序转入系统自检,轮流显示液晶显示器的各个笔划、检查键的正常与否、及用25KΩ检查测量电路的正确性。如果在正常的运行中K2键按下并持续3S钟以上,则显示最近以来测量值中的最大值、最小值。如果在正常的运行中K2键按下则将本次测量值保持下来供仔细察看。由于键判别比较简单,读者可以自己编写程序调试。
l3.1 智能化温度仪表的设计 5. 印刷电路板的设计 • 在本例的印刷电路板设计中,考虑到仪表外壳尺寸比较小,电路板不会大,由于引线较多,需要采用双面板进行设计。在设计时应先安排液晶显示器、开关按钮、单片机及有关插座位置,再考虑其它元器件的安装位置,要安排好电源线的走向。一般应用PROTEL软件进行印刷电路板设计,在设计前,应该了解所有元器件的外形尺寸、引脚排列和功能,在布置连线时尽量使—个面的连线相互平行,两个面的连线相互垂直,这样布置比较有规律,不容易在一个面上造成连线交叉,另外,空余的地方尽量用接地线填充满。
l3.1 智能化温度仪表的设计 • 考虑到印刷电路板面积较小,可以采用贴片元件,体积小,质量也好,一般印刷电路板要经过多次修改才能达到比较理想的结果,在设计过程中还要注意安装孔的位置和孔的大小,要考虑到不同元器件的引脚直径,要准确设置孔径的大小,保证元器件的安装和印刷电路板在仪表壳上的安装。印刷电路板设计好后,电路软件可以直接交印刷电路板加工厂商按要求加工。拿到加工好的印刷电路板,还要仔细检查核对,看看连线是否有不恰当或错误的地方,元器件放上去安装焊接是否方便,如果发现有问题,需要修改后重新设计加工,直到完善为止,是一个需要反复的过程。
l3.1 智能化温度仪表的设计 6. 仪表的硬件与软件的调试 • 在印刷电路板加工好进入安装焊接阶段,对于第一次焊接的电路板,应该先焊接电源部分,并把二节7号电池放上,测量各元器件的电源Vc端和接地GND端,如果都是5V,表明电源系统正常,然后再焊接其它部分,其中调试有三个方面: • 温度测量部分 用标准电阻箱代替电路中的热敏电阻Rt,模拟温度值的变化,根据理论计算得到的温度与电压的关系,使V1输出电压符合要求。再调节电位器W1,使V2的电压与55℃时的V1电压相等,并调节电阻R3和LM331芯片的W2、R2电位器,用数字万用表的频率挡或频率计,测量LM331的3端输出的频率值,使温度值与相应的频率值符合,完成模拟部分的调试。
l3.1 智能化温度仪表的设计 • 数字显示部分 通过单片机开发装置,编写一段液晶显示检查程序,把要显示的数据直接输出到P1口,就可以使LCD显示各种数据和字符,确定单片机与显示部分的连线正确性和显示部分的电路和元器件的好坏。下面是几个参考语句。 • MOV P1,#78H ;使第一位LCD显示字符8 • MOV P1,#0B8H ;使第二位LCD显示字符8 • MOV P1,#0D8H ;使第三位LCD显示字符8 • MOV P1,#0E8H ;使LCD显示其它字符
l3.1 智能化温度仪表的设计 • 单片机部分和应用软件 如果调节电阻箱的电阻值,在液晶显示器上能显示相应的值,按动K2键,有前面表述的功能,表明单片机及应用软件正确。如有故障大多是单片机的复位电路或晶振部分元器件、焊接方面有问题,排除了就能正常工作。在完成了上述工作,说明系统能正常工作,还要进行测量精度的校验。把热敏电阻接到电路的Rt位置,把热敏电阻放在恒温水浴中,放入精确度为0.2℃或以上的标准水银温度表,校验0℃、10℃、25℃、50℃各点误差,如果误差在0.5℃以内,表明温度仪表符合设计要求,如果在某些点误差在0.5℃以上,不符合设计要求,需要测试热敏电阻本身是否合格,需要进一步分析电路中元器件的参数和软件的数据处理方法,直到满足要求为止。
13.2 PID智能控制器的设计 • 在工业应用中,常常要进行自动控制,所谓自控制,就是应用控制设备自动地操纵机器或过程,使被控制的机器或过程处于一定的状态。自动控制有多种形式,有开环控制、单闭环控制、串级回路控制等。有许多实施控制的方法,有顺序控制、继电器逻辑控制,有比例、积分、微分控制(即PID控制)、自适应和模糊控制等。而单闭环PID控制是应用最广泛的一种控制。