论文基于单片机的数字实时时钟的设计.docx

上传人:b****3 文档编号:5272771 上传时间:2022-12-14 格式:DOCX 页数:30 大小:582.41KB
下载 相关 举报
论文基于单片机的数字实时时钟的设计.docx_第1页
第1页 / 共30页
论文基于单片机的数字实时时钟的设计.docx_第2页
第2页 / 共30页
论文基于单片机的数字实时时钟的设计.docx_第3页
第3页 / 共30页
论文基于单片机的数字实时时钟的设计.docx_第4页
第4页 / 共30页
论文基于单片机的数字实时时钟的设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

论文基于单片机的数字实时时钟的设计.docx

《论文基于单片机的数字实时时钟的设计.docx》由会员分享,可在线阅读,更多相关《论文基于单片机的数字实时时钟的设计.docx(30页珍藏版)》请在冰豆网上搜索。

论文基于单片机的数字实时时钟的设计.docx

论文基于单片机的数字实时时钟的设计

目 录

摘 要

本设计以AT89C51单片机为核心,以实时时钟芯片DS1307和液晶显示LCD1602为主体设计了一款简易数字时钟。

该时钟系统主要由单片机最小系统、时钟模块、闹钟模块、液晶显示模块、键盘控制模块组成。

系统具有简单清晰的操作界面,能够准确显示时间(显示格式为时时:

分分:

秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关。

设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。

同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。

由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。

软件程序采用均采用C语言编写,便于移植与升级。

报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。

关键词 数字时钟;单片机;DS1307;LCD1602

第1章 设计方案

1.1 方案论证与比较

方案一:

基于FPGA的系统总体设计方法。

为了实现:

(1)显示年、月、日、时、分、秒、星期,并且可以进行调整时间;

(2)可以设定闹钟和整点报时的功能,数字时钟在总体上主要分为三大部分:

输入人机界面部分、FPGA核心功能部分和输出界面部分,其系统设计框图如图1-1所示。

图1-1 基于FPGA的系统设计方框图

方案二:

采用单片机技术来实现数字钟的功能。

系统以AT89C51单片机为核心控制器件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制。

与传统机械表相比,它具有走时精确,显示直观等特点。

它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。

外围主要有串行通信器件实时时钟芯片DS1307等,使得系统线路简单可靠性高。

系统结构框图如图1-2所示。

图1-2 基于单片机实现的数字时钟系统结构框图

单片机最小系统:

其作用是和外围的时钟芯片通信,并控制数据传输的过程,采集时间信息并予以处理。

键盘模块:

键盘模块可以设置时间信息,通过单片机写入时钟芯片,以更新时间;也可以设置闹钟,由单片机存入其内部RAM中。

时钟模块:

此模块由专用的实时时钟芯片构成,由它提供实时的日历时钟信息。

液晶显示模块:

单片机读取时钟芯片DS1307中的信息,通过液晶显示器实时显示。

采用LCD作为显示器,具有界面友好、功耗低的优点。

闹钟模块:

单片机主控模块读取日历芯片中的时间信息,与所设置的闹钟时间相比较,若相同时,闹钟模块工作闹钟模块。

电源模块:

用220V市电经整流、滤波、稳压后,输出稳定的+5V的直流电为其供电。

1.2 方案确定

综合考虑以上两种方案的优缺点以及题目的基本要求和发挥要求,在本设计中,我采用了第二种方案,即采用单片机来实现数字时钟的功能为我此次设计的方案。

第2章 硬件设计

2.1 单片机最小系统

单片机最小系统以AT89C51单片机为核心,由单片机、时钟电路、复位电路等组成如图2-1所示。

主要负责各个模块的初始化工作;读取并处理时间;处理按键响应;控制液晶实时显示等。

图2-1 单片机最小系统

主控制器AT89C51单片机与MCS51系列单片机产品兼容,内部自带有4KB的Flash存储器及256KB RAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。

图中,P2.0、P2.1、P2.2及P1口为单片机与液晶显示器连接的控制和通信的数据端口;P2.6和P2.7为单片机与时钟芯片DS1307通信的端口;P2.3为闹钟的控制端口;P0.0、P0.1、P0.2、P0.3为按键模块的接口。

时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容构成。

时钟电路中晶体振荡器的频率高则系统的时钟频率就高,所以该系统采用12M晶振;

复位电路有两种形式:

手动按键复位和上电复位,在本系统中采用的是手动按键复位。

如图2-1所示,R1、R2、C3和SW组成系统手动按键复位电路。

2.2 时钟模块

系统采用DS1307时钟芯片。

DS1307是美国DALLAS公司推出的一种高性能、低功耗的时钟芯片,它是一款I2C总线接口的时钟芯片,采用两线与CPU进行通信,片内含有8个特殊功能寄存器和56bit的SRAM。

DS1307的主要技术指标:

具有秒、分、时、日、星期、月、年的计数功能;12小时制和24小时制两种计数模式;可自动调整每月的天数,具有闰年自动修正、掉电保护和上电复位功能。

2.2.1 DS1307的引脚功能

DS1307采用8引脚双列直插DIP封装形式,引脚分布如图2-2所示。

相应功能如下:

Vcc:

主电源;

Vbat:

备用电源。

当Vbat>Vcc+0.2V时,由Vcc向DS1307供电,当Vbat

GND:

逻辑地;

SCL:

I2C总线时钟线;

SDA:

I2C总线数据线;

SQW/OUT:

方波/输出驱动器。

图2-2 DS1307引脚分布图

2.2.2 DS1307的内部结构

1.内部结构

DS1307芯片由晶体振荡器、电源控制器、I2C总线控制、分频处理、逻辑控制、RAM存储、多路选择器、时钟/日历寄存器、缓冲器组成,内部结构如图2-3所示。

 

图2-3 DS1307的内部结构

2.寄存器

DS1307有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81H~8DH,写时80H~8CH),存放的数据格式为BCD码形式,如表2-1所示。

表2-1 DS1307的日历、时间寄存器

地址

D7

D6

D5

D4

D3

D2

D1

D0

功能

取值范围

81H

CH

十位

个位

00-59

83H

0

十位

个位

00-59

85H

0

12

十位

十位

个位

AM:

1-12

PM:

00-23

24

8B

0

0

0

0

0

星期

星期

01-07

87H

0

0

十位

个位

01-31

89H

0

0

0

十位

个位

01-12

8DH

十位

Year

00-99

8FH

OUT

0

0

SOWE

0

0

RS1

RS0

控制字

-

91H

RAM

56×8

00H-FFH

(1)小时寄存器(85H、84H)的位7用于定义DS1307是运行于12小时模式还是24小时模式。

当为高电平时,选择12小时模式。

在12小时模式时,位D5是

,当为1时,表示PM。

在24小时模式时,位5是第二个10小时位。

(2)秒寄存器(81H、80H)的位7定义为时钟暂停标志(CH)。

当该位置为1时,时钟振荡器停止,DS1307处于低功耗状态;当该位置为0时,时钟开始运行。

(3)控制寄存器(8FH、8EH)的位7是写保护位(WP),其它7位均置为0。

在任何的对时钟和RAM的写操作之前,WP位必须为0。

当WP位为1时,写保护位防止对任一寄存器的写操作。

2.2.3 DS1307的读写操作

DS1307是基于I2C总线接口的时钟芯片,软件上与I2C总线完全兼容。

1.I2C总线的驱动

I2C总线在传送数据时,必须确认传送数据的开始和结束。

而且每传送一个字节,要发送一个应答位(0);在一个周期发送结束后,要发送一个应答位

(1)。

具体如图2-4所示,三种信号的格式如下:

(1)启动信号:

当时钟总线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“启动”信号。

(2)停止信号:

当时钟总线SCL为高电平时,数据线SDA由低电平跳变为高电平定义为“结束”信号。

(3)应答位:

当主器件发送完一字节的数据后,后面必须跟一个应答位(ACK)。

在时钟高电平期间,如果数据线SDA为低电平代表一个字节的传送结束,并准备下一个要传送的字节;在时钟高电平期间,如果数据线SDA为低电平代表一个传送周期结束,准备下一个传送周期。

图2-4 I2C总线的数据传送格式

2.DS1307的写控制

图2-5是DS1307的写控制格式,首先发送启动信号,然后发送的第一个字节是用来控制芯片的地址以及读写控制位(D0:

0–写),之后是应答位,然后发送其它字节数据,在最后发送一个结束标志的应答位,紧跟着是停止信号。

S

1101000

0

A

XXXX

XXXX

A

XXXX

XXXX

A

XXXX

XXXX

A

XXXX

XXXX

A

P

图2-5 CPU写数据模式

3.DS1307的读控制

图2-6是DS1307的读控制格式,首先发送启动信号,然后发送的第一个字节是用来控制芯片的地址以及读写控制为(D0:

1–读),之后是应答位,然后发送其它字节数据,在最后发送一个结束标志的应答位,紧跟着是停止信号。

S

1101000

1

A

XXXX

XXXX

A

XXXX

XXXX

A

XXXX

XXXX

A

XXXX

XXXX

A

P

图2-6 CPU读数据模式

2.2.4 DS1307硬件电路设计

DS1307采用与CPU进行通信,电路连接简单。

DS1307的内部振荡电路结构如图2-7所示,在芯片内部连接有两个电容,目的是为了使晶振起振,所以在电路设计中就不需要另外再加电容了。

图2-7 DS1307的内部振荡电路

时钟模块电路如图2-8所示,其中晶振采用的是32.768kHz,经内部电路分频后可获得一个标准的秒脉冲信号;电阻R3、R4是I2C总线的上拉电阻。

图2-8 DS1307的电路连接

2.3 闹铃模块

系统采用蜂鸣器作为闹铃输出,电路连接如图2-9所示。

电路中采用PNP管Q1来控制蜂鸣器的开关,由图可以看出:

当P2.3引脚为高电平时,PNP管截止,蜂鸣器不工作;当P2.3引脚为低电平时,PNP管导通,蜂鸣器工作。

其中R9为限流电阻。

图2-9 闹铃电路

2.4 键盘模块

键盘模块设置了四个按键:

KEY1、KEY2、KEY3、KEY4。

其中KEY1为模式切换键,KEY2为设定值上升键,用KEY3为设定值减小键,KEY4是返回键。

电路连接如图2-10所示。

4个上拉电阻可以保证在没有按键输入时,进入单片机四个I/O口的按键状态均为高电平,防止干扰产生;当有按键按下时,相应的端口线状态转为低电平。

图2-10 键盘电路

2.5 LCD显示模块

LCD显示器分为字段显示和字符显示两种。

其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。

字符显示是根据需要显示基本字符。

本设计采用的是字符型显示。

系统中采用LCD1602作为显示器件输出信息,可以显示2行16个汉字。

与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富、不需要外加驱动电路等优点,是单片机应用设计中最常用的显示器件。

2.5.1 LCD1602的引脚功能

LCD1602模块的引脚如图2-11所示。

图2-11 LCD1602模块

其引脚功能如下:

RS:

数据和指令选择控制端,RS=0命令状态;RS=1数据;

R/W:

读写控制线,R/W=0写操作;R/W=1读操作;

A:

背光控制正电源;

K:

背光控制地;

E:

数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机间将进行一次数据交换;

DB0~DB7:

数据线,可用8位连接,也可只用高4位连接,节约单片机资源;

VDD:

电源端;

VEE:

亮度控制端(1-5V);

VSS:

接地端。

2.5.2 LCD1602的显示操作

1.四种基本操作

LCD有四种基本操作,具体如表2-2所示。

表2-2 LCD与单片机之间有四种基本操作

RS

R/W

操作

0

0

写命令操作(初始化,光标定位等)

0

1

读状态操作(读忙标志位)

1

0

写数据操作(要显示内容)

1

1

读数据操作(可以把显示存储区中的数据反读出来)

(1)读状态操作

执行读状态字操作,如表2-2所示须满足RS=0、R/W=1。

根据管脚功能,当为有效电平时,状态命令字可从LCD模块传输到数据总线。

同时可以保持一段时间,从而实现读状态字的功能。

如图2-12所示为读入状态字流程图。

图2-12 读入状态字流程图

(2)写命令操作

由表2-2可知当RS=0,R/W=0时,才可以通过单片机或用户指令把数据即命令,写到LCD模块,此时就对LCD进行调制。

可采用查询方式:

先读入状态字,再判断忙标志,最后写命令字。

1)命令字

表2-3所示为命令字,其主要介绍了指令名称、控制信号及控制代码。

其指令名称是指要实现的功能,控制代号是采用的十六进制的数值表示的。

a.清零操作是指输入某命令字后即能将整个屏幕显示的内容全部清除;

b.归home位:

将光标送到初始位;其中的*号为任意,高低电平均可;

c.输入方式:

设光标移动方向并指定整体显示,是否移动。

I/D=0:

减量方式,S=1:

移位,S=0:

不移位;

d.显示状态:

D指设置整体显示开关;C指设置光标显示开关;B指设置光标的字符闪耀;

e.光标画面滚动:

R/L指右移或左移;S/C指移动总体或光标;

f.功能设置:

DL接口数位,L指显示行数,F显示字型;

g.CGRAM地址设制:

相当于一个数据库,可以在其中选择所需要的符号;

h.DDRAM地址设制:

显示定位;

i.读BF和AC:

B为最高位忙的标志,F为标志位;

j.写数据:

将数据按要求写入到对应的单元;

k.读数据:

读相应单元内的数据。

表2-3 命令字

指令名称

控制信号

控制代码

RS

RW

D7

D6

D5

D4

D3

D2

D1

D0

清屏

0

0

0

0

0

0

0

0

0

1

归HOME位

0

0

0

0

0

0

0

0

1

*

输入方式设制

0

0

0

0

0

0

0

1

I/D

S

显示状态设制

0

0

0

0

0

0

1

D

C

B

无标画面滚动

0

0

0

0

0

1

S/C

RL

*

*

功能设置

0

0

0

0

1

DL

N

F

*

*

CGRAM地址设制

0

0

0

1

A5

A4

A3

A2

A1

A0

DDRAM地址设制

0

0

1

A6

A5

A4

A3

A2

A1

A0

读BF和AC

0

1

BF

AC6

AC5

AC4

AC3

AC2

AC1

AC0

写数据

1

0

数据

读数据

1

1

数据

2)如图2-13为写命令字的流程图。

图2-13 写命令字流程图

3)定义光标位置

把显示数据要某个位置,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。

Set DDRAM address命令如表2-3所示。

光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式设置。

表2-4 SetDDRAMaddress命令

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

1

AC6

AC5

AC4

AC3

AC2

AC1

AC0

第1行DDRAM地址与第2行DDRAM地址并不连续。

如表2-4所示。

表2-5 DDRAM地址

row

1

2

3

4

5

14

15

16

line1

80H

81H

82H

83H

84H

8dH

8eH

8fH

line2

0c0H

0c1H

0c2H

0c3H

0c4H

0cdH

0ceH

0cfH

4)LCD初始化

从通电开始通过延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设置行、位或阵列)再经过延时后清屏后再可以设置输入方式,具体如图2-14所示。

图2-14 LCD初始化流程图

2.LCD显示程序设计

LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,LCD就可以按如图2-15显示。

图2-15 LCD显示程序流程图

2.6 电源模块

用220V市电经整流、滤波、稳压后,输出稳定的+5V的直流电为其供电。

+5V稳压器采用CW7805,其应用电路如图2-16所示。

图中,滤波电容C6和C8的值为1000uF,C7和C9为0.33uF。

发光二极管D6的作用是显示读写器的电源是否接通,若接通则D6灯亮,无接通则D6灯灭。

图2-16 电源电路图

第3章 软件设计

系统的软件设计可以分为几个部分,首先编写各个模块的底层驱动程序,而后是系统联机调试,编写上层系统程序。

本系统软件程序主要包括:

液晶LCD1602的底层驱动模块、时钟芯片DS1307的底层驱动模块、键盘扫描及键值处理模块、闹钟模块等。

3.1 系统流程图

系统的软件主流程图如图3-1所示。

图3-1 主程序流程图

3.2 液晶显示模块流程图

液晶显示模块包括了LCD初始化、光标的设定、确定显示字符、具体流程图如图2-15所示。

3.3 键盘处理模块流程图

系统设制了四个按键,分别是功能设置、定值上升、定值下降和返回键。

整个系统的软件设计均采用C语言开发,采用查询的方式对按键状态进行扫描,确保系统的实时性。

因此这些器件的底层程序均可以移植到其它系统中,这就是采用C语言开发的最大的优点。

键盘处理流程图分别如图3-2、3-3、3-4、3-5所示。

 

 

图3-2 时间设置模块

 

图3-3 日期设置流程图

 

图3-4 星期设置流程图

 

图3-5 闹钟设置流程图

第4章软件设计

4.1软件系统方框图

系统软件程序设计主要包括:

主程序设计,延时0.5S子程序,延时0.001S程序等等;软件框图如4-1所示

图4.1

4.2中断延时程序

彩灯延时闪烁的实现,延时子程序的调用实际上就是寄存器在MCS-51单片机中,从中断请求发生到被响应,从中断响应到转到执行中断服务程序,采样是中断出理的第一步他是针对外中断请求信号进行的。

如下图4-2所示

图4-2主程序调用子程序图

4.3仿真环境Professional仿真软件

图4-3-aProfessional仿真环境

 

第4章 系统测试

本设计的核心采用是AT89C51单片机,以时钟芯片DS1307和液晶LCD1602作为外围元件,构成了一个多功能的数字时钟系统。

本系统的仿真采用PROTEUS软件,在PROTEUS库中选取的元件,如表4-1所示。

表4-1 仿真元件表

序号

名称

属性

1

AT89C51

单片机

2

BUTTON

按键

3

CAP

电容

4

DS1307

时钟芯片

5

LM016L

液晶显示器

6

PNP

晶体三极管

7

RES

电阻

8

SPEAKER

蜂鸣器

9

SW-SPST

开关

10

CRYSTAL

晶体振荡器

仿真结果如图4-1所示。

分别可以实现实时显示、设置时间、设置日期、设置星期和设置闹钟。

a)实时显示

b)设置时间及相应的增/减设置

c)设置日期及相应的增/减设置

d)设置星期及相应的增/减设置

e)设置闹钟

图4-1 仿真结果

系统通过仿真调试后,可以稳定运行。

同时可以对时间、日期、星期和闹钟进行设置。

设计采用串行器件具有线路简单、体积小、价格低等优点。

同时该系统稍加改造,就可以作为工业实时采集中的一个模块。

总 结

本设计以功能齐全适用于大众为指导思想,选取AT89C51单片机为控制核心。

通过外围元件实时时钟芯片DS1307构成了一个具有实时时间与日历显示、按键调时、闹铃定时功能的数字时钟。

系统采用液晶LCD1602作为显示器,软件程序采用均采用C语言编写,便于移植与升级。

系统经组装、调试后,可以稳定运行。

同时可以对时间、日期、星期和闹钟进行设置。

系统采用串行器件具有线路简单、体积小、价格低等优点。

报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。

致 谢

在这三个多月的毕业设计中,我真诚地感谢胡老师和同学们的帮助,在他们的帮助下我顺利的完成了此次毕业设计。

首先我要衷心地感谢我的辅导老师胡得清,在本次设计过程中他始终给予了我无私的热情和帮助。

开始他细心指导我的选题工作,在做开题报告的过程中,又反复而耐心地给我指出问题的所在,并帮助我纠正了许多不妥之处。

在做系统设计这一过程中,也给我提出了许多意见和建议,并交给我许多解决问题的技巧和方法。

在写毕业设计论文的过程中,我也遇到了许多的困难,之所以能坚持完成,这都离不开我的导师和同学们的帮助。

通过短暂的毕业设计,从而提高了我的理论水平,真正做到学有所用,虽然在其过程中我也遇到一些困难,但是从中我也得到了很多的帮助,没有半途而废,没有灰心丧气,在胡老师的严格指导下,发现问题并加以改正,这些都是一种收获。

特别感谢胡老师的帮助,他对我的系统提出了很多改进的意见,对我的论文中的一些不足的地方也一一地指出。

没有他的帮助,我也不可能很好的完成这次毕业设计,我再次衷心地对胡老师表示感谢。

参考文献

[1] DS1307datasheethttp:

//www.maxim-

[2] 李建忠.单片机原理及应用.西安:

西安电子科技大学出版社,2002

[3] 朱宇光.单片机应用新技术教程.北京:

电子工业出版社,2000

[4] 刘守义.单片机应用技术.西安:

西安电子科技大学出版社,2002

[5] 房小翠.单片机实用系统设计技术.北京:

国防工业出版社,2003

[6] 李华.MCS-51系列单片机实用接口技术.北京:

电子工业出版社,2000

[7] 李华.MCS-51系列单片机实用接口技术.北京:

北京航空航天大学出版社,2003

[8] 杨忠煌.单芯片8051实务与应用.北京:

中国水利水电出版社,2001

[9] 何立名.单片机应用系统设计系统配置与接口技术.北京:

北京航空航天大学出版社,2004

附录1 系统仿真电路图

附录2 PCB板底图

电源电路

单片机主控的数字时钟

附录3 主要源程序

/***************************定义头文件开始***************************/

#include

#include

#include

#include

/****************************义头文件结束*****************************/

*****************************预定义变量******************************/

/*****

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1