基于单片机的数字温度计的设计及显示

2013-12-10 14:07临沂职业学院朱海涛
电子世界 2013年6期
关键词:数码管寄存器按键

临沂职业学院 朱海涛

一、温度显示系统总设计原理

系统设计总框架如图1。

1.控制模块:通过应用单片机,对系统进行初始化,主要完成对数码管显示、按键的处理等功能,起到总体控制和协调各模块工作的作用。

2.盘输入模块:主要完成与时间相关的设置和温度、时间、日期的切换。

3.码管显示模块:主要对单片机送来的时间、日期、温度信息进行显示。

4.度采集模块:采用DS18B20温度传感器,向单片机提供实时温度信息。

5.子钟模块:采用时钟芯片DS1302,该芯片可以进行时、分、秒的计数,DS1302通过串行方式与单片机进行数据传送,向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息。

二、各模块实现

1.主控制模块

在文章设计的温度显示系统设计中,控制核心是STC89C52单片机,该单片机51系列增强型8位单片机,它有32个I/O口,片内含4K FLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1 μS。使用该单片机完全可以完成设计任务,其最小系统主要包括:位电路、震荡电路以及存储器选择模(EA脚的高低电平选择),电路如图2。

2.键盘输入模块

键盘输入模块(见图3)上“0”、“4”、“8”、“C”可以配置成独立按键,通过跳帽J11切换,在独立按键中,应该把跳帽接到左端。

功能介绍:本文中,P3.0-P3.3四个独立按键分别时间调整按键、功能加减、日历切换按键、温度切换按键。当P3.0(set)按下系统进入时调整状态:分单元闪烁,再按下P3.1(up)时,对显示的数码管的时段进行加一功能,达到对时调整,再次按下P3.0(set)时进入分钟调整状态,分单元闪烁,通过按键P3.1(up)加一调整分的显示,秒不进行调整,时间调整结束后,再次按下P3.0(set)进入正常时钟显示;当按下P3.2(switchriqi)时,切换到日历的显示;当按下P3.3(setwendu)时,切换到温度的显示。

3.数码管显示模块

显示原理:因为所有位数码管的段选线被并联在一起,位选线控制哪一位数码管有效的有效,所以就需要为每一位数码管配一个锁存器,进而简化了硬件电路。点亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉残留作用,使人感觉到各位数码管似乎同时在显示。由于动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的限流电阻。数码显示模块电路见图4。

4.温度采集部分

文章采用一线制数字温度传感器DS18B20。传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接,其接口电路下如图5所示。

工作原理:温度以16bit带符号位扩展的二进制补码形式读出,下表给出了温度值和输出数据的关系。程序中需将16进制温度值转化为十进制,再转化为数码管显示需要的段码表数据格式。

?

5.电子钟模块

图1 系统设计总框架

图2 主控制模块电路

图3 键盘输入模块

图4 数码显示模块

采用时钟芯片DS1302,该芯片可以进行时、分、秒的计数,DS1302通过串行方式与单片机进行数据传送,向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息。DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。读写时序说明:

DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如图6。

图5 接口电路

图6 DS1302的控制字

图7

图8 软件设计总流程图

图9 时间显示

控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。

位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;

图10 温度显示

图11 日期显示

位5至位1(A4~A0):指示操作单元的地址;

位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。

寄存器读地址写地址秒81H80H分83H82H时85H84H日87H86H月89H88H年8DH8CH控制8FH8EH

重要位:

秒寄存器时钟停止位CH=0,振荡器工作允许;CH=1,振荡器停止。

控制寄存器写保护位WP=0,允许写入;WP=1,禁止写入外部引脚分配(如图7所示)。

三、系统软件设计

软件设计总流程图(如图8所示)。

四、结果显示

(1)时间显示如图9。

(2)按下“0”键时分设置,时分闪烁等待设置。

(3)按下“4”键时或分加一,按“0”确认。

(4)按下“A”键显示温度,如图10。

(5)按下“8”键显示日期,如图11。

[1]Liu peng process.Based on AT89S51 digital temperature measurement and display system design[D].2009:33.

[2]王一然.基于单片机的定时温控系统的设计与研究[J].科学与财富,2010(8):152.

[3]王一然.单片机开发语言特点研究[J].科技致富向导,2010(9):98.

[4]许瑾娜.基于89C51的干式变压器温控系统设计空[J].Modern Science,2012,12.

[5]李广弟,朱月秀,冷祖祁.单片机基础[M].北京航空航天大学出版社,2010.

猜你喜欢
数码管寄存器按键
STM32和51单片机寄存器映射原理异同分析
基于有限状态机的按键检测程序设计
微课教学设计之“数码管动态显示”
Lite寄存器模型的设计与实现
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
按键消抖在单片机和FPGA实验教学中的应用
一种多方向导光按键结构设计
B超机按键的替换与维护