自制可调温度控制器

合集下载

单片机可调温度控制器的设计

单片机可调温度控制器的设计
第 1O卷 第 1期 2016年 3月
齐 齐 哈 尔 工 程 学 院 学 报 JOURNAL OF QIQIHAR INSTITUTE OF ENGINEERING
Vo1.1O No.1 Mar.2016
单 片 机 可 调 温 度 控 制 器 的 设 5,-t-
金 钢
(齐 齐哈 尔工程 学 院 信 息 工程 系,黑龙 江 齐 齐哈 尔 161005)
AT89S52是一种低 功耗 、高性能 CMOS8位 微控制器 ,具有 8K在系统可编程 Flash存储器 , 它具有以下标准功能 :8k字节 Flash,256字节 RAM,32位 I/O 口线 ,看门狗定时器 ,2个数据 指 针 ,三个 16位 定 时器 ,计 数器 ,一个 6向量 2 级 中断结 构 ,全 双工 串行 口 ,片 内晶振 及时钟 电 路 。DS18B20是世界上第一片支持 “一线总线” 接 口的温度传感器 ,即单总线器件 。发光二极管 LED是一种能够将 电能转化为可见光 的固态的 半导体器件 ,它可以直接把电转化为光 。
在 主程 序 中 ,当系统 上 电完成 定义 寄存 器 等 初始化操作后 ,首 先判断是否要调整 温度设 定 值 ,也就是判断四个按键是否有按下 ,若有按键 按 下 则修 改 对 应 的温 度 上 下 限值 ,执 行设 置 键 、 选择键 、上限加、上限减、下 限加、下限减的操 作 。之后主程序将调用子程序 ,读取转换结果 , 并将转换结果换算成摄 氏的温度值 。在这之后 , 程 序 将 比较采 集 的温度 值是 否高 于上 限设 定值 或 低于下限设定值 ,温度值若低于下限则启动暖风 机给温室加热 ,若高于上限值则停止暖风机的运 行 。最后主程序将调用显示子程序 ,将上限设定 值 、当前温度值和下限温度值刷新。再判断有无 按键按下 ,开始下一个循环周期的工作。

花了一个月时间给弱势群体DIY了温控器及保温箱~~~

花了一个月时间给弱势群体DIY了温控器及保温箱~~~

花了一个月时间给弱势群体DIY了温控器及保温箱~~~本帖最后由碧湖山水于 2013-1-4 13:50 编辑忙里偷闲,用了一个月中午下班的时间给龟苗门整了个窝。

在公司弄的,自然材料都是就地取材了。

手动加工的东西太多只能列表说明了!1、选择整理箱:之所以采用整理箱加热,首先带电的东西一定要确保绝缘,其次轻便方便操作。

因为都是苗子比较容易腐皮必须喂食后换水,所以为了省事采用套缸加热法(漏电龟龟也不会被电死)。

为确保换水不影响整体的温度,整理箱要尽量多装水,但是大箱要占地盘。

因此做了点改进,买了大整理箱一个、中塑料盒一个、小塑料盒两个。

大的整理箱可以排着放两个小塑料盒,中塑料盒倒扣刚好可以放在整理箱内底部。

把中塑料盒打满孔(传热用),并在公司割了块尺寸小于中塑料盒的有机玻璃(安加热棒用,整理箱低部吸不了)。

组装是这样的,首先在大整理箱内底部放有机玻璃板,安上加热棒,盖上打满控的中塑料盒,在中塑料盒上面排好两个小塑料盒。

其次往两个小塑料盒放入老水(高度看龟苗而定)后再往大整理箱旁边注自来水,大整理箱的水位高度和小塑料和水面高度一样。

这样花费50大洋防漏电、方便换水的加热箱就做好了。

大整理箱的水还养了几条热带鱼呐。

2、选择加热棒及UVB灯:因为加热的水不是很多并且外部有保温,为了节省成本,所以就在网上买了个25W的不锈钢加热棒、25W-UVB灯、带夹子的灯座,总共花了110大洋。

结果回来的时候测试了几天发现加热棒误差太大了,调29度竟然加热到了33度,还好没放龟,现在只好调25了。

但是还是不放心,后面自己做了个温控器(下文介绍)。

3、制作保温箱:公司最近做烘房有剩余的泡沫板,拿来一块5CM厚的并用透明胶在两个表面贴一层膜(防泡沫掉落及刮伤),之后就用美工刀按尺寸割出6块板,并倒45度角再用透明胶粘好(留一块做盖子,盖子要盖得严所以边缘做了个台阶)。

最后要做的就是在箱的四周开透气方孔(大小和美工刀的刀宽一样)及盖子的UVB灯孔(留着割下的泡沫以备不开灯时堵上)。

室内温度控制器的制作方法

室内温度控制器的制作方法

室内温度控制器的制作方法室内温度控制器是一种用来调节和控制室内温度的设备。

通过使用室内温度控制器,我们可以实现室内温度的自动调节,提高室内舒适度,节约能源。

下面我将介绍一种简单的室内温度控制器的制作方法。

制作室内温度控制器的第一步是收集所需材料和工具。

我们需要一个温度传感器、一个温度控制模块、一个继电器、几根导线、一个电源、一个计时器和一个外壳。

工具方面,我们需要一个钳子、一把电钻和一把螺丝刀。

接下来,我们需要将温度传感器连接到温度控制模块上。

首先,使用螺丝刀将外壳打开,然后使用钳子将温度传感器的导线剥开一段。

将温度传感器的导线连接到温度控制模块上,确保连接稳固。

然后,我们需要将继电器连接到温度控制模块上。

使用钳子将继电器的导线剥开一段,然后将其连接到温度控制模块上。

接下来,使用电钻将继电器固定在外壳上,确保牢固不会松动。

接下来,将电源连接到温度控制模块上。

使用钳子将电源的导线剥开一段,然后将其连接到温度控制模块上。

确保连接正确,电源可靠。

最后,将计时器连接到温度控制模块上。

使用钳子将计时器的导线剥开一段,然后将其连接到温度控制模块上。

接下来,使用螺丝刀将计时器固定在外壳上,确保稳固。

经过以上步骤,我们成功制作了一个简单的室内温度控制器。

当室内温度超过设定的温度范围时,温度传感器将检测到这一变化并将信号传递给温度控制模块。

温度控制模块通过继电器控制空调或暖气设备的开启与关闭。

当温度达到设定范围内时,计时器将自动关闭设备,从而实现室内温度的自动调节。

需要注意的是,在制作室内温度控制器时,我们需要确保所有的电线连接正确,不要有任何短路或断路的情况发生。

另外,我们还需要注意选择合适的电源和适当的温度控制模块,以保证设备的稳定性和安全性。

总结起来,制作一个室内温度控制器并不复杂。

我们只需要收集所需材料和工具,然后按照上述步骤进行连接和固定即可。

通过室内温度控制器的使用,我们可以实现室内温度的自动调节,提高室内舒适度,节约能源。

一根导热管和一个机械式温控器,在家自制温度控制器

一根导热管和一个机械式温控器,在家自制温度控制器
请您及时更换机械式温控器,在家自制温度控制器
生活中的一些小创意,有时是来自于自己的一些小需求和探索欲。我有一个朋友想要自己DIY一个烧水的热水装置,就会问 道,一个发热管加一个温控开关能否控制温度,作为专 业 的 温 控 器 及 配 件 生 产 厂 家 --【 滨 州 恒 冠 电 器 】 , 我 很 专 心 的 为 他 讲解了一番,从以下几个方面来了解下,如何利用温控开关制作一个温度控制系统:
3、其它安全方面的考虑,漏电流、短路这些因数也需要考虑在里面,可以在串联了温控开关和发热管后加上过流保护器 和漏电流保护开关。
以上3点如果考虑完全测试没问题的话,恭喜您,DIY一个自己的热水装置已经可以了,滨州恒冠电器在这里祝大家生活 愉快。
1、需要使用多大功率的发热管,不同功率的发热管,将水从常温到一个温度的时间是不同的,这里就需要考虑到选择温 控开关的温度点,因为作为双金属片机械式的温控开关,温度点是在出厂的时候设定了不可以调的,一般一个温控开关 分为两个温度,一个是断开温度,一个是接通温度。如果功率大升温快,可以用温度稍微低点的温控开关,如果功率 小升温慢的话,那就可以选择温度相对接近需要控制的温度点,切记安装温控开关的时候一定要最接近需要控制温度 的 地 方 。 比 如 , 如 果 要 控 制 300度 的 高 温 的 话 , 用 3000瓦 的 加 热 管 , 这 样 温 控 开 关 的 温 度 可 能 就 要 设 定 的 相 对 低 点 , 可 以 选 择 280度 的 温 控 开 关 。
2、需要用多大电压、电流的温控开关,这就需要结合第一定的功率考虑,如果功率在小于2000瓦的情况下,可以选择 10A250V的温控开关,如果2000瓦到3000瓦之间的话可以选择15A的,那当然功率越大就需要更大电流的温控开关,越彬电 子厂的温控开关最大电流可以过63A也就是即热式电热水器上6000瓦用的。

自制恒温控制器

自制恒温控制器

自制恒温控制器该恒温控制器电路能使电器按预定的温度自动开启或关闭。

可用于恒温箱的温度自动控制、电风扇的自动开启,具有制作简单,用途广泛等优点。

其电路原理图如下图所示。

A1为三端稳压集成块,它输出稳定的12V直流电压供整机用电。

RP、R1和Rt组成温度检测电路,Rt为负温度系数的热敏电阻器,它的阻值随环境温度升高而下降。

555时基电路A2接成触发延迟电路,当②脚电位低于l/3V DD时,555时基电路置位,③脚输出高电平,继电器K得电吸合,其触点K一1闭合,接通电器电源使电器得电工作。

此时电路为暂稳态,正电源即通过R2向C4充电,使阈值端⑥脚电位不断上升,当升至复位电平时,电路翻转复位,③脚输出低电平,继电器释放,触点K一1跳开,电器就停止工作。

本电路设计巧妙之处是在其控制端⑤脚与电源正端之间串接了一只二极管VD5,使控制端⑤脚电位被钳位在12V—0.7V=11.3V 左右,从而使⑥脚复位电平由原来的2/3VDD(即8V)抬高到11.3V。

其目的可采用较小定时阻容元件R2与C4,即可获得较长的定时时间。

采用图示数据,延迟时间约3min。

设置延迟电路的目的是为了避免在预定温度附近可能造成电器M频繁开机与停机的不良现象。

恒温控制的具体工作过程是:当室内温度升高到预定值时,Rt阻值小于(R RP+R1)的一半,此时A2的②脚电位低于1/3VDD,电路翻转置位,③脚输出高电平,继电器K吸合,电器运转。

室内温度逐渐下降后,Rt的阻值随之增大,②脚电位开始升高并大于1/3VDD,此时电路仍处在暂态,即C4继续充电,电路不会翻转,电器仍运转。

直至C4电压充至11.3V左右时,电路翻转复位,③脚输出低电平,继电器K释放,电器才停止运转。

显然电路设置的延迟电路可解决当室内温度迅速变化时造成电路在预定温度附近频繁开机与关机。

倘若室内温度又升高到预定温度时,电路能重复上述过程使电器自动重新开机。

Rt可选用NTH2074型负温度系数热敏电阻。

自制简易的水族箱温控器

自制简易的水族箱温控器

自制简易的水族箱温控器水族箱温控器主要用于夏天水族箱散热风扇和电子制冷温控,控温的范围设计为23~29℃,实测温精度小于正负0.5℃,很适合DIY水族散热风扇和电子冷水机的朋友制作参考。

由于电路很简单,相信稍为有电子制作经验的朋友都能按图顺利制作。

温控驱动执行电路设计了两种供选择,分别是用N沟道功率MOSFET管和继电器,电路分别如上图和下图所示,可根据实际需要选择制作。

一、工作原理两款电路不同之处,仅在驱动执行电路部分,工作原理基本一样。

现以功率MOSFET管那款作原理介绍。

电路主要由温度传感器RT1、测温桥路、带滞后的电压比较器、工作指示及驱动电路等部分组成。

温度传感器RT1是一只密封在环氧树脂中的负温度系数热敏电阻(NTC)。

这类温度传感器品种及封装形式有很多种,常见的就是本电路采用的那种。

相对于铂电阻和集成温度传感器,NTC热敏电阻的主要缺点是线性度较差,但如果测量范围较小时仍然可以获得较好的精度,完全可以在水族控温领域有良好表现。

事实上现在市场上的水族电子控温器基本都是用NTC热敏电阻作温度探头。

负温度系数热敏电阻(NTC)的标称阻值是指在常温为250C时的电阻值。

测温电桥由温度传感器RT1与R6、VR1、R2、R7组成。

IC1是一块双运放LM358N,在这里只用了其中一运放,接成带滞后的电压比较器。

其同相输入端加有VR1调定的基准电压,调节VR1就可以在控温范围内设定不同的温度;反相输入端则加有R6与RT1的分压,由于RT1的阻值是随被测环境温度变化而改变的,因此ICIA反相端电位也随温度变化而改变。

MOSFET管Q1在ICIA输出电平(L≈0V,H≈10.5V)的控制下对负载散热风扇Fan起电源开关作用。

当水族箱水温高于VR1的调定温度值时,RT1阻值较小,R6和RT1分压后使ICIA反相输入端2脚的电位较低,此时ICIA的同相输入端3脚电位大于反相输入端电位,ICIA因而输出高电平,使MOSFET管Q1饱和导通,负载散热风扇Fan得电工作,对水族箱水降温,同时LED2点亮,显示负载Fan处于工作状态。

自制可调温度控制器.

自制可调温度控制器.

自制可调温度控制器(附原理图和源程序)2008年06月18日星期三 15:05自制可调温度控制器作者:温正伟原载:无线电杂志近期我发现很多DIY或是电子爱好的朋友们比较关注电子温度控制器制作的文章,前面我也发过一篇AT89C2051控制的简单温度计制作的文章,但是由于电路比较简易,而且没有调温功能.应部分朋友的要求我在此转载一篇温正伟在无线电杂志上发表过的一款可以方便调节、设定温度的控制器。

1.功能介绍笔者设计的这一款温度控制器是使用仍是比较常用的DS18B20集成温度传感器,还是用七段数码管做显示,完成温度采集与处理控制的CPU仍是AT89C2051单片机,但该电路具有电路简单,制作起来也无需调试,安装好后就可以使用等方便DIY的优点。

该电路最大的特点是用可以直观方便的调节所要限定的温度值,温度值是用3个7段共阳极数码管显示的,上电后会显示当前的温度值,按设定键时会闪烁显示设定温度值,这时可以按上/下调节键调整设定温度值,再次按下设定键时返回当前温度显示同时会对设定温度值进行保存,这个设定值会保存在DS18B20中,掉电后也不会丢失,下次上电时,单片机会自动读入上次的温度设定值。

长按设定键为关闭显示和温控,再次按下时功能再次打开。

电路中还设计了一路继电器控制,程序中设定超出设定温度时继电器被驱动吸合。

2.元器件背景及选用表一是元器件列表。

在这个电路中关键的两个元器件分别是单片机AT89C2051和温度传感传感芯片DS18B20。

AT89C2051具有2K的可多次擦写的FLASH存储器,有15个I/O口,用于做一些小型的控制显示和数据采集系统是很好的选择,本制作中2051单片机除要完成数据采集、处理、控制和显示的任务外,还要完按键值的采集、处理。

如果要用常规的数字加模拟电路实现起来就相对困难多了。

DS18B20是DALLAS半导体公司(现属MAXIM公司)设计生产的单总线数字温度传感器,单总线也就是说只用一根I/O引线完成数据的输入输出功能,所以它的体积很小,而且电压适用范围在3-5.5V,封装形式除有SO/uSO 的8PIN贴片式,还有更方便的三极管形式的TO-92封装(封装形式和引脚说明请看图一)。

用555制作的恒温控制器

用555制作的恒温控制器

用555制作的恒温控制器
这个恒温控制器在塑料大棚、小鸡的孵化等方面具有用途广泛,而且它还有精度较高、造价低廉、装调容易的特点。

工作原理
恒温控制器由热敏电阻Rt1、Rt2、5G1555时基电路、温域调整电阻R1、R2及控制执行机构所组成,电路如下图所示。

Rt1、R1为上限温度检测电阻,Rh、R2为下限温度检测电阻。

当温度升高而使⑥脚电位高于2/3Vcc时,③脚输出低电平,J释放。

当温度下降时,②脚电位低于1/3Vcc时,③脚成高电平,J吸合。

可控硅VSl、VS2导通与截止受触点J
控制,J吸合,VS导通。

J释放,VS中断,从而达到控制温度的目的。

当LEDl亮时,J释放,为恒温。

当LED2亮时,J吸合,开始加热。

元器件选择与制作
Rtl、Rt2均为负温度系数热敏电阻,型号不限。

R1、R2为微调电阻。

J可选用超小型的。

调整时,首先应调整上限温度,把Rtl置于所要求的上限温度的环境中(可用温度计监测),过—分钟后,调R1直到LEDl刚好发亮为止,要反复多调几次,可先将②脚与地短接一下,使③脚输出高平,即LED2亮,这样便于观察翻转状态。

然后调下限温度,过程同上,不过要调整R2使红色LED2亮,也要反复多调几次。

反复调整时应先将⑥脚与电源Vcc短接一下,以使③脚输出低电平,观察电路翻转状态。

电路要用小型稳压电源供电,以保证比较电位的准确。

该电路稍加修改,还能作为超温(如水开、火灾、锅炉),低温等温度报警器。

温控开关制作方法-概述说明以及解释

温控开关制作方法-概述说明以及解释

温控开关制作方法-概述说明以及解释1.引言1.1 概述温控开关是一种用来控制设备或系统在特定温度范围内工作的关键性器件。

它在许多领域和应用中都扮演着重要的角色,比如家用电器、工业设备、医疗器械等等。

通过监测环境温度并根据设定的参数来控制电路的通断,从而实现对设备工作状态的控制。

本文将介绍如何制作一个简单的温控开关,帮助读者更好地了解其原理和制作方法。

1.2 文章结构文章结构部分需包含以下内容:文章结构部分主要介绍了整篇文章的组织结构,包括引言、正文和结论三个部分的主要内容和分工。

通过文章结构的概述,读者可以清晰地了解到文章的整体框架和各部分之间的逻辑关系,有助于读者更好地把握文章的主题和内容,增强文章的可读性和连贯性。

此外,文章结构部分还可以为读者提供导读,引导读者快速了解文章的重点内容,帮助读者更准确地理解文章的主旨和要点。

1.3 目的:本文旨在介绍温控开关的制作方法,通过详细解释温控开关的原理、制作材料和具体步骤,帮助读者了解温控开关的工作原理,掌握制作温控开关的技术要点。

通过阐述温控开关的应用和意义,使读者更加清晰地认识温控开关在实际生活中的重要性。

最后,展望未来发展方向,不仅可以让读者对温控开关技术有更深入的了解,也可以促进技术的创新和应用。

通过本文的介绍,读者可以对温控开关制作方法有一个全面的了解,从而有助于他们在实践中应用和推广温控开关技术。

2.正文2.1 温控开关的原理温控开关是一种能够根据环境温度自动控制电器开关的装置。

其工作原理基于热膨胀原理和电气传导原理。

当温度升高时,温控开关内部的热敏元件会感知到温度变化,导致热膨胀,从而引起开关动作。

通过控制热敏元件的属性和设置合适的阈值,可以实现在特定温度范围内精确地控制电器的开启和关闭。

在电气传导方面,温控开关内部还包括电路连接和控制元件。

当温度达到设定值时,电路会自动关闭或打开,从而实现对电器的控制。

通过在电路中添加一些保护元件,可以保证温控开关的安全和稳定性。

可调温度控制器的设计

可调温度控制器的设计
温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控,以防止发生意外。针对此问题,本系统设计实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款实用又廉价的控制系统。
2.3.2电路图……………………………………………………………4
2.3.3实物照片…………………………………………………………5
第3章可调式控制器的特点…………………………………………………6
3.1创新点与新颖性………………………………………………………6
3.2实用性及应用前景……………………………………………………6
3.3本人收益……………………………………………………………6
总结……………………………………………………………………………7
参考文献………………………………………………………………………8
第1章绪论
随着社会的发展,科学的进步,以及测温度仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统以应用到人们个个方面,但是温度控制一直是一个未开发的领域,却又是与人们息息相关的一个问题。针对这种实际情况设计一个温度控制系统,具有一定的实用和推广价值。
对于一个喜爱电子制作的初学者而言,制作并完成一个电子产品是非常必要的。基于AT89S51单片机的可调式温度控制器适用于电子爱好初学者,特别是对于刚涉足单片机领域的学生们。通过该制作即能够锻炼电路测试、电路焊接和电路调试等动手操作能力,又能够培养其计算机程序开发方面的兴趣。
现在的学生普遍存在一种极其危险的现象——眼高手低。基于这种现象,本设计产品可以有效地消弱这一点。本产品清晰的电路、简易的程序,可调式温度控制器的新颖性,应用于教学方面,可增强学生学习电子设计的兴趣,教学过程中锻炼电路测试、电路焊接和电路调试等动手动脑的能力,有效地避免学生的“眼高手低”这一现象。

温度控制器的设计与制作

温度控制器的设计与制作

温度控制器的设计与制作一、功能要求设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。

当室内温度大于等于设定温度时,控制器断开电加热设备;当室内温度比设定温度小2时,控制器接通电加热设备。

控温范围:0~51控温精度:≤1二、硬件系统设计1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。

(1)单片机及看门狗电路根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。

为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端WDO将输出低电平到手动复位端,使复位输出端RST发出复位信号,使单片机可靠复位,即程序重新开始执行。

(注:如果选用AT89S51,由于其内部已具有看门狗电路,就不需外加IMP813L)(2)温度检测电路温度传感器采用AD590,它实际上是一个与绝对温度成正比的电流源,它的工作电压为4~30V,感测的温度范围为-550C~+1500C,具有良好的线性输出,其输出电流与温度成正比,即1μA/K。

因此在00C时的输出电流为273.2μA,在1000C时输出电流为373.2μA。

温度传感器将温度的变化转变为电流信号,通过电阻后转变电压信号,经过运算放大器JRC4558运算处理,处理后得到的模拟电压信号传输给A/D转换部分。

A/D转换器选用ADC0804,它是用CMOS集成工艺制成的逐次逼近型模数转换芯片,分辨率8位,转换时间100μs,基准电压0~5V,输入模拟电压0~5V。

(3)控制输出电路控制信号由单片机的P1.4引脚输出,经过光耦TLP521-1隔离后,经三极管C8550直接驱动继电器WJ108-1C-05VDC,如果所接的电加热设备的功率≤2KW,则可利用继电器的常开触点直接控制加热设备,如果加热设备的功率>2KW,可以继电器控制接触器,由接触器直接控制加热设备。

可调恒温控制器的工作原理及制作

可调恒温控制器的工作原理及制作

可调恒温控制器的工作原理及制作
 天冷了,而家里的电热毯没有恒温,也不能调节,只能靠手工控制电热毯的温度,既不方便又不可靠。

为此,笔者制作了一个电热毯可调恒温控制器,能自动地将电热毯保持在一定温度范围内,并能由使用者设定最适合自己的温度范围,当温度低于设定的下限温度时,电热毯自动加热,高于设定的上线温度时又自动断开电源,从而达到自动恒温的目的。

 一、工作原理
 电路见附图。

AC220v电源通过R1、C1阻容降压,VD1~VD4整流,C2滤波,再经VT1、R2、DW1、C4稳压至DC12V,供给由
VT2、RP1、RP2、R4、R5、RT、C5等组成的弛张振荡器,为双向可控硅VS的控制极提供触发脉)中,RP1给定电压(调节温度),其阻值大小决定温度的高低;热敏电阻RT(负温度系数)用于检测温度。

刚通电时,电热毯温度低,RT阻值大,A点电位较高,C5充电时间常数变小,VT2提前振荡,使可控硅VS导通角前移,流过电热毯的电流大,使其尽快达到预定温度设
定值,当电热毯温度升高时,RT阻值变小,A点电位随之减小,流过电热毯的电流减小,温度逐渐降低,从而实现自动恒温。

简易恒温控制器的制作及原理

简易恒温控制器的制作及原理

简易恒温控制器的制作及原理
 笔者设计了一个很简单的恒温控制线路(如图1所示),使用零件少,安装、操作都很方便。

 温度传感器K用旧日光灯启辉器的氖管改制而成。

去掉氖管的玻璃壳,
可以看到一条u形双金属带和它对面的根金属棒,二者起固定在球形的玻璃
珠上,这条u形双金属带,内层金属的膨胀系数比外层的大,因此温度外高时,U形带慢慢张开,与对面的金属棒接触,起到开关作用。

把那金属棒上
端削尖,并细心调节尖端与双金属带的距离,使在调控制温度下,两者洽相
接触(用Ω表测试)。

 一般孵化箱温度在23℃、25℃、28℃中选用。

热源可以用100w灯泡。

调整温度时,可用水银温度计对比着调。

 电路原理AC220V市电,通过灯泡进入桥式整流,再经刚降压、VD稳压,给三极管BG提供工作电流。

三极管导通后,SV可控硅的控制极G得到正
向电流,SV可控硅导通,100W灯泡发亮,给恒温箱加温,传感器氖管双金
属带膨胀,当恒温箱温度升到需要温度如25℃时,传感器氖管双金属带和金属棒“K”处相接触。

此时,三极管BG的基极与发射极被短路,三极管BG截。

简易温度控制器制作

简易温度控制器制作

电子技术综合训练设计报告题目:简易温度控制器制作姓名:学号:班级:同组成员:指导教师:日期:摘要本设计是为了做一个简易温度控制器,其可分为三大部分:测温电路,比较/显示电路,控制电路。

测温电路将温度信号转换成电压信号,采用热敏电阻根据温度的变化来引起电压的变化。

比较/显示电路将转换后的电压信号利用比较运算放大器与设置的温度值对应的电压进行比较,输出高或输出高或低电平通过LED灯显示温度状态。

控制电路也是将转换后的电压信号过比较运算放大器与设置的温度值对应的电压进行比较,输出高或输出高或低电平控制加热装置,从而控制温度。

关键词:温度检测,信号转换,比较,显示,控制。

目录一、设计任务和要求............................... - 4 -1.1设计内容............................... - 4 - 1.2技术要求:............................. - 4 - 二、系统设计..................................... - 5 -2.1系统要求............................... - 5 - 2.2设计方案.. (5)2.3系统工作原理........................... - 6 - 三、单元电路设计................................. - 7 -3.1温度检测单元电路 (7)3.2比较显示电路........................... - 9 - 3.3温度控制单元电路...................... - 11 -3.4电源单元电路......................... - 11 -四、系统仿真.................................... - 14 -五、电路的安装、调试与测试...................... - 17 -5.1电路安装............................. - 17 - 5.2电路的调试........................... - 17 - 5.2系统功能及性能测试................... - 17 -六、结论........................................ - 19 -七、参考文献.................................... - 20 -八、总结体会和建议.............................. - 21 -附录一、设计任务和要求1.1设计内容设计并制作一个温度监控系统,用温度传感器检测容器内水的温度,以检测到的温度信号控制加热器的开关,将水温控制在一定的范围之内。

自制恒温器系统

自制恒温器系统

自制恒温器系统
此实验自制的恒温器是一种无触点自动温控开关,启可调恒温范围为10-60℃,精度可达±1℃。

电路图下图所示:
温度传感器采用硅二极管1N4148,此类半导体温度传感器的测温范围可达﹣55~﹢150℃,温度系数在正向电流I为 0.1mA是约为﹣2.26~2.28mv/℃,线性度较好。

外围元件只需1只限流电阻(见上图),测温电路简单可靠。

但应注意不要在其外壳涂环氧树脂或其他不良导热体做保护层,否则将影响测温精度。

上图中的VD5即测温二极管,正向压降在 0℃是约为500mv(由于元件本身有一定离散性,故各管子的V略有不同)。

VD5的V输入到电压跟随器A1的同相输入端○3、用作缓冲隔离级,其输出送反相放大器A2反向输入端。

R4、R5分压节点电位VD5约为636mv,接到A2统相输入端○5。

VR5-V的电位差经A2放大后,输出正电压接到比较器A3的反相输入○9,与同相输入端○10的电压进行比较。

VD5在温度比较低时V较高,VR5-V的电位差较小,A3○9脚电位低于○10脚电位,A3输出高电平使V饱和导通,VS的G极被触发使VS导通,电热器使得电加热。

随着温度的上升,V逐渐下降,VR5-V电位差逐渐增大,股A2输出的正电压也上升。

当A3○9脚电压高于○10脚时,A3反转输出低电平,V截止,VS关断,电热器断电停止加热,VD5温度逐渐下降……。

如此反复加热,使被加热的设备内保持恒温。

智能空调控制器的制作方法

智能空调控制器的制作方法

智能空调控制器的制作方法智能空调控制器是一种集成了传感器技术、数据分析和智能算法的设备,能够自动调节室内温度,提供舒适的室内环境。

它可以通过自动识别室内温度、湿度和人体活动等参数,实时监测环境变化,并根据用户需求进行智能调控,提高能源效率,提供更好的使用体验。

下面将简单介绍一下智能空调控制器的制作方法。

首先,智能空调控制器的核心部件是传感器。

我们可以选择温度传感器、湿度传感器和人体红外传感器。

这些传感器可以通过串口或者I2C总线和控制器进行连接。

为了方便控制,我们可以选择一款单片机作为控制器,比如Arduino、Raspberry Pi 等。

这些单片机具有丰富的GPIO口,可以方便地连接传感器和执行控制任务。

其次,控制器需要存储一些数据,比如温度、湿度和人体活动等参数。

这些数据可以通过SD卡、EEPROM或者云端服务器进行存储。

为了方便数据分析和用户交互,我们可以使用一块液晶屏或者OLED屏幕来显示当前的环境数据和控制信息。

第三,我们需要编写一段控制程序,实现传感器数据的采集和控制指令的执行。

我们可以使用C、C++或者Python等编程语言进行开发。

在程序中,我们需要设定一些阈值,当环境参数超过这些阈值时,触发控制指令,比如开启或者关闭空调。

同时,我们可以将传感器数据上传到云端服务器,以备后续的数据分析和调节。

最后,为了实现远程控制,我们可以考虑添加一块无线通信模块,比如Wi-Fi或者蓝牙模块。

这样,用户可以通过手机App或者网页来实时监控和调节室内温度。

同时,我们还可以设置定时开关机功能,根据用户的作息时间来自动控制空调的开关。

综上所述,智能空调控制器的制作涉及到传感器的选择和连接、控制器的选取和编程、数据存储和显示以及远程控制等方面的技术。

通过合理的设计和编程,智能空调控制器可以实现自动调节室内温度、提高能源效率、提供舒适的室内环境。

随着智能家居的普及,智能空调控制器有着广阔的应用前景。

智能空调控制器的制作方法涉及到多个技术环节。

自制交流调温器的原理

自制交流调温器的原理

自制交流调温器的原理
您好,自制交流调温器的原理是一个非常好的实践项目,可以锻炼电路设计与制作能力。

关于其工作原理,我将尽可能详细地为您阐述:
1. 首先,交流调温器需要一个变压器,利用其电感效应调节输出电压来控制加热力度。

2. 然后,调温器的核心是温控开关,它包含热敏电阻,根据温度变化改变电阻,从而开启或关闭电路。

3. 接下来,可用电位器作为温度选择器,它就像一个可变电阻,通过拨动旋钮来设定不同的温度阈值。

4. 当环境温度低于设定值时,热敏电阻的值较高, comparator 会导通功率控制器,允许电流通过加热丝。

5. 加热丝迅速发热,当温度上升到设定值,热敏电阻值减小到阈值, comparator 切断电流,加热停止。

6. 通过这种负反馈方式,可以精确控制温度在设定值附近波动,实现稳定的温控效果。

7. 同时,可以设计定义输出功率的控制电路,避免加热过强。

还需要注意安全防护措施。

8. 综上,该调温器通过电子电路设计实现了对温度的自动测量与控制,是一种有趣的电路应用实践。

感谢您提出这个题目,说明交流调温器的工作原理对电路设计学习具有一定的参考价值。

非常高兴能有机会讨论这种实际的技术应用,如果您有任何其他问题,请告知我。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自制可调温度控制器(附原理图和源程序)2008年06月18日星期三15:05自制可调温度控制器作者:温正伟原载:无线电杂志近期我发现很多DIY或是电子爱好的朋友们比较关注电子温度控制器制作的文章,前面我也发过一篇AT89C2051控制的简单温度计制作的文章,但是由于电路比较简易,而且没有调温功能.应部分朋友的要求我在此转载一篇温正伟在无线电杂志上发表过的一款可以方便调节、设定温度的控制器。

1.功能介绍笔者设计的这一款温度控制器是使用仍是比较常用的DS18B20集成温度传感器,还是用七段数码管做显示,完成温度采集与处理控制的CPU仍是AT89C2051单片机,但该电路具有电路简单,制作起来也无需调试,安装好后就可以使用等方便DIY的优点。

该电路最大的特点是用可以直观方便的调节所要限定的温度值,温度值是用3个7段共阳极数码管显示的,上电后会显示当前的温度值,按设定键时会闪烁显示设定温度值,这时可以按上/下调节键调整设定温度值,再次按下设定键时返回当前温度显示同时会对设定温度值进行保存,这个设定值会保存在DS18B20中,掉电后也不会丢失,下次上电时,单片机会自动读入上次的温度设定值。

长按设定键为关闭显示和温控,再次按下时功能再次打开。

电路中还设计了一路继电器控制,程序中设定超出设定温度时继电器被驱动吸合。

2.元器件背景及选用表一是元器件列表。

在这个电路中关键的两个元器件分别是单片机AT89C2051和温度传感传感芯片DS18B20。

AT89C2051具有2K的可多次擦写的FLASH存储器,有15个I/O口,用于做一些小型的控制显示和数据采集系统是很好的选择,本制作中2051单片机除要完成数据采集、处理、控制和显示的任务外,还要完按键值的采集、处理。

如果要用常规的数字加模拟电路实现起来就相对困难多了。

DS18B20是DALLAS半导体公司(现属MAXIM公司)设计生产的单总线数字温度传感器,单总线也就是说只用一根I/O引线完成数据的输入输出功能,所以它的体积很小,而且电压适用范围在3-5.5V,封装形式除有SO/uSO的8PIN贴片式,还有更方便的三极管形式的TO-92封装(封装形式和引脚说明请看图一)。

DS18B20测量温度范围为 -55°C~+125°C,其A/D转换的分辩率可用程序控制分别为9位、10位、11位和12位,最高分别率可以高达0.0625°C,但在-10~+85°C范围内其精度为±0.5°C,这个精度已可以满足普通型的环境温度控制或测温类消费电子产品的要求。

DS18B20中有三个8位E2RAM单元(非易失性可电擦写储存器),可以读写上下限警报温度值和一个自定义值,在本制作的中就只使用了上限温度值单元。

每个DS18B20出厂时都有一个唯一的序列编号,就是说在同一个单总线系统中可以控制多个DS18B20。

对DS18B20的单总线的操作方法这里因篇幅问题不可能一一说明,有兴趣的读者可以自己多查看些的DS18B20资料。

表1 元件清单图1:温度传感器封装形式及引脚说明3.电路原理制作中DS18B20使用外接电源的供电方式,数据端用4.7K电阻上拉,并联接到2051的11脚上。

晶振选用12M的,使用简单的上电复位电路。

选用共阳极的数码管,用S8550作位驱动,段引脚通过470欧的电限流电阻接入2051的P1口上,如选用的数码管亮度不足可以调小限流电阻值。

笔者也使用过共阴极的数码管,在P1口用1K电阻上拉提供电流,亮度不高,但可以节省三个位驱动IO 脚,电路更是简单。

电路中有三个按键,分别是显示开关/温度设定,温度上调,温度下调,在电路上电运行时程序初始是处于关闭状态的,要按一下S2电路开始显示和监测,如再按一下S2进入温度设定状态,设定值每秒闪烁一次,这时可以按S1或S3进行调节,再按下S2时退回显示当前温度状态并保存温度值到DS18B20。

使用2051的第9脚做控制输出端,低电平有效,笔者用它通过9012去驱动一个5V的继电器。

笔者把这个电路安装到电脑前面板上,继电器触头端接机箱的散热风扇,设定一个温度值如28度,当机箱内的温度超出28度时,控制端为低电平,继电器闭合,风扇启动进行散热。

图三就是装在电脑面板上的实物照片。

图2:电原理图4.软件实现这个温度控制器制作的最大难点应该算是2051程序的编写和调试。

因在电路中有数字显示,按键设定,数据采集和继电器控制。

首先要考虑的是在电路中3个数码管的阴极是接在P1上的,也就是说要使用动态显示的编程方法,笔者在程序中使用了一个定时中断去处理显示,定时器的定时值为20毫秒,每间隔20毫秒程序但会执行定时中断显示所要显示的数字,同时在这个定时中断中还会去扫描按键,看是否有键被按下并对其结果进行处理。

在这20ms的时间里程序还会完成温度数据的采集和转换和对当前温度和设置温度的对比等等。

在编写采集DS18B20数据的函数时运用了DS18B20的单总线协议,在读写DS18B20时IO口的电平时序上应尽可能做到与资料上提供的数据相一致。

程序大部分使用模块化设计,读者朋友修改或使用它的函数编写自己温控程序,程序的最新版本可以访问笔者的个人网站。

图三实物图用实验板搭建的实物图源程序如下:/*-------------------------------温度控制器V1.51显示为三个共阳极LED温度传感器用单总线DS18B20CPU为2051,三个按键,分别为UP,DOWN,SET温度调节上限为125度,下限为-55度只能用于单只18B20本软件仅供学习与参考,引用时请注明版权-------------------------------*/#include <AT89X051.H>#include <intrins.h>#define Key_UP P3_0 //上调温度#define Key_DOWN P3_1 //下调温度#define Key_SET P1_7 //设定键(温度设定,长按开电源)#define RelayOutPort P3_5 //继电器输出#define LEDPort P1 //LED控制口#define LEDOneC P3_2 //LED DS1控制(百位)#define LEDTwoC P3_3 //LED DS2控制(十位)#define LEDThreeC P3_4 //LED DS3控制(个位)#define TMPort P3_7 //DS1820 DataPortunsigned char codeLEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}; //0-9的LED笔划,0xFF为空,0xF7为负号static unsigned char bdata StateREG; //可位寻址的状态寄存器sbit DS1820ON = StateREG^0; //DS1820是否存在sbit SetTF = StateREG^1; //是否是在温度设置状态sbit KeySETDown = StateREG^2; //是否已按过SET键标识sbit PowTF = StateREG^3; //电源电源标识sbit KeyTF = StateREG^4; //键盘是否允许//sbit KeySETDowning = StateREG^5; //SET是否正在按下static unsigned char bdata TLV _at_ 0x0029; //温度变量高低位static unsigned char bdata THV _at_ 0x0028;static signed char TMV; //转换后的温度值static unsigned char KeyV,TempKeyV; //键值static signed char TMRomV _at_ 0x0027; //高温限制static signed char TMSetV _at_ 0x0026; //温度设定值static unsigned char KSDNum; //SET键连按时的采集次数static unsigned char IntNum,IntNum2,IntNum3; //中断发生次数,IntNum用于SET长按检测,IntNum2用于设定状态时LED闪烁static signed char LED_One,LED_Two,LED_Three; //LED的显示位 LED_One为十位,LED_Two为个位static unsigned char Sign; //负号标识void main(void){void InitDS1820(void); //定义函数void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);void TMERDS1820(void);void ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG = 0; //初始化变量SetTF = 1;PowTF = 1; //关电源THV = 0;TLV = 0;TMV = 0;KeyV = 0;TempKeyV = 0;KSDNum = 0;IntNum = 0;IntNum2 = 0;IntNum3 = 0;LED_One = 0;LED_Two = 0;InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMERDS1820(); //E2PRAM中温度上限值调入RAMInitDS1820(); //初始化ROMDS1820(); //跳过ROMTMRDS1820(); //读出温度指令ReadDS1820(); //读出温度值和上限值TMSetV = TMRomV; //拷贝保存在DS18B20ROM里的上限值到TMSetVEA = 1; //允许CPU中断ET0 = 1; //定时器0中断打开TMOD = 0x1; //设定时器0为模式1,16位模式TH0=0xB1;TL0=0xDF; //设定时值为20000us(20ms)TR0 = 1; //开始定时while(1);}//定时器0中断外理中键扫描和显示void KeyAndDis_Time0(void) interrupt 1 using 2{TH0=0xB1;TL0=0xDF; //设定时值为20000us(20ms)LEDPort = 0xFF;if (!Key_UP)KeyV = 1;if (!Key_DOWN)KeyV = 2;if (!Key_SET)KeyV = 3;//KeySETDowning = 0; //清除if (KeyV != 0) //有键按下{Delay_10ms(); //延时防抖按下10ms再测if (!Key_UP)TempKeyV = 1;if (!Key_DOWN)TempKeyV = 2;if (!Key_SET)TempKeyV = 3;if (KeyV == TempKeyV) //两次值相等为确定接下了键{if (KeyV == 3) //按下SET键,如在SET状态就退出,否则进入 {//KeySETDowning = 1; //表明SET正在按下PowTF = 0; //电源标识开if (!KeyTF)if (SetTF){SetTF = 0; //标识位标识退出设定InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMWDS1820(); //写温度上限指令WriteDS1820(); //写温度上限到DS18B20ROMWriteDS1820(); //写温度上限到DS18B20ROMWriteDS1820(); //写温度上限到DS18B20ROMInitDS1820(); //初始化ROMDS1820(); //跳过ROMTMREDS1820(); //温度上限值COPY回E2PRAM}elseSetTF = 1;if (!KeySETDown) //没有第一次按下SET时,KeySETDown标识置1KeySETDown = 1;elseKSDNum = KSDNum + 1; //前一秒内有按过SET则开始计数}if (SetTF) //在SET状态下{if ((KeyV == 1) && (!KeyTF))TMSetV = TMSetV + 1; //上调温度if ((KeyV == 2) && (!KeyTF))TMSetV = TMSetV - 1; //下调温度if (TMSetV <= -55) //限制温度上下限TMSetV = -55;if (TMSetV >= 125)TMSetV = 125;}if ((!KeyTF) && (IntNum3 == 0)) KeyTF = 1; //当键盘处于可用时,锁定}if (KeySETDown) //在2秒内按下了SET则计中断发生次数用于长按SET时计时用 IntNum = IntNum + 1;if (IntNum > 55) //中断发生了55次时(大约1.2秒)75为1.5秒左右{IntNum = 0;KeySETDown = 0;if (KSDNum == 55) //如一直长按了SET1.2秒左右{RelayOutPort = 1; //关闭继电器输出PowTF = 1; //电源标识关LEDOneC = 0;LEDTwoC = 0;LEDThreeC = 0;LEDPort = 0xBF; //显示"--"Delay_4s(); //延时LEDOneC = 1;LEDTwoC = 1; //关显示LEDThreeC = 1;Delay_4s();IntNum = 0;IntNum2 = 0;IntNum3 = 0;}KSDNum = 0;}}KeyV = 0;TempKeyV = 0; //清空变量准备下次键扫描if (!PowTF){InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMVDS1820(); //温度转换指令Delay_510();Delay_510(); //延时等待转换完成InitDS1820(); //初始化ROMDS1820(); //跳过ROMTMRDS1820(); //读出温度指令ReadDS1820(); //读出温度值V2ToV(); //转换显示值if (TMV > TMSetV) //根据采集到的温度值控制继电器{RelayOutPort = 0;}else{RelayOutPort = 1;}if (SetTF) IntNum2 = IntNum2 + 1; //用于闪烁计数if (IntNum2 > 50 ) IntNum2 = 0;if (KeyTF) IntNum3 = IntNum3 + 1; //用于防止按键连按if (IntNum3 > 25){IntNum3 = 0;KeyTF = 0;}if ((SetTF) && (IntNum2 < 25)) goto InitEnd; //计数在后半段时显示 LEDPort = LED_One;LEDOneC = 0;Delay_510();LEDOneC = 1; //显示百位数LEDPort = LED_Two;LEDTwoC = 0;Delay_510();LEDTwoC = 1; //显示十位数LEDPort = LED_Three;LEDThreeC = 0;Delay_510();LEDThreeC = 1; //显示个位数}InitEnd:;}void V2ToV(void) //数值转换{TLV = TLV >> 4;THV = THV << 4; //读出的高低位数值移位TMV = TLV | THV; //合并高低位放入TM为实际温度值Sign = 0;if (SetTF || !Key_SET)Sign = TMSetV >> 7; //取符号elseSign = TMV >> 7;if (Sign){if (SetTF || !Key_SET){LED_One = (~(TMSetV-1)) / 100; //SET状态下显示设定值 LED_Two = ((~(TMSetV-1)) - LED_One * 100)/10;LED_Three = (~(TMSetV-1)) - LED_One * 100 - LED_Two * 10;}else{LED_One = (~(TMV-1)) / 100; //转换百位值LED_Two = ((~(TMV-1)) - LED_One * 100)/10;LED_Three = (~(TMV-1)) - LED_One * 100 - LED_Two * 10;}}else{if (SetTF || !Key_SET){LED_One = (TMSetV) / 100; //SET状态下显示设定值LED_Two = (TMSetV - LED_One * 100)/10;LED_Three = TMSetV - LED_One * 100 - LED_Two * 10; }else{LED_One = (TMV) / 100; //转换百位值LED_Two = (TMV - LED_One * 100)/10;LED_Three = TMV - LED_One * 100 - LED_Two * 10;}}//转LED字段if (LED_One) //超过百时十位的处理LED_Two = LEDDis[LED_Two];else{if (LED_Two == 0)LED_Two = LEDDis[10];elseLED_Two = LEDDis[LED_Two];}if (Sign)LED_One = LEDDis[11];else{if (LED_One == 0)LED_One = LEDDis[10];elseLED_One = LEDDis[LED_One];}LED_Three = LEDDis[LED_Three];}void InitDS1820(void) //初始化DS1820{TMPort = 1; //拉高TMPort_nop_(); //保持一个周期TMPort = 0; //拉低TMPortDelay_510(); //延时 DS1820复位时间要500us的低电平TMPort = 1; //拉高TMPort_nop_(); //保持_nop_();_nop_();Delay_110(); //延时110us 等待DS1820回应if (!TMPort) //回应信号为低电平DS1820ON = 1;elseDS1820ON = 0;Delay_110(); //延时Delay_110();TMPort = 1; //拉高TMPort}void ROMDS1820(void) //跳过ROM匹配{#pragma asmMOV A,#0CCHMOV R2,#8CLR CWR1:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR1SETB P3_7#pragma endasm}void TMVDS1820(void) //温度转换指令{#pragma asmMOV A,#44HMOV R2,#8CLR CWR2:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR2SETB P3_7#pragma endasm}void TMRDS1820(void) //读出温度指令{#pragma asmMOV A,#0BEHMOV R2,#8CLR CWR3:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR3SETB P3_7#pragma endasm}void TMWDS1820(void) //写入温度限制指令{#pragma asmMOV A,#04EHMOV R2,#8CLR CWR13:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR13SETB P3_7#pragma endasm}void TMREDS1820(void) //COPY RAM to E2PRAM {#pragma asmMOV A,#48HMOV R2,#8CLR CWR33:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR33SETB P3_7#pragma endasm}void TMERDS1820(void) //COPY E2PRAM to RAM {#pragma asmMOV A,#0B8HMOV R2,#8CLR CWR43:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR43SETB P3_7#pragma endasm}void WriteDS1820(void) //写入温度限制值{#pragma asmMOV A,26H //发出4EH写ROM指令后连发两个字节分别为上下限MOV R2,#8CLR CWR23:CLR P3_7MOV R3,#6DJNZ R3,$RRC AMOV P3_7,CMOV R3,#23DJNZ R3,$SETB P3_7NOPDJNZ R2,WR23SETB P3_7#pragma endasm}void ReadDS1820(void) //读出温度值{#pragma asmMOV R4,#3 ; 将温度高位和低位,高温限制位从DS18B20中读出MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV) RE00:MOV R2,#8RE01:CLR CSETB P3_7NOPNOPCLR P3_7NOPNOPNOPSETB P3_7MOV R3,#09RE10:DJNZ R3,RE10MOV C,P3_7MOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00#pragma endasm}void Delay_510(void) //延时510微秒{#pragma asmMOV R0,#7DHMOV R1,#02HTSR1:DJNZ R0,TSR1MOV R0,#7DHDJNZ R1,TSR1#pragma endasm}void Delay_110(void) //延时110微秒{#pragma asmMOV R0,#19HMOV R1,#02HTSR2:DJNZ R0,TSR2MOV R0,#19HDJNZ R1,TSR2#pragma endasm}void Delay_10ms(void) //延时10ms {#pragma asmMOV R0,#19HMOV R1,#0C8HTSR3:DJNZ R0,TSR3MOV R0,#19HDJNZ R1,TSR3#pragma endasm}void Delay_4s(void) //延时4s {#pragma asmMOV R2,#28HTSR5:MOV R0,#0FAHMOV R1,#0C8HTSR4:DJNZ R0,TSR4MOV R0,#0FAHDJNZ R1,TSR4DJNZ R2,TSR5#pragma endasm}。

相关文档
最新文档