2011基于單片机设计带温度检测的时钟.docVIP

  • 8
  • 0
  • 约3.29千字
  • 约 5页
  • 2016-11-26 发布于重庆
  • 举报

2011基于單片机设计带温度检测的时钟.doc

2011基于單片机设计带温度检测的时钟

基于单片机设计带温度检测的时钟 李秋霞 徐辉 高建阳 (电信学院08级电子2班) 摘要: 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,尤其是各种智能化的仪器、仪表在农、工业的广泛应用给社会带来了极大的便利。本文就是一个实现温度时间双显示的例子。它完成了从温度的采集、显示以及控制和时间显示等一系列任务。广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和时间的显示。 关键词:温度检测,时钟,STC89C52, DS18B20 方案论证 按照系统设计功能的要求,本温度时钟的设计采用单片机软件系统实现,用单片机的自动控制能力配合按键控制,来控制确定系统时钟、温度的检测和显示。 确定设计系统由单片机主控模块、测温模块、整点报时模块、显示模块、键盘接口模块五个模块组成。电路系统图如图1所示。 STC89C STC89C52 主 控 制 器 显示模块 显示模块 DS18B20 报时模块 报时模块 键盘部分 键盘部分 图 1 (1)时钟方案选择 时钟功能的实现有两种方案: 一是用软件实现,直接用单片机的定时器编程以实现时钟;二是专门的时钟芯片实现时钟的时计,再把时间数据送入单片机,由单片机控制显示。比较两种方法,方案一相对方便一些,所以选择方案一。 (2)显示方案选择 方案一:液晶显示,适合于显示数据比较多的设计;方案二:用数码管,显示的信息较少,适合显示量小的。所以选择方案二。 (3)测温元件方案选择 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,再将随着温度变化的电压或电流采集过来,进行A/D转换后,用单片机进行数据的处理,就可以将所测温度显示出来。这种设计需要用到A/D转换电路,测温电路较复杂;方案二:温度传感器DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它能直接读出被测温度。通过比较我们选择方案二。 系统硬件电路的设计 电路设计原理图如图2所示,采用STC89C52单片机,最小化应用程序; P0口输出段码数据,P1.0,P1.1,P1.2口接三个按钮开关,用于调节时间,具有改变当前时间数值功能,P3.7口接温度传感器,用于温度的测量。温度传感器使用DS18B20,用4位共阳LED数码管以动态扫描法实现温度显示。采用12MHz晶振,有利于提高通信波特率的准确性。 图 2 1、主控制器 单片机STC89C52具有低电压供电和小体积等特点,其端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用。 2、显示电路 显示电路采用8位共阳LED数码管,从P0口输出段码,列扫描用P2.2~P2.7口来实现,列驱动用9018三极管。 3、流程图 开 始主程序框图如图 开 始 显示缓冲区初始化 显示缓冲区初始化 必要参数初始化 必要参数初始化 T0初始化TH0,TL0装入初值 T0初始化TH0,TL0装入初值 T0工作并开中断 T0工作并开中断 等待中断 等待中断 图3 计时工作流程 温度数据的计算处理方法 从DS18B20读取的二进制数值必须先转换成十进制数值,才能用于字符的 显示。因为DS18B20的转换精度为9~12为可选,为了提高精度采用12位。在采用12位精度时,温度寄存器里的值是以0.0625为步进,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察表1可以发现一个十进制值和二进制值之间有很明显的关系,就是把二进制高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。因为小数部分是半字节,所以二进制值的范围是0~F,转换成十进制小数值就是0.0625的倍数(0~15倍)。这样需要4位数码管来显示小数部分,实际应用不必有那么高的精度,采用1位数码管来显示小数,可以精确到0.1。表2就是小数部分二进制和十进制的近似对应关系表。 表 2 DS18B20温度与测得值对应表 温度∕ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H +0.5 0000 0000 0000 1000 0008H 0 0000 0000

文档评论(0)

1亿VIP精品文档

相关文档