欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    毕业设计采用实时时钟芯片DS1302+AT89C2051的红外遥控LED电子钟.doc

    • 资源ID:14480318       资源大小:155KB        全文页数:20页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计采用实时时钟芯片DS1302+AT89C2051的红外遥控LED电子钟.doc

    第1节 引 言 1第2节 电子钟硬件设计22.1 电子钟的工作原理22.2 电子钟的硬件电路3第3节 系统软件设计5 一引言自制LED电子钟在很多电子报刊杂志上都可以见到,但大多数在断电后都要重新设置时间等参数,给使用带来很多不便。也有用后备电池作为备用电源的,但往往体积较大。本文介绍的LED电子钟克服了以往的弊端,而且采用了家电通用的红外遥控器进行控制,方便使用。有一路闹铃输出,可以通过遥控器设置闹铃时间及允许与否。二电子钟硬件设计电子钟的正面电子钟的背面一 工作原理 DS1302为达拉斯公司的一种实时时钟芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768Hz晶振。AT89C2051作为主控芯片,一是对接收到的红外遥控编码进行判断识别,并执行相应的处理;第二就是定期的读取时钟芯片DS1302中的时间并把小时和肥以示在4位LED中;第三就是对设置的闹铃时间与实时时间进行比较,如果时间相同且闹铃允许,那么蜂鸣器就会以1秒的周期鸣响一分钟,提醒使用者。如果要停止鸣闹,只要按遥控器相应键就可以关闭闹铃。闹铃时间保存在DS1302自带的RAM中,不需要单独的EEPROM。二 硬件电路 图一为电子钟的原理图,IC2为DS1302,电子爱好者可以向MAXIM公司索取免费样品。Y2为 32768 Hz石英晶振,可以用普通电子表里的。IC3为三脚的塑封一体化红外接收头。LED1-4 为高亮度共阳数码管。89C2051所用的晶振Y1如果没有10MHz也可以用其他12M以内的代替,只要修改程序中YS1和YS2的延时参数,让其保持延时长度不变就行。调整R2可以改变数码管亮度。P1口接数码管的八字段。数码管左两位显示小时,右两位显示分,当显示的是闹铃时间时闪动。第二位和第三位的小数点作为秒闪动,注意第三位数码管按图一布好印制版后安装时要旋转180°,以便让时和分之间出现“:”,最后一位小数点作为闹铃开关标志,亮表示闹铃开启。蜂鸣器B2采用小型自带音源的。要特别说明的是备用电源B1,可以用电池或者超级电容(10万uF以上)。虽然DS1302在主电源掉电后,耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的那种3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容代替。100uF就可以保证1小时的正常走时。DS1302在第一次加电后,须进行初始化操作。初始化后就可以按正常方法调整时间及闹铃。三 软件软件部分的重点是对DS1302的操作以及红外遥控的解码。单片机解码可参看其他文章,这里主要对设置部分作一些说明: 遥控器采用长虹彩电K11F型遥控器,遥控器按照16位地址码,8位数据码以及8位数据码的反码发送。表一列出了各按键的编码及本电子钟对应的动作。如果采用其他遥控器,需对程序相应部分的编码作修改。操作方法中,任意是指该键第一次按后,进入该状态,再次按后退出该状态。时间设置:按“菜单”键进入设置状态,LED只显示正常时间的小时,按“”键调整数值,按“、”键可在闹铃与正常时间之间移动。任意时刻再次按“菜单”键就退出设置。闹铃设置:闹铃时间在时间设置中进行。闹铃允许和取消可在任意时刻按“静音”键。显示开关:可在任意时刻按“显示”键开启和关闭显示器。初始化:在按“菜单”键进入设置状态后任意时刻按“日历”键,初始化后的时间为 2002/12/1/12:00:00;DS1302+AT89C2051的LED钟;遥控器各按键数据码,可根据不同的遥控器修改对应的键码muteM EQU 10h ;静音键 闹铃开/关timerT EQU 0Ch ;菜单键 进入/退出设置状态leftL EQU 46h ;左移键 rightR EQU 47h ;右移键upU EQU 19h ;增加键downD EQU 1dh ;减少键d_off EQU 16H ;显示键 LED数码管显示/关闭recall EQU 44H ;日历键 DS1302初始化操作 K_on BIT P3.0 ;闹铃输出 LED1 BIT P3.3 LED2 BIT P3.4 LED3CLK BIT P3.5 ;DS1302 LED4IO BIT P3.7 RST BIT P3.1SECOND EQU 60H;60H 秒;61h 分;62h 时;63h 日;64h 月;65h DAY;66h 年;6Ah 闹分 from 00(1302);6BH 闹时 from 01(1302) ORG 0000H AJMP START ORG 0003H LJMP S_INT ;IRF ORG 000BH ;200Us LJMP P_INT ; ORG 001BH ;display LED LJMP DISPLAY;main program ORG 0030HSTART: CLR RST MOV SP,#2AH SETB 05H CLR 06H SETB 07H;CLR 07H CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH SETB 0DH CLR 0EH CLR 0FH CLR 10H CLR 11H MOV R2,#00H ; MOV R3,#00H ; MOV TMOD,#12H MOV TL1,#0e5H ;wait MOV TH1,#0BeH MOV TH0,#3FH ;200uS 3f MOV TL0,#3FH SETB ET0 SETB ET1 setb pt0 SETB TR0 SETB TR1 SETB IT0 ; SETB EX0 ; CLR PX0 ;LCALL SET1302 ;初始化 MOV R1,#0C1H ;取定时参数从1302中 acall T_6061 MOV 6AH,A ;M MOV R1,#0C3H ACALL T_6061 MOV 6BH,A ;HMOV 61H,#0MOV 62H,#0 SETB EA sjmp $DISPLAY: PUSH ACC PUSH PSW MOV TL1,#0e0H ;wait how long to display (20ms) MOV TH1,#0b0H mov dptr,#tab1 JB 0EH,DIS2 JB 0FH,DIS3 JB 10H,DIS4 JB 11H,DIS5 JNB 0DH,D_OUT JNB 08H,D_GO ;定时到时,显示闪烁 JNB 07H,D_OUTD_GO: MOV DPTR,#TAB1 MOV A,62H ANL A,#0FH MOV B,A MOV A,62H SWAP A ANL A,#07H MOVC A,A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,A+DPTR MOV C,07H MOV acc.7,C ;秒灯闪烁 MOV P1,A CLR LED2 LCALL DL2M SETB LED2 mov dptr,#tab2 ;倒装LED字段表 MOV A,61H ANL A,#0FH MOV B,A MOV A,61H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV C,07H MOV acc.6,C ;秒灯闪烁 MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK mov dptr,#tab1 MOV A,B MOVC A,A+DPTR MOV C,06H cpl c MOV acc.7,C ;闹铃指示灯 MOV P1,A CLR LED4IO LCALL DL2M SETB LED4IOD_OUT: SETB TR1 POP PSW POP ACC RETIDIS2: AJMP DIS_2DIS3: AJMP DIS_3DIS4: AJMP DIS_4DIS5: AJMP DIS_5DIS_2: mov dptr,#tab1 ;显示设置小时 MOV 6FH,62H ACALL BCD_HEX MOV B,#10 DIV AB MOVC A,A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,A+DPTR MOV P1,A CLR LED2 LCALL DL2M SETB LED2 SETB TR1 POP PSW POP ACC RETIDIS_3: MOV DPTR,#TAB2 ;显示设置分 MOV 6FH,61H ACALL BCD_HEX MOV B,#10 DIV AB MOVC A,A+DPTR MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK MOV A,B MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P1,A CLR LED4IO LCALL DL2M SETB LED4IO SETB TR1 POP PSW POP ACC RETIDIS_4: mov dptr,#tab1 ;显示设置闹时 JNB 07H,D4_OUT ;显示时闪烁 MOV A,6BH MOV B,#0AH DIV AB MOVC A,A+DPTR MOV P1,A CLR LED1 LCALL DL2M SETB LED1 MOV A,B MOVC A,A+DPTR MOV P1,A CLR LED2 LCALL DL2M SETB LED2D4_OUT: SETB TR1 POP PSW POP ACC RETIDIS_5: MOV DPTR,#TAB2 JNB 07H,D5_OUT ;显示时闪烁 MOV A,6AH ;显示设置闹分 MOV B,#0AH DIV AB MOVC A,A+DPTR MOV P1,A CLR LED3CLK LCALL DL2M SETB LED3CLK MOV DPTR,#TAB1 MOV A,B MOVC A,A+DPTR MOV P1,A CLR LED4IO LCALL DL2M SETB LED4IOD5_OUT: SETB TR1 POP PSW POP ACC RETIDL2M: MOV 43H,#14H ; every LED(2ms)DL2: MOV 44H,#14HDL1: NOP NOP DJNZ 44H,DL1 DJNZ 43H,DL2 RET;*定时读取1302时间及判断闹铃时间是否到*P_INT: PUSH ACC PUSH PSW INC R2 CJNE R2,#250D,P_OUT MOV R2,#00H INC R3 CJNE R3,#10D,P_OUT MOV R3,#00H CPL 07H MOV P1,#0FFH ACALL R_1302OUT: JNB 06H,P_OUT MOV A,6BH MOV B,#10 DIV AB SWAP A ADD A,B CJNE A,62H,PP_OUT MOV A,6AH MOV B,#10 DIV AB SWAP A ADD A,B CJNE A,61H,PP_OUT SETB 08H ;定时到标志 MOV C,07H cpl c MOV K_ON,CP_OUT: POP PSW POP ACC RETIPP_OUT: SETB K_ON CLR 08H POP PSW POP ACC RETI;*有接收到遥控器信号*S_INT:CLR EA PUSH ACC PUSH PSW PUSH DPH PUSH DPL PUSH 02H PUSH 03H MOV R6,#10D ;SB: ACALL YS1 JB P3.2,EXIT DJNZ R6, SB JNB P3.2, $ ; ACALL YS2 ; JB P3.2,EXIT MOV R1,#1AH ; MOV R2,#4DPP: MOV R3,#8DJJJJ: JNB P3.2,$ ACALL YS1 MOV C,P3.2 JNC UUU JB P3.2,$UUU: MOV A,R1 RRC A MOV R1,A DJNZ R3,JJJJ INC R1 DJNZ R2,PP;- MOV A,1AH ; XRL A,#40h ;判断1AH的值是否等于遥控器低8位地址(40h) JNZ EXIT ; MOV A,1bH XRL A,#0bfh ;再判断高8位地址是否正确(0bfh) JNZ EXIT MOV A,1CH CPL A XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃(核对数据是否准确) JNZ EXIT ACALL DO ;相应按键的处理EXIT: SETB EA POP 03H POP 02H POP DPL POP DPH POP PSW POP ACC RETI;-delay-YS1: MOV 70H,#16D ;延时1D1: MOV 71H,#21D DJNZ 71H,$ DJNZ 70H,D1 RETYS2: MOV 70H,#09D ;延时2D2: MOV 71H,#220D DJNZ 71H,$ DJNZ 70H,D2 RET;-TAB: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;TAB1 LED数码管显示表 TAB遥控器键值表(未用);TAB1: DB 3FH,11H,5EH,5BH,71H,6BH,6FH,19H,7FH,7bH,77H,7CH,39H,5EH,79H,71Htab1: DB 0C0H,0F9H,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0a7h,0a1h,86h,8EHTAB2: DB 0c0H,0f9H,64H,70H,59H,52H,42H ;倒装LED段码表;0CH 为设置标志,0DH为全显示标志,0EH为显示设置小时标志,0FH为显示设置分标志;10H 为显示设置闹时标志,11H为显示设置闹分标志;增加闹时静音功能;mute-10h,timer-0eh,left-46h,right-47h,up-19h,down-1dhDO: MOV A,1CH CJNE A,#TIMERT,REDO ;代码不是设置/退出键 JNB 0CH,SET1 ;是,则进入 CLR 0CH ;是,已经进入,则退出 SETB 0DH ;恢复正常显示 CLR 0EH CLR 0FH CLR 10H CLR 11H RETSET1: SETB 0CH SETB 0EH CLR 0DH CLR 0FH CLR 10H CLR 11H RETREDO: CJNE A,#MUTEM,REDO1 ;不是设置键的处理REDO1,2,3,4. LJMP MUTE ;MUTE?REDO1: CJNE A,#D_OFF,DO_SET2 LJMP DIS_OFF ;关闭显示DO_SET2:JB 0CH,SET2 ;时间设置的处理 RETSET2: CJNE A,#UPU,SET2A LJMP INC1 ;+加()SET2A: CJNE A,#DOWND,SET2B LJMP DEC2 ;- 减SET2B: CJNE A,#RIGHTR,SET2C LJMP RIGHT ;RIGHT右移(>)SET2C: CJNE A,#LEFTL,SET2D LJMP LEFT ;LEFT左移(<)SET2D: CJNE A,#RECALL,SET2EXT ;DS1302初始化 LJMP SET1302SET2EXT:RET;-INC-INC1: JB 0EH,INCH JB 0FH,INCM JB 10H,INC_H JB 11H,INC_M RETINC_H: INC 6BH ;闹钟小时增加 MOV A,6BH CJNE A,#24D,INCH3 MOV 6BH,#0INCH3: MOV R1,#0C2H MOV R0,6BH ACALL SETONE ;写入DS1302 RETINC_M: INC 6AH ;闹钟分增加 MOV A,6AH CJNE A,#60D,INCH4 MOV 6AH,#0INCH4: MOV R1,#0C0H MOV R0,6AH ACALL SETONE ; RETINCH: ;INC 62H ; MOV 6FH,62H ACALL BCD_HEX INC A CJNE A,#24D,INCH1 MOV A,#0INCH1: MOV 6FH,A ACALL HEX_BCD MOV 62H,A MOV R1,#84H MOV R0,62H ACALL SETONE ; RETINCM: ;INC 61H ; MOV 6FH,61H ACALL BCD_HEX INC A CJNE A,#60D,INCH2 MOV A,#0INCH2: MOV 6FH,A ACALL HEX_BCD MOV 61H,A MOV R1,#82H MOV R0,61H ACALL SETONE ; RET;-DEC-DEC2: JB 0EH,DECH JB 0FH,DECM JB 10H,DEC_H JB 11H,DEC_M RETDECH: MOV 6FH,62H ACALL BCD_HEX DEC A CJNE A,#0FFH,DECH1 MOV A,#23DECH1: MOV 6FH,A ACALL HEX_BCD MOV 62H,A MOV R1,#84H MOV R0,62H ACALL SETONE RETDECM: MOV 6FH,61H ACALL BCD_HEX DEC A CJNE A,#0FFH,DECM1 MOV A,#59DECM1: MOV 6FH,A ACALL HEX_BCD MOV 61H,A MOV R1,#82H MOV R0,61H ACALL SETONE RETDEC_H: DEC 6BH MOV A,6BH CJNE A,#0FFH,DECH3 MOV 6BH,#23DDECH3: MOV R1,#0C2H MOV R0,6BH ACALL SETONE RETDEC_M: DEC 6AH MOV A,6AH CJNE A,#0FFH,DECH4 MOV 6AH,#59DDECH4: MOV R1,#0C0H MOV R0,6AH ACALL SETONE RET;-RIGHT-RIGHT: JB 0EH,RIGHT1 JB 0FH,RIGHT2 JB 10H,RIGHT3 JB 11H,RIGHT4 RET ;右移RIGHT1: CLR 0EH SETB 0FH RETRIGHT2: CLR 0FH SETB 10H RETRIGHT3: CLR 10H SETB 11H RETRIGHT4: CLR 11H SETB 0EH RET;-LEFT-LEFT: JB 0EH,LEFT1 JB 0FH,LEFT2 JB 10H,LEFT3 JB 11H,LEFT4 RET ;左移LEFT1: SETB 11H CLR 0EH RETLEFT2: SETB 0EH CLR 0FH RETLEFT3: SETB 0FH CLR 10H RETLEFT4: SETB 10H CLR 11H RET;-MUTE-MUTE: setb k_ON CPL 06H ;静音 CLR 08H RET;-DISPLAY OFF-DIS_OFF:CLR ET1 CPL 05H JNB 05H,REDORE SETB ET1REDORE: RET;-初始化1302-SET1302: CLR RST ;2002年1月1日12:00:00 CLR LED3CLK MOV SECOND,#0 MOV 61H,#0 MOV 62H,#18 ; MOV 63H,#1 MOV 64H,#1 MOV 65H,#1

    注意事项

    本文(毕业设计采用实时时钟芯片DS1302+AT89C2051的红外遥控LED电子钟.doc)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开