单片机控制LCD显示电子时钟设计方案

更新时间:2023-03-10 11:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于单片机控制LCD显示电子时钟设

摘要

本设计使用11.0592MHZ晶振与单片机AT89C52相连接,以AT89C52芯片为核心,采用1602的并行操作方式显示。通过使用该单片机,实现把时间和温度显示在1602液晶上,并且按秒实时更新。STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电。通过板子上的按键可随时调节时钟的年、月、日、星期、时、分、秒,按键设计3个有效按键,分别有功能选择键、数值增大键、数值减小键。在每次的按键按下时,蜂鸣器有“滴”的提示声。再利用DS12887设计实现断电自动保护显示数字的功能,当下次上电时会接着上次上电前的时间继续运行。本设计的+5V电源采用LM1117电压转换元件,将电源适配器转换得到的12V电压直接变成5V电压供系统使用。通过软硬件结合达到最终目的。

关键词:单片机AT89C52。1602液晶。电子时钟。DS12887芯片

1 / 32

Abstract

The design uses a 11.0592MHz crystal with AT89C52 microcontroller is connected to the AT89C52 chip as the core, and 1602 parallel operation. By using the microcontroller, the time is displayed in 1602, and updated in real time in seconds. STC89C52 microcontroller is launched by the Shenzhen-Hong Crystal Technology, Inc., low power consumption, voltage can be used to 6V voltage power supply. Through the keys on the board can always adjust the clock of the year, month, day, week, when, minutes, seconds, button design 3 effective keys, function selection key, increase the value of the key, key decreases the value. Each time the button is pressed, the buzzer tone \the display number, then the last time before the power to continue running when the next power. The design of the 5V power supply using LM1117 voltage conversion device, power adapter converted directly into 12V voltage 5V voltage for system use. Through a combination of hardware and software to achieve the ultimate objective.

Keywords:Microcontroller AT89C52。1602 LCD。Electronicclock。DS12887chip

2 / 32

目录

第1章绪论1

1.1电子时钟的研究背景1 1.2电子时钟的国内外研究现状1

第2章设计思路与方案选择3

2.1 系统的设计思路3 2.2 方案选择3

2.2.1 单片机芯片的选择3

2.2.2 显示模块及时钟芯片的选择4 2.2.3 温度系统方案选择4 2.2.4报警系统的方案比较4 2.2.5键盘控制方案选择4

第3章系统的硬件设计与实现5

3.1电路设计框图5 3.2主要硬件电路的设计5

3.2.1 单片机主控制模块的设计5 3.2.2 显示模块的设计9 3.2.3 时钟电路模块的设计12 3.2.4 温度采集模块设计17 3.2.5 按键调整系统模块设计17 3.2.6 蜂鸣器报警模块18

第4章软件设计19

3 / 32

4.1 软件设计总体说明19 4.2 程序软件的实现19

第5章总结24 参考文献25 致谢26

4 / 32

第1章 绪论

1.1电子时钟的研究背景

20世纪末,在电子技术极速发展的推动下,现代电子产品以及各种高科技产品渗透到了社会的多个领域,这有力地推动了社会信息化程度以及综合科技水平的提高,但产品更新的也越来越快。随着科技的发展和全球化竞争的日益激烈,人们对数字时钟的要求越来越高,传统的时钟已不能满足人们的需求。多功能电子钟不管在性能、样式还是用途上都发生了重大的变化,许多电子钟都已具备电子秒表、电子闹钟、温度检测等功能。

多功能电子时钟除了具有基本功能外,还可以对环境温度进行检测。在许多行业生产及日常生活中,对温度的测量及控制十分重要。目前,较为典型的温度检测控制系统是由模拟式温度传感器、A/D转换电路和各种单片机组成。由于模拟式温度传感器输出的模拟信号必须经过A/D转换环节转换为数字信号后才能与单片机等微处理器接口进行读写的操作,所以硬件电路会比较复杂,且成本较高。而以DS18B20为代表的新型单线总线数字式温度传感器改变了这一模式,它集温度测量和A/D转换于一体,这类传感器可以直接输出数字量,同时与单片机接口电路结构简单,可以广泛用于各种场合,具有较强的推广应用价值[1]。

数字电子时钟采用数字电路实现对时、分、秒数字显示,广泛用于家庭,办公室,车站等场所,由于数字集成电路的发展和石英晶体振荡器的推广使用,数字时钟的精度大大提高,数字化钟表给人们的生产生活带来了极大的方便,而且功能得到了拓展。例如按时自动打铃、定时自动报警、时间程序自动控制、自动启闭路灯、定时广播、通断动力设备、定时开关冰箱等,所有这些都以钟表数字化为基础。因此,研究数字时钟及扩大其应用,有着非常现实的意义[2]。

1.2电子时钟的国内外研究现状

数字电子时钟给人们的学习、生活、工作、娱乐带来极大的方便,但随着科学技术的不断发展,生活节奏的加快,人们对时间计量的精度要求越来越高

1 / 32

。可以说时间的准确已成为各行各业安全运行的基础,如果时间出现误差而不能及时校正,会造成一系列严重的后果和经济损失[3]。

电子时钟的设计方法有很多种,可用中小规模集成电路组成电子钟,也可以用单片机编程来实现电子钟。其中,利用单片机实现的电子时钟具有编程灵活、硬件结构简单、便于功能扩展等特点。用单片机作为数字钟的核心控制器,可以通过它的时钟信号实现计时功能,将时间数据经单片机输出,并利用显示器显示。通过键盘进行定时、校时。输出设备显示器可以采用液晶显示技术或者数码管显示技术[4]。

温度是一种基本的环境参数,传统方式是采用热电偶或热电阻进行测控,但是由于其复杂性已逐渐被代替。近年来,美国DALLAS 公司生产的以DSl8B20

为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、气象观测、科学研究、工农业生产制造以及日常生活中。DSl8B20

集A/D

转换和温度测量于一体,直接输出数字量,传输距离远,可以方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件[5]。

智能温度传感器于上世纪90年代中期问世,此类传感器是计算机技术、微电子技术和自动测试技术的结晶。智能温度传感器内部一般包含温度传感器、信号处理器、A/D转换器、存储器<或寄存器)和接口电路。有的产品还带多路选择器、随机存取存储器、只读存储器和中央控制器。智能温度传感器能实时更新并输出温度数据,适配于各种微控制器也就是通常所说的单片机,并可通过软件来实现显示功能,其智能化取决于软件和硬件的综合开发水平。目前,新型温度传感器正从模拟式向数字式、集成化向智能化及网络化的方向发展[6]。21世纪后,智能温度传感器毫无疑问正朝着高精度、多功能、总线标准化、高可靠性及高安全性等高科技的方向迅速发展,开发虚拟传感器和网络传感器、研制更先进的单片测温系统已是刻不容缓[7]。

在日常生活和自动控制系统中,我们时常会有对时间和温度同时进行实时监控的需求。这就给多功能的时钟提供了市场,本文给出了一种基于单片机实现带温度检测的电子时钟的设计方法和实现过程。

2 / 32

第2章 设计思路与方案选择

2.1 系统的设计思路

本次设计完成电子时钟精确时间的显示、环境温度测量以及定时闹钟的功能。由于DS12887时钟芯片内置一个锂电池,所以即使出现断电情况依然可以运行十年以上不丢失数据,且重新上电后不用校正时钟。

硬件电路包括单片机最小系统电路、DS12887实时时钟芯片电路模块、LCD1602液晶显示模块、DS18B20温度传感器模块、按键模块、蜂鸣器报警电路模块;软件部分主要通过c程序的编程实现对时钟芯片进行时间数据的读写,然后通过液晶显示时间、按键操作实现功能转换及屏幕切换[8]。

2.2方案选择

2.2.1单片机芯片的选择

STC89C52单片机的主要特性如下: ?与MCS-51产品指令系统完全兼容 ?全静态工作模式:0~33MHz

?4K字节的在线编程Flash存储器,1000次擦写周期 ?4.0~5.5V的工作电压范围 ?三级程序存储器锁 ?128×8字节内部RAM ?32个可编程I/O口线 ?2个16位定时/计数器 ?6个中断源

?低功耗空闲和掉电模式 ?全双工串行UART通道 ?中断可从空闲模式唤醒系统 ?看门狗

3 / 32

?具有掉电状态下的中断恢复功能 ?掉电标识和快速编程特性

?灵活的在系统编程

采用液晶LCD显示,以电流刺激液晶分子产生点,显示字符的行数和液晶的点阵行。液晶功耗低、体积小、显示简单。

采用DS12887实现时钟记时,把时间数据送入单片机,由单片机控制显示。

DS12887芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,精度非常高,工作电压范围2.5V~5.5V,最小时耗电小于300mA[10]。 2.2.3温度系统方案选择

采用DS18B20直接进行测温。DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它可以直接读出被测温度,并可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

温度实现只能通过外部的温度传感器来实现。经上网查阅及市场考察,DS18b20体积小,电路接法简单。内部含寄存器为设计实现上下限报警功能提供保障。精度为0.5℃,符合我们的设计要求。 2.2.4 报警系统的方案比较

采用蜂鸣器实现闹钟铃声及温度超限报警。蜂鸣器具有成本低,电路结构简单,体积小的特点。基于设计所需功能,蜂鸣器是最佳选择。 2.2.5 键盘控制方案选择

购买单个复位开关做成键盘。因其价格便宜且可以实现所需功能。 对此次作品的方案选定:采用STC89C52作为主控制系统;DS12887提供时钟;数字式温度传感器;液晶1602作为显示。

4 / 32

第3章 系统的硬件设计与实现

3.1电路设计框图

初步确定设计系统由单片机主控模块、时钟模块、测温模块、报警模块、显示模块、键盘接口模块共6个模块组成,电路系统框图如图3-1所示。

蜂鸣报警模块 液晶1602显示模块

DS12887时钟模块 STC89C52 主 控 制模 块 键盘模块 温度采集模块

图3-1电路设计框图

3.2主要硬件电路的设计

3.2.1单片机主控制模块的设计

本系统采用的是深圳宏晶科技公司生产的STC89C52单片机,首先我们来熟悉一下STC89C52单片机的外部引脚和内部结构。如图3-2 <1)单片机的引脚功能

STC89C52单片机有40个引脚。 ? Vcc:电源电压+5V ? GND:接地

5 / 32

?

P0口:P0口是一组8位漏极开路型双向I/O口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换低8位地址和数据总线服用,在访问期间激活内部上拉电阻。

?

P1口、P2口:带内部上拉电阻的8位双向I/O,P1的输出缓冲级可以驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时为输入口。因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器<例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

6 / 32

图3-2 STC89C52管脚图

?

P3口:带内部上拉电阻的8位双向I/O,P3的输出缓冲级也可以驱动4个TTL逻辑门电路。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,还有第二功能,见表3-1所示: 表3-1 P3口的第二功能图

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD<串行输入口) TXD<串行输出口) INT0<外中断0) INT1<外中断1)T0<定时/计时器0外部输入)T1<定时/计时器1外部输入)WR<外部数据存储器写选通)RD<外部数据存储器读选通) ?

RST:复位输入端口。当振荡器工作时,RST引脚出现两个以上高电平机器周期将使单片机复位。设置SFR

AUXR的DISRT0可打开或关闭该功能。DISRT0位缺省为打开状态。

?

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,所以它可用于定时,每当访问外部数据存储器时将跳过一个ALE脉冲。

?

EA/VPP:允许外部访问端口。欲使CPU仅访问外部程序存储器<地址为0000H—

FFFFH),EA端必须保持低电平。需要注意的是:如果加密位

Flash存储器编程时,该引脚加上+12V的变成电压Vpp. ?

7 / 32

PSEN:程序存储允许

? XTAL1:振荡器反相放大器及内部时钟发生器的输入端口。 ? XTAL2:振荡器反相放大器的输出端口。 <2)STC89C52单片机与MCS-51完全兼容 ?

看门狗

和0E1H以激活WDT。WDT激活后,晶振工作,WDT在每个机器周期都会增加。除了复位<硬件复位或WDT溢出复位),无法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。

?

可编程串口

一样。STC89C52系列单片机的串行通信口可以工作于同步和异步通信方式,当工作于异步方式时,可以同时进行数据的发送和接收。串行口内的接收器采用的是双缓冲结构,可以在接收到的第一个字节被读走之前开始接收第二个字节。串行口的发送和接收操作都是在特殊功能寄存器中的数据缓冲寄存器SBUF中进行的,如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,这2个寄存器的功能决不能混淆[11]。

?

振荡电路:STC89C52系列单片机的内部振荡器,由一个单极反相器组成。XTAL2为反相器的输出,XTAL1反相器的输入。在组成一个单片机应用系统时,常采用的方式是由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。这种方式结构紧凑,成本低廉,可靠性高。在电路中,如果使用高质的晶振, C1、C2通常都选择30pF。

?

RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256

8 / 32

字节,但内部RAM的寻址方式实际上可提供384字节。低于7fh的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分于专用寄存器 ,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。访问哪一个区是通过不同的寻址方式加以区分的。

?

定时/计数器:STC89C52单片机内含有2个16位的定时器/计数器。当用于定时器方式时,它的输入来自内部时钟发生电路,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器:控制寄存器、方式寄存器和定时器/计数器。控制寄存器是8位的,用于控制定时器的工作状态,方式寄存器也是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分[12]。

?

SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80H~FFH中。未被占用的单元,内容是不确定的。所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、堆栈指针SP、程序状态字寄存器PSW、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、捕捉寄存器、定时器寄存器、控制寄存器。

?

中断系统:STC89C52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行的操作步骤如下:

<1)完成当前指令的操作; <2)将PC内容压入堆栈; <3)保存当前的中断状态; <4)阻止同级的中断请求;

<5)将中断程序入口地址送PC寄存器; <6)执行中断服务程序;

9 / 32

<7)返回<2)。 3.2.2 显示模块的设计

<1)LCD1602功能介绍

LCD1602各引脚功能如表3-2所示。 表3-2 LCD1602管脚功能表

<2)基本操作时序:

LCD1602读写操作时序是直接记忆和总结读写时电平高低和变化,下面就列出典型读写的时序要求,以方便编写程序[13]。

读状态--输入:RS=L,R/W=H,E=H 输出:D0-D7=状态字 写指令--输入:RS=L,R/W=L,D0-D7=指令码,E=高脉冲输出:无 读数据--输入:RS=H,R/W=H,E=H 输出:D0-D7=数据 写数据--输入:RS=H,R/W=L,D0-D7=数据,E=高脉冲输出:无 <3)状态字说明: 表3-3 状态字表

对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0。 <4)指令说明: 表3-4 显示模式设置表

10 / 32

表3-5 显示开/关及背光灯设置表

<5)数据控制

控制器内部有一个数据地址指针,用户可通过它们访问内部的全部80字节RAM[15]。

<6)数据指针设置 表3-6 数据指针设置表

<7)其他设置 表3-7 其他设置指令表

<8)LCD1602初始化过程 a、延时15ms。

b、写指令38H(不检测忙信号>。 c、延时5ms。

11 / 32

d、写指令38H(不检测忙信号>。 e、写指令5ms。

f、写指令38H(不检测忙信号>。

g、之后每次写指令、读/写数据操作之前均需检测忙信号。 h、写指令38H:显示模式设置。 i、写指令08H:显示关闭。 j、写指令01H:显示清屏幕。 k、写指令06H:显示光标移动设置。 p、写指令0CH:显示及光标设置。 <9)LCD1602的电路设计 液晶LCD1602的D0-D7引脚与STC89C52芯片的P2口连接,而控制引脚RS,R/W,CS则分别与P1.6,P1.5,P1.4连接。引脚3接一个1K的电位器来调整对比度,从而达到适合的背光灯对比度[16]。

液晶显示模块电路如图3-3所示。

图3-3 液晶显示模块

12 / 32

3.2.3时钟电路模块的设计

(1>DS12887功能特点

DS12887是美国达拉斯半导体公司推出的时钟芯片,此芯片是基于CMOS技术的,将所需的晶振和外部锂电池相关电路集于芯片内部,简化了外围电路,同时它与计算机常用的时钟芯片MC146818B和DS1287芯片引脚兼容,可直接进行对等交换。主要功能有:

?内含一个锂电池,断电可以运行十年,并且不会丢失数据,时间功能正常运行。

?可计时至2100年前的秒、分、时、星期、日、月、年等日历信息并带有闰年补偿功能。

?可通过编程选择BCD码或者二进制数表示日历和定时闹钟。

?可通过编程选择12小时或24小时制,12小时时钟模式带有PM和AM提示,此外还有有夏令时功能。

?可选择MOTOROLA和INTEL总线时序。

?内部共有128个RAM单元,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。

?中断信号输出(IRQ>和总线兼容,定时闹钟中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试[17]。

?三种可供选择的中断方式 a、时间性中断 b、周期性中断 c、时钟更新结束中断 (2> DS12887的原理及管脚说明

图3-4显示了DS12887管脚排列图。下面说明管脚功能:

13 / 32

图3-4 DS12887管脚图

GND:电源接地

VCC:直流电源+5V电压。若外部提供的VCC电源小于4.25V,读写会被禁止,但芯片内部计时仍在继续,重新通上+5V电源后,通过编程即可显示当前时间;若外部提供的VCC电源小于3V,电源方式切换为内部锂电池提供,同样可以保持芯片内部计时仍然继续。

MOT(模式选择>:接VCC<+5V)时,芯片在MOTOROLA时序下工作,接GND时,芯片在INTEL时序下工作。

SQW(方波信号>:通过15个分频器抽头中的13个提供方波输出。

AD0~AD7(双向地址/数据复用线>:数据和控制指令都通过此8个引脚来于单片机等控制器传输。

DS(数据选通或读输入>:该引脚有两种操作模式,视该芯片是出于MOTOROLA模式或者INTEL模式,当使用MOTOROLA时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;若为INTEL时序,DS称作(RD>,RD与典型存贮器的允许信号(OE>的定义相同。

R/W(读/写输入>:R/W管脚同样也有两种操作模式。此引脚的两种模式与DS相似。

CS(片选输入>:在访问DS12887的总线周期内,片选信号必须保持为低。 RESET(复位输出>:若要保证DS12887有效复位,必须让该脚保持低电平

14 / 32

时间大于200ms。

IRQ(中断申请输入>:低电平有效,可作微处理的中断输入。没有中断条件满足时,IRQ处于高阻态。IRQ线是漏极开路输入,要求外接上拉电阻[18]。

<3)DS12887的内部功能地址分配图

DS12887的存储器分配图如图3-5所示,其中00H-09H为时钟信息和闹钟信息寄存器,0AH-0DH为四个控制寄存器。

图3-5 DS12887存储器分配图

?控制寄存器 ?寄存器A

表3-8 DS12887寄存器A

UIP:更新位。若UIP为1,实时时钟的更新转换发生的很快,而当UIP为0,更新转换至少在244μs内不会发生。

DV0,DV1,DV2:用于晶振和复位分频链的开启。 表3-9 DS12887周期中断率和方波频率

15 / 32

RS3,RS2,RS1,RS0:频率选择位,通过这四个位用户可以:

b、用SQWE位允许SQAW输出;

d、二者都不允许。?寄存器B 表3-10 DS12887寄存器B

c、二者同时允许并用相同的频率;

a、用PIE位允许中断;

SET:此位为0,时间更新正常进行,每秒计数走时一次,当此位为1,时间更新被禁止,程序可对芯片进行初始化的操作和编程。

PIE:周期中断允许位,PIE为1,则允许以选定的频率拉低IRQ管脚,PIE为0,则禁止中断。

AIE:定时闹钟中断允许位,AIE为1,允许中断,否则禁止中断。 UIE:更新结束中断允许位,AIE为1,允许中断,否则禁止中断。 SQWE:方波允许位,置1选定频率方波从SQW脚输出;为0-时,SQW脚为低。

DM:数据模式位,DM为1表明为十进制数据,而0表明是BCD码的数据。

16 / 32

24/12:小时格式位,1表明24小时制,而0表明12小时制。

DSE:夏令时允许位,当DSE置1时允许两个特殊的更新,在四月份的第一星期日,时间从1:59:59AM时改变为3:00:00AM;在十月的最后一个星期日的1:59:59AM时改变为1:00:00AM。当DSE位为0,这种特殊修正不发生。 ?寄存器C

表3-11 DS12887寄存器C

IRQF:中断申请标志位。当下列表达式中一个或多个为真时,置1。 PF=PIE=1;AF=AIE=1;UF=UIE=1;

即:IRQF=PF·PIE+AF·AIE+UF·UIE

只要IRQF为1,IRQ管脚输出低 ,程序读寄存器C以后或RESET管脚为低后,所有标志位清零。

VF:更新周期结束标志位。VF为1表明更新周期结束。

AF:定闹中断标志位,只读,AF为1表明现在时间与定闹时间匹配。 ?寄存器D

VRT:内部锂电池状态位,平时应总读出1,如出现0,表明内部锂电池耗尽。BIT0~BIT6:未用状态位,读出总为0,不能写入。 表3-11 DS12887寄存器D

BIT0~BIT3:未用状态位,读出总为0,不能写入。

(4>DS12887的电路设计 本设计中的DS12887芯片AD0-AD7引脚与STC89C52芯片的P2口相连接。MOT引脚接地,为INTEL总线时序方式。因此R/W和DS引脚也为对应INTEL的操作模式[19]。时钟模块电路如图3-6所示。

17 / 32

图3-6 时钟模块电路图

3.2.4 温度采集模块设计

温度传感器DS18B20的接法很简单,它的DQ引脚与STC89C52芯片的P1.7引脚相连接。这里只用到一个温度传感器,若要使用多个则只需将所有的DS18B20的I/O口接在一起即可,在具体操作时,通过读取每个芯片的内部序列号来识别[20]。

3.2.5 按键调整系统模块设计

74LS21芯片为两组4输入与门<正逻辑)。本设计中的四个按键分别接到74LS21芯片的1A,1B,1C,1D,即4输入与门的4个输入。而74LS21的输出1Y则接到STC89C52芯片的P3.2(INT0>引脚,由于该引脚为低电平有效,当警报发生时按下四个按键中任意一个都会使输出1Y变为低电平,则芯片发生中断,报警停止。同时,四个按键key1-key4也接到STC89C52芯片的P1.0-P1.3起到调节时间日期等功能[21]。按键模块电路如图3-7所示。

18 / 32

图3-7 按键模块

3.2.6 蜂鸣器报警模块

蜂鸣器报警模块的作用:当定时闹钟时间到时,蜂鸣器发出预设的声音,而发光二极管则会随着音乐闪烁。本模块采用PNP三极管为蜂鸣器放大电流,基极通过4.7k电阻与单片机STC89C52的闲置引脚P3.5相连接,集电极直接接地,发射极接发光二极管和蜂鸣器[22]。报警模块电路如图3-8所示。

图3-8 报警模块

19 / 32

第4章 软件设计

4.1 软件设计总体说明

本系统的程序采用C语言编写,为了便于修改和调试,系统软件采用模块化设计,程序的编写编译在软件WAVE6000中完成。

系统中有四个按键,即:设置键S1、切换键S2、上调键S3、下调键S4。 <1)按下S1键,系统进入设置状态,再按下S2键可在除温度外的工程,如年、月、日、时、分、秒、星期、闹钟上停留,此时可按上、下调键进行加减一操作。

<2)同时按下S1键和S2键会将当前的时间恢复到默认时间。 <3)同时按下S3键和S4键可对闹钟进行开启和关闭。

4.2 程序软件实现

主程序流程图如图4-1所示

图4-1 主程序流程图

20 / 32

LCD1602液晶显示模块子程序流程图如图4-2所示

开始初始化忙碌状态检测写入指令数据忙碌状态检测设置显示位置是忙碌状态检测写入显示数据返回 图4-2 LCD1602子程序流程图

DS12887模块子程序流程图如图4-3、图4-4所示

开始定义14位时间数组date time[]读取DS12887时间数据到数组date time[]在LCD1602上显示数据date time[]返回图4-3 DS12887时间显示流程图

21 / 32

开始返回开中断1关中断1 延时40ms当前值减1是否音乐播放是否使能是设置使能且S3按下否当前值加1播放音乐是否设置使能且S3按下音乐使能禁止退出设置开中断1开始设置跳出中断是否设置使能是否为1否S1和S2是否同时按下是设置使能取反是否S1是否按下把时间设置为默认值闪烁光标跳到下一位否S3和S4是否同时按下是是是否设置使能且S2按下开闹钟K取反否K=1?关闹钟

图4-4 DS12887时间设置流程图

22 / 32

DS18B20模块子程序流程图如图4-5所示

开始初始化DS18B20发跳过ROM指令发温度转换指令等待转换初始化DS18B20发跳过ROM指令发数据读取指令读存储器、将数据存入缓冲区返回图4-5 DS18B20子程序流程图

23 / 32

报警模块子程序流程图如图4-6所示

开始设置定时器工作方式1开中断否计数值是否溢出是播放音乐否否是否有按键按下是1分30秒是否到是音乐停止返回图4-6 报警模块子程序流程图

24 / 32

第5章 总结

本设计的硬件电路主要由单片机最小系统电路、温度测量模块、按键模块、时钟芯片模块、LCD1602液晶显示模块等模块组成,软件方面则是通过C语言对系统进行编程,这体现了本设计的实时性和灵活性。系统实现了以下多种功能:

1)显示年、月、日、星期等日历相关信息。通过按键设置年月日和星期,以及定时闹钟。

2)掉电后时钟芯片正常运行,重新上电后不用校正时钟。

3)定时时间到达时,蜂鸣器报警;手动按任意键报警停止;如无人工按键,报警在1.5min后停止。

4)实时温度显示。

本设计还有一些地方可以改进: (1>供电电源改成5V电池

在生活中,不可能使用电源箱来作为硬件的供电电源,如果想要完成便携式携带的电子钟,则也不可能使用电源适配器来实现电源的提供,所以电源应该使用基于锂电池的设计使系统具备安全,简单,容易携带等优点。

(2>可以增加一个背光自动调节功能

该功能主要是通过液晶显示屏LCD1602外接光敏三极管来实现,但考虑到器件价格及时间方面的限制,放弃了这个部分。但若能有这个功能,则夜晚的时候背光灯更亮,白天的时候背光灯较暗,这也间接起到了节能的作用。

25 / 32

参考文献

[1]

黄文梅.系统分析与仿真MATLAB语言及应用[M].国防科技大学出版社,1999.232-258.

[2] 阎石.数字电子技术<第五版)[M].北京高等教育出版社,2006.34-52. [3] 蔡明文,冯先成.单片机课程设计[M].华中科技大学出版社,2007.118-135. [4] 陈明萤.8051单片机课程设计实训材料[M].清华大学出版社,2004.21-56. [5] 康华光.模拟电子技术<第五版)[M].高等教育出版社,2006.145-178. [6]

黄智伟.全国大学生电子设计竞赛电路<第一版)[M].航空航天大学出版社,2006.78-95.

[7] 李可为.数字钟电路及应用[M].电子工业出版社,1996.73-102.

[8] 夏继强,沈德金.单片机实验与实践教程<二)[M]北航出版社,2001.116-120. [9] 张红润,蓝清华.单片机应用技术教程[M]清华大学出版社,1997.73-88. [10] 周立功.单片机实验与实践[M]北京航空航天大学出版社,2004.65-103. [11] 李朝青.单片机原理及接口技术[M].北京航空航天大学出版社,1994.57-93. [12] 何立民.单片机应用文集<一)[M].北京航空航天大学出版社,1991.157-178. [13] 方大千,鲍俏伟.使用电子控制电路[M].国防科技出版社,2003.230-276. [14] 曾繁泰.EDA工程概论[M].清华大学出版社,2002.37-56.

[15] 谭会生,张昌凡.EDA技术及应用[M].西安电子科技大学出版社,2004.110-130. [16] 121.

[17] 李强.键盘接口程序计数[M].电子设计出版社,2003.76-89.

[18] 肖来胜.单片机技术实用教程[M].华中科技大学出版社,2004.113-152. [19] 杨晓川.Portel设计指导教程[M].清华大学出版社,2003.300-312.

[20] 何立民.单片机应用技术选编<11)[M].北京航空航天大学出版社,2006.257-278.

[21] 陈正振.电子电路设计与制作[M].广西交通职业学院出版社,2007.324-352.

李光飞.单片机c程序设计实例指导[M].北京航空航天大学出版社,2005.99-

26 / 32

[22] 张洪润.单片机应用设计200例[M].北京航空航天大学出版社,2006.7-16.

致谢

大学生涯行将结束,今天完成了毕业论文的定稿工作,现在,我要对老师、同学、学校、家人表达最真诚的谢意。

首先要提到的是我的毕业设计指导老师,虽然他并没有给我代过课,但是他对工作认真严谨的态度完全体现在了设计毕业论文的过程中。尽管老师平时也有教案上的任务,但他对我的毕业设计一点也没有省心,而是投入到了每个环节中,这包括前期方案的设计,资料的查找,论文的修改和完成。在这些环节中,老师都会尽可能的帮助我去好好完成,比如我在做毕业设计的中途由于自身的能力有限而遭遇瓶颈,无法顺利进行的时候,耐心的与我沟通,帮我找取相关资料。虽然不在学校也能及时的得到他和本组同学的帮助,没有他们的帮助也许我根本无法完成设计。在此,谨对有高度责任心的老师致以最崇高的谢意。

同学的帮助也是不能忽视的。由于已经离校实习,毕业设计这样的任务其实对我来说是很大的考验,庆幸在我完成毕业设计的过程中,本组其他同学和班级同学对我提供了很大的帮助,我的能力相对较差,没有他们耐心的帮助我确实没有办法完成设计任务。

最后则要感谢母校四年来提供给我的优质的教案服务和生活,所有任课老师的认真教案,是你们让我的专业知识得到丰富,让我学会了很多适应社会的技能,更要感谢父母亲对我学习生活上的关心,他们是我永远的后盾。

是我梦想开始的地方,大学四年生活是我过去人生中最精彩最充实的回忆。在这里我不仅仅收获了知识,还有友情、爱情。虽然舍不得,但依然要离开,只想对母校说:谢谢您!请您放心,未来的人生路,我们一定努力走好!

27 / 32

28 / 32

本文来源:https://www.bwwdw.com/article/i4xw.html

Top