欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    用数码管显示实时日历时钟的应用设计.docx

    • 资源ID:6119466       资源大小:649.25KB        全文页数:27页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用数码管显示实时日历时钟的应用设计.docx

    1、用数码管显示实时日历时钟的应用设计( 用数码管显示实时日历时钟的应用设计 )一、设计内容及要求利用DS1302实现年月日时分秒,并用数码管显示。(用proteus实现)二、设计原始资料单片机原理及应用教程 范立南 2006年 1月单片机原理及应用教程 刘瑞新 2003年07月三、设计完成后提交的文件和图表1计算说明书部分1)方案论证报告打印版或手写版2)程序流程图3)具体程序 2图纸部分:具体电路原理图打印版四、进程安排教学内容 学时 地点资料查阅与学习讨论 1天 单片机实验室分散设计 5天 单片机实验室编写报告 3天 单片机实验室成果验收 1天 单片机实验室 五、主要参考资料电子设计自动化技

    2、术基础马建国、孟宪元编 清华大学出版 2004年4月 实用电子系统设计基础 姜威 2008年1月 单片机系统的PROTEUS设计与仿真 张靖武 2007年4月 指导老师成绩答辩小组成绩总成绩摘要DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流

    3、充电的能力。本课程设计是基于DS1302实现实时时钟日历的应用设计。通过对AT89C51写入程序实现对DS1302读写,读写过正确的年月日时分秒,然后通过74LS164串行输出再输入到七段数码管显示出时间日期。本设计利用外部中断实现分别显示时间和日期,当按键按下的时候数码管显示年月日,松开则显示时分秒。具体的读写及显示程序将在下文中做详细介绍。关键字:DS1302 AT89C51 74LS164 数码管一、设计目的:(1)掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、测试方法;(2)进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;利用软件设计程序仿真运行(3)学习

    4、使用仿真软件做线路图,提高电路布局布线及检查和排除故障的能力二、设计内容及要求利用DS1302实现实时年月日时分秒,用数码管显示,并用proteus实现仿真效果。三、数码管显示实时时钟日历的基本原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且 将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指 定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时 输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。DS1302的寄存器和控制命令 对 D

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

    6、们现在已经知道了控制寄存器和 RAM 的逻辑地址,接着就需要知道如何通过外部接 口来访问这些资源。单片机是通过简单的同步串行通讯与 DS1302通讯的,每次通讯都必须 由单片机发起,无论是读还是写操作,单片机都必须先向 DS1302写入一个命令帧,这个帧 的格式如表1所示,最高位 BIT7固定为1,BIT6决定操作是针对 RAM 还是时钟寄存器,接 着的5个 BIT 是 RAM 或时钟寄存器在 DS1302的内部地址,最后一个 BIT 表示这次操作是读 操作抑或是写操作。 物理上,DS1302的通讯接口由3个口线组成,即 RST,SCLK,I/O。其中 RST 从低电 平变成高电平启动一次数据

    7、传输过程,SCLK 是时钟线,I/O 是数据线。具体的读写时序参 考图5,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且 一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手 册里没有明确说明),如果不是特别确定,则把程序设计成这样:平时 SCLK 保持低电平, 在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在 SCLK 保持为低电平 的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。四、元件明细表 如下表1 表1元件民称数量AT89C511DS1302174LS1646LED显示器6晶振1电容2开关1电源若干导线若干五、

    8、主要元件介绍5.1、AT89C52芯片 如图1 图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接74HC5

    9、73译码器, XTAL1和XTAL2引脚外接晶振,晶振CYS的振荡频率为12MHz。5.2、DS1302 图2 图2各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。DS1302有下列几组寄存器: DS1302有关日历、时间的寄存器共有12个,

    10、其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为 BCD 码形式, 如下表所示。DS1302有关 RAM 的地址DS1302中附加31字节静态 RAM 的地址如下表所示。 DS1302的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和 RAM 数据。 突发模式寄存器如下表所示。5.3、74LS164C、74LS164 图3引脚功能:CLOCK :时钟输入端 CLEAR: 同步清除输入端(低电平有效) A,B :串行数据输入端 QAQH: 输出端当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B任意一

    11、个为 低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。当A、B 有一个为高电平,则另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0 的状态。5.4、LED显示器 图3八段LED数码管显示器由8个发光二极管组成,其中7个长条形的发光管排列成“日”字形,另一个发光管在数码管显示器的右下角作为显示小数点。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,因此用8位二进制码就能表示欲显示字符的字形代码。六、流程图七、程序设计IO EQU P1.0 ;实时时钟数据线引脚SCLK EQU P1.1 ;实时时钟时钟线引

    12、脚RST EQU P1.2 ;实时时钟复位线引脚 SECOND EQU 40H MINUTE EQU 41H HOUR EQU 42H DAY EQU 43H MONTH EQU 44H WEEK EQU 45H YEAR EQU 46H ORG 0000H JMP MAIN ORG 0003H jmp INT_0 ORG 0020HMAIN:CLR IT0 SETB EX0 SETB EA LCALL GET ;从DS1302读取时间 DISPALY: MOV a,40H ;显示秒 ANL a,#0FH ;低位保留 lcall www lcall delay mov a,40h anl a,

    13、#0f0h swap a ;高位低位互换 lCALL aaa lcall delay MOV a,41H ;显示分 ANL a,#0FH ;低位保留 lcall wwwf lcall delay mov a,41h anl a,#0f0h swap a ;高位低位互换 lCALL aaaf lcall delay MOV a,42H ;显示时 ANL a,#0FH ;低位保留 lcall wwws lcall delay mov a,42h anl a,#0f0h swap a ;高位低位互换 lCALL aaas lcall delay ljmp main sjmp $INT_0: MOV

    14、a,43H ;显示日 ANL a,#0FH ;低位保留 lcall wwwr mov a,43h anl a,#0f0h swap a ;高位低位互换 lCALL aaar lcall delay MOV a,44H ;显示月 ANL a,#0FH ;低位保留 lcall wwwy lcall delay mov a,44h anl a,#0f0h ;高位低位互换 swap a lCALL aaay lcall delay MOV a,46H ;显示年 ANL a,#0FH ;低位保留 lcall wwwn lcall delay mov a,46h anl a,#0f0h swap a ;高

    15、位低位互换 lCALL aaan lcall delay RETI;把寄存器中的内容传给74ls164的子程序www: ;给秒的低四位数码管赋值 mov 49h,#8h lcall L0eee: jb acc.7,rrr clr p0.0 jmp tttrrr: setb p0.0ttt: clr p2.0 setb p2.0 rl a djnz 49h,eee retaaa: ;给秒的高四位数码管赋值 mov 49h,#8h lcall L0sss: jb acc.7,ddd clr p0.1 jmp fffddd: setb p0.1fff: clr p2.1 setb p2.1 rl a

    16、 djnz 49h,sss retwwwf: ;给分的低四位数码管赋值 mov 49h,#8h lcall L0eeef: jb acc.7,rrrf clr p0.2 jmp tttfrrrf: setb p0.2tttf: clr p2.2 setb p2.2 rl a djnz 49h,eeef retaaaf: ;给分的高四位数码管赋值 mov 49h,#8h lcall L0sssf: jb acc.7,dddf clr p0.3 jmp ffffdddf: setb p0.3ffff: clr p2.3 setb p2.3 rl a djnz 49h,sssf retwwws: ;

    17、给时的低四位数码管赋值 mov 49h,#8h lcall L0eees: jb acc.7,rrrs clr p0.4 jmp tttsrrrs: setb p0.4ttts: clr p2.4 setb p2.4 rl a djnz 49h,eees retaaas: ;给时的高四位数码管赋值 mov 49h,#8h lcall L0ssss: jb acc.7,ddds clr p0.5 jmp fffsddds: setb p0.5fffs: clr p2.5 setb p2.5 rl a djnz 49h,ssss retwwwr: ;给日的低四位数码管赋值 mov 49h,#8h

    18、lcall L0eeer: jb acc.7,rrrr clr p0.0 jmp tttrrrrr: setb p0.0tttr: clr p2.0 setb p2.0 rl a djnz 49h,eeer retaaar: ;给日的高四位数码管赋值 mov 49h,#8h lcall L0sssr: jb acc.7,dddr clr p0.1 jmp fffrdddr: setb p0.1fffr: clr p2.1 setb p2.1 rl a djnz 49h,sssr retwwwy: ;给月的低四位数码管赋值 mov 49h,#8h lcall L0eeey: jb acc.7,r

    19、rry clr p0.2 jmp tttyrrry: setb p0.2ttty: clr p2.2 setb p2.2 rl a djnz 49h,eeey retaaay: ;给月的高四位数码管赋值 mov 49h,#8h lcall L0sssy: jb acc.7,dddy clr p0.3 jmp fffydddy: setb p0.3fffy: clr p2.3 setb p2.3 rl a djnz 49h,sssy retwwwn: ;给年的低四位数码管赋值mov 49h,#8h lcall L0eeen: jb acc.7,rrrn clr p0.4 jmp tttnrrrn

    20、: setb p0.4tttn: clr p2.4 setb p2.4 rl a djnz 49h,eeen retaaan: ;给年的高四位数码管赋值 mov 49h,#8h lcall L0sssn: jb acc.7,dddn clr p0.5 jmp fffndddn: setb p0.5fffn: clr p2.5 setb p2.5 rl a djnz 49h,sssn retdelay: ;延时60ms mov 47h,#60lop11: mov 48h,#0ffhlop22: nop nop djnz 48h,lop22 djnz 47h,lop11 ret;判断时钟每位是几(

    21、1,2,3,4,5,6,7,8,9,)L0: cjne a,#0h,L1 mov a,#0c0h retL1: cjne a,#1h,L2 mov a,#0f9h retL2: cjne a,#2h,L3 mov a,#0a4h retL3: cjne a,#3h,L4 mov a,#0b0h retL4: cjne a,#4h,L5 mov a,#99h retL5: cjne a,#5h,L6 mov a,#92h retL6: cjne a,#6h,L7 mov a,#82h retL7: cjne a,#7h,L8 mov a,#0f8h retL8: cjne a,#8h,L9 mo

    22、v a,#80h retL9: mov a,#90h RET从DS1302读取时间GET: MOV R0,#40H MOV R1,#81H ;DS1302中读时间的首地址 MOV R7,#7GETLOOP: CLR RST nop CLR SCLK nop SETB RST nop MOV B,R1 LCALL WRITE ;写命令字 LCALL READ ;读时间 MOV R0,A ;将从DS1302中读取的时间从内存中保存 INC R0 ;修改地址指针 INC R1 INC R1 SETB SCLK nop CLR RST nop DJNZ R7,GETLOOP RETWRITE: MOV

    23、 30H,#8 ;写入命令子程序DS1302 LOP1: MOV A,B RRC A MOV B,A MOV P1.0,C SETB P1.1 CLR P1.1 DJNZ 30H,LOP1 RET READ: ;读出数据子程序DS1302 MOV 30H,#8 LOP2: MOV C,P1.0 RRC A SETB P1.1 CLR P1.1 DJNZ 30H,LOP2 RET END八、电路图及其显示结果1、电路图的连接 如图4 图42、时分秒的显示 如图5 图53、年月日的显示 图53、年月日的显示 图6 图6九、心得体会历经两个周的课程设计很快就结束了,不得不感叹时间的飞逝!通过这次的课

    24、程设计我学到了很多东西:1、当面对一个毫无头绪的题目时,我学会了如何去着手以及慢慢找到解决的方法!2、通过这次设计我加强了自己的思考以及动手能力,最主要的就是对一个整天解体,对其每一模块思考理解,进而对整体理解!3、这次设计也让我对课本的知识进行了巩固,尤其是一条条繁琐的指令,平时背背忘忘,这次的实践使其深深扎根于我脑海中。同时,对keil以及proteus软件运用的更加熟练,相信在今后的实验设计中操作上不会出现问题了。4、再次体会到细节问题有多么的重要,这次设计,很多次都是一个小小的错误使得整体运行错误。而这些错误却是一些字母符号的输错、少输。 除了上述之外,我的耐心及毅力也得到了很大的锻炼,这不仅对我的学业,而且对我的整个人生也会产生巨大的作用。十、参考文献1、电子设计自动化技术基础马建国、孟宪元编 清华大学出版 200年4月 2、实用电子系统设计基础 姜威 2008年1月 3、单片机系统的PROTEUS设计与仿真 张靖武 2007年4月


    注意事项

    本文(用数码管显示实时日历时钟的应用设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开