单片机数字时钟设计大学论文

  • 格式:doc
  • 大小:3.38 MB
  • 文档页数:22

课 程 设 计 (报 告)

课 程 设 计 题 目: 数字时钟

学 院 名 称: 电子与信息工程学院

专 业: 电气工程及其自动化

班 级:

姓 名: 学 号

指 导 教 师:

日 期: 2012.12.29~2013.01.11

单片机数字时钟课程设计

1

一.课程设计任务

1.用80C51设计一个数字时钟

2.可显示时、分、秒

3.按键实现时、分、秒人工校准

二.总体方案

本次课程设计选用通用的80C51芯片,显示单元为实验箱的液晶1602显示单元,选用DS1302时钟芯片,利用矩阵键盘进行调时。

1.80C51简介

虽然目前单片机的品种很多,但其中最具代表性的当属Intel公司的MCS-51单片机系列。MCS-51以其典型的结构、完善的总线、SFR的集中管理模式、位操作系统和面向控制功能的丰富的指令系统,为单片机的发展奠定了良好的基础。MCS-51系列的典型芯片是80C51(CHMOS型的8051)。为此,众多的厂商都介入了以80C51为代表的8位单片机的发展,如Philips、Siemens(Infineon)、Dallas、ATMEL等公司,我们把这些公司生产的与80C51兼容的单片机统称为80C51系列。特别是在近年来,80C51系列又有了许多发展,推出了一些新产品,主要是改善单片机的控制功能,如内部集成了高速I/O口、ADC、PWM、WDT等,以及低电压、微功耗、电磁兼容、串行扩展总线和控制网络总线性能等。

单片机内部结构图为如图所示 单片机数字时钟课程设计

2

80C51单片机管脚说明

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为80C51的一些特殊功能口,如下所示:

口管脚 备选功能

P3.0 RXD 串行输入口

P3.1 TXD 串行输出口

P3.2 /INT0 外部中断0

P3.3 /INT1 外部中断1

P3.4 T0 记时器0外部输入

P3.5 T1 记时器1外部输入

P3.6 /WR 外部数据存储器写选通

P3.7 /RD 外部数据存储器读选通

2.时钟芯片DS1302简介: 单片机数字时钟课程设计

3

DS1302[1]是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。时钟可工作在24小时格式或12小时(AM/PM)格式。 DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

2.1. DS1302引脚功能与内部结构

DS1302的引脚功能如表1所示,外形及内部结构如图1所示[2]:

引脚号 引脚名称 功能

1 VCC2 主电源

2、3 X1、X2 振荡源,外接32768Hz晶振

4 GND 地线

5 RST 复位/片选线

6 I/O 串行数据输入/输出端(双向)

7 SCLK 串行时钟输入端

8 VCC1 后备电源

表1 DS1302引脚功能表

图1 DS1302管脚图及内部结

2.2 DS1302的控制字DS1302的控制字节如图2所示:

7 6 5 4 3 2 1 0

1 RAM

CK A4 A3 A2 A1 A0 RAM

K 单片机数字时钟课程设计

4

图2 DS1302控制字节的含义控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

2.3 DS1302的复位引脚

通过把输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供了终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。

2.4 DS1302的数据输入输出

在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序如图3所示:

图3 数据读写时序

2.5 DS1302的寄存器

DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。 DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H--FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)

DS1302内部寄存器列表如表所示:

寄存器名称 命令字 取值范围 各位内容

写 读 7 6 5 4 3 2 1 0

秒寄存器 80H 81H 00-59 CH 10SEC SEC 765410765432101A4A3A2A1DATA I/O BYTE2DATA I/O BYTE1R/CA0R/WI/ORSTSCLK单片机数字时钟课程设计

5

分寄存器 82H 83H 00-59 0 10MIN MIN

小时寄存器 84H 85H 01-12或00-23 12/24 0 A HR HR

日期寄存器 86H 87H 01-28,29,30,31 0 0 10DATE DATE

月份寄存器 88H 89H 01-12 0 0 0 10M MONTH

周寄存器 8AH 8BH 01-07 0 0 0 0 0 DAY

年份寄存器 8CH 8DH 00-99 10YEAR YEAR

3.LCD1602液晶显示简介:

LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:

4.矩阵键盘

矩阵键盘如实验图所示,H1接地,L1、L2、L3、L4分别控制时钟的调时。其中L1为调设置键,L2为加键,L3为减键,L4为调时确定键。

三.硬件设计部分 单片机数字时钟课程设计

6

1. 硬件设计流程图:

2. 实验原理图:

四.软件设计部

1.软件设计流程图:

80C51

仿真单元

DS1302

时钟芯片

矩阵键盘

调时控制

液晶显示单元 单片机数字时钟课程设计

7

Y N

实验程序代码:

RW BIT P2.1

RS BIT P2.0

E BIT P2.7

SCLK BIT P0.1

SIO BIT P0.0

RST BIT P0.2

YH EQU 80H

EH EQU 0C0H

ORG 0000H

JMP MAIN

ORG 0040H

MAIN: MOV 30H,#00H ;30H~36H存放 时分秒日月星期年

MOV 31H,#00H

MOV 32H,#00H

MOV 33H,#01H

MOV 34H,#01H

MOV 35H,#02H

MOV 36H,#13H

MOV 37H,#00H ;37H存放 设置键按了几下 开始

液晶初始化

DS18B20初始化

DS1302初始化

液晶显示

检测按键 调整模块