ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:209.88KB ,
资源ID:8288547      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8288547.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用单片机及DS1302制作电子时钟实习报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、利用单片机及DS1302制作电子时钟实习报告单片机原理及应用基于 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二、 电子时钟软件和硬件设计 32.1硬件电路设计 32.1.1工作原理 32.1.2单元模块电路 42.1.3元器件清单 52.2软件设计 52.2.1 程序设计流程 5三、 电路调试 6四、 心得体会 6五、 参考文献 6附录I: 7附录H:程序清单 8一、总体设计此电子时钟利用 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:是用单片机内地可编程定时器 . 利用单片机内部地定时计数器进行中断定时,配合软件延时实现时分秒地计时 .该方案节省硬件成本,但程序设计较复杂 .Ir ,显示方案: 一个良好地显示模块对一个系统非常重要,所有操作结果和计时结果,都要通过显示模块来显示 出来 .同时显示模块提供了良好地人机交互平台 .常用地显示模式有 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过后即显

8、示0,不显示13);年在至2100时变为2000 (即2099过后即显示2000,不显示 2100)日期显示:年、月显示键,松开按键有效按下此键松开后,显示为日期, 5秒后自动返回时间显示.系统有四个独立按键,分别接至单片机 P1.4、P1.5、P1.6、P1.7口 .2显示模块本系统显示模块电路由四个 来驱动数码管3复位电路模块3.6VDS1302时钟芯片是本系统实现高精度计时地关键 利用DS1302时钟芯片独立于单片机来计时,在提高计时进度地同时也提高了整个系统地抗干扰能力 .DS1302通过SCLK、I/O、RES端口和单片机AT89C51进行通信.SCLK接至单片机P1.1 口,在读写

9、操作时给 DS1302提RES接至单片机P1.3上用来控制单供相应地时钟脉冲;I/O接至P1.2用来传送所有地数据; 片机与时钟芯片间地数据传送地开始与结束 .元件名称规格型号数量(个)单片机AT89S511时钟芯片DS130214位一体地共阳LED显示器7SEG-MPX4-CA-BLUE1按键BUTTON3电阻2K4排阻4.7K1三极管PNP4电阻10K102.2软件设计2.2.1程序设计流程三、 电路调试各程序模块具有一定地独立性,因此可以先调试模块,在模块功能都能实现地前提 下,再调试总程序,这样能快捷地检查判断硬件或软件上地问题 调试结果及解决办法如下:1测试DS读写模块时,从 LED

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

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

12、后为“*0 ;但程序所用为十六进制, “X9加 1后为“*A”所以当DS刚到达闹钟时间准备蜂鸣时,程序中用INC指令对 分”加1后只达到“*A”与DS 一分钟后读取到地 “*0一直 不相等,程序无法向下执行,也就是无法同步显示当前时间以及关闭蜂鸣解决办法:进入蜂鸣状态时,先对比是否是个位为 9地数据,是则按照 BCD码形式直接赋值为“*0到暂存区,再加1 ;否则直接用INC指令加1.不断读取DS “分”地数据与暂 存区数据比较,相等则表示满一分钟,关闭蜂鸣 修改程序后该模块运行正常4测试调整模块,进入中断时,按键后有时出现显示错乱,按键失灵,出现连续加减地情 况有了蜂鸣模块地前例,增加了数据个

13、位为 9时地处理程序;分析出现连续加减可能是因为消抖延时不够,造成程序误判断为按键连击,因此增大延时时间 修改程序后该模块正常运作.5综合总程序测试,各部分功能运作正常,但是实际硬件与软件结合后没有达到达到任务 要求,此次设计失败四、 心得体会 五、参考文献【1】51单片机应用从零开始 杨欣 编著 清华大学出版社2008【2】单片机原理及接口技术(第三版)李朝青 编著 北京航空航天大学出版社 2008【3】51单片机C语言教程郭天祥编著电子工业出版社 2009附录I:DS1302 时钟芯片地工作原理和使用方法1、DS1302地基本组成和工作原理DS1302地管脚排列及描述如下图及表所示:WP=

14、0寄存器数据能够写入 AP=0上午模式WP=1寄存器数据不能写入 DS:二极管选择位TCS:涓流充电选择 DS=01选择一个二极管TCS=1010使能涓流充电 DS=10选择两个二极管TCS=其它 禁止涓流充电寄存 DS=00或11,即使TCS=1010,充电器2地第7位12/24小时标志 功能也被禁3、DS1302使用说明及注意地问题DS1302地控制字如表1所示控制字节地最高有效位(位 7)必须是逻辑1,如果它为0, 则不能把数据写入到 DS1302中位6如果为0,则表示存取日历时钟数据;为 1则表示存取RAM数据位51 (A4A0)指示操作单元地地址最低有效位(位0)如果为0,则表示要

15、进行写操作;为1表示进行读操作控制字节总是从最低位开始输入 /输出表1 DS1302控制字时钟暂停:秒寄存器地位 7定义位时钟暂停位当它为1时,DS1302停止振荡,进入低功 耗地备份方式,通常在对 DS1302进行写操作时(如进入时钟调整程序) ,停止振荡当它为0时,时钟将开始启和纖1T76Li 1 1 I0&1H0059CHLDSbCSECK.1HOaM4HUSH即i 0HRuh1楷6 MHA7H01 -2S, 29r 39O0to DATEDATE觀H01 -12&u ”kOMMONTH田奇7 atHAHAHHHl 戸*ODDAY年寄弁剖UCtlSDHJ;0 YEARYEARAM-PM/

16、12-24小时方式:小时寄存器地位 7定义为12或24小时方式选择位它为高电平 时,选择12小时方式在此方式下,位5为第二个10小时位(2023h) DS1302地晶振选用32768Hz,电容推荐值为6pF.因为振荡频率较低,也可以不接电 容,对计时精度影响不大日月星期年MOV 42H,#00HMOV 43H,#01HMOV 44H,#18HMOV 45H,#07HMOV 46H,#04HMOV 47H,#0DHMOV 52H,#00HMOV 53H,#00HCLR 30H附录n:程序清单Sec ond EQU 41H Mi nute EQU 42HHour EQU 43HDay EQU 44

17、HMon th EQU 45HWeek EQU 46H YearL EQU 47HORG 0000HLJMP MAINORG 0030HMANMOV SP,#5FHMOV R0,30HMOV R2,#30HMOV A,#00H LP0:MOV R0,AINC R0DJNZ R2,LP0LCALL DISPLAYMOV 41H,#00H。启动时钟工作 秒分时 。分单元。时单元。日单元。月单元。星期单元。年后两位单元SETB 31HLCALL Set1302LCALL DISPLAYLP1: LCALL Get1302MOV 40H,41HLP11: LCALL DISPLAYLCALL GET1

18、302MOV 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 。定时设置LJMP SJY 。时加 1LJMP FJY 。分加 1LJMP RQXS 。日期显示TSSZ: CPL 31HTSSZ0: JB P1.4,TSSZ1LCALL TS

19、DISPLAYSJMP 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,ATSS1: LCALL TSDISPLAYJNB P1.5,TSS1TSSZ3: LCALL TSDISPLAY 。定时显示JB P1.4,TSSZ11JNB P1.4,

20、$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 TSDISPLAYLJMP LP11DSBJ: MOV A,53HCJNE A,43H,DSBJ1MOV A,52HCJNE A, 42H,DSBJ1MOV 50H,#0

21、6HDSBJ0: 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 SJY1SJY2: LJMP LP11FJY: MOV A,42H 。分加 1处理 ADD A,#01H DA ACJNE A,#60H,FJY0MOV A,#00HFJY0: MOV

22、 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 DISPLAYLJMP LP11KEYSCAN:PUSH ACCMOV 30H,#00HORL P1,#0F0HMOV A,P1SWAP AANL A,#0FHJB ACC.0,K1M

23、OV 30H,#01HSJMP KEYENDK1: JB ACC.1,K2MOV 30H,#02HSJMP KEYENDK2: JB ACC.2,K3MOV 30H,#03H SJMP KEYENDK3: JB ACC.3,KEYEND MOV 30H,#04HKEYEND: POP ACC RETKEYPLAY:MOV R5,#04HMOV R0,#42H。51H 为秒,52H 分,53H 为时,54H为日,55H为月MOV R3,#08HDIS2:MOV DPTR,#TABLEMOV A,R0ANL A,#0FH MOVC A,A+DPTRMOV P0,AMOV A,R3MOV P2,AL

24、CALL D2MSMOV A,R0ANL A,#0F0HSWAP AMOVC A,A+DPTRMOV P0,AMOV A,R3 RR AMOV R3,AMOV P2,AINC R0MOV A,R3RR A MOV R3,ALCALL D2MSDJNZ R5,DIS2CLR P2.0 RETDISPLAY:PUSH ACC PUSH PSW MOV DPTR,#TABLEMOV R1,#42HMOV A,R1ANL A,#0FH MOVC A,A+DPTRMOV C,31H 。 有定时设置则在分钟个位显示点MOV ACC.7,CMOV P0,AMOV P2,#0FEH 。实物值 。 MOV P2

25、,#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 。 M

26、OV 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 AANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0FDH 。 MOV P2,#04HLCALL D2MSMOV P2,#00HMOV R1,#45HMOV A

27、,R1ANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0FBH。MOV P2,#02HLCALL D2MSMOV P2,#00HMOV A,R1SWAP AANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0F7H 。 MOV P2,#01HLCALL D2MSMOV P2,#00HPOP PSWPOP ACCRETTSDISPLAY:PUSH ACC 。定时显示 PUSH PSWMOV DPTR,#TABLEMOV R1,#52HMOV A,R1ANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0FEH 。

28、实物值 。 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,#53HMOV A,R1ANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0FBH 。 MOV P2,#02HLCALL D2MSMOV P2,#00HMOV A,R1SWAP AANL A,#0FHMOVC A,A+DPTRMOV P0,AMOV P2,#0F7H 。 MOV P2,#01HLCALL D2MSMOV P2,#00HPOP PSWPOP ACCRETD2MS: MOV R6,#02HDL1: MOV R5,#249DL2: NOPNOPDJNZ R5,DL2NOPDJNZ R6,DL1RETTABLE: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ,80H,90H,0FFH,0FFH,0FFH,0FFH,0FFH,0FF H。DS1302时间处理程序。 *

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1