基于51单片机的数字时钟设计报告.docx

上传人:b****4 文档编号:4230584 上传时间:2023-05-06 格式:DOCX 页数:54 大小:364.52KB
下载 相关 举报
基于51单片机的数字时钟设计报告.docx_第1页
第1页 / 共54页
基于51单片机的数字时钟设计报告.docx_第2页
第2页 / 共54页
基于51单片机的数字时钟设计报告.docx_第3页
第3页 / 共54页
基于51单片机的数字时钟设计报告.docx_第4页
第4页 / 共54页
基于51单片机的数字时钟设计报告.docx_第5页
第5页 / 共54页
基于51单片机的数字时钟设计报告.docx_第6页
第6页 / 共54页
基于51单片机的数字时钟设计报告.docx_第7页
第7页 / 共54页
基于51单片机的数字时钟设计报告.docx_第8页
第8页 / 共54页
基于51单片机的数字时钟设计报告.docx_第9页
第9页 / 共54页
基于51单片机的数字时钟设计报告.docx_第10页
第10页 / 共54页
基于51单片机的数字时钟设计报告.docx_第11页
第11页 / 共54页
基于51单片机的数字时钟设计报告.docx_第12页
第12页 / 共54页
基于51单片机的数字时钟设计报告.docx_第13页
第13页 / 共54页
基于51单片机的数字时钟设计报告.docx_第14页
第14页 / 共54页
基于51单片机的数字时钟设计报告.docx_第15页
第15页 / 共54页
基于51单片机的数字时钟设计报告.docx_第16页
第16页 / 共54页
基于51单片机的数字时钟设计报告.docx_第17页
第17页 / 共54页
基于51单片机的数字时钟设计报告.docx_第18页
第18页 / 共54页
基于51单片机的数字时钟设计报告.docx_第19页
第19页 / 共54页
基于51单片机的数字时钟设计报告.docx_第20页
第20页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的数字时钟设计报告.docx

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

基于51单片机的数字时钟设计报告.docx

基于51单片机的数字时钟设计报告

题目:

基于DS1302与单片机组成的数字时钟

学院:

电气与控制工程学院

专业班级:

自动化

学生姓名:

指导教师:

提交时间:

2013年1月9日

摘要3

1.系统方案设计3

1.1系统总体方案设计4

1.2主要模块方案选择和论证4

1.2.1单片机的选择4

1.2.2时间生成模块的选择4

1.2.3显示模块的选择4

1.2.4显示模块的选择4

1.2.5按键模块的设计4

2.硬件电路的设计5

2.1单片机系统电路的设计5

2.1.1AT89C52的介绍5

2.1.2功能概述6

2.2时钟芯片和按键电路的设计6

2.2.1DS1302的介绍6

2.2.2功能概述8

2.3LCD1602模块和蜂鸣器电路的设计9

2.3.1LCD1602的介绍9

2.3.2功能概述11

2.4DS18B20温度显示模块电路的设计12

2.4.1DS18B20的简介12

2.4.2功能概述13

3.软件设计13

3.1主程序设计14

3.2网状多级状态结构的按键处理14

4.系统调试、功能及使用说明16

4.1硬件调试16

4.2软件调试16

4.3系统功能16

4.4时间,日期的设置16

5.讨论及总结16

5.1出现问题16

5.2已解决问题17

5.3未解决为题17

5.4总结17

6.个人心得体会18

6.1王仲浩、胡婷婷、李三丽的心得体会、18

附录20

附录一系统总体原理图20

附录二系统程序清单21

附录三元件清单22

参考文献22

基于DS1302与单片机组成的数字时钟

摘要本文叙述了数字时钟的整个设计过程,包括硬件设计和软件设计,并重点讨论了模块软件设计和编程思想,并在本文末尾进行了讨论和总结,提出了改进的方面和改进的方法。

主要介绍了以AT89C52单片机为核心,控制实时时钟芯片DS1302,数字温度芯片DS18B20和液晶显示模块LCD1602,实现时间和星期的显示与调整,温度显示。

整个系统的软件设计在Keil环境下以C语言实现.完成的电子钟具有走时准确;掉电长时间后时间不需重新设置;功耗低,操作界面友好,操作简便;最大的特点是具有人性化的设计。

关键字数字时钟硬件设计软件设计AT89C52单片机人性化

AbstractThisarticlenarratedelectronclock'sentiredesignprocess,includingthehardwaredesignandthesoftwaredesign,anddiscussedthemodulesoftwaredesignandtheprogrammingthoughtwithemphasis,andhascarriedonthediscussionandthesummaryendofthisarticle,proposedtheimprovementaspectandtheimprovementmethod.ThispapermainlyintroducesthehardwareandsoftwaredesignofdigitalelectronicclockwhichismadeupoftheAT89S52MCU,DS1302clockchip,DS18B20TempraturechipandLCD1602module.Itcanaccuratelypresentandadjusttheinformationofthetimeandtemprature.Completestheelectronclockhasisinluckaccurately;Afterpowerfailurethelongtime,thetimecannotthereset;Thepowerlossislow,theoperationcontactsurfaceisfriendly,theoperationissimple;Themostmajorcharacteristichastheuser-friendlydesign.

KeywordDigitalclockHardwaredesignSoftwaredesignAT89C52MCUUser-friendly

1.系统方案设计

1.1系统总体方案设计

本课设题目要求为:

1.具有年、月、日、时、分、秒、星期、温度显示功能;

2.具备年、月、日、时、分、秒、星期较准功能;

3.具备测量环境温度功能。

本方案采用单片机AT89C52作为控制单元,与数字温度芯片DS18B20接口获取温度数据,与实时时钟芯片DS1302接口获取时间/日历数据,通过与液晶模块LCD1602接口显示温度、时间和日历,调整时间按键采用简单的单个I/O口键盘,蜂鸣器发声。

系统整体方案图如下:

1.2主要模块方案选择和论证

1.2.1单片机的选择

单片机有多种方案的选择,如Philips、Winbond、Intel、Siemens、或者STC等,但51单片机价格便宜,使用方便,操作简单。

针对题目的要求,89C52八位单片机已足够胜任,采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89S52作为主控制系统.故本设计采用89C52做处理器控制模块。

1.2.2时间生成模块的选择

时间生成可采用52单片的定时中断实现,它的优点:

软硬件简单,操作简便,缺点:

精确度低,掉电不保存。

于是选择常用的时钟芯片DS1302来实现时间的生成。

DS1302是低功耗实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与MCU进行同步通信,可提供秒,分,时,日,星期,月,年,采用双电源供电(主电源和备用电源),工作电压宽(2.5V~5.5V),不仅时间精确,还可以掉电保存时间日期,静态RAM可用来保存重要数据、标记。

1.2.3显示模块的选择

显示模块是显示时间等信息和人机交流的设备,好的人机操作界面应该是友好的,显示的信息足够丰富。

显示模块可用8位数码管显示,但是数码管显示信息量少,显示不友好,硬件相对复杂,在软件设计中不断扫描显示,占用CPU时间,效率低。

液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。

因此本方案选用LCD1602液晶显示模块。

LCD1602液晶显示模块可显示16x2个字符,显示信息丰富,界面友好,硬件接口简单,驱动程序简单,是理想的显示器件。

1.2.4温度模块的选择

作为一个完整的数字时钟,温度的显示是必要的。

早期的模拟温度传感器外形复杂,如热敏电阻是开发早、种类多、发展较成熟的敏感元器件.热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化.通过一定的电路可以将周围环境的温度变化转化成电压的变化,通过AD转化器件将信号传输给单片机进行分析,从而测出当前环境温度,但误差大,不稳定,对环境要求较高。

而由美国DALLAS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即与单片机接口仅需占用一个I/O端口,无需任何外部元件直接将环境温度转化成数字信号,以数字码方式串行输出,大大地简化了传感器与单片机的接口。

1.2.5按键的设计

由于电子钟功能的设置简单,只需4个按钮,故不采用矩阵键盘,而是采用简单的单个I/O口键盘,每个按钮占用一个I/O口,程序简单,并用蜂鸣器发声,硬件连接也很简单。

1.3电路设计最终方案决定

综上各方案所述,对此次作品的方案选定:

采用AT89C52单片机作为主控制系统;采用DS1302作为时钟芯片;采用1602LCD液晶作为显示器件,温度数据由单片机从数字温度芯片DS18B20获取,用四个独立按键来实现时间和日期的调整。

2.硬件电路的设计

硬件电路设计是该系统设计的第一步。

主控芯片采用美国ATMEL公司的AT89C52系列单片机,时钟芯片为DS1302,温度数据由单片机从数字温度芯片DS18B20获取,显示器件采用1602液晶显示模块。

在1602液晶模块的第一行显示年、月、日,星期。

第二行显示时、分、秒,温度。

通过对液晶模块的地址设置使数字显示在屏幕的正中央已达到美观的效果。

四个按键S1、S2、S3、S4分别与单片机的P1.4、P1.5、P1.6、P1.7四个I/O口线相连,S1为加1键,S2为减1键,S3为系统设置键,S4为确定键。

当第一次上电时,系统日期初始化为“2000-01-01”,时间初始化为“00:

00:

00”。

通过S1、S2、S3、S4可以设置成当前时间,当时间设置完成后,系统可进入正常走时状态。

在正常走时状态下,随时可以通过S1、S2、S3、S4四个按键调整时间和日期。

2.1单片机系统电路的设计

2.1.1AT89C52的介绍

AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

(1)兼容MCS51指令系统,8k可反复擦写(>1000次)FlashROM;

(2)32个双向I/O口,256*8bit内部RAM;

(3)3个16位可编程定时/计数器中断,时钟频率0-24MHz;

(4)2个串行中断,可编程UART串行通道;

(5)2个外部中断源,共8个中断源;

(6)2个读写中断口线,3级加密位;

(7)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。

2.1.2功能概述

AT89C52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

如图,系统主控电路设计如下:

图2主控电路模块

2.2时钟芯片和按键电路的设计

2.2.1DS1302的简介

DS1302芯片是美国DALLAS公司推出的低功耗实时时钟芯片,它工作电压为2.5V~5.5V,采用串行通信方式,只需3条线便可以和单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

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

可增加系统的RAM。

DS1302的时钟校准比较容易,若采用专用的晶体振荡器,几乎无须调整即可以达到国家要求的时钟误差标准。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力,这样避免了由于突然停电而造成时钟停止,因此它非常适合于长时间无人职守的监测控制系统或需经常记录某些具有特殊意义的数据及对应时间的场合。

DS1302提供秒、分、时、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,并可通过AM/PM指示决定采用24或12小时格式。

(1)内部结构及引脚功能

DS1302内部主要包括实时时钟(realtimeclock)、输入移位寄存器(inputshiftregisters)、31字节静态RAM、电源控制部分(powercontrol)、命令控制逻辑(commandandcontrollogic)、振荡器和分频器(oscillatoranddivider)等部分。

DS1302具有8脚DIP引脚排列如图3所示:

图3DS1302引脚排列

Vcc1:

后备电源,在主电源关闭的情况下,也能保持时钟的连续运行;当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

Vcc2:

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

X1、X2:

振荡源,外接32.768kHz晶振。

GND:

接地端

SCLK:

串行时钟输入端

I/O:

串行数据输入输出端(双向)。

RST:

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

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

(2)工作原理

DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。

数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址。

命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输入数据。

时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下最多可达8+248。

(3)控制字节及寄存器

DS1302的一次数据传送是从发送控制字节开始的。

控制字节的最高有效位(位7)必须是逻辑1,如果该位为0,则无法把数据写入到DS1302中;位6表示要读写的数据类型,为0表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示要操作单元的地址;最低有效位(位0)表示命令类型,为0表示要进行写操作,为1表示要进行读操作。

控制字节总是从最低位开始输出。

对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟有关,存放的数据位为BCD码形式。

 

表1DS1302的日历时钟寄存器及控制字

此外,还有控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。

时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。

DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、(读)。

(4)数据的传送

向DS1302写入数据时,数据在控制字节输入后的下一个SCLK周期的上升沿被写入,多余的SCLK将被忽略。

数据写入时从低位(位0)开始;同样,从DS1302读取数据时,数据在紧跟控制字节后的下一个SCLK的下降沿读出,读出数据时也是从低位(0位)到高位(7位),只要RST保持高电平,额外的SCLK将导致数据字节的持续读出,这个特性用于实现该芯片的突发读模式。

对DS1302的每一次读写需16个时钟脉冲,前8个脉冲输入操作地址和读写命令,后8个脉冲写入或读出数据。

2.2.2功能概述

(1)按键与单片机的接线图

四个按键S1、S2、S3、S4分别与单片机的P1.4、P1.5、P1.6、P1.7四个I/O口线相连,S1为加1键,S2为减1键,S3为系统设置键,S4为确定键。

当第一次上电时,系统日期初始化为“2000-01-01”,时间初始化为“00:

00:

00”。

通过S1、S2、S3、S4可以设置成当前时间,当时间设置完成后,系统可进入正常走时状态。

在正常走时状态下,随时可以通过S1、S2、S3、S4四个按键调整时间和日期。

图4按键模块

(2)DS1302与单片机接线图

DS1302是低功耗实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与MCU进行同步通信,可提供秒,分,时,日,星期,月,年,采用双电源供电(主电源和备用电源),工作电压宽(2.5V~5.5V),不仅时间精确,还可以掉电保存时间日期,静态RAM可用来保存重要数据、标记。

图5DS1302时钟芯片模块

2.3LCD1602模块和蜂鸣器电路的设计

2.3.1LCD1602字符液晶介绍

 

工业字符型液晶,1602是指显示的内容为16*2,即能够同时显示两行,每行16个字符。

常见的1602字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。

本课题所用1602液晶模块,显示屏是绿色背光黑色字体。

(1)1602引脚介绍

编号

符号

引脚说明

编号

符号

引脚说明

1

GND

电源地

2

VCC

电源正极

3

VO

液晶显示对比度调节端

4

RS

数据/命令选择端

5

R/W

读写选择

6

E

使能信号

7

D0

数据口

8

D1

数据口

9

D2

数据口

10

D3

数据口

11

D4

数据口

12

D5

数据口

13

D6

数据口

14

D7

数据口

15

BLA

背光电源正

16

BLK

背光电源负

表21602字符液晶引脚说明

各个引脚具体功能说明:

第1脚:

GND为地电源。

第2脚:

VCC接5V正电源。

第3脚:

VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用一个1K的电位器调整对比度。

第4脚:

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

第5脚:

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

第6脚:

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

第7~14脚:

DB0~DB7为8位双向数据线。

第15~16脚:

背光灯电源。

(2)1602字符液晶使用方法

操作

输入

输出

读状态

RS=L,RW=H,E=H

D0~D7=状态字

写指令

RS=L,RW=L,D0~D7=指令码,E=高脉冲

读数据

RS=H,RW=H,E=H

D0~D7=数据

写数据

RS=H,RW=L,D0~D7=数据,E=高脉冲

表3基本操作时序

RAM

1602液晶控制器芯片内部带有80个8位的RAM缓冲区,其地址和屏幕的对应关系如图7示

 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”.

高位

低位

0000

0010

0011

0100

0101

0110

0111

1010

1011

1100

1101

1110

1111

XXXX0000

0

@

P

\

p

-

α

P

XXXX0001

!

1

A

Q

a

q

ä

q

XXXX0010

2

B

R

b

r

β

θ

XXXX0011

#

3

C

S

c

s

ε

XXXX0100

$

4

D

T

d

t

\

μ

XXXX0101

%

5

E

U

e

u

σ

o

XXXX0110

&

6

F

V

f

v

ρ

XXXX0111

7

G

W

g

w

ζ

XXXX1000

8

H

X

h

x

f

X

XXXX1001

9

I

Y

i

y

-1

y

XXXX1010

*

J

Z

j

z

ј

XXXX1011

+

K

[

k

{

ҳ

XXXX1100

<

L

¥

l

|

Π

XXXX1101

--

=

M

]

m

}

ŧ

÷

XXXX1110

>

N

^

n

ñ

XXXX1111

(8)

/

?

O

-

o

ö

表41602字符液晶字库

2.3.2功能概述

(1)LCD1602与单片机接线图

图6LCD1602显示模块

 

(2)蜂鸣器与单片机接线图

图7蜂鸣器模块

2.4温度芯片DS18B20简介

温度数据由单片机从数字温度芯片DS18B20获取。

DS18B20的通信方式为单线总线方式(详见美国DSLLAS公司关于该芯片的数据手册),本系统中以单片机模拟单线总线方式实现与其接口。

单片机以字节为单位对其进行读写操作,读写一个字节分成8个连续的位读写时隙实现。

单片机对DS18B20的操作需遵循以下步骤:

2.4.1DS18B20简介

(1)复位,即单片机发出复位脉冲(将总线从高电平拉到低电平并保持480微秒到960微秒,然后释放),等待接收DS18B20的存在脉冲(DS18B20将总线从高电平拉低,保持60微秒到240微秒)。

(2)发送ROM操作指令,即读ROM(33H)、匹配ROM(55H)、忽略ROM(CCH)和搜素ROM(F0H)其中之一。

(3)发送存储器操作指令,即读便笺存储器(BEH)、写便笺存储器(4EH)、复制便笺存储器(18H)、温度转换(44H)、回写E2PROM的值到便笺存储器(B8H)和读电源供给(B4H)其中之一。

(4)处理或数据操作。

要注意,DS18B20进行一次12位的温度转换需要750毫秒,如果温度转换没有结束就去读温度数据,将不能得到正确的温度值,且会终止正在进行的温度转换。

所以,必须等待足够的时间,让温度转换完成。

本系统中,重复Sh

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2