发布网友 发布时间:2022-04-24 08:52
共2个回答
热心网友 时间:2022-06-18 05:29
单片机的多点温度控制系统
DSl8820温度传感器的内部存储器包括9 B高速暂存RAM和1 B非易失性的可电擦除的E2PROM,后者存放高温度和低温度触发器TH,TL和结构寄存器,该字节第7位(TM)为0,低5位一直都是1,第6,5位(R1,R0)用来设置分辨率,如表1所示。
根据DSl8820的通信协议,主机控制DSl8820完成温度转换必须经过3个步骤:每一次读写之前都要对其进行复位,复位成功后发送1条ROM指令,最后发送RAM指令,这样才能对DSl8820进行预定的操作。复位要求主CPU将数据线下拉500μs,然后释放,DSl8820收到信号后等待16~60μs左右,后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。由于DSl8820采用的是单线进行控制与读取数据,因此对操作的时序要求非常严格,否则由于时序不匹配,将无法完成对器件的正确操作。
2.3 控制执行那分
(1)壁挂炉燃烧系统控制。控制电路采用了脉冲继电器器件作为整个系统的总控部分,当所有居室温度均达到设定值时,停止壁挂炉的工作。该继电器的特点是:当线圈收到一个脉冲信号后,线圈通电,电磁铁吸合,带动触头闭合接通需要控制的电路,当下一个信号到来后,电磁铁吸合,触头断开,切断被控制的电源,因此其具有自锁和信号遥控功能。由于磁铁的作用,控制脉冲消失后滑片位置不发生变化,保持稳定状态,所以该器件具有功耗小、具有记忆功能。
(2)居室温度控制。各居室温度控制在燃烧控制系统工作前提下,根据各居室温度测量返回值,采用上海欧凯电磁阀制造有限公司生产的OK6515自保持脉冲电磁阀控制各回路的通断。脉冲电磁阀采用脉冲和永磁技术,只需通过控制器切换脉冲的电极触点来改变电磁阀的开关状态,当控制器发出电脉冲时,驱动阀芯克服永磁力产生上下移,使阀瓣到位后在永磁作用下处于自保持状态。
2.4 图形液晶显示模块
为了能够提供形象直观的用户显示界面,系统采用图形液晶显示模块LCDl2864,其具有8位标准数据总线、6条控制线及电源线,可与CPU直接接口,显示各种字符及图形。考虑到系统中汉字的使用量少,因此选用不带汉字库的LCD。对于使用的汉字分别提取其字模并以二进制形式保存于内部FLASHROM中。
3 系统软件设计
系统软件设计主要依据系统程序流程以及DSl8820的时序要求进行代码编写。为了降低开发难度,提高开发效率,系统开发中引入了μC/OS一Ⅱ嵌入式操作系统并移植了LCD显示驱动。另一方面,为了确保对DSl8820操作时序的精确性,对DSl8820进行初始化和读写代码仍采用汇编语言。
3.1 系统数据结构
系统所需数据结构包括各测温元件的序列号表,汉字字模存储、系统运行时间表存储、各温控点的设定值及测量值、系统时间的存放及一些临时数据存储。
为了区别多个温度传感器,在系统初始化时读入传感器中的64位序列号,并将其存入程序存储空间,以便程序运行期间进行比对,共需64 B。汉字字模采用16×16字库进行提取,其中每个汉字需32 B,约15个字,为了方便程序功能的升级改进,在程序存储空间中按20个字进行空间分配,需要存储空间640 B。系统运行时间表的设计以小时为设置单位,需要保存24个值;为了减少时间比较过程中的数据计算量以及方便编程,对每个值采用一个字节存储,这里共需24 B存储空间,这里仍然使用程序存储空间进行存储,以便在系统掉电时设定值不会丢失。
3.2 系统程序设计
系统程序设计主要使用KeilC5l进行编写,但由于对DSl8820器件的读写时序要求比较严格,故采用汇编代码,其中温度读取子程序主要代码如下:
热心网友 时间:2022-06-18 05:30
那就用热敏电阻,然后用ADC转换。在网上有很多类似程序。