单片机实时日历时钟设计.doc_第1页
单片机实时日历时钟设计.doc_第2页
单片机实时日历时钟设计.doc_第3页
单片机实时日历时钟设计.doc_第4页
单片机实时日历时钟设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录摘要2一、设计目的:4二、设计内容及要求4三、绪 论43.1 单片机简介43.2 实时日历时钟介绍4四、AT89S51单片机的硬件系统54.1 AT89S51单片机的特性54.2 AT89S51 单片机的封装54.3 存储空间5五、实时时钟日历的基本原理6六、主要元件介绍76.1、AT89C52芯片76.2、DS130286.3、LED显示器10七、流程图11八、程序设计12九、电路图及其显示效果18十、 心得体会19参考文献20摘要Inter公司于1980年推出的MCS-51单片机,具有业界公认的经典结构,由于众多知名半导体厂商的积极参与和不断的创新,它已经发展成为拥有广泛产品型号的80C51单片机家族。本文设计以AT89S51芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的实时日历时钟,它由5V直流电源供电。在硬件方面,除了CPU外,使用两个六显七段LED数码管来进行显示,LED采用的是动态扫描显示,使用DS1302芯片进行驱动。通过LED能够比较准确显示秒、分、时、天、月、年。三个简单的按键实现对时间的调整。软件方面采用汇编语言编程。整个电子钟系统能完成时间的显示、调时和复位等功能。 关键词:单片机技术,AT89S51,液晶驱动, DS1302 Abstract Inter company launched in 1980, MCS-51 microcontroller, with the classic structure of the industry recognized, as many well-known semiconductor companies active participation and constant innovation, it has developed into a wide range of product models 80C51 microcontroller family. This design AT89S51 chip as the core, supplemented by the necessary peripheral circuits, a simple, functional and real-time calendar clock, which consists of 5V DC power supply. On the hardware side, in addition to CPU, using two six seven-segment LED digital tube were to be displayed, LED uses a dynamic scan showed that drivers using the DS1302 chip. Through the LED can accurately display seconds, minutes, hours, days, months, years. Three simple buttons to adjust the time to achieve. Software in assembly language programming. The completion time clock system can display, and reset when the transfer functions.Keywords: microcontroller technology, AT89S51, LCD driver, DS1302一、设计目的:(1)掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、测试方法;(2)进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;利用软件设计程序仿真运行(3)学习使用仿真软件做线路图,提高电路布局布线及检查和排除故障的能力二、设计内容及要求利用DS1302实现实时年月日时分秒,用数码管显示,并用proteus实现仿真效果。三、绪 论3.1 单片机简介单片机的全称是单片微型计算机(Single Chip Microcomputer)。为了使用方便,它把组成计算机的主要功能部件:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM、EPROM、E2PROM或FLASH)、定时/计数器和各种输入/输出接口电路等都集成在一块半导体芯片上,构成了一个完整的计算机系统。与通用的计算机不同,单片机的指令功能是按照工业控制的要求设计,因此它又被称为微控制器(Microcontroller)。MCS51系列1单片机是美国Intel公司于1980年推出的一种8位单片机系列。该系列的基本型产品是8051、8031和8751。这3种产品之间的区别只是在片内程序存储器方面。8051的片内程序存储器(ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;8031片内没有程序存储器;8751内部包含有用作程序存储器4KB的EPROM。由于8051的编程需要制造商的支持,而8751的价格昂贵,因此8031获得了更为广泛的使用。MCS51系列单片机优异的性能/价格比使得它从面世以来就获得用户的认可。Intel公司把这种单片机的内核,即8051内核,以出售或互换专利的方式授权给一些公司,如Atmel、Philips、ADI等。这些公司的这类产品也被称为8051兼容芯片,这些8051兼容芯片在原来的基础上增加了许多特性。本文应用电路中采用了Atmel公司的AT89S51芯片,它与MCS51单片机指令兼容,同时它的内部包含用作程序存储器4KB的基于FLASH技术的只读存储器。采用这款芯片既克服了采用8031需要添加外部程序存储器导致电路复杂的缺点,又克服了采用8751导致电路制作成本高的缺点。3.2 实时日历时钟介绍 本时钟是基于AT89S51芯片为核心,使用DS1302芯片进行驱动,通过LED能够比较准确显示年、月、日、时、分、秒的数码系统。我们知道,随着经济社会的发展,人们的生活节律越来越紧张,为了合理安排时间的利用,所以,拥有一款能够准确显示时间又物美价廉的时钟成了不二的选择。本系统采用三个简单的按键实现对时间的调整,软件方面采用汇编语言编程,通过proteus软件仿真实现整个电子钟系统对时间的显示、调时和复位等功能。四、AT89S51单片机的硬件系统4.1 AT89S51单片机的特性Atmel公司的AT89S51芯片具有以下特性:(1) 指令集和芯片引脚与Intel公司的8051兼容;(2) 4KB片内在系统可编程FlAsh程序存储器;(3) 时钟频率为033MHz;(4) 128字节片内随机读写存储器(RAM);(5) 32个可编程输入/输出引脚;(6) 2个16位定时/计数器;(7) 6个中断源,2级优先级;(8) 全双工串行通信接口;(9) 监视定时器;(10) 2个数据指针。4.2 AT89S51 单片机的封装AT89S51单片机具有多种封装形式,包括PDIP40、PDIP42、PLCC44和TQFP44。最适合学校实验室使用的是PDIP40封装形式,它的外形如图2.1所示。PDIP40封装形式的单片机芯片可以很方便地使用面包板来组成应用电路。4.3 存储空间AT89S51单片机的程序存储空间和数据存储空间是分离的,每种存储空间的寻址范围都是64KB。上述存储空间在物理上可以被映射到4个区域:片内程序存储器和片外程序存储器,片内数据存储器和片外数据存储器。存储空间的映射图如图2.2所示。当存储空间映射为外部存储器时,包括程序空间和数据空间,AT89S51单片机P0口的8个引脚,从P0.0(AD0)到P0.7(AD7)(引脚从39到32),以时分方式被用作数据总线和地址总线的低8位;P2口的8个引脚,从P2.0(A8)到P2.7(A15)(引脚从21到28),被用作地址总线的高8位。由于对外部程序存储器和外部数据存储器的访问都是通过P0口和P2口实现,为了区分它们,外部程序存储器由引脚(引脚29)的输出信号控制;外部数据存储器的写或读操作分别由引脚P3.6(,引脚16)和引脚P3.7(,引脚17)输出信号控制。图2.1 AT89S51单片机PDIP40封装外形图图2.2 AT89S51单片机的存储器映射图五、实时时钟日历的基本原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且 将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指 定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时 输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。DS1302的寄存器和控制命令 对 DS1302的操作就是对其内部寄存器的操作,DS1302内部有12个寄存器,其中有7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。此外,DS1302还有年份寄存器、 控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可 一次性顺序读写除充电寄存器以外的寄存器。 DS1302内部的 RAM 分为两类,一类是单个 RAM 单元,共31个,每个单元为一个8位 的字节,其命令控制字为 COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方 式下的 RAM,此方式下可一次性读写所有的 RAM 的31个字节,命令控制字为 FEH(写)、 FFH(读)。 我们现在已经知道了控制寄存器和 RAM 的逻辑地址,接着就需要知道如何通过外部接 口来访问这些资源。单片机是通过简单的同步串行通讯与 DS1302通讯的,每次通讯都必须 由单片机发起,无论是读还是写操作,单片机都必须先向 DS1302写入一个命令帧,这个帧 的格式如表1所示,最高位 BIT7固定为1,BIT6决定操作是针对 RAM 还是时钟寄存器,接 着的5个 BIT 是 RAM 或时钟寄存器在 DS1302的内部地址,最后一个 BIT 表示这次操作是读 操作抑或是写操作。 物理上,DS1302的通讯接口由3个口线组成,即 RST,SCLK,I/O。其中 RST 从低电 平变成高电平启动一次数据传输过程,SCLK 是时钟线,I/O 是数据线。具体的读写时序参 考图5,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且 一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手 册里没有明确说明),如果不是特别确定,则把程序设计成这样:平时 SCLK 保持低电平, 在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在 SCLK 保持为低电平 的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。六、主要元件介绍6.1、AT89C52芯片 图1AT89C52是51系列单片机的一个型号,有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振;RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路;VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端;P0P3 口为可编程通用I/O 脚,其功能用途由软件定义。本设计中,31脚接高电平VCC,提供电源;D0D7接74HC573译码器, XTAL1和XTAL2引脚外接晶振,晶振CYS的振荡频率为12MHz。6.2、DS1302 图2各引脚的功能为:VCC1:主电源;VCC2:备份电源。当VCC2VCC1+0.2V时,由VCC2向DS1302供电,当VCC2 VCC1时,由VCC1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。DS1302有下列几组寄存器: DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为 BCD 码形式, 如下表所示。DS1302有关 RAM 的地址DS1302中附加31字节静态 RAM 的地址如下表所示。 DS1302的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和 RAM 数据。 突发模式寄存器如下表所示。6.3、LED显示器 图3八段LED数码管显示器由8个发光二极管组成,其中7个长条形的发光管排列成“日”字形,另一个发光管在数码管显示器的右下角作为显示小数点。8个笔划段hgfedCbA对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,因此用8位二进制码就能表示欲显示字符的字形代码。七、流程图开始开关2闭合对DS1302置数读取DS1302时间动态显示延时40ms动态显示开关3闭合开关2闭合R3=0?读取DS1302中数据八、程序设计T_RST EQU P3.3 ;实时时钟复位线引脚 T_CLK EQU P3.4 ;实时时钟时钟线引脚 T_IO EQU P3.5 ;实时时钟数据线引脚 SECOND EQU 30H MINUTE EQU 31H HOUR EQU 32HDAY EQU 33H MONTH EQU 34HWEEK EQU 35H YEAR EQU 36HORG 0000H LJMP START ORG 0060HSTART: CLR T_RST CLR T_CLK MOV SP,#60H ;修改堆栈JB P3.1,L3 L4:MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#00H LCALL SETDS1302L3: LCALL GETDS1302 LCALL DISPLAY MAIN: MOV R3,#25 MOV TMOD,#01H MOV TH0,#70H ;置定时器初值(定时40ms) MOV TL0,#00H SETB TR0 ;启动定时器0LP1: JBC TF0,LP2 ;查询计数溢出 SJMP LP1 ;未到40 ms继续计数LP2: MOV TH0,#0B8H ;重新置定时器初值 MOV TL0,#00HL6: LCALL DISPLAY ;显示 JNB P3.2,L6JNB P3.0,START L5: DJNZ R3,LP1 ;未到1 s继续循环 LCALL GETDS1302 ;每过1s从DS1302读取一次时间 MOV R3,#25SJMP LP1 ;字符显示码表DIG_CODE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H;数码显示子程序DISPLAY: MOV DPTR,#DIG_CODE;*;显示秒 MOV A,SECOND ANL A,#0FH MOVC A,A+DPTR MOV P1,#00000001bMOV P2,AMOV A,DAYANL A,#0FHMOVC A,A+DPTR MOV P0,ALCALL DIS_DELAYMOV DPTR,#DIG_CODE MOV A,SECOND SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P1,#00000010b MOV P2,AMOV A,DAYSWAP AANL A,#0FHMOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY;*;显示分MOV DPTR,#DIG_CODE MOV A,MINUTE ANL A,#0FH MOVC A,A+DPTR MOV P1,#00000100b MOV P2,AMOV A,MONTHANL A,#0FHMOVC A,A+DPTR MOV P0,ALCALL DIS_DELAY MOV DPTR,#DIG_CODE MOV A,MINUTE SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P1,#00001000b MOV P2,AMOV A,MONTHSWAP AANL A,#0FHMOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY;显示小时 MOV DPTR,#DIG_CODE MOV A,HOUR ANL A,#0FH MOVC A,A+DPTR MOV P1,#00010000BMOV P2,A MOV A,YEARANL A,#0FHMOVC A,A+DPTR MOV P0,ALCALL DIS_DELAY MOV DPTR,#DIG_CODE MOV A,HOUR SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P1,#00100000bMOV P2,AMOV A,YEARSWAP AANL A,#0FHMOVC A,A+DPTR MOV P0,A LCALL DIS_DELAY RET;显示延时5ms子程序DIS_DELAY: PUSH PSW MOV R7,#5D1: MOV R6,#248D2: DJNZ R6,$ DJNZ R7,D1 POP PSW RET;设置DS1302初始时间,并启动计时SETDS1302: CLR T_RST NOP CLR T_CLK NOP SETB T_RST NOP MOV B,#8EH ;写控制命令字 LCALL INPUTBYTE MOV B,#00H ;写保护关闭 LCALL INPUTBYTE SETB T_CLK NOP CLR T_RST MOV R0,#30H ;内存中的时间首地址 MOV R1,#80H ;DS1302中的时间首地址 MOV R7,#7 ;字节数SETLOOP: CLR T_RST NOP CLR T_CLK NOP SETB T_RST NOP MOV B,R1 ;写命令字 LCALL INPUTBYTE MOV A,R0 ;设置时间 MOV B,A LCALL INPUTBYTE INC R0 INC R1 INC R1 SETB T_CLK NOP CLR T_RST NOP DJNZ R7,SETLOOP CLR T_RST NOP CLR T_CLK NOP SETB T_RST NOP MOV B,#8EH LCALL INPUTBYTE MOV B,#80H ;开写保护 LCALL INPUTBYTE SETB T_CLK NOP CLR T_RST NOP RET;从DS1302读取时间GETDS1302: MOV R0,#30H MOV R1,#81H ;DS1302中读时间的首地址 MOV R7,#7GETLOOP: CLR T_RST NOP CLR T_CLK NOP SETB T_RST NOP MOV B,R1 LCALL INPUTBYTE ;写命令字 LCALL OUTPUTBYTE ;读时间 MOV R0,A ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论