基于单片机的GPS时间校准设计.docx

上传人:b****3 文档编号:27407875 上传时间:2023-06-30 格式:DOCX 页数:74 大小:975.05KB
下载 相关 举报
基于单片机的GPS时间校准设计.docx_第1页
第1页 / 共74页
基于单片机的GPS时间校准设计.docx_第2页
第2页 / 共74页
基于单片机的GPS时间校准设计.docx_第3页
第3页 / 共74页
基于单片机的GPS时间校准设计.docx_第4页
第4页 / 共74页
基于单片机的GPS时间校准设计.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

基于单片机的GPS时间校准设计.docx

《基于单片机的GPS时间校准设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的GPS时间校准设计.docx(74页珍藏版)》请在冰豆网上搜索。

基于单片机的GPS时间校准设计.docx

基于单片机的GPS时间校准设计

[请输入学校名称]

[请输入专业]

基于单片机的GPS时间校准设计

姓名:

[请输入姓名]学号:

[请输入学号]指导教师:

[请输入指导教师]

2017年4月21日

摘要:

3

Abstract4

第一章概述5

1.1实时时钟研究的背景及意义5

1.2论文主要研究内容5

1.2.1系统设计实现的目标5

1.2.2系统的总体设计5

第二章硬件电路设计7

2.1单片机控制部分7

2.2DS1302时钟芯片部分10

2.3LCD1602液晶显示部分12

2.5.21602引脚功能说明12

2.5.31602LCD的指令说明及时序13

2.5.41602LCD的RAM地址映射及标准字库表14

2.5.51602LCD的一般初始化(复位)过程16

2.4.61602LCD的电路连接16

2.4GPS模块VK2828U7G5LF部分16

第三章软件部分设计21

3.1按键程序流程图23

结束语32

致谢词33

参考文献34

附录35

硬件原理图与PCB图35

源程序:

36

摘要:

本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。

本设计由数据显示模块、GPS模块、时间处理模块和按键输入模块四个模块组成。

系统以STC89C52单片机为控制器,以DS1302时钟日历芯片DS1302记录日历和时间,它

可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。

GPS模块采用

了VK2828U7G5LF万年历采用直观的数字显示,数据显示采用1602液晶显示模块,可

以在LCD1602上同时显示年、月、日、周日、时、分、秒,和GPS模块的工作模式。

万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键字:

单片机,时钟芯片,温度传感器,1602液晶显示器

design

calendar

crystal

Abstract

ThispaperintroducesthehardwarestructureoftheelectroniccalendarbasedonSTC89C52single-chipmicrocomputerandthehardwareandsoftwaremethod.ThisdesignbythedSTCadisplaymodule,GPSmodule,timeprocessingmoduleandkeyinputmoduleoffourmodules.SystemwithSTC89C52single-chipmicrocomputerasthecontroller,withDS1302clockchipDS1302calendarandtime,itcanbeforyears,months,days,hours,minutes,secondstime,alsohasaleapyearcompensSTCionandother.

Keywords:

singlechip,theclockchip,temperSTCuresensor,1602liquiddisplay

第一章概述

1.1实时时钟研究的背景及意义

在现实我们生活中每个人都可能有自己的时钟,光阴在永不停息的流逝,有了时钟人们就能随着时间有计划的过着每一天。

然而现在绝大部分的时钟有的需要不断地跟换电池,有些时钟需要外接电源,如果一旦电池没电或者外接电源无法供电,时钟就会停止计时了。

而美国DALLAS公司的新型时钟日历芯片DS1302就能解决这一问题。

该器件能提供实时时钟

(RTC/日历、定时闹钟。

少于31天的月份,月末日期可自动调整,其中包括闰年补偿。

该器件还可以工作于24小时货代/PM指示的12小时格式。

一个精密的温度补偿电路用来监视Vcc的状态。

还有就是一旦时间数据出现错误,我们总是手动的进行调整时间数据,比较麻烦,那么,一款不用手动调整,自动校准的实时时钟势必在行。

本时钟还具有环保、走时无噪音、低功耗等非实时时钟不具有的功能。

该实时时钟不但可以作为家用,而且更可以在公共场合使用,如车站、码头、商场等场所。

1.2论文主要研究内容

1.2.1系统设计实现的目标

本文是以实时时钟芯片DS1302和STC89C5单片机为主要研究对象,着重进行51单片机控制系统的设计研究和如何读取DS1302内部时钟信息的研究。

以及运用GP模块进行时间数据与卫星的自动同步。

主要内容包括:

1.年月日星期时分秒显示;

2.手动年月日星期时分秒调整;

3.自动年月日星期时分秒调整;

1.2.2系统的总体设计

采用STC89C52乍为主控单片机,时钟模块选用DS1302乍为时钟芯片,温度模块选用

DS18B20乍为温度传感器,显示模块选用LCD1602设置部分选用按键电路。

STC89C5与MCS-5单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:

OHz〜33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定

时器/计数器八个中断源、全双工UAR串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。

DS1302实时时钟芯片功能丰富,可以用来直接代替IBMPC上的时钟日历芯片DS12887,

同时,它的管脚也和MC146818BDS12887相兼容。

由于DS1302能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”

问题;DS130冲自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于

一天内的时间记录,有12小时制和24小时制两种模式。

用户还可对DS1302进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。

GPSI块就是集成了RF射频芯片、基带芯片和核心CPU并加上相关外围电路而组成的一个集成电路。

目前GP鴻块的GPS芯片大部分还是采用全球市占率第一的SiRFIII系列为主。

由于GPSI块采用的芯片组不一样,性能和价格也有区别,采用SIRF三代芯片组的GP模块性

能最优,价格也要比采用MT或者MSTA等GPS芯片组的贵很多。

第二章硬件电路设计

本次设计主要有单片机主控部分、DS1302寸钟芯片部分、LCD160液晶显示部分、GP模块、按键输入部分。

整体硬件框图如下:

本系统以STC89C52单片机为核心,本系统选用11.0592MHZ的晶振,,使得单片机有

合理的运行速度。

起振电容30pF对振荡器的频率高低、振荡器的稳定性和起振的快速性影响较合适,复位电路为按键高电平复位。

下面简单的介绍一下单片机控制部分、DS1302部分、LCD160部分以及GPS

模块。

2.1单片机控制部分

STC89C52是一个低功耗,高性能CMOS8位单片机,片内含8k

ByteslSP(ln-systemprogrammable的可反复擦写1000次的Flash只读程序存储器,

器件采用STC公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的STC89C5刑为许多嵌入式控制应用系统提供高性价比的解决方案。

STC89C5具有如下特点:

40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。

另外,STC89C5酣降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直

到下一个中断或硬件复位为止

STC89C5共有四个8位的并行I/O口:

P0P1、P2、P3端口,对应的引脚分别是P0.0〜P0.7,P1.0〜P1.7,P2.0〜P2.7,P3.0〜P3.7,共32根I/O线。

每根线可以单独用作输入或输出。

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模

式下,P0不具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字

节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,pl输出缓

冲器能驱动4个TTL逻辑电平。

对P1端口写“1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入

(P1.1/T2EX)。

在flash编程和校验时,P1口接收低8位地址字节。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲

器能驱动4个TTL逻辑电平。

对P2端口写“1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地

址读取外部数据存储器时,P2口送出高八位地址。

在这种应用中,P2口使

用很强的内部上拉发送1。

在使用8位地址访问外部数据存储器时,P2口

输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓

冲器能驱动4个TTL逻辑电平。

对P3端口写“1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

P3口亦作为STC89C5特殊功能使用,在

flash编程和校验时,P3口也接收一些控制信号。

单片机的引脚图如图3.3

所示。

T2/P1.0

i

40

vcc

二]P0.O/ADO

T2N/P1.1

2

Pt£

3

g1/AD1

PL3

4

37

PO.3/AD2

Pl.4

S

36

PH3/A&3

Pl.5

e

35

P0.4/AO4

Pl.6

7

PO.5/AD5

Pl.7

33

F0.

RST

3?

FQ.ZMDT

RKD/P3.0

10

31

EA

TKD/P3.1

IHT0/P3,2

11

12

30

29

ALE/PROGFSBN

IMT1/P3-3

13

2宮

F2.7/A16

TQ/F3.4

14

27

T1/P3-5

L

35

26

F2.5/A13

WPS.6

16

25

1P2.4M12

RD/P3.7匚

17

24

IFX3M11

XTAL2

23

P2.2M10

XTAL1

19

22

F2.1/A9

VS?

20

21

□P2.0/A»

图3.3STC89C52单片机引脚图

单片机最小系统,是指用最少的元件与单片机组成的可以工作的系统。

52单片机来说,最小系统一般应该包括:

单片机、晶振电路、复位电路。

单片机接口电路主要用来连接计算机和其他外部设备,各功能模块及原理如下:

复位电路:

单片机最小系统复位电路的极性电容C3的大小直接影响单片机

的复位时间,一般采用10-30^F51单片机最小系统容值越大需要的复位时间越短。

单片机工作之后,只要在RST引线上加载10ms以上的高电平,单片机就能有效地复位。

CS-51单片机通常采用自动复位和按键复位两种方式。

这里采用按键复位和上电复位两种电路结合。

晶振电路:

典型的晶振取11.0592MHZ或者12MHZ,晶振越大,贝U单片机的处理速度越快,考虑到本次设计的通信问题,采用了11.0592MHZ晶振。

单片机的最小起振电容C1,C2一般采用15-33pF,并且电容离晶振越近越好。

单片机最小系统的设计电路如图3.4所示。

图3.4单片机最小系统的设计电路

2.2DS1302时钟芯片部分

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V〜5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31X8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST俞入驱动置高电平来启动所有的数据传送。

RST俞入有两种功

能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST

提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送

被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc>2.5V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入输出端(双向),。

SCLK始终是输入端。

DS1302的引脚图如图5.4所示:

甘CC2匚

~~

18

3郢OCT

XI匸

27|

□gCLK

X2匚

36

JI/O

gndE

45

□RST

图5.4

DS1302

引脚图

调试中问题说明:

DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7必须为逻辑1,如果D7=Q则禁止写DS1302即写保护;

D6=0,指定时钟数据,D6=1,指定RAM数据;D5-D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。

在DS1302的时钟日历或RAMt行数据传送时,DS1302必须首先发送命令字节。

若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。

DS1302与RAM!

关的寄存器分为两类:

一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H-FDH其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAh寄存器,在此方式下可一次性读、写所有的RAM勺31个字节。

要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。

虽然DS130在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。

可以用老式电脑主板上的3.6V充电电池。

如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。

100卩F就可以保证1小时的正常走时。

DS130在第一次加电后,必须进行初始化操作。

初始化后就可以按正常方法调整时间。

原理图如图3-9所示:

实吋时钟111路

(ND

2.3LCD1602液晶显示部分

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本设计采用16列

*2行的字符型LCD1602带背光的液晶显示屏。

1602LCE主要技术参数:

1.显示容量:

16X2个字符

2.芯片工作电压45—5.5V

3.工作电流:

2.0mA(5.0V)

4.模块最佳工作电压:

5.0V

5.字符尺寸:

2.95X4.35(WXH)mm

2.3.21602引脚功能说明

各引脚接口说明如表所示:

表2-1

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

表2-1:

引脚接口说明:

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

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

度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当R醐R/W共同为

低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7〜14脚:

DO〜D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

2331602LCD的指令说明及时序

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

表2-2

表2-2字符控制命令说明:

(说明:

1为高

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

电平、0为低电平)指令1:

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

指令2:

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

S:

屏幕上所有

指令3:

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

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

文字是否左移或者右移。

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

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显

示C:

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

控制光标是

否闪烁,高电平闪烁,低电平不闪烁。

指令5:

光标或显示移位S/C:

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

指令6:

功能设置命令DL:

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

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

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

指令7:

字符发生器RAMfe址设置。

指令&DDRA地址设置。

指令9:

读忙信号和光标地址BF:

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

指令10:

写数据。

指令11:

读数据。

芯片时序表如下:

读状态

输入

RS=L,

R/W=HE=H

输出

D0-D7=犬态字

写指令

输入

RS=L

R/W=L,DO—。

7=指令码,E镐脉冲

输出

读数据

输入

RS=H

R/W=H,E=H

输出

D0—。

7=数据

写数据

输入

RS=H

R/W=L,DO—D7=数据,E镐脉冲

输出

表2-3

基本操作时序表

读写操作时序如图2-7和2-8所示:

 

2.3.41602LCD的RA地址映射及标准字库表

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模

块在哪里显示字符,图2-9是1602的内部显示地址。

LCD

16TX2|t

00

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

OF

10

27

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

50

67

图2-9液晶内部显示地址

例如第二行第一个字符的地址是40H那么是否直接写入40H就可以将光标定位在第二行

第一个字符的位置呢?

这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实

际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

1602液晶模块内部的字符发生存储器(CGRQM已经存储了160个不同的点阵字符图形,如图

10-58所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),

显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

hF

-ciftia

aaneiocitfti

□11*3

di门

llMHi

101Ql

11M

■1frl

1114

1111

MKirsgQODQ

0

aiP]

F-

■■

F

1

n

1口両m

a

T

手J

■■a

q

11

2BIRIb

r

r

Y

e

三.

J

r?

nrT:

:

s

□ya

零4

DlTId

£

T

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

当前位置:首页 > 高等教育 > 文学

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

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