计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

DS18B20数字温度计的设计(一)信息工程毕业论(4)

2013-05-13 01:07
导读:器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0626,就是实际的十进制温度值。 通过观察表4-2可以发现,一个十进制值与二进制
器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0626,就是实际的十进制温度值。
 通过观察表4-2可以发现,一个十进制值与二进制值间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节二进制值化为十进制值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。因为小数部分是半字节,所以二进制值范围是0-F,转换成十进制小数值就是0,0625的倍数(0-15倍)。这样需要4位的数码管来显示小数部分。实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃.
 表3就是二进制与十进制的近似对应关系表。
小数部分二进制值 0 1 2 3 4 5 6 7 8 9 A B C D E F 
十进制 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9 
 表3 小数部分二进制和十进制的近似对应关系表
 
 
 
 
 
 
 
 
 第 四 章 调试及性能分析
 系统的调试以程序调试为主。
硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。
 软件调试可以先编写显示程序并进行硬件的正确性检测,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等的编程和调试。
 由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。本程序采用单片机汇编编写,用Waver 3.2编译器编程调试。
(科教范文网http://fw.nseac.com)

 软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能变化,就基本完成。
 性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在+0.5℃以内。
 另外,-55~~+125 ℃的测温范围使得该温度计完全适合一般的应用场合,其低电压供电性能可做成用电池供电的手持电子温度计。
 DS18B20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意以下问题:
DS18B20工作时电流高达1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。
连接DS18B20的总线电缆是有长度限制的,因此在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。
在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号。一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。

 


 第 五 章 程序清单
 DS18B20采用4位LED共阳显示器显示测温值,显示精度为0.1 ℃,测温范围为-55~~+125 ℃,用AT89C2051单片机,12MHz晶振
 
 TIMEL  EQU  0E0H
 TIMEN  EQU  0B1H
 TEMPHEAD  EQU  36H
 BITST  DATA  20H
 TIME1SOK  BIT  BITST.1
 TEMPONEOK  BIT  BITST.2
 TEMPL  DATA  26H
 TEMPH  DATA  27H
 TEMPHC  DATA  28H
 TEMPLC  DATA  29H
 TEMPDIN  DIT  P3.7
 
 ORG  0000H
 LJMP  START 内容来自www.nseac.com
 ORG  00BH
 LJMP  T0IT
 ORG 100H
 START: MOV SP , #60H
CLSMEM: MOV  R0 , #20H
  MOV  R1 , #60H
CLSMEM1: MOV  @R0,#00H
  INC  R0
      DJNZ  R1 , CLSMEM1
      MOV  TMOD ,#00100001B
      MOV  TH0, #TIMEL
      MOV  TL0, #TIMEH
      SJMP  INIT
ERROR:  NOP
      LJMP  START
      NOP
 INIT:        NOP
      SETB  ET0
      SETB  TR0
      SETB  EA
      MOV  PSW, #00H
      CLR  TEMPONEOK
      LJMP  MAIN
T0IT:        PUSH  PSW
      MOV  PSW,#10H
      MOV  TH0,#TIM

上一篇:分枝结构的程序设计 (一)信息工程毕业论文 下一篇:没有了