




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字钟在单片机上的实现(汇编语言)数字钟在单片机上的实现(汇编语言)数字钟在单片机上的实现(汇编语言)数字钟在单片机上的实现(汇编语言)编制仅供参考审核批准生效日期地址:电话:传真:邮编:武汉大学电子信息学院电子系统综合设计课程论文数字钟在单片机上的实现(汇编语言)专业:年级:作者:__________________________指导教师:2012年06目录1作品的背景与意义 12功能指标设计 1设计要求 1基本要求 1拓展要求 1功能设计方案 13作品方案设计 2总体方案的选择 2模块划分及分析 3单模块设计流程图 34模块源程序 75系统测试 35测试数据: 366心得体会 361作品的背景与意义数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。2功能指标设计设计要求基本要求设计一个精确的1秒定时器;根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显示在LED上;设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考电子表)。拓展要求增加小时、分钟、秒的键盘直接修改功能;设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置闹钟开关;增加万年历功能。功能设计方案1.实现正常走时(秒-分-时-日-月-年进位);2.能够设置时间和日期;3.能够自动区分平闰年和大小月及2月;4.具有5个闹钟及其设置功能;5.在任何设置状态下,修改位会闪烁显示。3作品方案设计总体方案的选择以T0计时器中断产生1s信号,T1计时器中断刷新数码管。系统软件流程图如下所示:设计时使T0优先级高于T1以确保准确计时,初始化完成后,程序一直处于主循环模块,主循环模块中有设置按键的检测模块,当遇到设置信号暂时跳出主循环去执行相应的设置模块,时间设置,日期设置,闹钟设置3大模块彼此之间是相互独立且平行的,他们和主循环模块也不干扰。因此,当进入任何一个模块时,其他模块中的所有功能和按键都暂时失效,程序由始至终中断服务一直打开。模块划分及分析••MAIN:初始化程序模块进行初值的分配(栈顶地址,初始时间,初始日期,初始化闹钟及相关标志地址)各定时器,中断初始化。▪ZHUXUNHUAN:主循环模块程序主要执行部分,包含闹钟检测,独立按键检测(日期—时间转换检测),矩阵按键检测(闹钟设置,日期设置,时间设置)3大检测部分。▪•SERVE:1s中断服务中断走时:秒→分→时→日→月→年▪XIAGSHI:刷屏中断服务(显示中断服务)以人眼不能分辨的频率一次刷新8或6位数码管来显示时间或日期及其他设置界面。▪SHIJIANSHEZHI:时间设置模块修改时间,其中修改位闪烁显示加以区分,内嵌了时间的自动检测和校正代码,既不允许修改出现不存在的时间。▪WANNIANLISHEZHI:日期设置模块修改日期,同样的修改位闪烁加以区分,内嵌了日期的自动检测和校正代码,既不允许出现不存在的日期。▪NAOZHONGSHEZHI:闹钟设置模块修改闹钟时间,闹钟开关的置换,修改位闪烁加以区分,内嵌时间自动监测和校正代码已设置正确的时间。单模块设计流程图在完成的整体设计和模块划分后,便进入到工作量最大的单模块流程设计。▪主循环:说明:1.初始化时,将保存5个闹钟(按时分秒顺序排放)的15个地址50H—5EH均清零,将对应的5个闹钟开关0AH—0EH也都清零表示闹钟开关状态,检测闹钟时,从第一个闹钟开始分别检测开关,时分秒只要有任何一项不符合及即检测下一个闹钟,到最后一个闹铃也不符合时,进入按键检测部分。2.按键检测包含独立按键和矩阵按键两部分,独立按键很简单,矩阵按键则编写检测子程序,将检测到的键值保存在寄存器R7中,没有检测到按键时不改变R7的数值。因此,检测器先将R7里面放入#0FH(只要不是#00H—#0CH中的数即可),然后调用矩阵键盘检测子程序,再来通过检测R7的数值来判断有无按键按下或按下的那个键。▪时间设置模块:说明:1.进入时间设置模块后,时的十位开始闪烁,通过独立按键s17,s18可以向右向左移动闪烁即修改位,修改正确的判断实际上是对将要修改完成的时间进行合理性的判断,如合理则修改时间,若不合理则此次按键失效。2.检测到退出信号后,先要将所有初始化过程中改变了的标志位还原,如闪烁开关位等,再调回主循环。▪日期设置模块:日期设置模块和时间设置模块几乎完全一样,所不同的是初始化不一样及日期设置里面有8位数码管需要刷新,而且由于日期比时间复杂,因此该模块中有两处日期校正部分,一部分是对按键修改是否正确的判断,使用方法也是使相应按键暂时失效(例如:修改前日期是2012:03:31,那么此时月份上得十位1-9所以数字都暂时失效,日个位上的2-9所以数字也都全部暂时失效);另一部分是修改后的日期校正,通过调用该子程序,防止上一部分不能消除的错误日期设置(例如:修改前日期是2012:01:31,这时修改月份个位为2则日期变为2012:02:31,显然这样的日期是不存在的,这时校正程序将日期进位,日期更改为2012:03:01)。这部分校正模块在后面的1s中断服务中也有使用。下图为该模块流程图:▪闹钟设置模块:闹钟设置模块和时间设置一是大同小异,主要区别在于多了一部分闹铃开关的检测。下图为该模块流程图:4模块源程序 ORG0000HAJMPMAIN ORG000BH AJMPSERVEORG001BHAJMPXIANSHITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H ;段选表0,1,2,3,4,5,6,7,8,9,熄灭,-TAB1:DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,00H,40H ;段选表带小数点,同上MAIN:/*****************************************************************************///初始化MOVSP,#60H ;栈指针地址赋值MOV3CH,#0CH ;设置界面修改位的闪烁频率具体代码在SERVE1秒中断服务中MOV37H,#0FFH ;临时地址预留给39H MOV39H,#0FFH ;段位标志8位数据对应8个数码管为0的那位数码管始终暗 MOV3AH,#B;界面转换标志 ******01为时间界面取反后******10为万年历界面******00为设置闹钟界面 CLRA ;时间万年历初始化时间00:00:00万年历2000。01。01 MOV30H,A ;时 MOV31H,A ;分 MOV32H,A ;秒 MOV33H,#01H ;日 MOV34H,#01H ;月 MOV35H,A ;年 只能显示2000-2099的时间 MOV3DH,A;数码管闪烁开关初始化为关闭状态取反后打开 MOV40H,A;闹钟设置界面预留地址地址 MOV41H,A MOV42H,A MOV43H,A MOV44H,A MOV45H,A MOV46H,A MOV47H,A MOV50H,A;闹钟1时 MOV51H,A ;闹钟1分 MOV52H,A ;闹钟1秒 MOV0AH,A ;闹钟1开关00000000为关闭状态取反后打开闹钟1 MOV53H,A ;同上 MOV54H,A MOV55H,A MOV0BH,A MOV56H,A MOV57H,A ;同上 MOV58H,A MOV0CH,A MOV59H,A ;同上 MOV5AH,A MOV5BH,A MOV0DH,A MOV5CH,A ;同上 MOV5DH,A MOV5EH,A MOV0EH,A//中断,定时器初始化MOVTMOD,#11H MOV38H,#14H ;T0定时器每50ms溢出一次溢出20次为一秒 SETBPT0 ;优先级设置1秒中断为最高级屏幕刷新优先级低 SETBPT1 SETBET0 SETBET1 SETBEA MOVTH1,#0DFH ;T1定时器设置显示扫描频率 MOVTL1,#0E0H MOVTH0,#3CH ;T0定时器设置为50ms MOVTL0,#0B0H SETBTR1 SETBTR0/***********************************************************************///程序主循环 ZHUXUNHUAN://闹钟检测 MOVA,0AH JZNAO2 ;检测闹钟开关若关检测下一个闹钟,否则检测时间是否为闹钟设定时间 MOVA,30H CJNEA,50H,NAO2 MOVA,31H CJNEA,51H,NAO2 MOVA,32H CJNEA,52H,NAO2 AJMPXIANG ;时间为闹钟设定时间吻合进入闹铃程序下同NAO2: MOVA,0BH JZNAO3 MOVA,30H CJNEA,53H,NAO3 MOVA,31H CJNEA,54H,NAO3 MOVA,32H CJNEA,55H,NAO3 AJMPXIANGNAO3: MOVA,0CH JZNAO4 MOVA,30H CJNEA,56H,NAO4 MOVA,31H CJNEA,57H,NAO4 MOVA,32H CJNEA,58H,NAO4 AJMPXIANGNAO4: MOVA,0DH JZNAO5 MOVA,30H CJNEA,59H,NAO5 MOVA,31H CJNEA,5AH,NAO5 MOVA,32H CJNEA,5BH,NAO5 AJMPXIANGNAO5: MOVA,0EH JZBU MOVA,30H CJNEA,5CH,BU MOVA,31H CJNEA,5DH,BU MOVA,32H CJNEA,5EH,BU AJMPXIANG//检测独立按键BU:JBT0,ZHU1 ;检测s19是否按下按下进入万年历界面,否则检测矩阵键盘 MOVA,3AH ;界面转换标志取反即可使得时间和万年历界面相互转换 CPLA MOV3AH,A//检测矩阵键盘//检测到按键1,2,3,4,5时进入对应的闹钟设置界面检测到0BH(对应s11)进入时间设置界面检测到0CH(对应s12)进入万年历设置界面//若未检测到按键则跳回主程序继续下一个检测周期ZHU1: MOVR7,#0FH ACALLJIANCEANJIAN;矩阵键盘检测子程序将检测到的键值存入r7 CJNER7,#0FH,ZHU2 AJMPZHUXUNHUANZHU2: CJNER7,#0BH,ZHU3 AJMPSHIJIANSHEZHIZHU3: CJNER7,#0CH,ZHU4 AJMPWANNIANLISHEZHIZHU4: CJNER7,#01H,ZHU5 AJMPNAOZHONGSHEZHIZHU5: CJNER7,#02H,ZHU6 AJMPNAOZHONGSHEZHIZHU6: CJNER7,#03H,ZHU7 AJMPNAOZHONGSHEZHIZHU7: CJNER7,#04H,ZHU8 AJMPNAOZHONGSHEZHIZHU8: CJNER7,#05H,ZHUXUNHUAN0 AJMPNAOZHONGSHEZHIZHUXUNHUAN0: AJMPZHUXUNHUAN/****************************************************************************///1秒中断服务 见书141例6-6SERVE: CLREA PUSHB PUSHDPH PUSHDPLPUSHPSW PUSHACC MOVTH0,#3CH MOVTL0,#0B0H MOVA,3DH JZSE MOVA,3CH CJNEA,#6,SE0 MOV39H,37HSE0:DJNZ3CH,SE MOV39H,#0FFH MOV3CH,#0CHSE: DJNZ38H,RETURN MOV38H,#14H MOVA,#01H ADDA,32H MOV32H,A CJNEA,#3CH,RETURN MOV32H,#00H MOVA,#01H ADDA,31H MOV31H,A CJNEA,#3CH,RETURN MOV31H,#00H MOVA,#01H ADDA,30H MOV30H,A CJNEA,#18H,RETURN MOV30H,#00H MOVA,#01H ADDA,33H MOV33H,A ACALLNYRRETURN:POPACC POPPSW POPDPL POPDPH POPB SETBEA RETI/**************************************************************************///年月日校正子程序用于万年历进位和万年历设置防止出现不存在的时间NYR: MOVA,33H CJNEA,#32,MONTH ;日为32时,月进位日置1 MOV33H,#01H AJMPMONTH0MONTH: CJNEA,#31,MONTH1 ;日为31时分辨大小月及2月 MOVA,34H CJNEA,#4,MONTH2 MOV33H,#01H AJMPMONTH0MONTH2: CJNEA,#2,MONTH6 MOV33H,#01H AJMPMONTH0MONTH6: CJNEA,#6,MONTH9 MOV33H,#01H AJMPMONTH0MONTH9: CJNEA,#9,MONTH11 MOV33H,#01H AJMPMONTH0MONTH11: CJNEA,#11,RETURN0 MOV33H,#01H AJMPMONTH0MONTH1: CJNEA,#30,MONTH29 ;日为30时分辨2月 MOVA,34H CJNEA,#02H,RETURN0 MOV33H,#01H AJMPMONTH0MONTH29: CJNEA,#29,RETURN0 ;日为29时分辨闰平年2月 MOVA,34H CJNEA,#02H,RETURN0 MOVA,35H MOVB,#04H DIVAB MOVA,B JNZMONO AJMPRETURN0MONO: MOV33H,#01HMONTH0: MOVA,#01H ;月进位 ADDA,34H MOV34H,A CJNEA,#0DH,RETURN0 MOV34H,#01H MOVA,#01H ADDA,35H MOV35H,A CJNEA,#100,RETURN0 ;年最多只能99 MOV35H,#00RETURN0:RET/******************************************************************///屏幕刷新中断XIANSHI:PUSHBPUSHDPH PUSHDPL PUSHPSW PUSHACC MOVTH1,#0DFH MOVTL1,#0E0H MOVA,3AH JNB,WANNIANLI;界面显示判断//时间界面 MOVA,32H MOVB,#0AH DIVAB MOV10H,B MOV11H,A MOVA,31H MOVB,#0AH DIVAB MOV12H,B MOV13H,A MOVA,30H MOVB,#0AH DIVAB MOV14H,B MOV15H,A MOV16H,#0AH MOV17H,#0AH AJMPLIANG//万年历界面WANNIANLI:JNB,SHEZHIMOVA,33H MOVB,#0AH DIVAB MOV10H,B MOV11H,A MOVA,34H MOVB,#0AH DIVAB MOV12H,B MOV13H,A MOVA,35H MOVB,#0AH DIVAB MOV14H,B MOV15H,A MOV16H,#00H MOV17H,#02H AJMPLIANG//闹钟设置界面SHEZHI:MOV10H,40H MOV11H,41H MOV12H,42H MOV13H,43H MOV14H,44H MOV15H,45H MOV16H,46H MOV17H,47H//刷新屏幕LIANG:MOVR6,#B ;位选 MOVR0,#10H ;利用r0间接访问功能实现选中位显示控制 MOVR4,#8H ;刷新8次MAIN0: ;位选子程序ACALLL CJNER0,#12H,TT1 MOVDPTR,#TAB1 AJMPK TT1: CJNER0,#14H,TT2 MOVDPTR,#TAB1 AJMPKTT2: MOVDPTR,#TABK: MOVA,@R0 MOVCA,@A+DPTR MOVR5,A//数码管开关判断不刷新39H中对应为0的那段数码管 MOVA,39H JNB,AC0 JNB,AC1 JNB,AC2 JNB,AC3 JNB,AC4 JNB,AC5 JNB,AC6 JNB,AC7 AJMPJ0AC0:CJNER4,#08H,J0AJMPJ1AC1:CJNER4,#07H,J0AJMPJ1AC2:CJNER4,#06H,J0AJMPJ1AC3:CJNER4,#05H,J0AJMPJ1AC4:CJNER4,#04H,J0AJMPJ1AC5:CJNER4,#03H,J0AJMPJ1AC6:CJNER4,#02H,J0AJMPJ1AC7:CJNER4,#01H,J0AJMPJ1 J0: ACALLR ;段选子程序J1: MOVA,R6 RLAMOVR6,A INCR0 ACALLDELAY1 ;延时越长数码管越亮但过长导致刷新过慢数码管不能同时全亮 MOVDPTR,#8200H MOVA,#00H MOVX@DPTR,A DJNZR4,MAIN0 POPACC POPPSW POPDPL POPDPH POPB RETIL:MOVDPTR,#8300H MOVA,R6 MOVX@DPTR,A RETR: MOVDPTR,#8200H MOVA,R5 MOVX@DPTR,A RET/********************************************************************///延时子程序DELAY: ;延时20毫秒用于矩阵键盘的检测MOV3EH,#120LOOP1: MOV3FH,#30LOOP2: DJNZ3FH,LOOP2 DJNZ3EH,LOOP1 RETMDELAY: MOV3EH,#5MLOOP1: MOV3FH,#0AAHMLOOP2: DJNZ3FH,MLOOP2 DJNZ3EH,MLOOP1 RETDELAY1: MOV3EH,#15LOOP11: MOV3FH,#40LOOP21: DJNZ3FH,LOOP21 DJNZ3EH,LOOP11 RETDELAY0: MOV3EH,#0FFHLOOP10: MOV3FH,#0FFHLOOP20: DJNZ3FH,LOOP20 DJNZ3EH,LOOP10 RET/***********************************************************///时间设置SHIJIANSHEZHI:MOV39H,#B ;时的十位闪烁 MOV37H,39H MOV3DH,#0FFH ;开闪烁开关M: JBT1,S1 ;检测独立按按键s20按下则退出时间设置继续进入主循环 MOV39H,#0FFH MOV3DH,#00H AJMPZHUXUNHUANS1: JBINT0,S2 ;闪烁位即修改为右移MOVA,37H CJNEA,#B,SS0 RRA RRA RR A MOV37H,AS10: JNBINT0,S10 ;右移按键松开才继续下面的程序 防止一次按键右移多位下同 AJMPMSS0: RRA MOV37H,AS11: ;左移 JNBINT0,S11 AJMPMS2: JBINT1,M1MOVA,37H CJNEA,#B,SS1 RLA RLA RL A MOV37H,AS12: JNBINT1,S12 AJMPMSS1: RLA MOV37H,AS13: JNBINT1,S13 AJMPM//检测矩阵按键修改时间 M1: MOVR7,#0FHACALLJIANCEANJIAN CJNER7,#0FH,SJSZ1 AJMPMSJSZ1: MOVA,37H ;检测修改的是哪位 JB,SJSZ2//修改时十位只能修改为0,1,2但时个位部位0,1,2,3时不能修改为2 CJNER7,#00H,SJS1 AJMPLED6SJS1: CJNER7,#01H,SJS2 AJMPLED6SJS2: CJNER7,#02H,M AJMPLED6LED6:MOVA,30H MOVB,#0AH DIVAB MOV1FH,B MOVB,#0AH MOVA,R7 MULAB ADDA,1FH MOV30H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ2:JB,SJSZ3//修改时个位但时十位为2时只能修改为0,1,2,3 MOVA,30H MOVB,#0AH DIVAB CJNEA,#02H,LED5 CJNER7,#00H,SJS4 AJMPLED5SJS4: CJNER7,#01H,SJS5 AJMPLED5SJS5: CJNER7,#02H,SJS6 AJMPLED5SJS6: CJNER7,#03H,MM1 AJMPLED5MM1:AJMPMLED5: MOVB,#0AH MULAB ADDA,R7 MOV30H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ3:JB,SJSZ4//修改分十位只能修改为0,1,2,3,4,5 CJNER7,#00H,SJ1 AJMPLED4 SJ1: CJNER7,#01H,SJ2 AJMPLED4 SJ2: CJNER7,#02H,SJ3 AJMPLED4 SJ3: CJNER7,#03H,SJ4 AJMPLED4 SJ4: CJNER7,#04H,SJ5 AJMPLED4 SJ5: CJNER7,#05H,MM AJMPLED4 MM:AJMPM LED4: MOVA,31H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV31H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ4:JB,SJSZ5//修改分个位 MOVA,31H MOVB,#0AH DIVAB MOVB,#0AH MULAB ADDA,R7 MOV31H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ5:JB,SJSZ6//修改秒十位只能改为0,1,2,3,4,5 CJNER7,#00H,SJ10 AJMPLED2 SJ10: CJNER7,#01H,SJ20 AJMPLED2 SJ20: CJNER7,#02H,SJ30 AJMPLED2 SJ30: CJNER7,#03H,SJ40 AJMPLED2 SJ40: CJNER7,#04H,SJ50 AJMPLED2 SJ50: CJNER7,#05H,MM0 AJMPLED2 MM0:AJMPM LED2: MOVA,32H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV32H,A MOVA,37H RRA MOV37H,A AJMPMSJSZ6://修改秒个位 MOVA,32H MOVB,#0AH DIVAB MOVB,#0AH MULAB ADDA,R7 MOV32H,A MOV37H,#B AJMPM/****************************************************************///万年历设置WANNIANLISHEZHI:MOV3AH,#0FEH ;转换设置界面 MOV39H,#B ;设置闪烁位 MOV37H,39H MOV3DH,#0FFH ;开闪烁开关WM: ACALLNYR ;校正万年历JBT1,WS1 ;s20按下退出设置界面 MOV39H,#0FFH ;关闪烁 MOV3DH,#00H ;闪烁开关关 MOV3AH,#B ;转换成时间设置界面 AJMPZHUXUNHUANWS1: JBINT0,WS2 ;修改位右移同上MOVA,37H CJNEA,#B,WSS0 RRA RRA RR A MOV37H,AS20: JNBINT0,S20 AJMPWMWSS0: RRA MOV37H,AS21: JNBINT0,S21 AJMPWMWS2: JBINT1,WM1 ;修改位左移MOVA,37H CJNEA,#B,WSS1 RLA RLA RL A MOV37H,AS23: JNBINT1,S23 AJMPWMWSS1: RLA MOV37H,AS24: JNBINT1,S24 AJMPWM//矩阵键盘检测修改万年历 WM1: MOVR7,#0FHACALLJIANCEANJIAN CJNER7,#0FH,WSJSZ1 AJMPWMWSJSZ1: MOVA,37H ;检测修改位 JB,WSJSZ2//修改年十位 MOVA,35H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV35H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ2:JB,WSJSZ3//修改年个位 MOVA,35H MOVB,#0AH DIVAB MOVB,#0AH MULAB ADDA,R7 MOV35H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ3:JB,WSJSZ4//修改月十位只能为0,1但月个位不为0,1,2是不能修改为1 月个位为0时不能修改为0 CJNER7,#00H,WSJ1 MOVA,34H MOVB,#0AH DIVAB MOVA,B CJNEA,#00H,WLED4 AJMPWMMM WSJ1: CJNER7,#01H,WMMM MOVA,34H MOVB,#0AH DIVAB MOVA,B CJNEA,#00H,L1 AJMPWLED4L1: CJNEA,#01H,L2 AJMPWLED4L2: CJNEA,#02H,WMMM AJMPWLED4WMMM:LJMPWMWLED4: MOVA,34H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV34H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ4:JB,WSJSZ5//修改月个位但月十位为1时只能修改为0,1,2月十位为0时不能修改为0 MOVA,34H MOVB,#0AH DIVAB CJNEA,#00H,WJ0 CJNER7,#00H,WLED3 AJMPWWMWJ0: CJNER7,#00H,WJ1 AJMPWLED3WJ1:CJNER7,#01H,WJ2 AJMPWLED3WJ2:CJNER7,#02H,WWM AJMPWLED3WLED3: MOVB,#0AH MULAB ADDA,R7 MOV34H,A MOVA,37H RRA MOV37H,AWWM: AJMPWMWSJSZ5:JB,WSJSZ6//修改日十位只能为0,1,2,3 日个位不为0,1时不能修改为3 CJNER7,#00H,WSJ10 AJMPWLED2WSJ10: CJNER7,#01H,WSJ20 AJMPWLED2WSJ20: CJNER7,#02H,WSJ30 AJMPWLED2WSJ30: CJNER7,#03H,WWM MOVA,33H MOVB,#0AH DIVAB MOVA,B CJNEA,#00H,L3 AJMPWLED2L3: CJNEA,#01H,WWM AJMPWLED2WLED2: MOVA,33H MOVB,#0AH DIVAB MOV1FH,B MOVA,R7 MOVB,#0AH MULAB ADDA,1FH MOV33H,A MOVA,37H RRA MOV37H,A AJMPWMWSJSZ6://修改日个位日十位为3时只能修改为0,1 MOVA,33H MOVB,#0AH DIVAB CJNEA,#00H,LL4 CJNER7,#00H,WLED1 AJMPWMLL4: CJNEA,#03H,WLED1 CJNER7,#00H,WJ4 AJMPWLED1WJ4: CJNER7,#01H,WWM AJMPWLED1WLED1: MOVB,#0AH MULAB ADDA,R7 MOV33H,A MOV37H,#B AJMPWM/***************************************************************///矩阵按键检测子程序JIANCEANJIAN: MOVDPTR,#8000H MOVA,#0F0H MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR CPLA JNZXIAODOU RETXIAODOU://ACALLDELAY MOVA,#0F0H MOVDPTR,#8000H MOVXA,@DPTR CPLA JNZPAN RETPAN: MOVDPTR,#8000H MOVA,#B MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR JNB,KEY10 ;低电位说明按键在该位 JNB,KEY20 JNB,KEY30 JNB,KEY40 MOVDPTR,#8000H MOVA,#B MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR JNB,KEY50 JNB,KEY60 JNB,KEY70 JNB,KEY80 MOVDPTR,#8000H MOVA,#B MOVX@DPTR,A MOVDPTR,#8000H MOVXA,@DPTR JNB,KEY90 JNB,KEY00 JNB,TUI JNB,KEY0C0 RETKEY10:MOVR7,#01H RETKEY20:MOVR7,#02H RETKEY30:MOVR7,#03H RETKEY40:MOVR7,#04H RET KEY50:MOVR7,#05H RETKEY60:MOVR7,#06H RETKEY70:MOVR7,#07H RETKEY80:MOVR7,#08H RETKEY90:MOVR7,#09H RETKEY00:MOVR7,#00H RETTUI:MOVR7,#0BH RETKEY0C0:MOVR7,#0CH RET/****************************************************///闹铃响 XIANG:CLR //ACALLMDELAY //SETB JBT1,XIANG ;s20退出闹铃跳回主循环 SETB AJMPZHUXUNHUAN/****************************************************///闹钟设置NAOZHONGSHEZHI://检测是哪个闹钟并初始化闹钟设置CJNER7,#01H,NZ2 MOVA,50H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,51H MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,52H MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#50H MOV47H,#01H MOV08H,#0AH AJMPNANJIANNZ2: CJNER7,#02H,NZ3 MOVA,53H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,54H MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,55H MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#53H MOV47H,#02H MOV08H,#0BH AJMPNANJIANNZ3: CJNER7,#03H,NZ4 MOVA,56H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,57H MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,58H MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#56H MOV47H,#03H MOV08H,#0CH AJMPNANJIANNZ4: CJNER7,#04H,NZ5 MOVA,59H MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,5AH MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,5BH MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#59H MOV47H,#04H MOV08H,#0DH AJMPNANJIANNZ5: MOVA,5CH MOVB,#0AH DIVAB MOV45H,A MOV44H,B MOVA,5DH MOVB,#0AH DIVAB MOV43H,A MOV42H,B MOVA,5EH MOVB,#0AH DIVAB MOV41H,A MOV40H,B MOV09H,#5CH MOV47H,#05H MOV08H,#0EH AJMPNANJIANNANJIAN:MOV3AH,#B ;界面转换成闹钟设置界面 MOV39H,#B MOV37H,39H MOV3DH,#0FFH ;开闪烁NM: MOVR1,08HJBT0,XIA1 ;s19闹钟开关 MOVA,@R1 CPLA MOV@R1,A XIA1: MOVA,@R1 JZXIA2 MOV46H,#0BH JMPXIA3 XIA2: MOV46H,#0AHXIA3: JBT1,NS1 ;s20退出闹钟设置跳回主程序//闹钟数据保存 MOV39H,#0FFH MOV3DH,#00H MOV3AH,#B MOVR1,09H MOVA,45H MOVB,#0AH MULAB AD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业技术秘密保护合同
- 与日历有关的课件模板
- 上海邦德职业技术学院《水泵及水泵站》2023-2024学年第二学期期末试卷
- 云南省曲靖市师宗县部分校2025届小升初模拟数学测试卷含解析
- 宣城市广德县2025届小学六年级第二学期小升初数学试卷含解析
- 宁夏大学新华学院《即兴伴奏Ⅰ》2023-2024学年第一学期期末试卷
- 江西省九江市名校2025届初三第二次质量考评英语试题试卷含答案
- 石家庄铁路职业技术学院《数字插画设计》2023-2024学年第二学期期末试卷
- 山东省临朐市重点达标名校2025届中考化学试题压轴试卷含解析
- 南华大学船山学院《医学哲学》2023-2024学年第一学期期末试卷
- “当代文化参与”学习任务群相关单元的设计思路与教学建议课件(共51张PPT)
- 常见实用急救技术
- 婚礼执事单模板
- 《红色旅游线路设计》
- 冷链产品运输记录表
- 导线的连接精品课件
- 二年级美术下册课件-第14课 虫虫虫(一)2-苏少版(共22张PPT)
- 儿童保健学课件:绪论
- 论提高行政效率的途径 开题报告
- 浓缩机的选择与计算
- 沪教版六年级下册单词表
评论
0/150
提交评论