- 8
- 0
- 约3.29千字
- 约 5页
- 2016-11-26 发布于重庆
- 举报
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)