开关打开。当接上三极管后就能将输入信号的发送到继电器当中,驱动开关使温度调节器改变温度。
图5.7温度控制电路
继电器的选择上,我们选择北京科通继电器总厂生产的GX-10F继电器为例,列出输入、输出参数,详见表5.1,根据输入电压参数值大小,可确定工作电压大小。如采用TTL或CMOS等逻辑电平控制时,最好采用有足够带载能力的低电平驱动,并尽可能使“0”电平低于0.8 V。如在噪声很强的环境下工作,不能选用通、断电压值相差小的产品,必需选用通、断电压值相差大的产品,(如选接通电压为8 V或12 V的产品)这样不会因噪声干扰而造成控制失灵 。我们在这选择12V的继电器作为我们使用的器件。使用的具体元件参数如下表
21
表5.1固态继电器参数设置
型 号 控制方式 输入电流 工作指示 通断时间 可靠关断电压 SSR-1DD-P 3-32DC 大于5mA / ≤10ms 小于0.8 VDC 直流5-110VDC 有高的 200VDC 300VDC 1A.2A.3A.4A.5A. ≤1.5V 50mA 小于10mA 2500VAC,1分钟 ≥2500V ≥100MΩ —35~75 ℃ 50/60HZ / 阻性负载取2-4倍,感性负载取3-5倍 300万-500万次 18g 39.0L×23.0W×13H 输入参数 输出参数 性能参数 输出电压 额定工作电流 通态压降 最小导通电流 断态漏电流 介质耐压 绝缘电压 绝缘电阻 工作温度 电源频率 散热条件 负载电流安全系数 工作寿命 重量 外型尺寸
22
6 温度控制的软件设计
6.1 数码管动态显示
单片机AT89S52输出8个高低电平信号每个数码管的8个段分别连接P0.0-P0.7口上当某个数码管的公共端为“0”时,那么这个数码管被选中,这时此数码管的哪段为”1“则哪段就被点亮初学者可以利用本实验板自带的仿真器功能来单步执行,来观察数码管的工作原理,由于I/O资源有限,一个51单片机只有32个I/O所以只能将8个数码管以动态扫描的方式来显示,何为动态扫描呢? 动态扫描的连接方式是将8个数码管的8个段用相同的I/O来控制,即第一个数码管的”a“段由P0.0控制第二个数码管的”a“段也是由P0.0来控制的而8个数码管的公共端则是由不同的I/O来控制,即第一个数码管的公共端由P2.4控制而第二个数码管的公共端有P2.5控制 动态扫描的控制原理是:将第一个数码管要显示的内容显示出来,然后立刻将第二个数码管的内容显示出来,一次把第8个数码管的内容显示出来由于单片机的工作速度非常快,所以当显示第8个数码管的时候第一个数码管的内容还没有完全消失,这时立刻重复上面的过程,就实现了数码管的。数码关分共阳极数码管,还有就是共阴极数码管,我们就采用共阴来使用。单片机各个口的电压输出的都为高电平。共阴就通过控制阳极,即可控制LED显示。
6.2 DS18B20初始化
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 DS18B20的单线协议和命令
DS18B20有严格的通信协议来保证各位数据的传输的正确性和完整性 主机操作单线器件DS18B20必须遵循下面的顺序. 1.初始化
单线总线上的所有操作均从初始化开始。初始化过程如下:主机通过拉低单线480us以上,产生复位脉冲,然后释放该线,进入Rx接收模式主机释放总线
23
时,会产生一个上升沿。单线期间DS18B20检测到改上升沿后,延时15-60us,通过拉低总线60-240us来产生应答脉冲。主机棘手到从机的应答脉冲后,说明有单线器件在线。 2.ROM操作命令
一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。工有5位ROM操作命令。 3.内存操作命令
在成功执行了ROM操作命令之后,才可以使用内存操作命令。主机可以提供6种内存操作命令。 4.数据处理
DS18B20要有严格的时序来保证数据的完整性。在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”和读“1”几种信号类型。其中,出来映带脉冲之外,均由主机产生。数据位的读和写则是通过使用读、写时隙实现的。
首先来看写时隙。当主机将数据从高电平来至低电平时,产生写时隙。有2种类型的写时隙:写“1”和写“0”。所有写时隙必须在60us以上,各个写时隙之间必须保证最段1us的恢复时间。DS18B20在DQ线变低后的15-60us的窗口对DQ线进行采样,如果为高电平,就写“1”;如果为低电平就写“0”。对于主机产生写“1”时隙的情况,数据线必须先被拉低,然后释放,在写时隙开始后的15us,允许DQ线来至高电平。读主机产生写“0”时隙的情况,DQ线必须被拉至低电平且至少保持低电平60us。
再来看读时隙。当主机从DS18B20读数据时,把数据线从高电平来至低电平,产生读时隙。数据线DQ必须保持低电平至少1us,来自DS18B20的输出数据在读时隙下降沿之后15us内有效。因此,在此15us内,主机必须停止将DQ引脚置低。在读时隙结束时,DQ引脚将通过外部上拉电阻拉回来至高电平。所有的读时隙最短必须持续60us,各个读时隙之间必须保证延时到最段1us的恢复时间。
所以的读写时隙至少需要60us,且每两个独立的时隙之间至少需要1us的恢复时间。在写时隙中,主机将在拉低中线15us内释放总线,并向DS18B20写“1”。若主机拉低总线后能保持至少60us的低电平,则向单总线期间写“0”。DS18B20仅在主机发生读时隙时才向主机传输数据,所以,当主机向DS18B20发生读数据命令后,必须马上产生读时隙,以便DS18B20能传输数据。
24
6.3 系统流程图
系统流程图如图6.1所示:
开始 初始化 启动18B20
读温度 P3.2高电平降温 计算温度 显示温度 P3.3高电平升温
?≤下限 ?≥上限
图6.1系统流程图
结束
25