焦作大学机电系毕业设计 第2章 系统的基本构成及方案论证
处环境温度变化过程中难以检测到小的温度变化。不能达到恒温箱对温度的控制要求,故该方案不适合本系统。
对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差很小,并且由于其感测温度的原理与上述方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于改传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力高。所以本系统采用方案二。
2.2.3 显示模块的选择
方案一:采用六位共阳数码管显示温度,动态扫描显示方式。 方案二:采用液晶显示屏LCD显示温度。
对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使六个LED逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS,当数码管扫描周期小于这个时间时人眼会感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。
对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的。但是液晶显示模板块价格昂贵,驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。
2.2.4 加热模块及降温模块的选择
方案一:采用了几个电阻分压的方式来给加热电路提供不同电压,使用电子负载电路进行加热,控制电子输入端的电压控制加热的速度。当设置温度大于实际温度5度时,换取1v电压加热,当设置温度小于实际温度5度时,换取0.5v电压加热,当设置温度等于空气温度,关闭加热,换取0v电压加热。当温度高于1度时进行降温处理,在设计制作过程中,我们使用了一个5v驱动的散热风扇,当实际温度高于设置温度1度时用于散热,当温度低于设定温度1度时,开启加热设备,关闭风扇。如图2-2 所示
4
焦作大学机电系毕业设计 第2章 系统的基本构成及方案论证 图2-2 电阻分压式加热电路 方案二:采用脉冲宽度调制的方法,利用光耦合器来控制电阻丝和直流电机的电流通断。单片机系统输出控温信号,输出高电平时,经反相器变为0信号,使双向可控硅导通,信号灯亮,电阻丝通电加热;输出低电平时,双向可控硅断开,信号灯灭,电阻丝断电。脉冲宽度T1与周期T的比值为P,它反映了系统的输出空置量P=95%为输出上限,P=5%为输出下限。加热电路原理图参见图 3-10 ,单片机I/O口P0.6输出信号经过光电耦合器,通过这种方式控制双向可控硅的门极,从而控制电阻丝的平均加热功率,达到精确加热的目的。降温模块采用采用直流电机作为降温装置,通过控制继电器的吸合与断开,来控制直流电机的通断,从而达到散热降温的目的。当环境温度超过预设温度开启降温风扇,当环境温度低于预设温度5度以上通过脉宽调制采用大功率加热(即设定P值为95%),当环境温度低于预设温度1度时,采用小功率加热(即设定P值为5%)。 对于方案一,采用继电器控制,使用继电器可以通过较高的电压和电流,在 5 焦作大学机电系毕业设计 第2章 系统的基本构成及方案论证 正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。通过单片机控制继电器开关来确定输入电子负载端的电压和风扇的开关,虽然在第一次加热的余温很高但是在多次风扇与功率电阻加热与降温的协调下达到恒温的要求,在程序上选用适当的控制算法,可以达到设计指标的效果。但是由于电路设计过于复杂,且通讯端口占用较多、成本较高。 对于方案二,采用PWM脉宽调制的方法,通过控制光耦合器的通断时间的不同来进行加热,从而达到精确控温的效果,加热和降温电路只占用2个I/O口,这样不仅简化了输出通道电路,提高了电路抗干扰能力,而且成本比较低。所以本系统采用方案二作为温度控制方案。 6 焦作大学机电系毕业设计 第3章 系统硬件电路设计 第3章 硬件电路设计 本系统主要部件包括AT89C52单片机、DS18B20温度传感器、四位LED数码管、直流电机、光电耦合器、发热电阻丝。辅助元件包括电阻、晶振、电源、按键、拨码开关等。 3.1 系统主要元器件简介 3.1.1 AT89C52单片机简介 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 图3-1 AT89C52单片机实物及引脚示意图 7
焦作大学机电系毕业设计 第3章 系统硬件电路设计
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示: 各口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期以上的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当
8
焦作大学机电系毕业设计 第3章 系统硬件电路设计 /EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 3.1.2 DS18B20单线数字温度传感器简介 DS18B20 温度传感是由DALLAS(达拉斯)公司生产,见图3—2 。它的体积超小,硬件开消低,抗干扰能力强,精度高。DS18B20 的主要特征: 全数字温度转换及输出, 先进的单总线数据通信, 最高 12 位分辨率,精度可达土 0.5摄氏度, 2 位分辨率时的最大工作周期为 750 毫秒, 可选择寄生工作方式, 检测温度范围为–55°C ~+125°C (–67°F ~+257°F) 内置 EEPROM,限温报警功能, 64 位光刻 ROM,内置产品序列号,方便多机挂接。 多样封装形式,适应不同硬件系统。 DS18B20内部结构主要由4部分:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管脚有三个端,其中DQ为数字信号端,GND为电源地,VDD为电源输入端。 图3-2 温度传感器封装形式及引脚说明 3.1.3 八段LED数码管 本系统选用六位LED数码管作为温度显示。LED又称为数码管,它主要由8段发光二极管组成的不同组合,可以显示a~g为数字和字符显示段,dp段为小数点显示,通过a~g为7个发光段的不同组合,可以显示0~9和A~F共16个数字和字母。LED可以分为共阴极和共阳极两种结构,如图3-3 (a)和图3-3(b) 所示。共阴极结构即把8个发光二极管阴极连在一起。这种装入数码管中显示字形的数据称字形码,又称段选码。 9 焦作大学机电系毕业设计 第3章 系统硬件电路设计 图3-3 LED数码管结构图 共阴极段码 显示字符 0 1 2 3 4 5 6 7 3fH 06H 5bH 4fH 66H 6dH 7dH 07H 共阳极段码 显示字符 共阴极段码 共阳极段码 C0H F9H A4H B0H 99H 92H 82H F8H 8 9 A B C D E F 7fH 6fH 77H 7fH 39H 3fH 79H 71H 80H 90H 88H 83H C6H A1H 86H 8EH 表3.1 七段LED的段选码表 一个共阴极数码管经反相器后接至单片机的电路,要想显示数字“7”须a、b、c这3个显示段发光 (即这3个字段为底电平)只要在P1接口输入11111000(07)即可。里07即为数字7的段选码。字形与段选码的关系见表3.1所示。 3.1.4 74HC138译码器 74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。如图3-4 所示, 74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且 10 焦作大学机电系毕业设计 第3章 系统硬件电路设计 E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。 74HC138其特性是复合使能输入,轻松实现扩展 兼容JEDEC标准no.7A 存储器芯片译码选择的理想选择 低有效互斥输出 ESD保护 HBMEIA/JESD22-A114-C超过2000 V MM EIA/JESD22-A115-A超过200 V 温度范围 -40~+85 ℃ -40~+125 ℃ 多路分配功能。图3- 74HC138封装 图3-4 74HC138译码器 3.1.5 光电耦合器 OPTOTRIAC 光耦合器(optical coupler,英文缩写为OC)亦称光电隔离器或光电耦合器,简称光耦。它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极管LED)与 受光器(光敏半导体管)封装在同一管壳内。当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电—光—电” 转换。以光为媒介把输入端信号耦合到输出端的光电耦合器,由于它具有体积小、寿命长、无触点,抗干扰能力强,输出和输入之间绝缘,单向传输信号等优点,在 数字电路上获得广泛的应用。 11 焦作大学机电系毕业设计 第3章 系统硬件电路设计 本系统采用OPTOTRIAC型号光电耦合器(见图3-5),该光耦合器的主要优点是单向传输信号,输入端与输出端完全实现了电气隔离,抗干扰能力强,使用寿命长,传输效率高。它广泛用于电平转换、信号隔离、级间隔离、开关电路、远距离信号传输、脉冲放大、固态继电器 (SSR)、仪器仪表、通信设备及微机接口中。 图3-5 光电耦合器 OPTOTRIAC 3.2 各功能模块的电路设计 3.2.1 复位电路及时钟电路的设计 本系统采用按键复位电路,该电路除了具有上电复位功能以外,若要复位,只需按图3-6中RESET键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平,即可完成复位。时钟电路对单片机系统而言是必需的。由于单片机内部是由各种各样的数字逻辑器件(如触发器寄存器存储器等)构成,这些数字器件的工作必须按时间顺序完成,这种时间顺序就称为时序。时钟电路就是提供单片机内部各种操作的时间基准的电路,没有时钟电路单片机就无法工作。此次设计中,我们采用由内部方式产生时钟的方法形成时钟电路,由 11.0592MHz的晶振,两个33pF的电容构成。 12 焦作大学机电系毕业设计 第3章 系统硬件电路设计 图3-6 复位电路及时钟电路 3.2.2 键盘接口电路的设计 键盘采用5个独立按键,见图3-7,K1,K2,K3,OK,SET分别与单片机的P0.0、 P0.1和P0.2、P0.3、INT0口及10K上拉电阻相连,另一端接地,当任一按键按下时,取低电平有效。系统上电后,按下SET(设置键)使系统产生中断,调用中断服务程序,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。其中按K1键为温度的十位设置键,每按下一次,系统对最初设定值十位加一,直到9后,又会从0开始累加;按键K2为温度的个位设置键,用法与十位设定按键相同;K3键为温度小数位设置键,用法与十位设置键相同;OK为确定键,当预设温度设定后按OK键确认,系统进入温度控制状态。 13 焦作大学机电系毕业设计 第3章 系统硬件电路设计 图3-7 键盘接口电路 3.2.3 温度采集电路设计 DS18B20测量温度采用了特有的温度测量技术,其测量电路如下图所示。它是通过计数时钟周期来实现的。低温系数振荡器输出的时钟信号通过由高温度系数振荡产生的门周期而被计数,计数器补预置在与-55℃相对应的一个基权值。如果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于-55℃,被预置在-55℃的温度寄存器的值就增加1℃,然后重复这个过程,直到高温度系数振荡周期结束为止。这时温度寄存器中的值就是被测温度值,这个值以16位形式存放在便笺式存储器中,此温度值可由主机通过发存储器读命令而读出,读取时低位在前,高位在后。斜率累加器用于补偿温度振荡器的抛物线特性。 DS18B20在使用时,一般都采用单片机来实现数据采集。只须将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂接多个DS18B20,就可实现单点或多点温度检测。在本系统中中将DS18B20接在P3.5口实现温度的采集。其与单片机的连接如图3-8。 14 焦作大学机电系毕业设计 第3章 系统硬件电路设计 图3-8 温度采集电路 3.2.4 数码管显示电路设计 由于本系统实现25.0℃—99.9℃范围内的温度的控制,所以选用6位共阳极数码管作为显示模块,1、2、3位数码管为环境温度,4、5、6位为预设温度,它和单片机硬件的接口电如图3-5所示。 15 焦作大学机电系毕业设计 第3章 系统硬件电路设计 图3-9 显示模块电路 数码管的A、B、C、D、E、F、G和DP分别与单片机的P2.0——P2.7相连。而四位数码管的位则通过74HC138译码器来选通。74HC138是一个3-8译码器。74HC138的A、B、C与单片机的P1.5、P1.6、P1.7相连通,我们可以通过程序控制P1.5、P1.6、P1.7的输出进而控制3-8译码器的输出,从而达到选位的目的。其选通情况如表3.2.。 P1.7 P1.6 P1.5 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 选位情况 Y0输出高电平即第1位被选中 Y1输出高电平即第2位被选中 Y2输出高电平即第3位被选中 Y3输出高电平即第4位被选中 Y3输出高电平即第5位被选中 Y3输出高电平即第6位被选中 表3.2 数码管选位情况表 本设计中为了的四位数码管,前三位(即第1、2、3位)设计为显示温度传感器所采集到的环境温度,后三位(第4、5、6位)设计为所设定的温度,即我 16 焦作大学机电系毕业设计 第3章 系统硬件电路设计 们所要达到的温度显示。 3.2.5 加热电路的设计 本设计采用交流电源对电阻进行加热,另外采用光电隔离开关来控制加热电阻的加热与否,能够有效的进行电源的隔离,增大了电路的抗干扰能力。考虑到加热系统有较大的热惯性,本系统采用脉冲宽度调制的方法,单片机系统输出控温信号,输出高电平时,经反相器变为0信号,使双向可控硅导通,信号灯亮,电阻丝通电加热;输出低电平时,双向可控硅断开,信号灯灭,电阻丝断电。脉冲宽度T1与周期T的比值为P,它反映了系统的输出空置量P=95%为输出上限,P=5%为输出下限。加热电路原理图如图3-10所示,单片机I/O口P0.6输出信号经过光电耦合器,通过这种方式控制双向可控硅的门极,从而控制电阻丝的平均加热功率,这样简化了输出通道电路,提高了电路抗干扰能力。另外在系统比较人性化设计的就是电阻加热过程中加热信号指示灯会点亮,系统告知是在加热过程中。 3.2.6 降温电路的设计 17 图3-10 加热电路 焦作大学机电系毕业设计 第3章 系统硬件电路设计 由图3-11可以知道本设计是由一个继电器来控制降温风扇的,我们采用的是HRS1H型号的5V继电器,通过单片机I/O口P0.7输出信号来控制导通与否,而由于单片机的输出电流小的原因,需要一个驱动电路来实现控制继电器的导通,由于采用NPN电路需要加上拉电阻且存在上位5V的原因容易烧坏三极管,于是我们采用PNP8085的三极管作为继电器的驱动电路。当温度图中CON2接降温风扇。 3.2.7 掉电保护电路的设计 单片机在工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据,冲掉前期工作的所有信息。为了在突然掉电时能够保持数据存储器的数据,保证单片机系统稳定、可靠地工作,数据信息处理的安全,虽然单片机主电源里又大容量滤波电容器,当掉电时,单片机靠贮存在电容里的能量,一般只能维持半个周期(10ms)左右。为此,要求一旦市电发生瞬间断电时,必须要有一种电源能在小于10ms的时间内重新送电,确保单片机系统正常运行。为了保证单片机在主电压失去时仍然能够保持运行,人们就利用干电池对单片机系统继续进图3-11 降温电路 18 焦作大学机电系毕业设计 第3章 系统硬件电路设计 行供电。 本设计采用能够充放电的电池作为备用电源,在主电源正常供电时,需要由主电源对其进行充电;当主电源失去时,又由电池放电以保持单片机系统的运行。图3-12 为本系统的掉电保护电路。 图3-12 掉电保护电路 当主电源正常时,单片机由VCC 5V电源供电,此时,VCC5V 电源通过 D1 和 R1 ,对保护用电池进行充电,以保证电池电量的充足。当主电源失去时,放电路径为:电池通过 R1+R2 ,对单片机供电端口进行供电,供电电流通过 R1+R2 之后,会有压降,到达单片机的 VCC 端口时,电压就会比 3.6 V低,一般会在 2V—2.5 V左右,令单片机仍然工作于正常供电状态。 19 焦作大学机电系毕业设计 第3章 系统硬件电路设计 3.2.8 主电源电路的设计 本系统的直流稳压电源采用通常的桥式全波整流、电容滤波、三端固定输出的集成稳压器件进行设计,并且所有的集成稳压芯片均装有充分裕量的散热片。220V交流电经过变压器、桥式全波整流、电容滤波、三端固定输出的集成稳压器件之后输出5V直流电压,系统的供电电源电路如图3-13 所示。 图3-13 主电源电路 20 焦作大学机电系毕业设计 第4章 系统软件设计 第4章 4.1 应用的相关软件 4.1.1 Protel 99SE 系统软件设计 Protel 99SE是Prokl Technology公司开发的基于Windows环境下的电路板设计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业必学课程,同时也是业界人士首选的电路板设计工具。 Protel 99SE 由两大部分组成:电路原理图设计(Advanced Schematic)和多层印刷电路板设 计(Advanced PCB)。其中Advanced Schematic由两部分组成:电路图编辑器(Schematic)和 元件库编辑器(Schematic Library)。 在设计中我们要用到Protel 99SE进行原理图设计。如图4-1 为软件使用界面。 图4-1 Protel 99se 界面 21 焦作大学机电系毕业设计 第4章 系统软件设计 4.1.2 KEIL 8051 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。本设计中使用KEIL软件进行系统程序编辑,软件使用界面如图4-2 图4-2 Keil 使用界面 22 焦作大学机电系毕业设计 第4章 系统软件设计 4.2 系统程序的设计 4.2.1 程序结构 整个系统的程序设计是由主程序和各个子程序构成,主程序调用了6个子程序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、加热控制程序。 键盘扫描及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。 温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 降温控制程序:控制继电器的通断,继而控制风扇动作。 加热控制程序:控制光耦合器的通断时间,精确加热。 4.2.2 系统程序流程图 23 焦作大学机电系毕业设计 第4章 系统软件设计 开始 读取DS18B20温度子程序 程序初始化 数码管显示程序 中断服务程序 比较温度 读取DS18B20温度子程序 测得温度=预设温度? 是 数码管显示程序 键盘扫描子程序 否 是否有键按下? 是 按键处理 否 测得温度>预设温度? 是 降温控制程序 测得温度<预设温度? 设置预设温度 加热控制程序 图4-3 系统程序流程图 4.2.3 温度传感器驱动模块程序 单片机控制DS18B20完成温度转换必须经过三个步骤:每次读写之前都要对DS18B20进行复位,复位成功后再发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求单片机将数据线下拉500us,然后 24 焦作大学机电系毕业设计 第4章 系统软件设计 释放,DS18B20收到信号后等待16~60us左右,再发出60~240us的存在低脉冲,CPU收到此信号表示复位成功。 本系统对DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。单片机要与DS18B20通信,首先DS18B20初始化,复位DS18B20,然后单片机等待DS18B20的应答脉冲。一旦单片机检测到应答脉冲,便发起跳过ROM匹配操作命令。成功执行了ROM操作命令后,就可以使用内存操作命令,启动温度转换,延时一段时间后,等待温度转换完成。再发起跳过ROM匹配操作命令,然后读暂存器,将转换结果读出,并转为显示码,送到数码管显示。DS18B20模块程序流程图如图4-3所示。 ROM命令完成单片机与总线上的某一DS18B20建立联系,有搜寻ROM、读DS18B20复位 跳过ROM匹配 启动温度转换 DS18B20复位 跳过ROM匹配 读取温度 温度处理 图4-4 DS18B20模块流程图 ROM、匹配ROM、忽略ROM、报警查找等命令。这里,单片机只连接1个DS18B20,因此只使用读ROM命令来读取DS18B20的48位ID号。 DS18B20功能命令在该步骤中完成温度转换、写暂存寄存器、读暂存寄存器、拷贝暂存寄存器、装载暂存器寄存器、读供电模式命令[16]。本系统不用温度报警 25 焦作大学机电系毕业设计 第4章 系统软件设计 功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。 所以,本系统对DS18B20进行的操作主要包括两个子过程:(1)读取DS18B20的序列号。主机首先发一复位脉冲,等收到返回的存在脉冲后,发出搜索器件的序列号命令,读取DS18B20的序列号;(2)启动DS18B20作温度转换并读取温度值。主机在收到返回的存在脉冲后,发出跳过器件的序列号命令,跟着发出温度转换命令,再次复位并收到返回的存在脉冲后,发送DS18B20的序列号,读出数据。 26 焦作大学机电系毕业设计 第5章 系统调试 第5章 5.1 系统性能测试及分析 系统调试 本设计恒温控制系统是基于单片机的而设计,它能够实现显示当前温度和预设温度,并能根据用户设定的温度进行自动的控温。此系统工作稳定性好,控制精度高,软件采用模块化结构,提高了通用性,利用精确的脉宽调制加热使超调量大大降低,很大程度上提高了系统的性能。 5.1.1 测试系统的温度控制精度 为了验证温控系统的控制精度,我们将温度计和温控系统温度传感器探头放入相同温度的水中,选定若干不同的温度点,记录下标准温度计显示的温度和温控系统显示的温度并进行比较。通过设定不同的温度值,使加热器加热,待温度稳定时记录各温度点的温度计数据和温控系统的显示值。其记录数据如下表5.1: 设定温度值 系统显示温度 差值 25.0 25.5 0.5 28.0 27.7 0.3 温度计读数和温控系统显示的温度(℃) 35.0 34.4 -0.6 45.0 45.1 0.1 55.0 54.1 -0.9 75.0 74.9 -0.1 87.0 86.1 -0.9 91.0 91.2 0.2 表5.1 温度计读数和温控系统显示的温度 根据实验测得数据可以看出,系统测得温度与实际温度存在一定的误差,误差范围在±1℃之内,基本达到预期目标。 5.1.2 误差分析 本系统的主要误差来源于以下几个方面: (1)由于实验所用测量工具(如温度计)本身精度以及所带来的视觉误差,加上温度变化惯性较大,动态测量时准确控制测量精度略有难度。 (2)由于风扇采用的是继电器直接控制,没有进行调速控制,所以在继电器断开后风扇由于惯性还会转动,可能使温度降低过快,导致温度差值为负值。 (3)另一方面可能是由于软件设计上的缺陷,可能是温度传感器测得的温度由于延时时间过长,而没有及时的将温度数据发送到数码管显示,从而导致的误差。 27 焦作大学机电系毕业设计 第5章 系统调试 5.1.3 结果分析 根据实验数据可知,本系统静态误差方面可以达到0.18℃的误差,总体控制精度方面大约0.45℃,在读数正确方面与标准温度计的读数误差为1.5%,对一般的工业生产完全可以采用本设计。该系统具有较小的超调值,超调值大约为0.83%左右。虽然超调为不利结果,但另一方面却减小了系统的调节时间。从其数据表可以看出该系统为稳定系统。 5.2 软件调试 5.2.1 传感器DS18B20温度采集部分调试 本系统采用数字式集成温度传感器DS18B20,由于该温度传感器的高度集成化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制温度的精度和系统的稳定提供了可能。软件设计采用P3.5口为数字温度输入口,但是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。通过软件设计,实现了对环境温度的连续检测,经过试验程序验证,温度传感器检测温度效果良好。 5.2.2 键盘及数码管显示部分调试 程序的键盘接口采用P0口,数码管显示采用P2口控制LED的段选码,P1口的P1.5、P1.6、P1.7三个位由74HC138译码,这样大大节省了系统I/O口资源。系统中只需要六个LED,所以选择了译码后六位来控制LED的位码,通过程序的设计,1、2、3位数码管为环境温度,4、5、6位数码管为预设温度。 通过实验程序,实现了按键的功能,并有较好的去抖动效果,也能根据需要调节按键时间;LED采用动态显示,所以实验程序中不能允许有较长的延时,程序实现了LED显示很好的显示效果。 5.2.3 加热模块及降温模块的调试 系统软件设置P0.6口、P0.7口分别作为加热模块的控制端和降温模块的控制端,加热模块通过程序设计输出不同的PWM波形,来控制光电耦合器的通断时间的不同,从而得到不同的占空比来控制电阻丝的加热功率,以实现精确加温。当外界温度高于设置温度时,电阻不加热或停止加热,系统将调用降温程序启动 28 焦作大学机电系毕业设计 第5章 系统调试 降温模块进行降温;当外界温度低于设置温度时,主程序调用加热子程序进行加热,且外界温度与设置温度的差值越大,输出的平均加热功率增大,加热速度越快,即占空比增加。 5.3 硬件调试 5.3.1 传感器DS18B20温度采集部分调试 将DS18B20芯片接在系统板对应的P3.5口,通过插针在对应系统板的右下侧三口即为对应的VCC、P3.5和GND,可将芯片直接插在该插针上,因此即为方便。系统调试中为验证DS18B20是否能在系统板上工作,将手心靠拢或者捏住芯片,即可发现LED显示的前两位温度也迅速升高,验证了DS18B20能在系统板上工作。由于DS18B20为3个引脚,因此在调试过程中因注意其各个引脚的对应位置,以免将其接反而是芯片不能工作甚至烧毁芯片。 5.3.2 键盘及数码管显示部分调试 系统按键部分实现了以下功能:按下K1键,数码管的显示温度值十位增一;按下K2键,数码管的显示温度值个位增一;按下K3键,数码管的小数位温度增一。每一位温度值在增到9之后又会回到0重新增加。调试过程中出现了当按键时间过长时,设置的温度值不是增一或者减一,而是增加后减少几个值,出现这种情况的主要元因可能是按键的去抖动延时时间过长造成,改进方法为将对应的按键去抖动延时时间适量增加,但也不应过长,否则将出现按键无效的情形。 系统显示部分实现了以下功能:LED显示的前三实现了环境温度部分的连续显示,LED的后三能根据按键的调整显示所需要的设计温度。且LED的显示效果很好,很稳定。 5.3.3 加热模块及降温模块的调试 在加热模块的设计中重在软件设计,外围的驱动电路只是将送来的PWM信号放大从而驱动电阻工作。系统软件设置在P0.6口输出使光耦合器导通的PWM占空比,当环境温度低于设置温度时,电阻开始加热,若此时用低于环境温度的冰块靠近测温芯片DS18B20时,用一数字温度计靠近加热电阻测量其温度,发现电阻温度迅速上升,并越来越高,当达到一定值时,发现电阻温度不再升高;将冷源离开测温芯片DS18B20时,发现温度开始下降,直到预设温度时不在下降,若将设置温度低到环境温度以下,发现电阻温度又开始升高。调试过程中最初采用继电器控制加热电阻曾出现了很多问题,数次发现继电器吸合后,电阻开始加 29 焦作大学机电系毕业设计 第5章 系统调试 热,但是温度到达预设温度之后却延迟比较长的时间才断开,猜测可能是受电源干扰的问题,最终只有光电耦合器能够精确的控制加热电阻的通电与断开,从而精确的控制温度的恒定。 降温模块中,系统设置单片机P0.7口作为降温控制端口,系统采用的直流电机为12V的额定电压,而该驱动电路在采用单片机电源时的输出电压最高不过5V,因此在调试过程中只采用了原有的5V直流电机来调试,但是由于单片机输出电流小,当采用NPN型三极管作为驱动电路时,调试过程中总会烧坏三极管,最终我们采用PNP8085型三极管作为继电器的驱动电路,并进行该模块的多次调试,发现电机转速不高,但是运转正常。 30 焦作大学机电系毕业设计 总结 总 结 本次设计采用了汇编语言编程方式,实现了温度的测量与控制,设计方案采用了单总线型数字式的温度传感器,不仅提高了温度的采集精度,且节约了单片机的口线资源。DS18B20简单快速的测温后,经单片机准确的温度分析后,驱动光耦合器进行电阻加热或驱动继电器进行风扇降温的控制,从而实现精确的恒温控制。方案还使用光电耦合器作加热控制器件,使设计简单化,且可靠性强。在控制精度方面,本设计采用PWM脉宽调制,由加热控制端输出不同的PWM脉冲来控制加热电阻通电时间,精确的控制电阻的加热功率,来提高温度的控制精度。通过该温控系统可以实现0℃~99.9℃范围内温度控制,在经过多次系统测试和误差校正后,系统的温度控制精度和测试精度达到了1℃的设计指标。在软件方面采用模块化编程,思路清晰,使程序简洁、可移植性强。 但是在设计工作完成后,重新思考整个设计方案,发现其中有很多值得改进的地方,本设计虽然采用了当前市场最先进的电子器件,使电路设计简单,但设计方案不是最佳。本系统虽然具有较小的超调量,但加大了调节时间。特别是控制加热和降温两个模块,在不改变温控空间体积的情况下,为减小调节时间,可以实行在加热快达到设定温度时开启风扇来减小热惯性对温度的影响的措施。在控制精度上可采用先进的数字PID控制算法,对加热时间进行控制,提高控制精度。还可以改进控制系统,使能同PC联机通信,以利用OC的图像处理功能打印显示温度曲线。89C52串行口为TTL电平,PC串行口为RS232电平,使用一片MAX232作为电平转换驱动。 随着日新月异的高新科技的推广与普及,温控系统将在各个领域的应用范围越来越广泛。相对众多加热系统,恒温控制器以其对温度的精确测量、快速控制等优点,必将在未来的生产生活中得到更加美好的发展前景。 31 焦作大学机电系毕业设计 参考文献 参考文献 [1] 刘守义、 杨宏丽、 王静霞. 单片机应用技术(第二版).西安电子科技大学出版社,2007. [2] 王兆安 、黄俊 .电力电子学 (第四版) 北京:机械工业出版社,2001. [3] 王廷才.电力电子技术.高等教育出版社.2007. [4] 李群林.基于多路传感器的温湿度检测系统[J]. 中国仪器仪表,2006(11),38—40. [5] 张永生、林春方.电子设计自动化(第二版).上海交通大学出版社,2008,25—91. [6] 耿长清.单片机应用技术[M].北京:化学工业出版社.2002(7). [7] 催东剑.多点恒温自动控制系统设计[J].电工技术. 2003,7;59—60. [8] 唐程山.电子技术基础.北京:高等教育出版社,2001(7). [9] 祁和义、孙杰.监测与传感器应用技术.北京:高等教育出版社,2009(8),113—128. 32 焦作大学机电系毕业设计 附录 附录 附录Ⅰ:电路总图 33 焦作大学机电系毕业设计 附录 附录Ⅱ:汇编语言程序设计软件代码 ORG 0000H BEGIN: LJMP INIT ORG 0003H ; INT0 ORG 000BH ; T0 INT ORG 0013H ; 1NT1 ORG 001BH ; T1 INT ORG 0023H ; SPORT INT ORG 002BH ; T2 INT ORG 0030H ;============================================ INIT: MOV SP, #60H MOV P0, #00FH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV 4AH, #25 ;============================================ MAIN: NOP LCALL GET_TEMPER LCALL DISP LCALL KEYSCAN LCALL GO AJMP MAIN ;============================================ GET_TEMPER: SETB P3.5 LCALL RST18B20 JB 00H, DSS2 RET DSS2: MOV A, #0CCH LCALL WR18B20 MOV A, #44H LCALL WR18B20 LCALL RST18B20 MOV A, #0CCH LCALL WR18B20 MOV A, #0BEH 34 焦作大学机电系毕业设计 附录 LCALL WR18B20 LCALL RE18B20 RET RST18B20: SETB P3.5 NOP CLR P3.5 MOV R0, #06BH MOV R1, #03H DSR1: DJNZ R0, DSR1 MOV R0, #6BH DJNZ R1, DSR1 SETB P3.5 NOP NOP NOP MOV R0, #25H DSR2: JNB P3.5, DSR3 DJNZ R0, DSR2 LJMP DSR4 DSR3: SETB 00H LJMP DSR5 DSR4: CLR 00H LJMP DSR7 DSR5: MOV R0, #06BH DSR6: DJNZ R0, DSR6 DSR7: SETB P3.5 RET ;---------------------------- WR18B20: MOV R2, #8 CLR C WR1: CLR P3.5 MOV R3, #6 DJNZ R3, $ RRC A MOV P3.5, C MOV R3, #23 DJNZ R3, $ SETB P3.5 NOP DJNZ R2, WR1 SETB P3.5 RET 35 焦作大学机电系毕业设计 附录 ;------------------------- RE18B20: SETB RS0 MOV R4, #2 MOV R0, #36H RE00: MOV R5, #8 RE01: CLR C SETB P3.5 NOP NOP CLR P3.5 NOP NOP NOP SETB P3.5 MOV R6, #07 RE10: DJNZ R6, RE10 MOV C, P3.5 MOV R6, #20 RE20: DJNZ R6, RE20 RRC A DJNZ R5, RE01 MOV @R0, A DEC R0 DJNZ R4, RE00 CLR RS0 NOP RET ;----------------------------- DISP: MOV A, 35H ANL A, #0FH MOV 40H, A MOV A, 36H SWAP A ANL A, #0FH MOV 41H, A MOV A, 40H SWAP A ORL A, 41H MOV 41H, A MOV B, #10 DIV AB MOV 52H, A MOV 51H, B 36 焦作大学机电系毕业设计 附录 MOV A, 4AH MOV B, #10 DIV AB MOV 54H, A MOV 53H, B MOV A, 52H MOV DPTR, #SGTB MOVC A,@A+DPTR CPL A MOV P2, A CLR P1.5 CLR P1.6 CLR P1.7 LCALL YS4722U MOV P1, #80H MOV A, 51H MOV DPTR, #SGTB MOVC A,@A+DPTR CPL A MOV P2, A SETB P1.5 CLR P1.6 CLR P1.7 LCALL YS4722U MOV P1,#80H MOV A, 54H MOV DPTR, #SGTB MOVC A,@A+DPTR CPL A MOV P2, A CLR P1.5 SETB P1.6 CLR P1.7 LCALL YS4722U MOV P1, #80H MOV A, 53H MOV DPTR, #SGTB MOVC A,@A+DPTR CPL A MOV P2, A 37 焦作大学机电系毕业设计 附录 SETB P1.5 SETB P1.6 CLR P1.7 LCALL YS4722U MOV P1,#80H RET ;--------------------------------- KEYSCAN : NOP JB P0.0, KEY1 LCALL DELAY60 ; ADD SPEED JB P0.0, KEY1 SETB P3.0 CLR P3.1 SETB P3.2 CLR P3.3 LJMP KEY1 KEY1: JB P0.1, KEY2 LCALL DELAY60 JB P0.1, KEY2 CLR P3.0 SETB P3.1 CLR P3.2 SETB P3.3 LJMP KEY2 KEY2: JB P0.2, KEY3 LCALL DELAY60 JB P0.2, KEY3 CLR P3.0 CLR P3.1 CLR P3.2 CLR P3.3 LJMP KEY3 KEY3: JB P0.3 , OK LCALL DELAY1 JB P1.3, OK INC 4AH SETB P0.3 OK: JB P0.4, KEYSOUT LCALL DELAY1 JB P1.4, KEYSOUT DEC 4AH 38 焦作大学机电系毕业设计 附录 SETB P0.4 KEYSOUT: RET ;-------------------------------- GO: NOP MOV A, 41H SUBB A, 4AH JZ LOOP3 JC LOOP3 MOV B, 30H MOV A, 41H MOV 30H, A SUBB A, B MOV R0, A JC LOOP3 JNC LOOP4 LOOP3: SETB P3.0 CLR P3.1 LCALL L1 CLR P3.0 CLR P3.1 LCALL L1 RET LOOP4: SETB P3.0 CLR P3.1 ADD A, #20 ADD A, R0 MOV R7, A DJNZ R7, L1 CLR P3.0 CLR P3.0 LCALL L1 RET L1: LCALL DELAY3 LCALL DELAY3 LCALL DELAY3 LCALL DELAY3 RET L: RET ;----------------------------- DELAY1: PUSH PSW MOV PSW, #00H MOV R2, #0FH 39 焦作大学机电系毕业设计 附录 MOV R3, 0FFH W1: MOV R4, 0FAH W2: DJNZ R4, W2 DJNZ R3, W1 POP PSW RET DELAY2: PUSH PSW MOV PSW, #00H MOV R3, #6 W3: MOV R4, #0FAH W4: DJNZ R4, W4 DJNZ R3, W3 POP PSW RET ;--------------------------------- SGTB: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH ;--------------------------------- YS4722U: Y4: MOV R4, #005H Y3: MOV R5, #0FFH DJNZ R5, $ DJNZ R4, Y3 RET DELAY3: PUSH PSW MOV PSW, #00H MOV B, #50 MOV A, R0 MUL AB MOV R3, A MOV A, #20H ADD A, R3 MOV R5, A W7: MOV R4, #0FAH W8: DJNZ R4, W8 DJNZ R5, W7 POP PSW RET DELAY60: PUSH PSW MOV PSW, #00H MOV R3, #06 W60MS: MOV R4, #0FAH 40 焦作大学机电系毕业设计 附录 W50US1: DJNZ R4, W50US1 DJNZ R3, W60MS POP PSW RET 41 焦作大学机电系毕业设计 致谢 致 谢 在论文的设计过程中,我查阅了许多有关恒温控制系统设计方面的文献资料,使我对恒温控制的设计和使用有了更深的认识。从论文选题到完成论文,杨庆祥老师付出了大量的时间和心血,在设计过程中,杨老师从多方面进行指导,不断对论文提出修改意见。在此,我要由衷地感谢杨老师!同时,我也要感谢给予我帮助的同学,在不懂的环节为我努力探讨。论文的完成,不仅是我大学三年知识积累的体现,而且也是机电学院所有老师悉心教导的结果,感谢他们让我掌握了一定的专业知识,专业技能和一些为人处世的道理。最后还要感激父母,是他们给我学习的机会,并且在学业期间给我大力支持和为我付出! 42
因篇幅问题不能全部显示,请点此查看更多更全内容