基于AT89C51单片机的电子时钟设计 - 图文

更新时间:2024-07-05 06:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

科学技术学院

SCIENCE & TECHNOLOGY COLLEGE OF

NANCHANG UNIVERSITY

《工 程 训 练》报 告

REPORT ON ENGINEERING TRAINING

题 目 基于AT89C51单片机的电子时钟设计

学科部、系:

专业班级: 学 号:

学生姓名:

指导教师: 起讫日期:

目 录

前言................................................................................................................................................... 2 第一章 基于AT89C51单片机的电子时钟设计的概述 ........................................................... 3 第二章 各硬件介绍 ....................................................................................................................... 4

2.1 AT89S51的引脚说明 ...................................................................................................... 4 2.2 发光二极管指示电路设计 ............................................................................................... 5 2.3 LCD1602简介 .................................................................................................................. 5 2.4 DS1302 简介 ..................................................................................................................... 6

2.4.1 引脚功能表及内部结构图 ................................................................................... 6 2.4.2 DS1302 的控制字节说明 ..................................................................................... 6 2.4.3 复位 ....................................................................................................................... 7 2.4.4 数据输入输出 ....................................................................................................... 7 2.4.5 DS1302 的寄存器 ................................................................................................. 7 2.5 DS1302 简介 ..................................................................................................................... 8

2.5.1.温度传感器DS18B20 ............................................................................................ 8 2.5.2 DS18B20时序 ............................................................................................ 11

第三章系统原理 ............................................................................................................................. 12

系统设计 ................................................................................................................................. 12 3.1 晶体振荡器电路 ............................................................................................................. 12 3.2分频器电路 ...................................................................................................................... 13 3.3 时间计数器电路 ............................................................................................................. 13 3.4 时钟电路 ......................................................................................................................... 13 3.5 复位电路

3.6复位电路的可靠性设计 .................................................................................................. 14 3.7 按键部分 ......................................................................................................................... 14 第四章PCB制作与性能测试分析 ............................................................................................... 16 第五章 总结 ................................................................................................................................. 17 参考文献 ......................................................................................................................................... 18

1

前言

电子时钟是实现对年,月,日,时,分,秒数字显示的计时装置,广泛用于个人家庭,车站, 码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的电子时钟精度高,功能易于扩展。可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用有着非常现实的意义。本设计就是数字时钟简单的扩展应用。

2

第一章 基于AT89C51单片机的电子时钟设计的概述

本设计以数字集成电路技术为基础,单片机技术为核心。软件设计采用模块化结构,C语言编程。系统通过LCD显示数据,可以显示日期(年、月、日、时、分、秒)以及温度。在内容安排上首先描述系统硬件工作原理,着重介绍了各硬件接口技术和各个接口模块的功能;其次,详细的阐述了程序的各个模块和实现过程。

3

第二章 各硬件介绍

2.1 AT89S51的引脚说明

AT89S51系列单片机中有PDIP,PLCC,TQFP多种封装形式。本设计采用的

是PDIP封装40管脚的单片机,各引脚如图2-2所示。

图9 AT89S51的PDIP封装引脚图

Fig.9 AT89S51

40个引脚中, 4组8位共32个I/O口,正电源和地线两根,外置石英振荡器的时钟线两根,现在对这些引脚的功能加以说明:

(1)Pin9:RESET/Vpd复位信号复用脚,当AT89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统开始复位。而RESET由高电平下降为低电平后,系统即从0000H地址单元开始执行程序。

(2)Pin29:PESN当访问外部程序存储器时,此脚输出负脉冲选通信号,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

(3)Pin30:ALE/PROG 地址锁存允许信号端。单片机上电后,ALE引脚不断向外输出正脉冲信号, ALE信号可以用作对外输出时钟或定时信号。

(4)Pin31:EA/Vpp程序存储器的内外部选通线,89S51单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

4

2.2 发光二极管指示电路设计

发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管, 在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。

它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样 是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N 区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能 量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。

设计中,我使用了1个发光二极管作为电源的指示。为了避免供给发光二极管的电流过大,使用1K的电阻进行限流。 2.3 LCD1602简介

图11 LCM1602

Fig.11 LCM1602

LCM1602采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RSRW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可读忙信号,当RS为高电平RW为低电平时可以写入数据.第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚

5

2.4 DS1302 简介

1 DS1302 的结构及工作原理

DS1302[1]是美国DALLAS 公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302

内部有一个31×8的用于临时性存放数据的RAM 寄存器。DS1302 是DS1202 的升级产品,与DS1202 兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

2.4.1 引脚功能表及内部结构图

DS1302 的引脚及内部结构如图1 所示, 引脚功能如表1 所示。

2.4.2 DS1302 的控制字节说明

DS1302 的控制字如图2 所示。

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302 中位6 如果为0,则表示存取日历时钟数据,为1 表示存取RAM数据;位5至位1 指示操作单元的

6

地址;最低有效位(位0)如为0 表示要进行写操作,为1 表示进行读操作,控制字节总是从最低位开始输出。

2.4.3 复位

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

2.4.4 数据输入输出

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

2.4.5 DS1302 的寄存器

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

7

操作,偶数为写操作;再一类为突发方式下的RAM 寄存器,此方式下可一次性读写所有的RAM 的31 个字节,命令控制字为FEH(写)、FFH(读)。

2.5 DS1302 简介

2.5.1.温度传感器DS18B20

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

TO-92封装的DS18B20的引脚排列见下图,其引脚功能描述见表1。

底视图)

DS18B20

表1 DS18B20详细引脚功能描述

序名称 引脚功能描述 号 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 DS18B20的性能特点如下: ●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能; ●无须外部器件;

●可通过数据线供电,电压范围为3.0~5.5V; ●零待机功耗;

●温度以9或12位数字; ●用户可定义报警设置;

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。

存储器与控制逻辑

I/O 64 位 8 温度传感器

图2 DS18B20内部结构

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

温度 LSB 温度 MSB TH用户字节1 TL用户字节2 配置寄存器 保留 保留 保留 CRC

..TMR1R01.1111.

图3 DS18B20字节定义

由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数

据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。

9

.

表1 DS18B20温度转换时间表 ..R1R000011011分辨率/位温度最大转向时间/ms993.7510187.51137512750.

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容

作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

表2 一部分温度对应值表 温度/℃ 二进制表示 十六进制表示 +125 0000 0111 1101 07D0H 0000 +85 0000 0101 0101 0550H 0000 +25.0625 0000 0001 1001 0191H 0000 10

0000 0000 1010 00A2H 0001 +0.5 0000 0000 0000 0008H 0010 0 0000 0000 0000 0000H 1000 -0.5 1111 1111 1111 FFF8H 0000 -10.125 1111 1111 0101 FF5EH 1110 -25.0625 1111 1110 0110 FE6FH 1111 -55 1111 1100 1001 FC90H 0000 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

..+10.125 VCCDS18B20DS18B20DS18B20单片机.VCC4.7KGNDGNDGND.

图4 DS18B20与单片机的接口电路

2.5.2

DS18B20时序

DS18B20的复位时序

DS18B20的读时序

11

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

DS18B20的写时序

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

第三章系统原理

系统设计

3.1 晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数

字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了

12

晶体 荡器电路。

图3 DS1302电路 Fig.3 ds1302 circuit

3.2分频器电路

分频器电路将高频方波信号经分频后得到1Hz的方波信号供秒计数器进行计数,分频器实际上也就是计数器。 3.3 时间计数器电路

时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器而根据设计要求,时个位和时十位计数器为12进制计数器。 3.4 时钟电路

内部时钟电路如图所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件通常石英晶体和电容组成的并联谐振回路,晶体振荡器选择12MHZ,电容采用30PF。

13

图4 时钟电路 Fig.4 Clock circuit 3.5 复位电路

影响单片机系统运行稳定性的因素可大体分为外因和内因两部分: (1)外因

射频干扰,它是以空间电磁场的形式传递在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰; 电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰 。 (2)内因

振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定 起振时间可由电路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。

3.6复位电路的可靠性设计

复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开 关或电源插头分-合过程中引起的抖动而影响复位。

图5 RC复位电路

Fig.5 RC Reset Circuit 3.7 按键部分

本设计总的用了四个按扭开关作为键盘,其中一个是复位键,另三个中的其中两个是调整时间增加、减少的键,第三个是切换年、月、日及时、分、秒的显

14

示状态并在所切换的显示状态下配合加减两个键调整时间。

图6 按键电路 Fig.6 Key circuit

15

第四章PCB制作与性能测试分析

16

第五章 总结

在这次的工程实训中,学会了用proteus对单片机电路进行模拟仿真,以及使用keil软件编辑C、汇编语言和把程序生成.hex文件,并且利用该可执行文件,单片机电路就可实现模拟测试了。比较难的可能是在Altium Designer画原理图时,对没有封装的元器件,要自己动手画,再就是在PCB板中的布线了,这些都不是很熟练,我也是今后需要加强学习的地方。 在这其中得到老师的指导及同学的帮助,很感谢他们。

17

参考文献

【1】 何立民,单片机系统设计【M】.北京:北京航天大学出版社,1993. 【2】 楼然笛,单片机开发【M】.北京:人民邮电出版社,1994.

【3】 付家才,单片机控制工程实践技术【M】.北京:化学工业出版社 2004.3. 【4】 李光才,单片机课程设计实力指导【M】.北京:北京航空航天大学出版社 2004. 【5】 朱定华,单片机原理机接口技术实验【M】.北京:北方交通大学出版社2002.11.

18

工程训练成绩评定表

专业: 班级: 学号: 姓名: 项目名称 设计任务与要求 基于AT89C51单片机的电子时钟设计 基本要求: 1、具备显示年、月、日、时、分、秒、星期功能。 2、具备对年、月、日、时、分、秒、星期进行校准的功能。 3、可以选择是否需要闹铃,并可以设置闹铃时间。 基本任务: 1、弄懂各个芯片的工作原理。 2、仔细清点元器件,并认真测试各元器件。 3、独立画出原理图,PCB板。 4、根据原理图编写程序。 5、对成品进行调试。 6、独立编写实训报告。 指导教师评语 建议成绩: 指导教师: 评定成绩: 负责人: 时间: 年 月 日

19

教研组评定意见

本文来源:https://www.bwwdw.com/article/9rq.html

Top