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

    基于51单片机的数字钟设计_毕业设计论文.doc

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

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

    基于51单片机的数字钟设计_毕业设计论文.doc

    武汉大学电子信息学院电子系统综合设计课程论文基于51单片机的数字钟设计2010 年 6 月 20日目 录1 作品的背景与意义12 功能指标设计13 作品方案设计24 软件设计3附录1 系统电路图6附录2 系统软件代码7电子系统综合设计课程论文1 作品的背景与意义时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。现在我们利用单片机实现数字时钟计时功能的主要内容,其中AT89C51是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点,除此外还实现了万年历和闹钟等的功能。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是集CPU、RAM、ROM、定时、计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51单片机是各单片机中最为典型和最有代表性的一种。所以综上所述,此次实验中所完成的数字钟有着强大的功能和良好的市场前景,复合电子类产品的发展趋势。2 功能指标设计2.1 基本功能1.设计一个精确的1秒定时器; 2.根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显示在LED上; 3.设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考电子表); 2.2 拓展功能1.增加小时、分钟、秒的键盘直接修改功能; 2.设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置闹钟开关。 3.增加万年历功能。3 作品方案设计3.1设计要求基本设计1设计一个精确的一秒定时器2运用一秒的定时器设计出有时、分、秒的数字钟,并显示在LED数码管上3设置按键,能够修改数字钟时间扩展设计:1.设计闹钟功能,能够查看和修改闹钟时间及开关状态2.设计万年历功能,实现日月年的正常进位,能够查看和修改年月日,能够自动区分大小月和平闰年3.2模块划分 初始化程序 设定初值,中断初始化主程序 程序主要执行部分,对子程序(显示、按键设置,闹钟、万年历功能)进行调用定时器中断服务 中断走时:秒分时显示程序 刷新8位数码管来显示时间、日期及扩展功能设置界面按键设置 通过对按键的操作实现时间及扩展功能的设置。闹钟功能 修改闹铃时间,闹铃开关的置换,修改位闪烁加以区分万年历功能修改日期,同样的修改位闪烁加以区分 3.3模块设计概述1.按键设置通过调整选择键SET_KEY选择调整位,选中位开始闪烁,此时再按增加键ADD_KEY或减少键DEC_KEY调整选中位,如果长按ADD_KEY或DEC_KEY,系统识别后则进行调时快进,此时停止闪烁,方便人眼观察。同时还增加了调秒功能:如果选中位是秒,则按增加键或减少键都是将秒清零。3.时间设置进入时间设置界面后,通过调整选择键SET_KEY选择调整位,选中位闪烁。按增加键ADD_KEY或减少键DEC_KEY设置所需要的时间。4.闹钟设置进入闹钟设置界面后,通过调整选择键SET_KEY选择调整位,选中位闪烁。按增加键ADD_KEY或减少键DEC_KEY设置所需要的时间。与时间设置不同的是,闹钟设置里增加了开关设置。5.万年历设置 进入万年历设置界面后,通过调整选择键SET_KEY选择调整位,选中位闪烁。按增加键ADD_KEY或减少键DEC_KEY设置所需要的时间。万年历设置里增加了大小月和平闰年的判别。4 软件设计4.1 主程序流程图4.2闹钟程序流程4.3万年历程序流程4.4中断系统结构图附录一附录二/*/初始化MOV SP,#60H;栈指针地址赋值MOV 3CH,#0CH;设置界面修改位的闪烁频率 具体代码在SERVE 1秒中断服务中MOV 37H,#0FFH;临时地址 预留给39HMOV 39H,#0FFH;段位标志 8位数据对应8个数码管 为0的那位数码管始终暗MOV 3AH,#11111101B;界面转换标志*01为时间界面 取反后 *10为万年历界面 *00为设置闹钟界面CLR A ;时间万年历初始化 时间00:00:00 万年历2000。01。01MOV 23H,A;时MOV 22H,A ;分MOV 21H,A ;秒MOV 33H,#01H;日MOV 34H,#01H ;月MOV 35H,A;年 只能显示2000-2099的时间MOV 3DH,A ;数码管闪烁开关 初始化为关闭状态 取反后 11111111 打开MOV 40H,A ;闹钟设置界面预留地址地址MOV 41H,AMOV 42H,AMOV 43H,AMOV 44H,AMOV 45H,AMOV 46H,AMOV 47H,AMOV 50H,A ;闹钟1 时MOV 51H,A ;闹钟1 分MOV 52H,A ;闹钟1 秒MOV 0AH,A ;闹钟1 开关 00000000为关闭状态 取反后打开闹钟1MOV 53H,A ;同上MOV 54H,AMOV 55H,AMOV 0BH,AMOV 56H,AMOV 57H,A ;同上MOV 58H,AMOV 0CH,AMOV 59H,A ;同上MOV 5AH,AMOV 5BH,AMOV 0DH,AMOV 5CH,A ;同上MOV 5DH,AMOV 5EH,AMOV 0EH,A*/  ORG 0000H   程序入口地址   LJMP START   ORG 000BH   定时器0中断入口地址   LJMP TIMER_0  ORG 0300H/*程序开始,初始化*/   START:   SETB 48H   使用一个bit位用于调时闪烁标志  SETB 47H   使用一个bit位用于产生脉冲用于调时快进时基  MOV R1,#0   调整选择键功能标志:0正常走时、1调时、2调分、3调秒  MOV 20H,#00H  用于控制秒基准时钟源的产生   MOV 21H,#00H  清零秒寄存器  MOV 22H,#00H  清零分寄存器  MOV 23H,#00H  清零时寄存器  MOV 24H,#00H  用于控制调时闪烁的基准时钟的产生   MOV IP,#02H   IP,IE初始化   MOV IE,#82H   MOV TMOD,#01H  设定定时器0工作方式1  MOV TH0,#3CH   MOV TL0,#0B0H  赋定时初值,定时50ms     SETB TR0   启动定时器0   MOV SP,#40H   重设堆栈指针/*主程序*/   MAIN:   LCALL DISPLAY   调用显示子程序   LCALL KEY_SCAN   调用按键检测子程序   JZ MAIN    无键按下则返回重新循环  LCALL SET_KEY   调用选择键处理子程序  JB 46H,MAIN   如果已进行长按调整(调时快进),则不再执行下面的单步调整       LCALL ADD_KEY  调用增加键处理子程序,加一  LCALL DEC_KEY  调用减少键处理子程序,减一   LJMP MAIN    重新循环  /*定时器中断服务程序*/ TIMER_0:   PUSH ACC       PUSH PSW    保护现场  MOV TH0,#3CH  MOV TL0,#0B0H   重新赋定时初值   CPL 47H    产生脉冲用于调时快进时基  INC 24H  MOV A,24H          CJNE A,#10,ADD_TIME 产生0.5秒基准时钟,用于调时闪烁  CPL 48H    取反调时闪烁标志位  MOV 24H,#00HADD_TIME:     走时  INC 20H      MOV A,20H   CJNE A,#20,RETI1 产生1秒基准时钟   MOV 20H,#00H   一秒钟时间到,清零20H  MOV A,21H  ADD A,#01H  DA A     作十进制调整  MOV 21H,A   CJNE A,#60H,RETI1   MOV 21H,#00H   一分钟到   MOV A,22H   ADD A,#01H   DA A   MOV 22H,A   CJNE A,#60H,RETI1   MOV 22H,#00H   一小时到   MOV A,23H   ADD A,#01H   DA A   MOV 23H,A   CJNE A,#24H,RETI1   MOV 23H,#00H   到24点,清零小时 RETI1:   POP PSW       POP ACC    恢复现场  RETI     中断返回/*显示处理*/ DISPLAY:  MOV A,21H    秒  ANL A,#0FH   MOV 2FH,A   转换出秒个位,存入2FH  MOV A,21H   ANL A,#0F0H   SWAP A   MOV 2EH,A   转换出秒十位,存入2EH  JB 46H,MIN   如果长按按键(调时快进),则跳过闪烁处理程序  CJNE R1,#3,MIN  如果R1为3,闪烁秒位待调整  JB 48H,MIN  MOV 2FH,#0AH  使该位为10,查表得到使该位不显示的输出  MOV 2EH,#0AHMIN:  MOV A,22H    分   ANL A,#0FH   MOV 2DH,A   转换出分个位,存入2DH  MOV A,22H   ANL A,#0F0H   SWAP A   MOV 2CH,A   转换出分十位,存入2CH  JB 46H,HOUR   如果长按按键(调时快进),则跳过闪烁处理程序  CJNE R1,#2,HOUR  如果R1为2,闪烁分位待调整   JB 48H,HOUR  MOV 2DH,#0AH  使该位为10,查表得到使该位不显示的输出  MOV 2CH,#0AHHOUR:  MOV A,23H    时   ANL A,#0FH    MOV 2BH,A   转换出时个位,存入2BH  MOV A,23H   ANL A,#0F0H   SWAP A   MOV 2AH,A   转换出时十位,存入2AH  JB 46H,DISP   如果长按按键(调时快进),则跳过闪烁处理程序  CJNE R1,#1,DISP  如果R1为1,闪烁时位待调整    JB 48H,DISP  MOV 2BH,#0AH  使该位为10,查表得到使该位不显示的输出  MOV 2AH,#0AH/*数码管动态扫描显示*/DISP:  MOV DPTR,#TABLE  MOV A,2FH  MOVC A,A+DPTR  MOV P0,A  CLR P2.7  LCALL DELAY  SETB P2.7   显示秒个位  MOV A,2EH  MOVC A,A+DPTR  MOV P0,A  CLR P2.6  LCALL DELAY  SETB P2.6   显示秒十位  MOV A,#0BFH  MOV P0,A  CLR P2.5  LCALL DELAY  SETB P2.5   显示“-”  MOV A,2DH  MOVC A,A+DPTR  MOV P0,A  CLR P2.4  LCALL DELAY  SETB P2.4   显示分个位  MOV A,2CH  MOVC A,A+DPTR  MOV P0,A  CLR P2.3  LCALL DELAY  SETB P2.3   显示分十位  MOV A,#0BFH  MOV P0,A  CLR P2.2  LCALL DELAY  SETB P2.2   显示“-”  MOV A,2BH  MOVC A,A+DPTR  MOV P0,A  CLR P2.1  LCALL DELAY  SETB P2.1   显示时个位  MOV DPTR,#TABLE1 该位使用TABLE1以消除前置0  MOV A,2AH  MOVC A,A+DPTR  MOV P0,A  CLR P2.0  LCALL DELAY  SETB P2.0   显示时十位  RET   /*按键检测子程序*/ KEY_SCAN:   CLR 46H    关闭长按调整(调时快进)标志  MOV P1,#0FFH   将P1口设置成输入状态   MOV A,P1   CPL A   ANL A,#07H   P1口低3位连接3个按键,只判断该3位   JZ EXIT_KEY   无键按下则返回   LCALL DELAY   延时去抖动  MOV A,P1   重新判断   CPL A   ANL A,#07H   JZ EXIT_KEY   键盘去抖动   MOV R5,A    临时将键值存入R5  MOV R4,#00H   用于控制调时快进速度  设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进   LOOP:      进入长按处理  LCALL DISPLAY  使长按时显示正常    MOV A,P1   CPL A   ANL A,#07H  JB 47H,LOOP1  INC R4    调时快进间隔时间基准加1LOOP1:  CJNE R1,#03H,LOOP2 如果调秒时长按,则不处理  LJMP LOOP3LOOP2:  CJNE R4,#99H,LOOP3   MOV R4,#70H   确认用户长按后,重新设定起始值,加快调时快进速度  SETB 46H   长按调整(调时快进)标志     LCALL ADD_KEY  LCALL DEC_KEYLOOP3:  JNZ LOOP    等待键释放  MOV A,R5   输出键值  RET   EXIT_KEY:  RET/*延时子程序*/DELAY:    MOV R7,#150    DJNZ R7,$  RET   /*选择键处理子程序*/ SET_KEY:   CJNE R5,#01H,EXIT 选择键键值  INC R1    调整选择功能标志加一  CJNE R1,#4,EXIT  MOV R1,#0  MOV 24H,#00H  调时闪烁基准清零   RET/*增加键处理子程序*/ ADD_KEY:   CJNE R5,#02H,EXIT 增加键键值  CJNE R1,#01H,NEXT1 选择键功能标志为1,调时,否则跳出  MOV A,23H  ADD A,#01H  DA A  MOV 23H,A  CJNE A,#24H,EXIT  MOV 23H,#00HNEXT1:  CJNE R1,#02H,NEXT2 选择键功能标志为2,调分,否则跳出  MOV A,22H  ADD A,#01H  DA A  MOV 22H,A  CJNE A,#60H,EXIT  MOV 22H,#00HNEXT2:  CJNE R1,#03H,EXIT 选择键功能标志为3,调秒,否则跳出  MOV 21H,#00H  如增加键按下直接清零秒  RET/*减少键处理子程序*/ DEC_KEY:   CJNE R5,#04H,EXIT 减少键键值  CJNE R1,#01H,NEXT3 选择键功能标志为1,调时,否则跳出  MOV A,23H  ADD A,#99H  DA A  MOV 23H,A  CJNE A,#99H,EXIT  MOV 23H,#23H NEXT3:  CJNE R1,#02H,NEXT4 选择键功能标志为2,调分,否则跳出  MOV A,22H  ADD A,#99H  DA A  MOV 22H,A  CJNE A,#99H,EXIT  MOV 22H,#59HNEXT4:  CJNE R1,#03H,EXIT 选择键功能标志为3,调秒,否则跳出  MOV 21H,#00H  如较少键按下直接清零秒  RET/*万用返回子程序*/  EXIT:   RET/*数码管字形编码表*/TABLE:   DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;字形显示编码TABLE1:  DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小时位的十位数编码,该位如果为0则不显示/闹钟检测MOV A,0AHJZ NAO2 ;检测闹钟开关 若关检测下一个闹钟,否则检测时间是否为闹钟设定时间MOV A,30HCJNE A,50H,NAO2MOV A,31HCJNE A,51H,NAO2MOV A,32HCJNE A,52H,NAO2AJMP XIANG ;时间为闹钟设定时间吻合 进入闹铃程序 下同NAO2:MOV A,0BHJZ NAO3MOV A,30HCJNE A,53H,NAO3MOV A,31HCJNE A,54H,NAO3MOV A,32HCJNE A,55H,NAO3AJMP XIANGNAO3:MOV A,0CHJZ NAO4MOV A,30HCJNE A,56H,NAO4MOV A,31HCJNE A,57H,NAO4MOV A,32HCJNE A,58H,NAO4AJMP XIANGNAO4:MOV A,0DHJZ NAO5MOV A,30HCJNE A,59H,NAO5MOV A,31HCJNE A,5AH,NAO5MOV A,32HCJNE A,5BH,NAO5AJMP XIANGNAO5:MOV A,0EHJZ BUMOV A,30HCJNE A,5CH,BUMOV A,31HCJNE A,5DH,BUMOV A,32HCJNE A,5EH,BUAJMP XIANG/检测独立按键BU: JB T0,ZHU1;检测s19是否按下 按下进入万年历界面,否则检测矩阵键盘MOV A,3AH;界面转换标志取反即可使得时间和万年历界面相互转换CPL AMOV 3AH,A/检测矩阵键盘/检测到按键1,2,3,4,5时进入对应的闹钟设置界面 检测到0BH(对应s11)进入时间设置界面 检测到0CH(对应s12)进入万年历设置界面/若未检测到按键 则跳回主程序继续下一个检测周期ZHU1:MOV R7,#0FHACALL JIANCEANJIAN ;矩阵键盘检测子程序 将检测到的键值存入r7CJNE R7,#0FH,ZHU2AJMP ZHUXUNHUANZHU2:CJNE R7,#0BH,ZHU3AJMP SHIJIANSHEZHIZHU3:CJNE R7,#0CH,ZHU4AJMP WANNIANLISHEZHIZHU4:CJNE R7,#01H,ZHU5AJMP NAOZHONGSHEZHIZHU5:CJNE R7,#02H,ZHU6AJMP NAOZHONGSHEZHIZHU6:CJNE R7,#03H,ZHU7AJMP NAOZHONGSHEZHIZHU7:CJNE R7,#04H,ZHU8AJMP NAOZHONGSHEZHIZHU8:CJNE R7,#05H,ZHUXUNHUAN0AJMP NAOZHONGSHEZHIZHUXUNHUAN0: AJMP ZHUXUNHUAN/年月日校正子程序 用于万年历进位和万年历设置 防止出现不存在的时间NYR:MOV A,33HCJNE A,#32,MONTH ;日为32时,月进位日置1MOV 33H,#01HAJMP MONTH0MONTH:CJNE A,#31,MONTH1 ;日为31时 分辨大小月及2月MOV A,34HCJNE A,#4,MONTH2MOV 33H,#01HAJMP MONTH0MONTH2:CJNE A,#2,MONTH6MOV 33H,#01H AJMP MONTH0MONTH6:CJNE A,#6,MONTH9MOV 33H,#01HAJMP MONTH0MONTH9:CJNE A,#9,MONTH11MOV 33H,#01HAJMP MONTH0MONTH11:CJNE A,#11,RETURN0MOV 33H,#01HAJMP MONTH0MONTH1: CJNE A,#30,MONTH29 ;日为30时分辨2月 MOV A,34HCJNE A,#02H,RETURN0MOV 33H,#01HAJMP MONTH0MONTH29:CJNE A,#29,RETURN0 ;日为29时分辨闰平年2月MOV A,34HCJNE A,#02H,RETURN0MOV A,35HMOV B,#04HDIV ABMOV A,BJNZ MONOAJMP RETURN0MONO:MOV 33H,#01HMONTH0: MOV A,#01H ;月进位ADD A,34HMOV 34H,ACJNE A,#0DH,RETURN0MOV 34H,#01HMOV A,#01HADD A,35HMOV 35H,ACJNE A,#100,RETURN0 ;年最多只能99MOV 35H,#00RETURN0: RET/*/屏幕刷新中断XIANSHI:PUSH BPUSH DPHPUSH DPL PUSH PSWPUSH ACCMOV TH1,#0DFHMOV TL1,#0E0HMOV A,3AHJNB ACC.0,WANNIANLI ;界面显示判断/时间界面MOV A,21HMOV B,#0AH DIV ABMOV 10H,BMOV 11H,AMOV A,22HMOV B,#0AHDIV ABMOV 12H,BMOV 13H,AMOV A,23HMOV B,#0AHDIV ABMOV 14H,BMOV 15H,AMOV 16H,#0AHMOV 17H,#0AHAJMP LIANG/万年历界面WANNIANLI:JNB ACC.1,SHEZHIMOV A,33HMOV B,#0AH DIV ABMOV 10H,BMOV 11H,AMOV A,34HMOV B,#0AHDIV ABMOV 12H,BMOV 13H,AMOV A,35HMOV B,#0AHDIV ABMOV 14H,BMOV 15H,AMOV 16H,#00HMOV 17H,#02HAJMP LIANG/闹钟设置界面SHEZHI:MOV 10H,40HMOV 11H,41HMOV 12H,42HMOV 13H,43HMOV 14H,44HMOV 15H,45HMOV 16H,46HMOV 17H,47H/万年历设置WANNIANLISHEZHI:MOV 3AH,#0FEH ;转换设置界面MOV 39H,#11011111B ;设置闪烁位MOV 37H,39HMOV 3DH,#0FFH ;开闪烁开关WM: ACALL NYR ;校正 万年历JB T1,WS1 ;s20 按下 退出设置界面MOV 39H,#0FFH ;关闪烁MOV 3DH,#00H ;闪烁开关 关MOV 3AH,#11111101B ;转换成时间设置界面AJMP ZHUXUNHUANWS1: JB INT0,WS2 ;修改位 右移 同上MOV A,37HCJNE A,#11111110B,WSS0RR ARR ARRAMOV 37H,AS20:JNB INT0,S20AJMP WMWSS0:RR AMOV 37H,AS21:JNB INT0,S21 AJMP WMWS2: JB INT1,WM1 ;修改位左移MOV A,37HCJNE A,#11011111B,WSS1RL ARL ARL AMOV 37H,AS23:JNB INT1,S23AJMP WMWSS1:RL AMOV 37H,AS24:JNB INT1,S24AJMP WM/矩阵键盘检测 修改万年历 WM1:MOV R7,#0FHACALL JIANCEANJIANCJNE R7,#0FH,WSJSZ1AJMP WMWSJSZ1:MOV A,37H;检测修改位JB ACC.5,WSJSZ2/修改年十位MOV A,35HMOV B,#0AH DIV ABMOV 1FH,BMOV A,R7MOV B,#0AHMUL ABADD A,1FHMOV 35H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ2:JB ACC.4,WSJSZ3/修改年个位MOV A,35HMOV B,#0AHDIV ABMOV B,#0AHMUL ABADD A,R7MOV 35H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ3:JB ACC.3,WSJSZ4/修改月十位 只能为0,1 但月个位不为0,1,2是不能修改为1月个位为0时不能修改为0CJNE R7,#00H,WSJ1MOV A,34HMOV B,#0AHDIV ABMOV A,BCJNE A,#00H,WLED4AJMP WMMMWSJ1:CJNE R7,#01H,WMMMMOV A,34HMOV B,#0AHDIV ABMOV A,BCJNE A,#00H,L1AJMP WLED4L1: CJNE A,#01H,L2AJMP WLED4L2: CJNE A,#02H,WMMMAJMP WLED4WMMM:LJMP WMWLED4:MOV A,34HMOV B,#0AHDIV ABMOV 1FH,BMOV A,R7MOV B,#0AHMUL ABADD A,1FHMOV 34H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ4:JB ACC.2,WSJSZ5/修改月个位 但月十位为1时只能修改为0,1,2 月十位为0时不能修改为0MOV A,34HMOV B,#0AHDIV ABCJNE A,#00H,WJ0CJNE R7,#00H,WLED3AJMP WWMWJ0:CJNE R7,#00H,WJ1AJMP WLED3WJ1: CJNE R7,#01H,WJ2AJMP WLED3WJ2: CJNE R7,#02H,WWMAJMP WLED3WLED3:MOV B,#0AHMUL ABADD A,R7MOV 34H,AMOV A,37HRR AMOV 37H,AWWM: AJMP WMWSJSZ5: JB ACC.1,WSJSZ6/修改日十位 只能为0,1,2,3 日个位不为0,1时不能修改为3CJNE R7,#00H,WSJ10AJMP WLED2WSJ10: CJNE R7,#01H,WSJ20AJMP WLED2WSJ20:CJNE R7,#02H,WSJ30AJMP WLED2WSJ30:CJNE R7,#03H,WWMMOV A,33HMOV B,#0AHDIV ABMOV A,BCJNE A,#00H,L3AJMP WLED2L3: CJNE A,#01H,WWMAJMP WLED2WLED2:MOV A,33HMOV B,#0AHDIV ABMOV 1FH,BMOV A,R7MOV B,#0AHMUL ABADD A,1FHMOV 33H,AMOV A,37HRR AMOV 37H,AAJMP WMWSJSZ6:/修改日个位 日十位为3时 只能修改为0,1 MOV A,33HMOV B,#0AHDIV ABCJNE A,#00H,LL4CJNE R7,#00H,WLED1AJMP WMLL4: CJNE A,#03H,WLED1CJNE R7,#00H,WJ4AJMP WLED1WJ4:CJNE R7,#01H,WWMAJMP WLED1WLED1:MOV B,#0AHMUL ABADD A,R7MOV 33H,AMOV 37H,#11011111BAJMP WM/*/矩阵按键检测子程序JIANCEANJIAN:MOV DPTR,#8000HMOV A,#0F0HMOVX DPTR,AMOV DPTR,#8000HMOVX A,DPTR CPL AJNZ XIAODOURETXIAODOU:/ACALL DELAYMOV A,#0F0HMOV DPTR,#8000HMOVX A,DPTRCPL AJNZ PANRETPAN: MOV DPTR,#8000HMOV A,#11111110BMOVX DPTR,AMOV DPTR,#8000HMOVX A,DPTRJNB ACC.0,KEY10;低电位说明按键在该位JNB ACC.1,KEY20JNB ACC.2,KEY30JNB ACC.3,KEY40MOV DPTR,#8000HMOV A,#11111101BMOVX DPTR,AMOV DPTR,#8000HMOVX

    注意事项

    本文(基于51单片机的数字钟设计_毕业设计论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




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

    三一文库
    收起
    展开