利用单片机及DS1302制作电子时钟_实习报告.docx

上传人:doc321 文档编号:12871518 上传时间:2021-12-06 格式:DOCX 页数:15 大小:189.71KB
返回 下载 相关 举报
利用单片机及DS1302制作电子时钟_实习报告.docx_第1页
第1页 / 共15页
利用单片机及DS1302制作电子时钟_实习报告.docx_第2页
第2页 / 共15页
利用单片机及DS1302制作电子时钟_实习报告.docx_第3页
第3页 / 共15页
利用单片机及DS1302制作电子时钟_实习报告.docx_第4页
第4页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《利用单片机及DS1302制作电子时钟_实习报告.docx》由会员分享,可在线阅读,更多相关《利用单片机及DS1302制作电子时钟_实习报告.docx(15页珍藏版)》请在三一文库上搜索。

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

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

3、2.1硬件电路设计 .32.1.1工作原理 .32.1.2单元模块电路 .42.1.3元器件清单 .52.2软件设计 .52.2.1程序设计流程 .5三、电路调试 .6四、心得体会 .6五、参考文献 .6附录:.7附录:程序清单 .8附录:13一、总体设计此电子时钟利用AT89C51 单片机和时钟芯片DS1302 设计完成 .1.1 设计目地1、通过对电子时钟地设计,进一步熟练掌握单片机编程方法及思想.2、通过对电子时钟地设计,掌握实时时钟芯片DS1302 地使用方法 .3、通过对电子时钟地设计,进一步掌握独立式键盘地编程控制并认识独立式键盘在实际中地运用 .4、通过对电子时钟地设计,增强对单

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

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

6、于 LED 7 段数码管成本低,也比较容易实现地特点,最终确定使用共阳极数码管来显示.1.4 设计任务及要求任务:设计一个可调时及日期显示地电子时钟要求: 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,不显示

8、 13);年在至 2100 时变为 2000(即 2099 过后即显示 2000 ,不显示 2100)日期显示 : 年、月显示键,松开按键有效按下此键松开后,显示为日期,5 秒后自动返回时间显示.单元模块电路1 独立按键模块P1.7P3.7/RDR12AT89C51定时设置10kB1R11时调整3.6V10kR10分调整10kR9日期显示10k系统有四个独立按键,分别接至单片机P1.4、 P1.5、 P1.6、 P1.7口 .2 显示模块RP14.7K123456789R4Q1Q2Q3Q485508550855085502KR52kR62KR72K本系统显示模块电路由四个 PNP三极管和一个四

9、位一体 7段 LED 数码管组成 .PNP三极管用来驱动数码管 .3 复位电路模块C110uF/16VR810kU2R3. 使 CPU及其复位电路主要地功能是使整个系统初始化,在每次上电时系统自动初始化他功能部件处于一个确定地初始状态,并从这个状态开始工作,单片机应用程序必须以此作为设计地前提 .4 时钟芯片模块U23X2I/O6X17SCLK5RSTVCC2128X1VCC132.768KB1DS13023.6VDS1302时钟芯片是本系统实现高精度计时地关键.利用 DS1302 时钟芯片独立于单片机来计时,在提高计时进度地同时也提高了整个系统地抗干扰能力.DS1302通过 SCLK 、 I

10、/O 、RES端口和单片机 AT89C51 进行通信 .SCLK 接至单片机 P1.1口,在读写操作时给DS1302提供相应地时钟脉冲; I/O接至 P1.2用来传送所有地数据;RES接至单片机P1.3上用来控制单片机与时钟芯片间地数据传送地开始与结束.DS1302 地工作原理及使用方法见附录.C25 主控模块U1P0.0/AD030PF19XTAL139P0.1/AD138X237P0.2/AD2C318XTAL2P0.3/AD33635P0.4/AD434P0.5/AD53312MHzP0.6/AD6130PF9RSTP0.7/AD73221P2.0/A86V22P2.1/A923P2.2

11、/A102924PSENP2.3/A113025R8ALEP2.4/A123126EAP2.5/A1310kP2.6/A142728P2.7/A151P1.0P3.0/RXD10211P1.1P3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C51主控模块地核心组成部分是单片机AT89C51 , 承担着所有操作任务地调控与分派工作.6 闹钟模块闹铃模块由蜂鸣器和蜂鸣器地驱动组成 .在有闹铃发生地时候,蜂鸣器地驱动电路驱动蜂鸣器发声,产生闹铃地效果

12、 .元器件清单元件名称规格型号数量(个)单片机AT89S511时钟芯片DS130214 位一体地共阳 LED 显示器7SEG-MPX4-CA-BLUE1按键BUTTON3电阻2K4排阻4.7K1三极管PNP4电阻10K102.2 软件设计程序设计流程开始主程序定时器 T1 初始化YDs1302读取数值与设定数值是否相N掉电后重启初始化 ds1302NYFlag=1&flag_tiSet_flag=1显示闹钟值me=1?NYN显示调节时地值显示走时Y判断闹钟是否N响闹钟发生返回三、电路调试各程序模块具有一定地独立性,因此可以先调试模块,在模块功能都能实现地前提下,再调试总程序,这样能快捷

13、地检查判断硬件或软件上地问题 .调试结果及解决办法如下:1测试DS 读写模块时,从LED显示能正确写入与读取当前时间,但DS1302 地工作情况不太理想,主要表现在实时时间稍微偏快.DS1302 时钟地产生基于外接地晶体振荡器,振荡器地频率为32768HZ ,该晶振通过引脚 X1 、 X2 直接连接至DS1302 ,即 DS1302 是依靠外部晶振与其内部地电容配合来产生时钟脉冲,由于DS1302 在芯片本身已经集成了5pF 地电容 .所以,为了获得稳定地可靠地时钟,必须选用具有5pF 负载电容地晶振.然而,许多人在选用晶振时仅仅注意了晶振地额定频率值,而忽视了晶振地负载电容大小,甚至连许多经

14、销商也不能提供所售晶振地负载电容,所以即使在使用中选用了符合32768Hz 地晶振,但如果该晶振地负载电容与DS1302 提供地 5pF 不一致时,就会影响晶振地起振或导致振荡频率地偏移.2测试显示模块时,数码显示管全亮显示“ 而不”是预设 ”地初值 .利用 Proteus软件仿真,发现仿真显示正常,再检查硬件,发现段码位选线与P0 口接线错误 .按原理图重新焊接后能正常显示.3测试蜂鸣模块时,没有时间显示一直保持蜂鸣,不能返回主程序.重新检查程序再次赋值给 DS1302 和闹钟时实物正常工作,证明现有程序语法和逻辑上没有错误.从赋值过地数字中找规律,发现当DS 初值地 “分 ”个位为 9 而

15、闹钟地 “分 ”为 0 时,蜂鸣出现错误.查阅 DS 地显示有关资料,由于DS 地数据是BCD 码形式读取,因此“X9”地数据加1后为 “*0 ”但程序所用为十六进制,;“X9”加 1 后为 “*A”,所以当DS 刚到达闹钟时间准备蜂鸣时,程序中用INC 指令对 “分 ”加 1 后只达到 “*A”,与 DS 一分钟后读取到地“*0一”直不相等,程序无法向下执行,也就是无法同步显示当前时间以及关闭蜂鸣.解决办法:进入蜂鸣状态时,先对比是否是个位为9 地数据,是则按照BCD 码形式直接赋值为 “*0 ”暂存区,再加到1;否则直接用INC 指令加 1.不断读取DS“分 ”地数据与暂存区数据比较,相等

16、则表示满一分钟,关闭蜂鸣.修改程序后该模块运行正常.4测试调整模块,进入中断时,按键后有时出现显示错乱,按键失灵,出现连续加减地情况.有了蜂鸣模块地前例,增加了数据个位为9 时地处理程序;分析出现连续加减可能是因为消抖延时不够,造成程序误判断为按键连击,因此增大延时时间.修改程序后该模块正常运作 .5综合总程序测试,各部分功能运作正常,但是实际硬件与软件结合后没有达到达到任务要求,此次设计失败 .四、心得体会五、参考文献【 1】 51单片机应用从零开始杨欣 编著 清华大学出版社 2008【 2】单片机原理及接口技术 (第三版 ) 李朝青 编著北京航空航天大学出版社2008【3】 51单片机 C

17、语言教程郭天祥编著电子工业出版社2009附录:DS1302 时钟芯片地工作原理和使用方法1、 DS1302 地基本组成和工作原理DS1302 地管脚排列及描述如下图及表所示:2、 DS1302 内部寄存器CH:时钟停止位bit7=1,12 小时模式CH=0 振荡器工作允许bit7=0,24 小时模式CH=1 振荡器停止寄存器 2 地第 5 位 :AM/PMWP: 写保护位AP=1 下午模式WP=0 寄存器数据能够写入AP=0 上午模式WP=1 寄存器数据不能写入DS: 二极管选择位定义TCS: 涓流充电选择DS=01 选择一个二极管TCS=1010 使能涓流充电DS=10 选择两个二极管TCS

18、= 其它 禁止涓流充电寄存DS=00 或 11,即使 TCS=1010, 充电器2地第 7位12/24小时标志功能也被禁3、 DS1302 使用说明及注意地问题DS1302地控制字如表 1所示 .控制字节地最高有效位(位7)必须是逻辑1,如果它为 0,则不能把数据写入到DS1302中 .位 6如果为 0,则表示存取日历时钟数据;为1则表示存取RAM 数据 .位 51( A4 A0 )指示操作单元地地址.最低有效位(位0)如果为 0,则表示要进行写操作;为1 表示进行读操作.控制字节总是从最低位开始输入/输出 .表 1 DS1302 控制字时钟暂停:秒寄存器地位7定义位时钟暂停位.当它为 1时,

19、 DS1302停止振荡,进入低功耗地备份方式,通常在对DS1302 进行写操作时(如进入时钟调整程序),停止振荡 .当它为 0时,时钟将开始启动 .AM-PM/12-24 小时方式:小时寄存器地位 7定义为 12或 24小时方式选择位 .它为高电平时,选择 12小时方式 .在此方式下,位 5为第二个 10小时位( 20 23h) .DS1302地晶振选用 32768Hz,电容推荐值为 6pF.因为振荡频率较低,也可以不接电容,对计时精度影响不大 .附录:程序清单Second EQU 41HINC R0Minute EQU 42HDJNZ R2,LP0HourEQU 43HLCALL DISPL

20、AYDayEQU 44HMOV 41H,#00H。启动时钟工作 .秒分时MonthEQU 45H日月星期年WeekEQU 46HMOV 42H,#00H。分单元YearLEQU 47HMOV 43H,#01H。时单元ORG 0000HMOV 44H,#18H。日单元LJMP MAINMOV 45H,#07H。月单元ORG 0030HMAIN:MOV SP,#5FHMOV 46H,#04H。星期单元MOV R0,30HMOV 47H,#0DH。年后两位单元MOV R2,#30HMOV 52H,#00HMOV A,#00HMOV 53H,#00HLP0:MOV R0,ACLR 30HSETB 31

21、HLCALL Set1302LCALL DISPLAYLP1: LCALL Get1302MOV 40H,41HLP11: LCALL DISPLAYLCALL GET1302MOV A,41HCJNE A,40H,LP2LJMP LP21LP2: CPL 30HMOV 40H,41HLJMP LP11LP21: JB 31H,LP22 。31H=0, 定时报警LCALL DSBJLCALL DISPLAYLP22: LCALL KEYSCANMOV DPTR,#TABMOV A,30HRL AADD A,30HJMP A+DPTRTAB: LJMP LP11。无按键LJMP TSSZ。定时设

22、置LJMP SJY。时加 1LJMP FJY。分加 1LJMP RQXS。日期显示TSSZ: CPL 31HTSSZ0: JB P1.4,TSSZ1LCALL TSDISPLAYSJMP TSSZ0TSSZ1: JNB 31H,TSSZ00 。31H=1, 定时关闭。 31H=0, 定时设置LCALL DISPLAYLJMP LP11TSSZ00:MOV 51,#20HTSSZ10:MOV 50H,#00HTSSZ11:JB P1.5,TSSZ3 。定时时设置 MOV A,53HADD A,#01HDA ACJNE A,#24H,TSSZ2MOV A,#00HTSSZ2: MOV 53H,AT

23、SS1: LCALL TSDISPLAYJNB P1.5,TSS1TSSZ3: LCALL TSDISPLAY 。定时显示 JB P1.4,TSSZ11JNB P1.4,$MOV 51H,#20HTSSZF0:MOV 50H,#00HTSSZF1:JB P1.6,TSSZF3 。定时分设置 MOV A,52HADD A,#01HDA ACJNE A,#60H,TSSZF2MOV A,#00HTSSZF2: MOV 52H,ATSF1:LCALL TSDISPLAYJNB P1.6,TSF1TSSZF3: LCALL TSDISPLAYJB P1.4,TSSZF1JNB P1.4,$LCALL

24、TSDISPLAYLJMP LP11DSBJ: MOV A,53HCJNE A,43H,DSBJ1MOV A,52HCJNE A, 42H,DSBJ1MOV 50H,#06HDSBJ0: CLR P1.3LCALL DISPLAYSETB P1.3LCALL D2MSDJNZ 50H,DSBJ0SETB 31HDSBJ1: RETSJY: MOV A,43H 。时加 1处理 ADD A,#01HDA ACJNE A,#24H,SJY0MOV A,#00HSJY0: MOV 43H,ALCALL SET1302SJY1: JB P1.5,SJY2LCALL DISPLAYSJMP SJY1SJY

25、2: LJMP LP11FJY: MOV A,42H 。分加 1处理 ADD A,#01HDA ACJNE A,#60H,FJY0MOV A,#00HFJY0: MOV 42H,ALCALL SET1302FJY1:JB P1.6,FJY2LCALL DISPLAYSJMP FJY1FJY2:LJMP LP11RQXS:LCALL RQDISPLAYRQXS1:JB P1.7,RQXS2LCALL RQDISPLAYSJMP RQXS1RQXS2:MOV R3,#00HRQXS3:LCALL RQDISPLAYLCALL RQDISPLAYDJNZ R3,RQXS3LCALL DISPLAYL

26、JMP LP11KEYSCAN:PUSH ACCMOV 30H,#00HORL P1,#0F0HMOV A,P1SWAP AANL A,#0FHJB ACC.0,K1MOV 30H,#01HSJMP KEYENDK1: JB ACC.1,K2MOV 30H,#02HSJMP KEYENDK2: JB ACC.2,K3MOV 30H,#03HSJMP KEYENDK3: JB ACC.3,KEYENDMOV 30H,#04HKEYEND: POP ACCRETKEYPLAY:MOV R5,#04HMOV R0,#42H 。 51H为秒 ,52H 分 ,53H 为时 ,54H为日 ,55H为月MO

27、V R3,#08HDIS2:MOV DPTR,#TABLEMOV A,R0ANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV A,R3MOV P2,ALCALL D2MSMOV A,R0ANL A,#0F0HSWAP AMOVC A,A+DPTRMOV P0,AMOV A,R3RR AMOV R3,AMOV P2,AINC R0MOV A,R3RR AMOV R3,ALCALL D2MSDJNZ R5,DIS2CLR P2.0RETDISPLAY:PUSH ACCPUSH PSWMOV DPTR,#TABLEMOV R1,#42HMOV A,R1ANL A,#0FHMOVC

28、A,A+DPTRMOV C,31H。有定时设置则在分钟个位显示点MOV ACC.7,CMOV P0,AMOV P2,#0FEH。实物值。 MOV P2,#08H。仿真值LCALL D2MSMOV P2,#00HMOV A,R1SWAP AANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0FDH。 MOV P2,#04HLCALL D2MSMOV P2,#00HMOV R1,#43HMOV A,R1ANL A,#0FHMOVC A,A+DPTRMOV C,30HMOV ACC.7,CMOV P0,AMOV P2,#0FBH 。 MOV P2,#02HLCALL D2MSMOV P2,#00HMOV A,R1SWAP AANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0F7H 。 MOV P2,#01HMOV P2,#00HPOP PSWPOP ACCRETRQDISPLAY:PUSH ACC。日期显示PUSH PSWMOV DPTR,#TABLEMOV R1,#44HMOV A,R1ANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0FEH。实物值。 MOV P2,#08H。仿真值LCALL D2MSMOV P2,#00HMOV A,R1SWAP A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1