




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉大学电子信息学院电子系统综合设计课程论文数字钟在单片机上的实现(汇编语言)专 业: 年 级: 作 者: _ _ 指导教师: 2012年 06 月 29 日目 录1 作品的背景与意义12 功能指标设计12.1设计要求12.1.1 基本要求12.1.2 拓展要求12.2 功能设计方案13 作品方案设计23.1总体方案的选择23.2模块划分及分析33.3 单模块设计流程图34 模块源程序75 系统测试35测试数据:366 心得体会361 作品的背景与意义数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法
2、有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。2 功能指标设计2.1设计要求2.1.1 基本要求1. 设计一个精确的1秒定时器; 2. 根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显示在LED上; 3. 设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考电子表)。 2.1.2 拓展要求1. 增加小时、分钟、秒的键盘直接修改功能; 2. 设计闹钟功能,最多支持5个闹钟,可分别
3、查看和修改闹钟时间,可分别设置闹钟开关;3. 增加万年历功能。2.2 功能设计方案1. 实现正常走时(秒-分-时-日-月-年进位);2. 能够设置时间和日期;3. 能够自动区分平闰年和大小月及2月;4. 具有5个闹钟及其设置功能;5. 在任何设置状态下,修改位会闪烁显示。3 作品方案设计3.1总体方案的选择以T0计时器中断产生1s信号,T1计时器中断刷新数码管。系统软件流程图如下所示:设计时使T0优先级高于T1以确保准确计时,初始化完成后,程序一直处于主循环模块,主循环模块中有设置按键的检测模块,当遇到设置信号暂时跳出主循环去执行相应的设置模块,时间设置,日期设置,闹钟设置3大模块彼此之间是相
4、互独立且平行的,他们和主循环模块也不干扰。因此,当进入任何一个模块时,其他模块中的所有功能和按键都暂时失效,程序由始至终中断服务一直打开。3.2模块划分及分析MAIN:初始化程序模块进行初值的分配(栈顶地址,初始时间,初始日期,初始化闹钟及相关标志地址)各定时器,中断初始化。ZHUXUNHUAN:主循环模块程序主要执行部分,包含闹钟检测,独立按键检测(日期时间转换检测),矩阵按键检测(闹钟设置,日期设置,时间设置)3大检测部分。SERVE:1s中断服务中断走时:秒分时日月年XIAGSHI:刷屏中断服务(显示中断服务)以人眼不能分辨的频率一次刷新8或6位数码管来显示时间或日期及其他设置界面。SH
5、IJIANSHEZHI:时间设置模块修改时间,其中修改位闪烁显示加以区分,内嵌了时间的自动检测和校正代码,既不允许修改出现不存在的时间。WANNIANLISHEZHI:日期设置模块修改日期,同样的修改位闪烁加以区分,内嵌了日期的自动检测和校正代码,既不允许出现不存在的日期。NAOZHONGSHEZHI:闹钟设置模块修改闹钟时间,闹钟开关的置换,修改位闪烁加以区分,内嵌时间自动监测和校正代码已设置正确的时间。3.3 单模块设计流程图 在完成的整体设计和模块划分后,便进入到工作量最大的单模块流程设计。主循环:说明:1.初始化时,将保存5个闹钟(按时分秒顺序排放)的15个地址50H5EH均清零,将对
6、应的5个闹钟开关0AH0EH也都清零表示闹钟开关状态,检测闹钟时,从第一个闹钟开始分别检测开关,时分秒只要有任何一项不符合及即检测下一个闹钟,到最后一个闹铃也不符合时,进入按键检测部分。2.按键检测包含独立按键和矩阵按键两部分,独立按键很简单,矩阵按键则编写检测子程序,将检测到的键值保存在寄存器R7中,没有检测到按键时不改变R7的数值。因此,检测器先将R7里面放入#0FH(只要不是#00H#0CH中的数即可),然后调用矩阵键盘检测子程序,再来通过检测R7的数值来判断有无按键按下或按下的那个键。时间设置模块: 说明:1.进入时间设置模块后,时的十位开始闪烁,通过独立按键s17,s18可以向右向左
7、移动闪烁即修改位,修改正确的判断实际上是对将要修改完成的时间进行合理性的判断,如合理则修改时间,若不合理则此次按键失效。2.检测到退出信号后,先要将所有初始化过程中改变了的标志位还原,如闪烁开关位等,再调回主循环。日期设置模块: 日期设置模块和时间设置模块几乎完全一样,所不同的是初始化不一样及日期设置里面有8位数码管需要刷新,而且由于日期比时间复杂,因此该模块中有两处日期校正部分,一部分是对按键修改是否正确的判断,使用方法也是使相应按键暂时失效(例如:修改前日期是2012:03:31,那么此时月份上得十位1-9所以数字都暂时失效,日个位上的2-9所以数字也都全部暂时失效);另一部分是修改后的日
8、期校正,通过调用该子程序,防止上一部分不能消除的错误日期设置(例如:修改前日期是2012:01:31,这时修改月份个位为2则日期变为2012:02:31,显然这样的日期是不存在的,这时校正程序将日期进位,日期更改为2012:03:01)。这部分校正模块在后面的1s中断服务中也有使用。下图为该模块流程图:闹钟设置模块: 闹钟设置模块和时间设置一是大同小异,主要区别在于多了一部分闹铃开关的检测。下图为该模块流程图:4 模块源程序 ORG 0000H AJMP MAIN ORG 000BH AJMP SERVE ORG 001BH AJMP XIANSHITAB: DB 3FH,06H,5BH,4F
9、H,66H,6DH,7DH,07H,7FH,6FH,00H,40H ;段选表0,1,2,3,4,5,6,7,8,9,熄灭,-TAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,00H,40H;段选表 带小数点,同上MAIN: /*/初始化 MOV SP,#60H ;栈指针地址赋值 MOV 3CH,#0CH ;设置界面修改位的闪烁频率 具体代码在SERVE 1秒中断服务中 MOV 37H,#0FFH ;临时地址 预留给39H MOV 39H,#0FFH ;段位标志 8位数据对应8个数码管 为0的那位数码管始终暗 MOV 3AH,#11
10、111101B ;界面转换标志*01为时间界面 取反后 *10为万年历界面 *00为设置闹钟界面 CLR A ;时间万年历初始化 时间00:00:00 万年历2000。01。01 MOV 30H,A ;时 MOV 31H,A ;分 MOV 32H,A ;秒 MOV 33H,#01H ;日 MOV 34H,#01H ;月 MOV 35H,A ;年 只能显示2000-2099的时间 MOV 3DH,A ;数码管闪烁开关 初始化为关闭状态 取反后 11111111 打开 MOV 40H,A ;闹钟设置界面预留地址地址 MOV 41H,A MOV 42H,A MOV 43H,A MOV 44H,A M
11、OV 45H,A MOV 46H,A MOV 47H,A MOV 50H,A ;闹钟1 时 MOV 51H,A ;闹钟1 分 MOV 52H,A ;闹钟1 秒 MOV 0AH,A ;闹钟1 开关 00000000为关闭状态 取反后打开闹钟1 MOV 53H,A ;同上 MOV 54H,A MOV 55H,A MOV 0BH,A MOV 56H,A MOV 57H,A ;同上 MOV 58H,A MOV 0CH,A MOV 59H,A ;同上 MOV 5AH,A MOV 5BH,A MOV 0DH,A MOV 5CH,A ;同上 MOV 5DH,A MOV 5EH,A MOV 0EH,A/中断,
12、定时器初始化 MOV TMOD,#11H MOV 38H,#14H;T0定时器每50ms溢出一次 溢出20次为一秒 SETB PT0 ;优先级设置 1秒中断为最高级 屏幕刷新优先级低 SETB PT1 SETB ET0 SETB ET1 SETB EA MOV TH1,#0DFH ;T1定时器 设置显示扫描频率 MOV TL1,#0E0H MOV TH0,#3CH ;T0定时器 设置为50ms MOV TL0,#0B0H SETB TR1 SETB TR0/*/程序主循环 ZHUXUNHUAN:/闹钟检测 MOV A,0AH JZ NAO2 ;检测闹钟开关 若关检测下一个闹钟,否则检测时间是否
13、为闹钟设定时间 MOV A,30H CJNE A,50H,NAO2 MOV A,31H CJNE A,51H,NAO2 MOV A,32H CJNE A,52H,NAO2 AJMP XIANG ;时间为闹钟设定时间吻合 进入闹铃程序 下同NAO2: MOV A,0BH JZ NAO3 MOV A,30H CJNE A,53H,NAO3 MOV A,31H CJNE A,54H,NAO3 MOV A,32H CJNE A,55H,NAO3 AJMP XIANGNAO3: MOV A,0CH JZ NAO4 MOV A,30H CJNE A,56H,NAO4 MOV A,31H CJNE A,57
14、H,NAO4 MOV A,32H CJNE A,58H,NAO4 AJMP XIANGNAO4: MOV A,0DH JZ NAO5 MOV A,30H CJNE A,59H,NAO5 MOV A,31H CJNE A,5AH,NAO5 MOV A,32H CJNE A,5BH,NAO5 AJMP XIANGNAO5: MOV A,0EH JZ BU MOV A,30H CJNE A,5CH,BU MOV A,31H CJNE A,5DH,BU MOV A,32H CJNE A,5EH,BU AJMP XIANG/检测独立按键BU: JB T0,ZHU1;检测s19是否按下 按下进入万年历界面
15、,否则检测矩阵键盘 MOV A,3AH;界面转换标志取反即可使得时间和万年历界面相互转换 CPL A MOV 3AH,A/检测矩阵键盘/检测到按键1,2,3,4,5时进入对应的闹钟设置界面 检测到0BH(对应s11)进入时间设置界面 检测到0CH(对应s12)进入万年历设置界面/若未检测到按键 则跳回主程序继续下一个检测周期ZHU1: MOV R7,#0FH ACALL JIANCEANJIAN ;矩阵键盘检测子程序 将检测到的键值存入r7 CJNE R7,#0FH,ZHU2 AJMP ZHUXUNHUANZHU2: CJNE R7,#0BH,ZHU3 AJMP SHIJIANSHEZHIZH
16、U3: CJNE R7,#0CH,ZHU4 AJMP WANNIANLISHEZHIZHU4: CJNE R7,#01H,ZHU5 AJMP NAOZHONGSHEZHIZHU5: CJNE R7,#02H,ZHU6 AJMP NAOZHONGSHEZHIZHU6: CJNE R7,#03H,ZHU7 AJMP NAOZHONGSHEZHIZHU7: CJNE R7,#04H,ZHU8 AJMP NAOZHONGSHEZHIZHU8: CJNE R7,#05H,ZHUXUNHUAN0 AJMP NAOZHONGSHEZHIZHUXUNHUAN0: AJMP ZHUXUNHUAN/*/1秒中断服
17、务 见书141例6-6SERVE: CLR EA PUSH B PUSH DPH PUSH DPL PUSH PSW PUSH ACC MOV TH0,#3CH MOV TL0,#0B0H MOV A,3DH JZ SE MOV A,3CH CJNE A,#6,SE0 MOV 39H,37HSE0: DJNZ 3CH,SE MOV 39H,#0FFH MOV 3CH,#0CHSE: DJNZ 38H,RETURN MOV 38H,#14H MOV A,#01H ADD A,32H MOV 32H,A CJNE A,#3CH,RETURN MOV 32H,#00H MOV A,#01H ADD
18、A,31H MOV 31H,A CJNE A,#3CH,RETURN MOV 31H,#00H MOV A,#01H ADD A,30H MOV 30H,A CJNE A,#18H,RETURN MOV 30H,#00H MOV A,#01H ADD A,33H MOV 33H,A ACALL NYRRETURN: POP ACC POP PSW POP DPL POP DPH POP B SETB EA RETI/*/年月日校正子程序 用于万年历进位和万年历设置 防止出现不存在的时间NYR: MOV A,33H CJNE A,#32,MONTH ;日为32时,月进位日置1 MOV 33H,#
19、01H AJMP MONTH0MONTH: CJNE A,#31,MONTH1 ;日为31时 分辨大小月及2月 MOV A,34H CJNE A,#4,MONTH2 MOV 33H,#01H AJMP MONTH0MONTH2: CJNE A,#2,MONTH6 MOV 33H,#01H AJMP MONTH0MONTH6: CJNE A,#6,MONTH9 MOV 33H,#01H AJMP MONTH0MONTH9: CJNE A,#9,MONTH11 MOV 33H,#01H AJMP MONTH0MONTH11: CJNE A,#11,RETURN0 MOV 33H,#01H AJMP
20、 MONTH0MONTH1: CJNE A,#30,MONTH29 ;日为30时分辨2月 MOV A,34H CJNE A,#02H,RETURN0 MOV 33H,#01H AJMP MONTH0MONTH29: CJNE A,#29,RETURN0 ;日为29时分辨闰平年2月 MOV A,34H CJNE A,#02H,RETURN0 MOV A,35H MOV B,#04H DIV AB MOV A,B JNZ MONO AJMP RETURN0MONO: MOV 33H,#01HMONTH0: MOV A,#01H ;月进位 ADD A,34H MOV 34H,A CJNE A,#0D
21、H,RETURN0 MOV 34H,#01H MOV A,#01H ADD A,35H MOV 35H,A CJNE A,#100,RETURN0 ;年最多只能99 MOV 35H,#00RETURN0: RET/*/屏幕刷新中断XIANSHI: PUSH B PUSH DPH PUSH DPL PUSH PSW PUSH ACC MOV TH1,#0DFH MOV TL1,#0E0H MOV A,3AH JNB ACC.0,WANNIANLI ;界面显示判断/时间界面 MOV A,32H MOV B,#0AH DIV AB MOV 10H,B MOV 11H,A MOV A,31H MOV
22、B,#0AH DIV AB MOV 12H,B MOV 13H,A MOV A,30H MOV B,#0AH DIV AB MOV 14H,B MOV 15H,A MOV 16H,#0AH MOV 17H,#0AH AJMP LIANG/万年历界面WANNIANLI: JNB ACC.1,SHEZHI MOV A,33H MOV B,#0AH DIV AB MOV 10H,B MOV 11H,A MOV A,34H MOV B,#0AH DIV AB MOV 12H,B MOV 13H,A MOV A,35H MOV B,#0AH DIV AB MOV 14H,B MOV 15H,A MOV
23、16H,#00H MOV 17H,#02H AJMP LIANG/闹钟设置界面SHEZHI: MOV 10H,40H MOV 11H,41H MOV 12H,42H MOV 13H,43H MOV 14H,44H MOV 15H,45H MOV 16H,46H MOV 17H,47H/刷新屏幕LIANG: MOV R6,#11111110B ;位选 MOV R0,#10H ;利用r0间接访问功能实现选中位显示控制 MOV R4,#8H ;刷新8次MAIN0: ;位选子程序 ACALL L CJNE R0,#12H,TT1 MOV DPTR,#TAB1 AJMP K TT1: CJNE R0,#
24、14H,TT2 MOV DPTR,#TAB1 AJMP KTT2: MOV DPTR,#TABK: MOV A,R0 MOVC A,A+DPTR MOV R5,A/数码管开关判断 不刷新39H中对应为0的那段数码管 MOV A,39H JNB ACC.0,AC0 JNB ACC.1,AC1 JNB ACC.2,AC2 JNB ACC.3,AC3 JNB ACC.4,AC4 JNB ACC.5,AC5 JNB ACC.6,AC6 JNB ACC.7,AC7 AJMP J0AC0: CJNE R4,#08H,J0 AJMP J1AC1: CJNE R4,#07H,J0 AJMP J1AC2: CJ
25、NE R4,#06H,J0 AJMP J1AC3: CJNE R4,#05H,J0 AJMP J1AC4: CJNE R4,#04H,J0 AJMP J1AC5: CJNE R4,#03H,J0 AJMP J1AC6: CJNE R4,#02H,J0 AJMP J1AC7: CJNE R4,#01H,J0 AJMP J1 J0: ACALL R ;段选子程序J1: MOV A,R6 RL A MOV R6,A INC R0 ACALL DELAY1 ;延时越长数码管越亮 但过长导致刷新过慢数码管不能同时全亮 MOV DPTR,#8200H MOV A,#00H MOVX DPTR,A DJNZ
26、 R4,MAIN0 POP ACC POP PSW POP DPL POP DPH POP B RETIL: MOV DPTR,#8300H MOV A,R6 MOVX DPTR,A RETR: MOV DPTR,#8200H MOV A,R5 MOVX DPTR,A RET /*/延时子程序DELAY: ;延时20毫秒 用于矩阵键盘的检测 MOV 3EH,#120LOOP1: MOV 3FH,#30LOOP2: DJNZ 3FH,LOOP2 DJNZ 3EH,LOOP1 RETMDELAY: MOV 3EH,#5MLOOP1: MOV 3FH,#0AAHMLOOP2: DJNZ 3FH,ML
27、OOP2 DJNZ 3EH,MLOOP1 RETDELAY1: MOV 3EH,#15LOOP11: MOV 3FH,#40LOOP21: DJNZ 3FH,LOOP21 DJNZ 3EH,LOOP11 RETDELAY0: MOV 3EH,#0FFHLOOP10: MOV 3FH,#0FFHLOOP20: DJNZ 3FH,LOOP20 DJNZ 3EH,LOOP10 RET/*/时间设置SHIJIANSHEZHI: MOV 39H,#11011111B;时的十位闪烁 MOV 37H,39H MOV 3DH,#0FFH;开闪烁开关M: JB T1,S1;检测独立按按键s20 按下则退出时间设
28、置 继续进入主循环 MOV 39H,#0FFH MOV 3DH,#00H AJMP ZHUXUNHUANS1: JB INT0,S2;闪烁位即修改为右移 MOV A,37H CJNE A,#11111110B,SS0 RR A RR A RRA MOV 37H,AS10: JNB INT0,S10;右移按键松开才继续下面的程序 防止一次按键右移多位 下同 AJMP MSS0: RR A MOV 37H,AS11:;左移 JNB INT0,S11 AJMP MS2: JB INT1,M1 MOV A,37H CJNE A,#11011111B,SS1 RL A RL A RLA MOV 37H,
29、AS12: JNB INT1,S12 AJMP MSS1: RL A MOV 37H,AS13: JNB INT1,S13 AJMP M/检测矩阵按键 修改时间 M1: MOV R7,#0FH ACALL JIANCEANJIAN CJNE R7,#0FH,SJSZ1 AJMP MSJSZ1: MOV A,37H ;检测修改的是哪位 JB ACC.5,SJSZ2/修改时十位 只能修改为0,1,2 但时个位部位0,1,2,3时不能修改为2 CJNE R7,#00H,SJS1 AJMP LED6SJS1: CJNE R7,#01H,SJS2 AJMP LED6SJS2: CJNE R7,#02H,
30、M AJMP LED6LED6: MOV A,30H MOV B,#0AH DIV AB MOV 1FH,B MOV B,#0AH MOV A,R7 MUL AB ADD A,1FH MOV 30H,A MOV A,37H RR A MOV 37H,A AJMP MSJSZ2: JB ACC.4,SJSZ3/修改时个位 但时十位为2时只能修改为0,1,2,3 MOV A,30H MOV B,#0AH DIV AB CJNE A,#02H,LED5 CJNE R7,#00H,SJS4 AJMP LED5SJS4: CJNE R7,#01H,SJS5 AJMP LED5SJS5: CJNE R7,
31、#02H,SJS6 AJMP LED5SJS6: CJNE R7,#03H,MM1 AJMP LED5MM1:AJMP MLED5: MOV B,#0AH MUL AB ADD A,R7 MOV 30H,A MOV A,37H RR A MOV 37H,A AJMP MSJSZ3: JB ACC.3,SJSZ4/修改分十位 只能修改为0,1,2,3,4,5 CJNE R7,#00H,SJ1 AJMP LED4 SJ1: CJNE R7,#01H,SJ2 AJMP LED4 SJ2: CJNE R7,#02H,SJ3 AJMP LED4 SJ3: CJNE R7,#03H,SJ4 AJMP LE
32、D4 SJ4: CJNE R7,#04H,SJ5 AJMP LED4 SJ5: CJNE R7,#05H,MM AJMP LED4 MM:AJMP MLED4: MOV A,31H MOV B,#0AH DIV AB MOV 1FH,B MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 31H,A MOV A,37H RR A MOV 37H,A AJMP MSJSZ4: JB ACC.2,SJSZ5/修改分个位 MOV A,31H MOV B,#0AH DIV AB MOV B,#0AH MUL AB ADD A,R7 MOV 31H,A MOV A,37H
33、RR A MOV 37H,A AJMP MSJSZ5: JB ACC.1,SJSZ6/修改秒十位 只能改为0,1,2,3,4,5 CJNE R7,#00H,SJ10 AJMP LED2 SJ10: CJNE R7,#01H,SJ20 AJMP LED2 SJ20: CJNE R7,#02H,SJ30 AJMP LED2 SJ30: CJNE R7,#03H,SJ40 AJMP LED2 SJ40: CJNE R7,#04H,SJ50 AJMP LED2 SJ50: CJNE R7,#05H,MM0 AJMP LED2 MM0:AJMP MLED2: MOV A,32H MOV B,#0AH D
34、IV AB MOV 1FH,B MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 32H,A MOV A,37H RR A MOV 37H,A AJMP MSJSZ6:/修改秒个位 MOV A,32H MOV B,#0AH DIV AB MOV B,#0AH MUL AB ADD A,R7 MOV 32H,A MOV 37H,#11011111B AJMP M/*/万年历设置WANNIANLISHEZHI: MOV 3AH,#0FEH ;转换设置界面 MOV 39H,#11011111B ;设置闪烁位 MOV 37H,39H MOV 3DH,#0FFH ;开闪烁
35、开关WM: ACALL NYR ;校正 万年历 JB T1,WS1 ;s20 按下 退出设置界面 MOV 39H,#0FFH ;关闪烁 MOV 3DH,#00H ;闪烁开关 关 MOV 3AH,#11111101B ;转换成时间设置界面 AJMP ZHUXUNHUANWS1: JB INT0,WS2 ;修改位 右移 同上 MOV A,37H CJNE A,#11111110B,WSS0 RR A RR A RRA MOV 37H,AS20: JNB INT0,S20 AJMP WMWSS0: RR A MOV 37H,AS21: JNB INT0,S21 AJMP WMWS2: JB INT1
36、,WM1 ;修改位左移 MOV A,37H CJNE A,#11011111B,WSS1 RL A RL A RL A MOV 37H,AS23: JNB INT1,S23 AJMP WMWSS1: RL A MOV 37H,AS24: JNB INT1,S24 AJMP WM/矩阵键盘检测 修改万年历 WM1: MOV R7,#0FH ACALL JIANCEANJIAN CJNE R7,#0FH,WSJSZ1 AJMP WMWSJSZ1: MOV A,37H;检测修改位 JB ACC.5,WSJSZ2/修改年十位 MOV A,35H MOV B,#0AH DIV AB MOV 1FH,B
37、MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 35H,A MOV A,37H RR A MOV 37H,A AJMP WMWSJSZ2: JB ACC.4,WSJSZ3/修改年个位 MOV A,35H MOV B,#0AH DIV AB MOV B,#0AH MUL AB ADD A,R7 MOV 35H,A MOV A,37H RR A MOV 37H,A AJMP WMWSJSZ3: JB ACC.3,WSJSZ4/修改月十位 只能为0,1 但月个位不为0,1,2是不能修改为1月个位为0时不能修改为0 CJNE R7,#00H,WSJ1 MOV A,34
38、H MOV B,#0AH DIV AB MOV A,B CJNE A,#00H,WLED4 AJMP WMMM WSJ1: CJNE R7,#01H,WMMM MOV A,34H MOV B,#0AH DIV AB MOV A,B CJNE A,#00H,L1 AJMP WLED4L1: CJNE A,#01H,L2 AJMP WLED4L2: CJNE A,#02H,WMMM AJMP WLED4WMMM:LJMP WMWLED4: MOV A,34H MOV B,#0AH DIV AB MOV 1FH,B MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 3
39、4H,A MOV A,37H RR A MOV 37H,A AJMP WMWSJSZ4: JB ACC.2,WSJSZ5/修改月个位 但月十位为1时只能修改为0,1,2 月十位为0时不能修改为0 MOV A,34H MOV B,#0AH DIV AB CJNE A,#00H,WJ0 CJNE R7,#00H,WLED3 AJMP WWMWJ0: CJNE R7,#00H,WJ1 AJMP WLED3WJ1: CJNE R7,#01H,WJ2 AJMP WLED3WJ2: CJNE R7,#02H,WWM AJMP WLED3WLED3: MOV B,#0AH MUL AB ADD A,R7 M
40、OV 34H,A MOV A,37H RR A MOV 37H,AWWM: AJMP WMWSJSZ5: JB ACC.1,WSJSZ6/修改日十位 只能为0,1,2,3 日个位不为0,1时不能修改为3 CJNE R7,#00H,WSJ10 AJMP WLED2WSJ10: CJNE R7,#01H,WSJ20 AJMP WLED2WSJ20: CJNE R7,#02H,WSJ30 AJMP WLED2WSJ30: CJNE R7,#03H,WWM MOV A,33H MOV B,#0AH DIV AB MOV A,B CJNE A,#00H,L3 AJMP WLED2L3: CJNE A,#
41、01H,WWM AJMP WLED2WLED2: MOV A,33H MOV B,#0AH DIV AB MOV 1FH,B MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 33H,A MOV A,37H RR A MOV 37H,A AJMP WMWSJSZ6:/修改日个位 日十位为3时 只能修改为0,1 MOV A,33H MOV B,#0AH DIV AB CJNE A,#00H,LL4 CJNE R7,#00H,WLED1 AJMP WMLL4: CJNE A,#03H,WLED1 CJNE R7,#00H,WJ4 AJMP WLED1WJ4: CJN
42、E R7,#01H,WWM AJMP WLED1WLED1: MOV B,#0AH MUL AB ADD A,R7 MOV 33H,A MOV 37H,#11011111B AJMP WM/*/矩阵按键检测子程序JIANCEANJIAN: MOV DPTR,#8000H MOV A,#0F0H MOVX DPTR,A MOV DPTR,#8000H MOVX A,DPTR CPL A JNZ XIAODOU RETXIAODOU: /ACALL DELAY MOV A,#0F0H MOV DPTR,#8000H MOVX A,DPTR CPL A JNZ PAN RETPAN: MOV DPT
43、R,#8000H MOV A,#11111110B MOVX DPTR,A MOV DPTR,#8000H MOVX A,DPTR JNB ACC.0,KEY10;低电位说明按键在该位 JNB ACC.1,KEY20 JNB ACC.2,KEY30 JNB ACC.3,KEY40 MOV DPTR,#8000H MOV A,#11111101B MOVX DPTR,A MOV DPTR,#8000H MOVX A,DPTR JNB ACC.0,KEY50 JNB ACC.1,KEY60 JNB ACC.2,KEY70 JNB ACC.3,KEY80 MOV DPTR,#8000H MOV A,#11111011B MOVX DPTR,A MOV DPTR,#8000H MOVX A,DPTR JNB ACC.0,KEY90 JNB ACC.1,KEY00 JNB ACC.2,TUI JNB ACC.3,KEY0C0 RETKEY10: MOV R7,#01H RETKEY20: MOV R7,#02H RETKEY30: MOV R7,#03H RETKEY40: MOV R7,#04H RET KEY50: MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年补偿贸易简单借款合同范本
- 2025【管理】OAZ-CN商品房买卖合同纠纷中的几个问题
- 2025上海市房屋租赁合同范本
- 2025年土地承包合同终止协议
- 2025苏州市吴江区购房合同
- 商务洽谈合同协议模板
- 呼叫中心合同协议
- 商场一卡通会员合同协议
- 比亚迪销售合同补充协议
- 2025年前台行政人员劳动合同书范本
- 微训练 一文多考 备考高效之散文《在泥土中诞生》张焕军 教师版
- 食材供应项目整体服务方案
- 针刺伤预防与处理(中华护理学会团体标准)
- 客户生命周期价值预测-第1篇-深度研究
- 文化转型时代的文化基因与共生教育选择
- 两联供基础知识
- 2025年四川航空股份有限公司招聘笔试参考题库含答案解析
- 《有趣的房子》幼儿园班本课程课件
- 河北省保定市重点中学2025届高考英语一模试卷含解析
- 食堂节能减排等环保措施及方案
- (翻译)UL67标准中文版-2019配电板UL中文版
评论
0/150
提交评论