




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 设计题目: 基于DS1302的实时时钟设计 学生姓名: 黄 景 军 指导教师: 高 峰 二级学院: 龙 蟠 学 院 专业: 电气工程及其自动化 班级:M11电气工程及其自动化学号: 摘 要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用。本设计采用实时时钟芯片DS1302,基于AT89C51单片机的设计制作了具有红外遥控、LED显示、可设定时的电子时钟,达到制作的目的,并用protuse和medwin进行模拟实验。本报告中主要介绍了系统的硬件设计和软件设计,并用八位共阳极LED数码管,采用查询法查键实现。关键词 : 单片机 DS1302 AT89C51 共阳极LED数码显示器 目 录设计任务及主要技术指标和要求31.1 设计任务3 1.2 主要技术指标和要求3二、引言3三、核心芯片简介4 3.1 DS1302简介 5 3.1.1 DS1302引脚功能与内部结构5 3.1.2 DS1302的寄存器5 3.2 AT89C52简介6四、方案设计和论证6五、软硬件设计7 5.1硬件电路设计7 5.2软件实现8 5.2.1主程序8 5.2.2时钟读出程序设计12 5.2.3时钟调整程序设计13六、系统调试13七、总结14八、参考文献14 一、设计任务及主要技术指标和要求 1.1 设计任务:用DS1302时钟芯片设计实时时钟。 1.2 主要技术指标和要求: (1)通过程序直接对实时时钟时间进行设置,启动时钟运行。用8位数码管显示。 (2)通过按钮对实时时钟时间进行设置,使时钟能正常运行。 (3)其他发挥功能。 二、引言 从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。钟表的数字化,大力推动了计时的精确性和可靠性。在单片机构成的装置中,实时时钟是必不可少的部件。目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路。其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。这些优点解决了目前常用的实时时钟所无法解决的问题。该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。三、核心芯片简介3.1 DS1302简介 DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。时钟可工作在24小时格式或12小时(AM/PM)格式。 DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。3.1.1 DS1302引脚功能与内部结构 DS1302的引脚功能如表1所示,外形及内部结构如图1所示: 表1 DS1302引脚功能表引脚号引脚名称功能1VCC2主电源2、3X1、X2振荡源,外接32768Hz晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行时钟输入端8VCC1后备电源3.1.2 DS1302的寄存器 图1 DS1302管脚图及内部结构图DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。 DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H-FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器 80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN时寄存器84H85H01-12或00-2312/24010HRHR表2 DS1302的时钟寄存器及其控制字3.2 AT89C52简介图2 AT89S51引脚图功能特性概括:AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。四、方案设计和论证使用串行接口时钟芯片DS1302设计时钟电路。该设计方案以单片机AT89C52为主控芯片,以串行时钟芯片DS1302为核心计时芯片,组成数字时钟电路。该电路不但能准确地计时、附加其它功能,而且,其三线接口可以节省接口资源,在断电后不丢失时间和数据信息。设计方案接口简单,计时可靠,综合性能良好。DS1302时钟电路(AT89C52)主控模块键扫描电路八位LED数码管显示电路 图3 时钟芯片DS1302设计时钟五、软硬件设计5.1硬件电路设计LED数码管采用动态扫描方式显示,P0口为段码输出口,P2口为扫描驱动口,扫描驱动信号经74HC224功率放大来低点亮电源。计时按键设计了2个,分别接在P3.5,P3.6口,用于设定与加一调整。DS1302时钟芯片的晶挣频率为32.78KHz。秒表/时钟计时器的硬件电路如图,采用32.768KHz晶振可有利于提高秒计时的精确性。图4 DS1302实时时钟硬件仿真电路5.2软件实现5.2.1汇编的主程序#include /#define uchar unsigned char#define unit unsigned int#define ulong unsigned longsbit BUZZ=p37;sbit KEY1=p10;sbit KEY2=p11;uchar hour_reg,minute_reg,second_reg;void delay(uint);void display(uchar*);void time2str(uchar*);void time_set(void);void main(void)uchar dispram9;TMOD=0x11;IE=0x82;TR0=1;while(1) time2str(dispram); display(dispram); if (KEY1=0) time_set(); void time2str(uchar*ch)ch0=hour_reg/10;ch1=hour_reg%10;ch2=16;ch3=minute_reg/10;ch4=minute_reg%10;ch5=16;ch6=second_reg/10;ch7=second_reg%10;void time_set(void)uchar ch8;uchar i,c;TR0=0;second_reg=0;time2str(ch);do display(ch); while(KEY1=0);C=2;while(c) time2str(ch); if(c=2) ch0|=0x80;ch1|=0x80; else ch3|=0x80;ch4|=0x80; display(ch); if(KEY1=0); c-; do display(ch); while (KEY1=0); if(KEY2=0) if(c=2) hour_reg=(hour_reg+1)%24; else minute_reg=(minute_re+1)%60; for(i=0;i50;i+) display(ch); TR0=1;void delay(unsigned int dt)register unsigned char bt,ct;for(;dt;dt-) for(ct=2;ct;ct-) for(bt=250;-bt;);void display(uchar*disp_ram)static uchar disp_count;unsigned char i,j;unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff;disp_count=(disp_count+1)&0x7f;for(i=0;i32)? tablej&0x7f:0xff; else p0=tablej; p2=0x01=20) ( T0_count=0; second_reg+; if(second_reg=60) second_reg=0; minute_reg+; if (minute_reg=60) minute_reg=0; hour_reg=(hour_reg+1)%24; 5.2.2时钟读出程序设计开始初始化DS1302DS1302开始振荡从1302中读出时、份、秒结束时分秒数据处理后送显示缓冲单元 图5 时钟读出程序流程 5.2.3时钟调整程序设计设定键有效,进入小时调整程序设定按键有效 ?进入分钟调整程序设定按键有效?加1键有效?加1键有效?NNNYYYYN小时加1推出时间调整程序,进入主程序循环分钟加1图6 时钟调整程序流程六、系统调试 当一切准备就绪,开始调试。先进行硬件调试,检查各个借口是否完美的接好。然后进行软件与硬件结合调试,因为整个系统含有很多个子程序,所以调试时把各个子程序分别调试,成功后进行整体调试。在调试过程中发现了一些错误,加了修改。比如:在中断服务程序中必须将与主函数中共用的变量进行堆栈,如果不堆栈程序执行结果将无法想象。七、总结 通过这一周的学习,我感觉有很大的收获:首先,通过这次课程设计使自己对课本上的知识可以应用于实际,使理论与实际相结合,加深自己对课本知识的更好理解,同时也段练了自己的动手能力:能够充分利用电脑去查阅资料,增加了许多课本以外的知识。更加了解了单片机原理及应用。增加了对DS1302和AT89C52芯片引脚结构和功能的理解及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025高考物理试题分类汇编:万有引力与宇宙航行含解析
- 2025环保稻谷收购协议
- 残疾人科目一考试试卷及答案
- 2025年重庆高考地理试题及答案详解
- 萨克斯新手知识培训内容课件
- 2025年4月高级电子商务师模考试题与参考答案
- 2025年焊工初级职业技能考试题库
- 2025年基孔肯雅热应知应会知识题库及答案
- 2025高考生物试题分类汇编:细胞的生命历程(含解析)
- 营销技巧培训知识库课件
- 蒸压加气混凝土砌块干燥收缩检测记录11969-2020
- 项目幕墙施工方案
- (完整word版)劳动合同书(电子版)正规范本(通用版)
- 《九连环的奥秘》课件
- 我这样做老师
- 2021年SYB创业培训考试试卷及答案
- 第一单元项目一探秘鸟类研究-认识数据、信息与知识课件沪科版(2019)高中信息技术必修1
- 垃圾焚烧发电项目电气安装与调试施工方案
- 设施蔬菜生产机械化技术
- LY/T 1821-2009林业地图图式
- JJF 1272-2011阻容法露点湿度计校准规范
评论
0/150
提交评论