利用单片机及DS1302制作电子时钟

上传人:枫** 文档编号:560149644 上传时间:2023-01-18 格式:DOCX 页数:23 大小:204.25KB
返回 下载 相关 举报
利用单片机及DS1302制作电子时钟_第1页
第1页 / 共23页
利用单片机及DS1302制作电子时钟_第2页
第2页 / 共23页
利用单片机及DS1302制作电子时钟_第3页
第3页 / 共23页
利用单片机及DS1302制作电子时钟_第4页
第4页 / 共23页
利用单片机及DS1302制作电子时钟_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《利用单片机及DS1302制作电子时钟》由会员分享,可在线阅读,更多相关《利用单片机及DS1302制作电子时钟(23页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及应用基于 Proteus 和 Keil C实习报告课程名:利用单片机及DS1302制作电子时钟摘要为了进一步熟悉51单片机的编程以及学习电子时钟的相关设计方法,在 老师的指导下我们进行了本次电子时钟的设计。我们在实习期间基于51单片机AT89C51和时钟芯片DS1302设计并实 现了电子时钟显示。在PCB板制作完成并且调试成功之际,为了进一步提高自 己的动手能力和编程能力,对这次电子时钟的设计和制作的过程中遇到的问 题及设计思路做一次总结。本电子时钟是一种利用时钟芯片DS1302及51单片机来显示时、分、秒和 年、月的装置。默认显示为时间,由四个按键分别控制定时设置、时间调整、 分

2、钟调整、日期显示;设计电路工作电源为5V;由4位LED数码管显示时间, 格式为时时分分,中间点每隔1S亮暗;有备用电池,掉电后再上电能正常显 示时间。电子时钟大体可以分为三大模块,数码管的显示模块、DS1302时钟芯片 与单片机的时钟模块和按键与单片机的模块。单片机在5V电压下,各个模块正常工作。单片机从DS1302芯片中读出 一组时间日期数据,同时单片机通过按键设置当前要求显示的信息给单片机。单片机接收到各个数据时,把各个数据显示出来。目录一、总体设计41.1设计目的41.2硬件功能描述41.3 设计方案选择41.4设计任务及要求4二、电子时钟软件和硬件设计52.1硬件电路设计52.1.1工

3、作原理52.1.2单元模块电路52.1.3元器件清单62.2软件设计72.2.1程序设计流程7三、电路调试7四、心得体会8五、参考文献9附录I: 10附录II:程序清单11附录III: 19一、总体设计此电子时钟利用AT89C51单片机和时钟芯片DS1302设计完成。1.1设计目的1、通过对电子时钟的设计,进一步熟练掌握单片机编程方法及思想。2、通过对电子时钟的设计,掌握实时时钟芯片DS1302的使用方法。3、通过对电子时钟的设计,进一步掌握独立式键盘的编程控制并认识独 立式键盘在实际中的运用。4、通过对电子时钟的设计,增强对单片机的兴趣及动手能力。并在此过 程中学会对程序的逐步调试。1.2硬

4、件功能描述数字钟能够完成24小时制计时,计时初始化值为00:00:00,用户可以通 过按键调整时钟的初值实现校时功能,并且可以通过按键设定一个24小时以 内任意时刻的闹铃,用户可以手动选择闹铃的开或者关两种状态。1.3设计方案选择计时方案:方案1:采用实时时钟芯片现在市场上有许多实时时钟集成电路,如:DS1287、DS2887、DS1302 等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时 功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工 业实时测控系统中多采用这这一类专用芯片来实现实时时钟功能。方案2:是用单片机内的可编程定时器。利用单片机内部的定时计数器进行

5、中断定时,配合软件延时实现时分 秒的计时。该方案节省硬件成本,但程序设计较复杂。显示方案:一个良好的显示模块对一个系统非常重要,所有操作结果和计时结果, 都要通过显示模块来显示出来。同时显示模块提供了良好的人机交互平台。常用的显示模式有LED 7段数码管显示、点阵显示和液晶显示。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显 示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干 扰能力强等特点。但由于液晶其成本偏高。在使用时,不能有静电干扰,否 则易烧坏液晶的显示芯片。鉴于LED 7段数码管成本低,也比较容易实现的特点,最终确定使用共阳 极数码管来显示。1.4

6、设计任务及要求任务:设计一个可调时及日期显示的电子时钟要求:1、用DS1302来实现对时间的计算2、用7段LED来显示时间3、加独立式键盘来进行调时二、电子时钟软件和硬件设计 2.1硬件电路设计2.1.1工作原理此电子时钟可显示的时间范围为:2000年1月1日0点至2100年12月 31日23时59分。此时钟在正常计时模式下具有自动调整每月的天数的变化, 并用内接电池对时间保持。时间为24小时至。接通电源对时间进行调整,按定时设置键确定被修改位的值。用时钟芯 片记忆当前时间并保持,待下次接通电源无须调整能正确显示当前时间。定时设置:菜单按键,松开按键时有效此按键实现闹铃功能,设定一个时间,此时

7、四位数码管第四位的小数 点亮起,表示有闹铃设置;当闹铃是可按此键结束闹铃。时、分调整:加一键,松开按键有效当定时设置键选中要修改的位时,如分(分闪烁时),按此键可以使分 的值从当前值开始加一,加至60时变为00(59过后即显示00,不显示60); 而时则在加至24时变为00(23过后即显示0,不显示24);日在加至32 时变为00 (即31过后即显示0,不显示32);月在加至13时变为00 (即 12过后即显示0,不显示13);年在至2100时变为2000(即2099过后即显示2000,不显示2100)日期显示:年、月显示键,松开按键有效按下此键松开后,显示为日期,5秒后自动返回时间显示。2.

8、1.2单元模块电路1独立按键模块L I1a.151011_3.6V llP17P3.7/RDAT89C5.一_0系统有四个独立按键,分别接至单片机P1.4、P1.5、P1.6、定时设置时调整分调整日期显示10kP1.7 口。2显示模块456789RP14.7K本系统显示模块电路由四个PNP三极2管和一个四位一体7段LED数 码管组成。PNP三极管用来驱动数码管。3复位电路模块C1U2复位电路主要的3功能是使整个系统初始化,在每次上电时系统自 动初始化。使CPU及其他功能部件处于一个确定的初始状态,并从这 个状态开始工作,单片机应用程序必须以此作为设计的前提。U24时钟芯片模块X1X2 I/O

9、SCLK RST32.768K2VCC2Bl xi vcciDS13026583.6VDS1302时钟芯片是本系统实现高精度计时的关键。利用DS1302 时钟芯片独立于单片机来计时,在提高计时进度的同时也提高了整个 系统的抗干扰能力。DS1302通过SCLK、I/O、RES端口和单片机AT89C51 进行通信。SCLK接至单片机P1.1 口,在读写操作时给DS1302提供相应 的时钟脉冲;I/O接至P1.2用来传送所有的数据;RES接至单片机P1.3 上用来控制单片机与时钟芯片间的数据传送的开始与结束。DS1302的工作原理及使用方法见附录I。5主控模块12MHz3031主控模块的核心组成部分

10、是单片机AT89C51,1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2 3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXD-P1.1 P1.2P3.1/TXDP3.2/INT0P1.3P3.3/INT1P1.4P3.4 0P1 5P3 5/11P1 6P3 6/WRP1.7P3.7/RD8393837343332承担着所有操作任务的调控与分派工作。6闹钟模块闹铃模块由蜂鸣器

11、和蜂鸣器的驱动组成。在有闹铃发生的时候, 蜂鸣器的驱动电路驱动蜂鸣器发声,产生闹铃的效果。2.1.3元器件清单元件名称规格型号数量(个)单片机AT89S511时钟芯片DS130214位一体的共阳LED曰二号旦 显示器7SEG-MPX4-CA-BLUE1按键BUTTON3电阻2K4排阻4.7K1三极管PNP4电阻10K102.2软件设计2.2.1程序设计流程三、电路调试各程序模块具有一定的独立性,因此可以先调试模块,在模块功 能都能实现的前提下,再调试总程序,这样能快捷地检查判断硬件或 软件上的问题。调试结果及解决办法如下:1. 测试DS读写模块时,从LED显示能正确写入与读取当前时间,但 DS

12、1302的工作情况不太理想,主要表现在实时时间稍微偏快。DS1302时钟的产生基于外接的晶体振荡器,振荡器的频率为 32768HZ,该晶振通过引脚XI、X2直接连接至DS1302,即DS1302是 依靠外部晶振与其内部的电容配合来产生时钟脉冲,由于DS1302在 芯片本身已经集成了 5pF的电容。所以,为了获得稳定的可靠的时钟, 必须选用具有5pF负载电容的晶振。然而,许多人在选用晶振时仅 仅注意了晶振的额定频率值,而忽视了晶振的负载电容大小,甚至连 许多经销商也不能提供所售晶振的负载电容,所以即使在使用中选用 了符合32768Hz的晶振,但如果该晶振的负载电容与DS1302提供的 5pF不一

13、致时,就会影响晶振的起振或导致振荡频率的偏移。2. 测试显示模块时,数码显示管全亮显示8.8.8.8. ”而不是预设” 的初值。利用Proteus软件仿真,发现仿真显示正常,再检查硬件, 发现段码位选线与P0 口接线错误。按原理图重新焊接后能正常显示。3. 测试蜂鸣模块时,没有时间显示一直保持蜂鸣,不能返回主程序。 重新检查程序再次赋值给DS1302和闹钟时实物正常工作,证明现有 程序语法和逻辑上没有错误。从赋值过的数字中找规律,发现当DS 初值的“分”个位为9而闹钟的“分”为0时,蜂鸣出现错误。查阅DS的显示有关资料,由于DS的数据是BCD码形式读取,因 此“X9 ”的数据加1后为“*0”但

14、程序所用为十六进制,“X9 ”加1 后为“*A”,所以当DS刚到达闹钟时间准备蜂鸣时,程序中用INC指 令对“分”加1后只达到“*A”,与DS 一分钟后读取到的“*0” 一直 不相等,程序无法向下执行,也就是无法同步显示当前时间以及关闭 蜂鸣。解决办法:进入蜂鸣状态时,先对比是否是个位为9的数据,是 则按照BCD码形式直接赋值为“*0”到暂存区,再加1;否则直接用 INC指令加1。不断读取DS “分”的数据与暂存区数据比较,相等则 表示满一分钟,关闭蜂鸣。修改程序后该模块运行正常。4. 测试调整模块,进入中断时,按键后有时出现显示错乱,按键失 灵,出现连续加减的情况。有了蜂鸣模块的前例,增加了数据个位为 9时的处理程序;分析出现连续加减可能是因为消抖延时不够,造成 程序误判断为按键连击,因此增大延时时间。修改程序后该模块正常 运作。5. 综合总程序测试,各部分功能运作正常,但是实际硬件与软件结 合后没有达到达到任务要求,此次设计失败。四、心得体会五、参考文献【1】51单片机应用从零开始杨欣 编著 清华大学出版社2008【2】单片机原理及接口技术(第三版)李朝青 编著北京航空航天大学出版社 2008【3】51单片机C语言教程郭天祥编著电子工业出版社2009附录I:DS1302时钟芯片的工作原理和使用方法比CI匚

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号