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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机原理及应用——基于Proteus和KeilC实习报告课程名:利用单片机及DS1302制作电子时钟指导教师:朱华贵老师专业:应用电子技术年级:10级评定:组员:邱凌芳、杨侨、陈佳佳设计时间:2012年5月18日江西财经大学职业技术学院摘要为了进一步熟悉51单片机的编程以及学习电子时钟的相关设计方法,在老师的指导下我们进行了本次电子时钟的设计。我们在实习期间基于51单片机——AT89C51和时钟芯片DS1302设计并实现了电子时钟显示。在PCB板制作完成并且调试成功之际,为了进一步提高自己的动手能力和编程能力,对这次电子时钟的设计和制作的过程中遇到的问题及设计思路做一次总结。本电子时钟是一种利用时钟芯片DS1302及51单片机来显示时、分、秒和年、月的装置。默认显示为时间,由四个按键分别控制定时设置、时间调整、分钟调整、日期显示;设计电路工作电源为5V;由4位LED数码管显示时间,格式为时时分分,中间点每隔1S亮暗;有备用电池,掉电后再上电能正常显示时间。电子时钟大体可以分为三大模块,数码管的显示模块、DS1302时钟芯片与单片机的时钟模块和按键与单片机的模块。单片机在5V电压下,各个模块正常工作。单片机从DS1302芯片中读出一组时间日期数据,同时单片机通过按键设置当前要求显示的信息给单片机。单片机接收到各个数据时,把各个数据显示出来。目录一、总体设计-------------------------------------------------41.1设计目的---------------------------------------------41.2硬件功能描述-----------------------------------------41.3设计方案选择-----------------------------------------41.4设计任务及要求---------------------------------------4二、电子时钟软件和硬件设计-----------------------------------52.1硬件电路设计-----------------------------------------52.1.1工作原理----------------------------------------52.1.2单元模块电路------------------------------------52.1.3元器件清单--------------------------------------72.2软件设计---------------------------------------------72.2.1程序设计流程------------------------------------72.2.2主控程序----------------------------------------8三、电路调试-------------------------------------------------9四、总结----------------------------------------------------10五、参考文献------------------------------------------------11附录Ⅰ:DS1302时钟芯片的工作原理和使用方法------------------12附录Ⅱ:程序清单--------------------------------------------13附录Ⅲ:原理图、PCB图及实物图------------------------------20一、总体设计此电子时钟利用AT89C51单片机和时钟芯片DS1302设计完成。1.1设计目的1、通过对电子时钟的设计,进一步熟练掌握单片机编程方法及思想。2、通过对电子时钟的设计,掌握实时时钟芯片DS1302的使用方法。3、通过对电子时钟的设计,进一步掌握独立式键盘的编程控制并认识独立式键盘在实际中的运用。4、通过对电子时钟的设计,增强对单片机的兴趣及动手能力。并在此过程中学会对程序的逐步调试。1.2硬件功能描述数字钟能够完成24小时制计时,计时初始化值为00:00:00,用户可以通过按键调整时钟的初值实现校时功能,并且可以通过按键设定一个24小时以内任意时刻的闹铃,用户可以手动选择闹铃的开或者关两种状态。1.3设计方案选择计时方案:方案1:采用实时时钟芯片现在市场上有许多实时时钟集成电路,如:DS1287、DS2887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这这一类专用芯片来实现实时时钟功能。方案2:是用单片机内的可编程定时器。利用单片机内部的定时计数器进行中断定时,配合软件延时实现时分秒的计时。该方案节省硬件成本,但程序设计较复杂。显示方案:一个良好的显示模块对一个系统非常重要,所有操作结果和计时结果,都要通过显示模块来显示出来。同时显示模块提供了良好的人机交互平台。常用的显示模式有LED7段数码管显示、点阵显示和液晶显示。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。但由于液晶其成本偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片。鉴于LED7段数码管成本低,也比较容易实现的特点,最终确定使用共阳极数码管来显示。1.4设计任务及要求任务:设计一个可调时及日期显示的电子时钟要求:1、用DS1302来实现对时间的计算2、用7段LED来显示时间3、加独立式键盘来进行调时二、电子时钟软件和硬件设计2.1硬件电路设计2.1.1工作原理此电子时钟可显示的时间范围为:2000年1月1日0点至2100年12月31日23时59分。此时钟在正常计时模式下具有自动调整每月的天数的变化,并用内接电池对时间保持。时间为24小时至。接通电源对时间进行调整,按定时设置键确定被修改位的值。用时钟芯片记忆当前时间并保持,待下次接通电源无须调整能正确显示当前时间。定时设置:菜单按键,松开按键时有效此按键实现闹铃功能,设定一个时间,此时四位数码管第四位的小数点亮起,表示有闹铃设置;当闹铃是可按此键结束闹铃。时、分调整:加一键,松开按键有效当定时设置键选中要修改的位时,如分(分闪烁时),按此键可以使分的值从当前值开始加一,加至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.1.2单元模块电路1独立按键模块XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51RST5SCLK7I/O6X12X23VCC18VCC21U2DS1302R910kR1010kR1110kR1210kB13.6V定时设置时调整分调整日期显示系统有四个独立按键,分别接至单片机P1.4、P1.5、P1.6、P1.7口。2显示模块234567891RP14.7KR42KR52kR62KR72KQ18550Q28550Q38550Q48550本系统显示模块电路由四个PNP三极管和一个四位一体7段LED数码管组成。PNP三极管用来驱动数码管。3复位电路模块RST5SCLK7I/O6X12X23VCC18VCC21U2DS1302R310kR810kC110uF/16V复位电路主要的功能是使整个系统初始化,在每次上电时系统自动初始化。使CPU及其他功能部件处于一个确定的初始状态,并从这个状态开始工作,单片机应用程序必须以此作为设计的前提。4时钟芯片模块RST5SCLK7I/O6X12X23VCC18VCC21U2DS1302X132.768KB13.6VDS1302时钟芯片是本系统实现高精度计时的关键。利用DS1302时钟芯片独立于单片机来计时,在提高计时进度的同时也提高了整个系统的抗干扰能力。DS1302通过SCLK、I/O、RES端口和单片机AT89C51进行通信。SCLK接至单片机P1.1口,在读写操作时给DS1302提供相应的时钟脉冲;I/O接至P1.2用来传送所有的数据;RES接至单片机P1.3上用来控制单片机与时钟芯片间的数据传送的开始与结束。DS1302的工作原理及使用方法见附录Ⅰ。5主控模块XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R810kC110uF/16VC230PFC330PFX212MHz主控模块的核心组成部分是单片机AT89C51,承担着所有操作任务的调控与分派工作。6闹钟模块闹铃模块由蜂鸣器和蜂鸣器的驱动组成。在有闹铃发生的时候,蜂鸣器的驱动电路驱动蜂鸣器发声,产生闹铃的效果。2.1.3元器件清单元件名称规格型号数量(个)单片机AT89S511时钟芯片DS130214位一体的共阳LED显示器7SEG-MPX4-CA-BLUE1按键BUTTON3电阻2K4排阻4.7K1三极管NPN4电阻10K102.2软件设计2.2.1程序设计流程YNNYYNNYN开始主程序定时器T1初始化Ds1302读取数值与设定数值是否相同掉电后重启初始化ds1302Flag=1&flag_time=1?显示调节时的值Set_flag=1显示闹钟值显示走时判断闹钟是否发生响闹钟返回2.2.2主控程序voidmain(void){//定时器0初始化TMOD=0x10;//定时计数器1工作在方式1定时状态,5us,开中断TH1=-(65536-2)/256;TL1=-(65536-2)%256;TR1=1;ET1=1;EA=1;timer_flag=Read1302(READ_TIMER_FLAG);if(timer_flag==(timer_flag_rom/16*10+timer_flag_rom%16)){;}elseInitial();while(1){if(flag==1&flag_timer==1){flag=0;if(set_timer==1){//显示走时Data_Buffer[0]=Read1302(READ_MINUTE)/10;Data_Buffer[1]=Read1302(READ_MI

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功