用MAXQ3212微控制设计数字温度监控器
时间:03-19
来源:互联网
点击:
Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 9 | Bit 8 |
Sign | Sign | Sign | Sign | Sign | 26 | 25 | 24 |
温度低有效位
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 |
这个温度传感器的分辨率可以由用户配置为9、10、11或12位,对应的温度分辨率为0.5°C、0.25°C、0.125°C、0.0625°C。DS18B20上电时的默认分辨率是12位,本应用中被初始化为10位,此时,第1位和第0位(2-3,2-4)没有意义,可以分辨最小温度值是0.25°C。
在这个应用里,以华氏温度为单位显示温度。利用下列方程进行转换:
华氏温度 = (摄氏温度 × 1.8) + 32(式1)
因为温度以小数形式表示,而且转换时需要乘以1.8,所以用二进制数进行计算。进行实数乘法运算时,需要在不浪费处理器资源的情况下尽量减小计算误差。DS18B20初始化时,温度值的分辨率设置成10位,所以第1位和第0位没有意义。在温度小数部分的其余2位(第3位和第2位)提供 0.25°C (0.45°F)的分辨率。因为MAXQ3212累加器的字节宽度为8位,可以方便地用一个字节作为温度换算的小数部分,乘法器可以包含6位小数信息。从下面可以看出,可以用6位小数近似表示到0.8至0.8的99.61%。
2-1 = 0.500000 => 0.8的62.50%
2-2 = 0.250000 + 0.50000 = 0.750000 => 0.8的93.7%
2-5 = 0.031250 + 0.0750000 = 0.781250 => 0.8的97.65%
2-6 = 0.015625 + 0.781250 = 0.796875 => 0.8的99.61%
用这个精度的数值转换华氏度数据,足以满足这个温度传感器的精度要求。
作为一个例子,我们可以计算测量温度+24.2510,(018.116)摄氏度,可表示为:
温度高有效位
Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 9 | Bit 8 |
0 (sign) | 0 (sign) | 0 (sign) | 0 (sign) | 0 (sign) | 0 | 0 | 1 |
温度低有效位
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
1 | 0 | 0 | 0 | 0 | 1 | x | x |
换一种方式表示,上面的数值可以表示为00000001 1000.01xx2,这个数乘以1.810。把1.810转换成二进制数,用6位表示小数,结果转换成常数0001.1100112。这种转换方法如下:
0000s0 011000.012 = 006116
× 00000000 01.1100112 = 007316
-----------------------
00101011 .100100112 = 2B9316
+ 00100000 .000000002 = 32.010
-----------------------
01001011 .100100112 = 4B9316 = 75.57421910
可以看出,75.574219是精确的计算结果。如果把这个结果去掉2位小数,得到75.5°F,可以达到用计算器进行浮点运算时的0.15°F精度。如此精确的结果足以满足这种应用的要求。
双FET线圈驱动
本应用使用两个场效应管(FET)与处理器的输出端口连接,控制继电器开关。MAXQ3212端口的复位默认状态是弱上拉,高电平。因此,上电时其端口引脚为高电平,直到应用软件改变其状态。如果利用一路n沟道FET (BS-170)控制继电器线圈的供电,在处理器上电时,这个端口的默认状态就会触发继电器动作。直到应用软件将其置0为止。这种状态是不期望出现的,因为继电器被错误地触发,导致了一次不需要的动作。为了解决这一问题,电路采用了2个串联FET,共同控制继电器动作,处理器上电后的默认状态不会触发继电器。例程
该应用的配套软件可从: 下载(ZIP),其中包含源代码文件:Thermostat.asm、1-Wire.asm、BCD.asm、ThermDisp.asm和头文件maxq3120.inc,其中头文件包含MAXQ3210/MAXQ3212的寄存器定义。压缩文件还包含MAX-IDE项目文件Thermostat.prj和可装载十六进制文件Thermostat.hex。把这些压缩文件解压到一个目录下,即可在MAXQ3210评估软件上编译和运行。2007年9月12日,在an3965_sw.zip程序文件中增加了另一个文件(Temp3Gerber.zip),所增加的文件包括Gerber数据、训练数据以及实现该设计的双层印制电路板所需的器件列表。结论
MAXQ3212是一个用途广泛的高性能RISC处理器,具有小尺寸、低成本特性,提供强大的功能支持,特别适合大批量生产的应用。本应用笔记介绍了一个基于MAXQ3212 RISC微控制器的数字温度控制器。通过MAXQ3212将检测到的环境温度与用户设置的温度门限进行比较,用于继电器控制。利用DS18B20 1-Wire温度传感器检测环境温度,并将温度显示在由Maxim的8引脚LED显示驱动器ICM7218驱动的4位、7段LED显示器上。所选择的微控制器和高集成度显示驱动器,使系统的元件数量大大降低。- 以数字方式管理电源的简便方法(11-30)
- 数字电位器在DC-DC变换器中的应用(11-30)
- 数字放大器对电源带来挑战(01-09)
- 热插拨和数字电源监控常见问答(01-18)
- PMBus——数字电源开放标准协议(01-18)
- 基于PIC单片机的数字式智能铅酸电池充电器的设计 (01-02)