摘要: 本文解释了如何使用低成本的8位微控制器(µC)和MPASM自由汇编器实现12位数字温度计。
本应用说明解释了如何使用8位微控制器(µC)和MPASM自由汇编器来实现12位数字温度计。这种设计是理想的过程控制工厂,医院和食品储存区域。
本应用说明解释了如何使用低成本的8位微控制器(µC)和MPASM自由汇编器实现12位数字温度计。温度计显示温度范围为0°C至70°C,精度为±1°C (图1). 典型的应用包括过程控制工厂、医院和食品储存区域。
图1所示。使用汇编语言例程和自由汇编程序,该电路允许8位µC实现12位数字温度计。
U1是一种低成本的8位闪存,只有35条指令。与更昂贵的,乘法友好的16位微控制器不同,它没有乘法,除法,甚至16位数学指令。结果是一个更具挑战性的温度计的实现!µC (U1)从温度传感器(U3)接收串行数据字(Kcode)。使用以下公式,它将Kcode转换为以摄氏度为单位的温度的二进制表示:
K = Kcode x 0.125,其中K =以开尔文为单位的温度。
°C = K - 273,其中°C =摄氏度。
表1显示了转换过程中五个步骤中每个步骤之后出现的数据,使用十进制等效数2384作为Kcode的示例。第一步从U3读取Kcode值的两半(高字节和低字节),并将该数据存储在单独的8位文件寄存器中。第二步通过将两个8位文件寄存器中的位向右旋转两个位置来对齐Kcode数据,每次检查进位标志以正确地将高字节的LSB移动到低字节的MSB。第三步是将Kcode乘以0.125。乘以0.125有点复杂,但除以8的等效运算要简单得多。因为8是2的三次幂,除以8可以(在我们有限的指令集上)通过连续三次右移来完成。
要转换为摄氏度,第四步从开尔文温度k中减去273。然而,8位算术只支持255的整数。由于273超过8位边界,因此使用16位减法的代码例程来生成以摄氏度为单位的温度的二进制表示。
为了充分利用U2内部的BCD寄存器映射,最后(第五步)将温度的二进制表示(以摄氏度为单位)转换为BCD数据格式。一个用于二进制到bcd转换的16位例程允许使用LED显示驱动器U2显示温度。
µC系统的汇编语言程序可以从Maxim网站上下载。
表1、五个步骤允许8位µC支持12位温度数据并显示它。
µC的8位文件寄存器#1(高字节) | µC的8位文件寄存器#2(低字节) | ||||||||||||||
步骤1:Kcode值串行地从U3中读出。例如,Kcode = 2,384小数点下面。 | |||||||||||||||
X | X | 最高有效位 D12 | 这里 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | LSB D1 | 0 | 0 |
X | X | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
步骤2:Kcode是字节对齐的。Kcode仍然等于下面的小数2384。 | |||||||||||||||
0 | 0 | 0 | 0 | 最高有效位 D12 | 这里 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | LSB D1 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
第三步:将数据右移三位相当于乘以0.125得到开尔文温度。例如下面的K = 298。 | |||||||||||||||
0 | 0 | 0 | 0 | 最高有效位 D12 | 这里 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | LSB D1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
步骤4:必须使用16位减法代码例程从K中减去273,因为273超过8位。例如,°C = 25以下。 | |||||||||||||||
请参阅代码清单了解16位减法代码例程。 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | LSB D1 | |||||||
0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | ||||||||
步骤5:必须使用16位二进制到bcd转换例程,因为这是LED显示驱动程序使用的格式。例如,25度以下。请参阅代码清单了解16位二进制到BCD的转换代码例程。 | |||||||||||||||
了0 | 领导1 | 领导2 | 领导3 | ||||||||||||
目前空白 | D8 | D4 | D2 | D1 | D8 | D4 | D2 | D1 | 永久性“C”表示“°C” | ||||||
可以是负号 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308