如何制作数字温度计

[09-12 12:19:30]   来源:http://www.88dzw.com  电路基础   阅读:8530

文章摘要:运行这个程序,你会发现这一温度计是以0.5度的精度,以摄氏度为单位显示温度。 DS1620芯片测量温度的精度为0.5摄氏度。这个芯片用9位2-补码二进制数表示华氏-110至250度(摄氏-55至125度)范围内的温度。把接收到的数值除以2就是实际温度的数值。2-补码是一种表示负值的便捷方法。下面列出了4位2-补码四位二进制数据所代表的数值: 0111 : 7 0110 : 6 0101 : 5 0100 : 4 0011 : 3 0010 : 2 0001 : 1 0000 : 0 1111 : -1 1110 : -2 1101 : -3 1100 : -4 1011 : -5 1010

如何制作数字温度计,标签:电子电路基础,模拟电路基础,http://www.88dzw.com

运行这个程序,你会发现这一温度计是以0.5度的精度,以摄氏度为单位显示温度。

DS1620芯片测量温度的精度为0.5摄氏度。这个芯片用9位2-补码二进制数表示华氏-110至250度(摄氏-55至125度)范围内的温度。把接收到的数值除以2就是实际温度的数值。2-补码是一种表示负值的便捷方法。下面列出了4位2-补码四位二进制数据所代表的数值:

     
    0111 : 7
    0110 : 6
    0101 : 5
    0100 : 4
    0011 : 3
    0010 : 2
    0001 : 1
    0000 : 0
    1111 : -1
    1110 : -2
    1101 : -3
    1100 : -4
    1011 : -5
    1010 : -6
    1001 : -7
    1000 : -8

通常用四位二进制数表示0到15的数值,而四位2-补码二进制数表示-8到7。最左边一位决定了数值的正负。如果数值为负,我们可以通过把其他各位取反加1的方法,得到其绝对值。

以下是上述数字温度计程序执行的操作:

  1. 使用symbol关键字设置若干常量,使程序更易于阅读(也更容易把芯片与其他不同的输入输出引脚相连)。
  2. 设定DS1620芯片的时钟和复位引脚信号为预期值。
  3. 通过向DS1620的电可擦除只读存储器写入命令字节,使其工作在“温度计模式”。你只需要进行一次这样的操作,严格地说你在运行过一次程序之后,就可以把这段代码删掉了(出于节省程序存储空间考虑),因为这种工作模式已经保存在电可擦除只读存储器中。
  4. 程序发送指令$EE(“$”表示十六进制数,$EE转换成十进制为238),启动温度计的模数转换。

之后,程序进入循环。 每秒向DS1620芯片发出指令获取目前温度信号,读取 DS1620返回的9位的数据,将其保存在变量w0中。Stamp通过切换时钟信号一次发送或接收一位数据信号,与DS1620通信。变量w0(16位)与b0/b1(8位)与 bit0/bit1/.../bit15(1位)占有相同的存储空间,当我们从bit8开始插入从DS1620 获取的位数据,并将w0变量除以2时,实际上我们就是在将数据右移,以便把从 DS1620获取的9位温度信号保存在变量w0中。 温度保存在w0中之后,display子例程判断读数的正负,然后以摄氏度为单位,在液晶显示屏上正确显示读数。 摄氏度到华氏度的单位换算如下:

    dF=dC*9/5+32

这样,我们就完成了一个非常昂贵的温度计的制作。 它有些什么用途呢? 这有一个好主意。 例如你在一家制药公司工作,需要在全国范围内运输药品,药品运输全程温度要保持恒定,否则药品会失效。 你可以用 Stamp 制作一台温度数据记录仪。 Jameco公司(部件号143811)和Parallax公司(部件号27960)都出售称为“RAM 封装模块”的元件。 它包含具备串行接口的低功耗8千字节(也可以选择32千字节)RAM芯片。 可以给你的Stamp配上该元件(或相似产品),编写代码,每分钟将读取的温度数值保存在随机存取存储器中。 然后,你可以将 Stamp随药品一起打包,在运输过程结束时取回Stamp。 RAM模块会包含整个运输过程的温度历史记录,通过记录你可以知道药品是否解冻过。

掌握微控制器的工作原理之后,你可以借助Stamp制作出大量类似这样的小巧实用的设备。

上一页  [1] [2] 


Tag:电路基础电子电路基础,模拟电路基础电路基础

《如何制作数字温度计》相关文章