万年历的设计.docx

上传人:b****7 文档编号:9253480 上传时间:2023-02-03 格式:DOCX 页数:49 大小:400.56KB
下载 相关 举报
万年历的设计.docx_第1页
第1页 / 共49页
万年历的设计.docx_第2页
第2页 / 共49页
万年历的设计.docx_第3页
第3页 / 共49页
万年历的设计.docx_第4页
第4页 / 共49页
万年历的设计.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

万年历的设计.docx

《万年历的设计.docx》由会员分享,可在线阅读,更多相关《万年历的设计.docx(49页珍藏版)》请在冰豆网上搜索。

万年历的设计.docx

万年历的设计

 

 

实习报告

 

实习名称:

单片机应用实习

学生姓名:

贾生磊

学号:

20141882

院系名称:

电气与信息工程学院

专业班级:

电气14-1班

指导教师:

葛洪军、张鹏

职称:

教授、副教授

 

二○一六年六月二十七日

实习题目

万年历的设计

实习时间

2016年6月27日至2016年7月15日共3周

实习地点:

实验楼517513

实习内容摘要:

随着社会的发展人们的生活节奏越来越快,每天的工作,学习,休息的时间都安排的很紧,需要一个准确时钟。

人们对时钟的要求越来越高,不仅要求每天的的时间误差尽可能小,还要求具有定时闹钟,具有万年历等功能。

传统的日历电子钟元器件多、维修麻烦、误差大、功能更新不方便。

DS12C887时钟芯片能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时,闹钟等功能。

DS12C887也可以很方便的由软件编程进行功能的调整或增减。

所以设计基于DS12C877时钟芯片的高精度时钟的设计具有十分重要的现实意义和实用价值。

关键词:

单片机STC89C52,DS12C887时钟芯片,LCD1602

指导教师评语:

 

成绩

指导教师签字:

 

年月日

注:

1、在此页后附实习总结。

其内容应包括:

实习目的、实习内容及实习结果等项目。

2、此页为封皮,用A4幅面纸正反面打印。

3、实习总结使用A4幅面纸张书写或打印,并附此页后在左侧一同装订。

实习任务书

学生姓名

贾生磊

院系

电气与信息工程学院

专业

班级

电气14-1班

指导教师姓名

葛洪军

张鹏

职称

教授

副教授

是否外聘

□是

题目名称

万年历的设计

一、设计的内容、目的和意义

内容:

本次实习是有关于万年历的设计。

所谓万年历即能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时等功能。

传统的日历电子钟元器件多、维修麻烦、误差大、功能更新不方便。

目的:

DS12C887时钟芯片能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时,报时,闹钟等功能。

意义:

DS12C887也可以很方便的由软件编程进行功能的调整或增加。

所以设计基于DS12C877时钟芯片的高精度时钟的设计具有十分重要的现实意义和实用价值。

在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。

达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

 

3、实习完成后应提交的成果

实习期间我们通过自己设计电路、准备元器件、焊接电路,将设计的万年历实物做出来,使其达到我们的预期要求,同时还应该完成实习报告和实习日志。

最后带着实物和实习报告参加答辩,结束本次实习。

4、实习的工作进度安排

(1)6月27日至6月29日:

确定实践题目,查找相应资料确定设计方案。

(2)6月30日:

提交设计方案,审核通过领取相应元器件。

(3)7月1日至7月14日:

根据设计方案进行实物的焊接,芯片的烧写及整体设计的调试。

(4)7月15日:

完成相应的日志级实验报告,进行答辩

五.主要参考资料

[1]何宏.单片机原理及应用.清华大学出版社.2010.08

[2]郭天祥.51单片机C语言教程.电子工业出版社.2012.05

[3]谢辉;李洪兵;李焱单片机应用技术.清华大学出版社.2009.03

[4]刘坤.单片机应用系统.中国铁道出版社.2013.08

[5]魏二有.单片机应用系统设计与实现教程.清华大学出版社.2012.07

[6]刘海成.单片机及应用原理教程.中国电力出版社.2012.10

[7]孔超;张玮.化繁为简51单片机应该这样学.中国铁道出版社.2013.05

[8]李俊.无师自通51单片机.北京航空航天大学出版社.2014.01

第一章绪论

1.1研究背景

传统时钟芯片在电源断电时内部的时间芯片就会停止计时,所以需要额外使用一个备用的电源向时钟芯片供电,这样会使系统功耗增大,体积变大。

单一功能定时时钟只提供年,月,日,时,分,秒的时间信息功能,多功能时钟除了提供时间信息和日历功能以外,通常还具有定时闹钟等功能。

采用单片机STC89C52和时钟日历芯片DS12C887设计并且制作出来的电子钟,一个月的时间里只有1秒内的误差,比DS1302,DS1307等的芯片设计出来的时钟更精确.

时钟按照工具接口方式不同可以分为并行接口时钟和串行接口时钟,并行接口时钟的特点是:

传输速度快,但是硬件数目多,接线数目多,产品体积大。

串行接口时钟的特点:

传输线少,成本低,产品体积小。

缺点是传输速度慢。

时钟芯片的种类也越来越多,对时钟芯片的要求越来越高,比如精度高,体积小,功耗低,性能稳定,功能齐全,使用方便,技术更新灵活。

所以设计一款体积小,工作稳定,时间精确的时钟具有十分重要的意义。

第2章方案论证选择

2.1时钟计时的方案选择

方案一:

采用单片机内部的晶振来产生脉冲,然后通过单片机内部的计时器经过分频产生秒脉冲,通过软件编程来实现时钟的显示,这种设计方案的优点是器件少,电路简单,电路焊接容易,故障几率小。

但是这种方案需由软件编程来实现秒脉冲的产生,编程相对来说比较复杂,且不利于排除故障,维修起来不方便。

还有就是如果单片机断电,芯片里的时间计时就停止,再次上电时又从初始设定重新计时,这样就需要在每次上电都调整时间,比较麻烦。

方案二:

采用DS12C887时间芯片,具有掉电保护的DS12C887时钟芯片电路简单易于实现的1602LCD液晶显示器,键盘输入电路等。

利用单片机将复位电路、能够降低功耗和减少显示器外部引线的显示电路、电源电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。

软件部分包括:

主程序模块,DS12C887模块,LCD1602模块,键盘控制模块。

DS12C887芯片具有掉电保护功能,内部自带锂电池,能够在断电的情况下保持时间信息。

并且具有内部温漂补偿电路设计。

能够准确计时,提供精确的时间,这样就简化了电路的器件选择,另外也使程序的设计更加简洁。

第二种方案更加准确而且电路硬件设计更加简单,软件设计更加简洁,因此采用第二种方案。

2.2显示部分的方案选择

1.数码管显示,8段数码管显示可视范围宽,但硬件制作成本高,硬件电路的设计与焊接相对复杂。

2.LCD1602液晶显示,液晶显示最大的特点就是界面简洁,能够方便的显示文字和数字。

LCD1602液晶显示时屏幕不会有闪烁。

液晶操作方便,且与单片机的接口电路简单,接线面积小,大大提高了万年历的性能。

所以最终选择LCD1602液晶显示方案。

2.3实习预算:

实习预算结果见表2.1

 

表2.1预算结果表

元件名称

数量

价格(元)

AT89C52

1

6

液晶屏LCD1602

1

15

时钟芯片DS12C887

1

20

11.0592M晶振

1

0.3

30pf瓷片电容

2

0.1

10uf电解电容

1

0.1

排阻

4

0.3

10k电阻

3

0.3

10k滑动变阻器

1

0.2

按键

5

0.5

电源接口

1

0.3

排线

20

1.0

排针

20

1.0

电路板

1

10

总价

50.1

 

第3章系统组成

3.1系统原理与硬件设计

本次的设计题目是万年历设计,要求实现年、月、日、时、分、秒和星期的正常显示,需要硬件和软件的结合来实现。

本次设计利用时钟日历芯片DS12C887的特性和STC89C52单片机的功能来实现的。

根据设计的要求万年历要显示年、月、日、时、分、秒和星期等信息。

在明确本次设计思路之后,画出设计框图,总体框图如图3.1所示。

电源

时钟采集

单片机

 

控制电路

驱动显示

 

图3.1总体框图

3.2单片机STC89C52介绍

STC89C52是STC公司生产的低电压,高性能CMOS8位单片机.片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH由存储单元,STC89C52单片功能强大,适用于许多电子产品。

主要性能参数:

1.与Mcs-51产品指令和引脚完全兼容。

2.8字节可重擦写FLASH闪速存储器

3.1000次擦写周期

4.全静态操作:

0HZ-24MHZ

5.三级加密程序存储器

6.256X8字节内部RAM

7.32个可编程I/0口线

8.3个16位定时/计数器

9.5个中断源

10.可编程串行UART通道

11.低功耗空闲和掉电模式

图3.2STC89C52外部引脚图

Vcc:

电源电压

GND:

地线

P0:

P0口是一组8位漏极开路型双向1/O口,地址/数据总线复用口。

作为输出口用时.每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

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

在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

PI是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流IIL.与AT89C51不同之处是,Pl.0和P1.1还可分别作为定时/计数器2的外部计数输入(Pl.0/T2)和输入(P1.1/T2EX),

参考表3.1所示,FLASH编程和程序校验期间,Pl接收低8位地址。

表3.1

引脚号

功能特性

P1.0

T2,时钟输入

P1.1

T2EX(定时/计数器2)

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑电路。

对端口P2写“l",通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器时,P2送出高8位地址数据。

在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。

FLASH编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动4个TTL逻辑门电路。

对P3口写入“1”时,内部上拉电阻把它们被拉高,并作为输入的端口。

这个时候,被外部拉低的P3口将用上拉电阻输出电流.P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如图表1:

表3.2P3口第三功能

端口引脚

第二功能

P3.0

RXD(串行输入口〕

P3.1

TXD(串行输出口〕

P3.2

INTO(外中断0〕

P3.3

INTO(外中断l)

P3.4

TO(定时/计数器0)

P3.5

Tl(定时/计数器l)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上的高电平时单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器的时候,ALE(地址锁存允许)输出脉冲用来锁存低8位字节的地址.

PSEN:

程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令时,每个机器周期两次PSEN有效,就是输出两个脉冲。

这个时候,当访问外部数据存储器时,就会跳过两次PSEN信号。

EA:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地). 

XTAL1:

振荡器的反相放大器的及内部时钟发生器的输入端.

XTAL2:

振荡器的反相放大器的输出端。

STC单片机是一种高性能、低功耗的8位CMOS微处理芯片,STC单片机虽然功能强大,但要想完成其强大的功能,单靠它也是不的行的,因此要让它运行起来,就要创设其工作的环境,即最小系统,STC单片机最小系统如图1所示,它包括由一个晶振,两个电容组成的振荡电路,一个复位按钮一个10UF电容和一个10K电阻组成的复位电路,电源电路三个电路组成。

3.3STC单片机最小系统

单片机最小系统是完成各种电路设计的最基本单元,其结构图如图3.3所示。

图3.3单片机最小系统

图3.4单片机最小系统

第4章系统硬件电路设计

4.1.1晶振电路

在晶振电路中,C4、C5为晶振的负载电容,分别接在晶振的两个脚上和对地的电容,因为晶振与单片机的振荡电路中脚XTAL0和脚XTAL1会产生偕波,所以在晶振的脚XTAL0和脚XTAL1之间接分别接入两个30pf的瓷片电容接可以增加电路的稳定性。

电路如图4.1。

图4.1晶振电路

4.1.2复位电路

单片机复位电路有上电自动复位和手动复位两种方式。

上电复位要求接通电源后,自动进行复位操作。

手动复位要求接通电源的前提下,在单片机运行的条件下,在单片机运行期间,用按钮开关操作使单片机进行复位的操作。

图4.2复位电路

 

4.2.11602液晶概述

1602LCD是指显示的字符和数字为16X2,即可以显示两行,每行16个字符液晶模块共32个字符和数字。

1602LCD主要技术参数:

1.显示大小:

16×2个字符

2.芯片额定电压:

4.5—5.5V

3.额定电流:

2.0mA(5.0V)

4.工作时的电压:

5.0V

4.2.21602液晶引脚功能

液晶屏共有16个引脚,分别接不通端口来完成显示电路,各引脚功能见表4.1。

表4.1液晶引脚功能

引脚

符号

功能说明

1

VSS

一般接地

2

VDD

接电源正极(+5V)

3

V0

液晶显示器对比度调整端,接正电源时对比度最低,接地时对比度最高。

4

RS

RS是选择两种寄存器,当高电平1时选择数据寄存器、当低电平0时选择指令寄存器。

5

R/W

R/W是选择两种读写信号线,高电平1时进行读操作,低电平0时进行写操作

6

E

E端为使能端,下降沿使能。

7

DB0

双向数据总线第0位(最低位)

8

DB1

双向数据总线第1位

9

DB2

双向数据总线第2位

10

DB3

双向数据总线第3位

11

DB4

双向数据总线第4位

12

DB5

双向数据总线第5位

13

DB6

双向数据总线第6位

14

DB7

双向数据总线第7位(最高位),是读忙标志位

15

BLA

背光电源正极

16

BLK

背光电源负极

1602液晶模块内部的控制器一共具有11条控制指令,如表4.2所示:

表4.2控制指令表

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生存贮器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRAM或DDRAM)

1

0

要写的数据内容

11

从CGRAM或DDRAM读数

1

1

读出的数据内容

表4.2字符控制命令说明:

通过指令编程来实现1602液晶模块的读写操作、屏幕和光标的操作。

(其中1为高电平、0为低电平)

指令1:

清显示,将指令码01H复位到地址00H位置。

指令2:

光标复位,光标返回到地址00H。

指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是不是左移或者右移。

高电平表示有效,低电平则无效。

指令4:

显示开关控制。

D:

控制开关整体的显示,高电平表示显示打开,低电平表示关显示关闭C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平表示闪烁,低电平表示不闪烁。

指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标。

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平的时候显示单行,高电平的时候显示双行F:

低电平的时候显示5x7的点阵字符,高电平的时候显示5x10的点阵字符。

指令7:

设置字符发生器RAM的地址。

指令8:

设置DDRAM的地址。

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,高电平的时候模块不能接收数据或者命令,假如是低电平表示不忙。

指令10:

写入数据。

指令11:

读出数据。

芯片时序表如下:

表4.3芯片时序表

读状态

输入

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=高

输出

LCD1602内部包含字符发生器CGROM,存储了不同的点阵字符图形,如表4.4所示,包括数字,英文字母的大小写字符,常用的标点符号和日文字符等,每个字符都有一个固定的代码,如英文字母“A”的代码为41H,数字“0”的代码为30H.

 

表4.4字符发生器地址表

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

××××0000

CGRAM

(1)

0

@

P

.

p

××××0001

(2)

1

A

Q

a

q

××××0010

(3)

'

2

B

R

b

r

××××0011

(4)

#

3

C

S

c

s

××××0100

(5)

4

D

T

d

t

××××0101

(6)

%

5

E

U

e

u

××××0110

(7)

&

6

F

V

f

v

××××0111

(8)

.

7

G

W

g

w

××××1000

(1)

8

H

X

h

x

××××1001

(2)

9

I

Y

i

y

××××1010

(3)

.

;

J

Z

j

z

××××1011

(4)

;

K

k

{

××××1100

(5)

.

<

L

l

|

××××1101

(6)

-

=

M

m

}

××××1110

(7)

.

>

N

n

××××1111

(8)

/

?

O

o

4.2.3LCD1602RAM地址映射图

控制器内部带有80B的RAM缓冲区,对应关系如表4.5所示。

表4.5RAM缓冲区

00

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

0F

10

....

27

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

50

....

67

当在图4.5中的00-0F.40-4F地址中的任一处写入显示数据时,液晶都可立即显示出来,当写入到10-27.50-67地址处时,必须通过移屏指令将他们移入到可显示区域方可正常显示。

4.2.41602LCD的电路连接

液晶5端为读/写选择端,因为我们不从液晶中读取数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地。

液晶6端为使能信号,是操作时必须的信号。

其电路如图4.3所示:

图4.31602的电路连接

4.3.1DS12C887概述

DS12C887具有DS12R885裸片,32.768HZ石英晶体和一个可充电电池三个部分。

时钟芯片DS12C887具有如下的特征:

(1)DS12C887里面自带一个锂电池,外部掉电时,内部信息还能保持10年的时间,保证不丢失数据。

(2)能够自动产生秒、分、时、天、星期、日、月、年等时间信息,并有闰年补偿功能。

其内部还增加了世纪寄存器,利用硬件电路解决了“千年”问题。

(3)具有二进制数码和BCD码两种表示时间的方法、具有日历和定时闹钟功能。

(4)一天内的时间记录具有12小时制和24小时制两种,12小时时钟模式中,具有PM和AM用来区分上午和下午。

同时可选用夏令时模式。

(5)有128个RAM单元与软件接口,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器14个作为字节时钟和控制寄存器,113字节通用RAM使用户使用。

(6)用户可对DS12C887进行编程以实现方波输出,并可对其内部中断通过软件进行屏蔽。

4.3.2DS12C887引脚功能

表4.6DS12C887引脚功能

引脚

符号

功能说明

1

MOT

模式选择引脚,接Vcc时,选择的是Motorola的总线时序;当接地或悬空,选择的是Intel总线时序

4-11

AD0-AD7

双向地址/数据总线

12

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

当前位置:首页 > 小学教育 > 数学

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

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