单片机课程设计-电脑时钟_第1页
单片机课程设计-电脑时钟_第2页
单片机课程设计-电脑时钟_第3页
单片机课程设计-电脑时钟_第4页
单片机课程设计-电脑时钟_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ORG0000HLJMPMAINORG000BHLJMPTIM01 ;0.1sT0中断ORG0300HMAIN:ACALL INIT ;调用初始化函数LOOP:LCALLKEYIN ;键盘输入AJMPLOOPINIT: MOV7FH,#7EH ;7FH存当前输入位置79-7EHMOV79H,#0 ;初始化显示MOV7AH,#0MOV7BH,#0MOV7CH,#0MOV7DH,#0MOV7EH,#0MOV70H,#0 ;初始化 初始时间0h0m0sMOV71H,#0MOV72H,#0MOV73H,#0SETB20H.0 ;20H.0存储当前输入状态,闹钟输入,或初始值输入KEYIN:LCALLKEY ;键盘输入函数,循环对79-7EH输入,或是命令输入CLRCPUSHACC ;入栈,保存A值SUBBA,#10 ;和10比较JNCCONTRL ;大于等于10,命令键 POPACC ;A出栈 数字键,放到显示缓存MOVR0,7FH ;A放到7FH内容指向地址处MOV@R0,AMOVA,7FH ;是否出了79H-7EH范围CJNEA,#79H,RU ;出范围,循环到7EHMOV7FH,#7FH RETRU:DEC7FH ;范围内自减1RETCONTRL:POPACC ;控制键,执行相应控制操作CJNEA,#0DH,N0CLCALLKJUD ;D控制计时开始,KJUD判断是否在有效时间范围内JNCN0 ;控制操作完成退出LCALLTIMINIT ;定时器及相关内容初始化N0C:CJNEA,#0CH,N0B ;C暂停开始键CPLEA ;中断开关控制计时起止N0B:CJNEA,#0BH,N0 ;B选择输入是闹钟还是起始值CPL20H.0 ;20H.0为其标志0起始1闹钟MOVC,20H.0 ;指示灯表示输入闹钟还是起始值MOVP1.0,CN0:RETTIMINIT:MOVTH0,#03CH ;定时器及相关初始化MOVTL0,#0B0H ;初值SETBTR0 ;运行SETBET0 ;允许定时器中断SETBEA ;总中断允许MOV70H,#0 ;载入计时初值MOV71H,74HMOV72H,75HMOV73H,76H RETDISP:MOVR0,#79H ;显示函数从右至左显示MOVR3,#01H MOVA,R3DIO:MOVDPTR,#0FFDDHMOVX@DPTR,AMOVA,@R0MOVDPTR,#TAB1MOVCA,@A+DPTR;得到键值MOVDPTR,#0FFDCHDIR1:MOVX@DPTR,ALCALLDELAY1INCR0MOVA,R3JBACC.5,LD1RLAMOVR3,AAJMPDIOLD1:RETTAB1:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;显示表 A灭B显示P(错误信号)DB080H,090H,0FFH,08CH,0C6H,0A1H,086H,08EHTAB2:DB07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H ;键值校正表DB02H,0FH,03H,0EH,0CH,0DHDELAY1:MOVR7,#02H ;延时函数12M时精确延时1msDE1:MOVR6,#0FFHDE2:DJNZR6,DE2DJNZR7,DE1RETJUDGE:MOVDPTR,#0FFDDH ;判断是否有效MOVA,#00HMOVX@DPTR,AINCDPTRMOVXA,@DPTRCPLAANLA,#0FHRETKEY:LCALLJUDGEJNZLK1LCALLDISP;AJMPKEYLK1:LCALLDISP;LCALLJUDGEJNZLK2LCALLDISPAJMPKEYLK2:MOVR2,#0FEHMOVR4,#00HLK3:MOVDPTR,#0FFDDHMOVA,R2MOVX@DPTR,AINCDPTRMOVXA,@DPTRLINE0:JBACC.0,LINE1MOVA,#00HAJMPLKPLINE1:JBACC.1,LINE2MOVA,#08HAJMPLKPLINE2:JBACC.2,LINE3MOVA,#10HAJMPLKPLINE3:JBACC.3,NEXTMOVA,#18HLKP:ADDA,R4PUSHACCNT:LCALLDISPLCALLJUDGEJNZNTPOPACCCJNEA,#10H,NN:JNCEXITMOVDPTR,#TAB2MOVCA,@A+DPTREXIT:RETNEXT:INCR4MOVA,R2JNBACC.7,KND ;4*8RLAMOVR2,AAJMPLK3KND:AJMPKEYTIM01:PUSHPSW ;0.1s定时中断PUSHACC ;保护现场MOVTH0,#03CH ;载入初值MOVTL0,#0B0HMOVA,70H ;0.1s计时值存到70HCJNEA,#59,EX01MOV70H,#0MOVA,71H ;秒值放入71HCJNEA,#59,EX1SMOV71H,#0 MOVA,72H ;分钟放入72HCJNEA,#59,EX1MMOV72H,#0MOVA,73HCJNEA,#23,EX1HMOV73H,#0 ;小时73HEX01:INC70HAJMPIEXITEX1S:INC71HACALLALJUD ;判断报警信号函数JNZALARMSETBP1.1 AJMPIEXIT ;报警ALARM:CLRP1.1AJMPIEXITEX1M:INC72HAJMPIEXITEX1H:INC73HAJMPIEXITIEXIT:LCALLDISTIMPOPACC ;恢复现场POPPSWRETIALJUD:CLRC ;报警判断MOVA,73HSUBBA,66H ;闹钟值和现在时间值比较JCALEXCLRCMOVA,72HSUBBA,65HJCALEXSETBCMOVA,71HSUBBA,64HJCALEXCLRARETALEX:MOVA,#1RETDISTIM:MOVB,#10 ;把当前时间值放入79-7EH显示MOVA,71HDIVABMOV79H,BMOV7AH,AMOVA,72HMOVB,#10DIVABMOV7BH,BMOV7CH,AMOVA,73HMOVB,#10DIVABMOV7DH,BMOV7EH,ARETKJUD:CLRC ;键值判断,判断输入是否有效MOVA,7EHMOVB,#10MULABADDA,7DHJB20H.0,ALHMOV76H,AAJMPGOHALH:MOV66H,A ;初始值放入74-76H闹钟放入64-66HGOH:SUBBA,#24JNCEXMOVA,7CHMOVB,#10MULABADDA,7BHJB20H.0,ALMMOV75H,AAJMPGOMALM:MOV65H,AGOM:SUBBA,#60JNCEXMOVA,7AHMOVB,#10MULABADDA,79HJB20H.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论