📄 yss215.sdi
字号:
,,,ORG 0
0000,80 2E,, SJMP STAR
,,, ORG 0013H
0013,02 00 66,, LJMP XW
,,,ORG 001BH
001B,02 01 7A,,LJMP TLSTART
,,, ORG 30H
0030,,STAR,STAR:; CLR RS0 ;主程序,初始化,等待中断
,,, ;CLR RS1
0030,75 81 30,, MOV SP,#30H
0033,75 89 10,, MOV TMOD,#10H
0036,D2 BA,, SETB PX1 ;外中断优先级高
0038,C2 8A,, CLR IT1 ;外中断申请信号;低电平
003A,75 A8 8C,, MOV IE,#8CH ;开中断
003D,75 8D 3C,, MOV TH1,#3CH ;设置定时器中断次数初值
0040,75 8B B0,, MOV TL1,#0B0H
0043,75 40 02,, MOV 40H,#2
0046,75 20 80,, MOV 20H,#80H
0049,75 70 28,, MOV 70H,#40 ;秒
004C,75 71 3A,, MOV 71H,#58 ;分
004F,75 72 17,, MOV 72H,#23 ;时
0052,75 73 04,, MOV 73H,#4 ;天
0055,75 74 06,, MOV 74H,#6 ;月
0058,75 75 08,, MOV 75H,#08 ;年
005B,75 76 14,, MOV 76H,#20 ;年
005E,D2 B3,, SETB P3.3
0060,D2 B4,, SETB P3.4
0062,D2 8E,, SETB TR1
0064,80 FE,E01,E01: SJMP E01 ;等待溢出
,,,;;;;;;;;;;;;;;;;;;
0066,C0 E0,XW,XW: PUSH ACC ;外中断
0068,E5 20,, MOV A,20H ;移动标志位并修改内容
006A,20 E6 05,, JB ACC.6,E60
006D,23,, RL A
006E,F5 20,, MOV 20H,A
0070,80 03,, SJMP E20
0072,75 20 01,E60,E60:MOV 20H,#1
0075,30 B4 FD,E20,E20:JNB P3.4,E20 ;检测JIA下降沿;等待变成1
0078,20 B4 FD,E30,E30:JB P3.4,E30 ;等待变成0
007B,20 B3 60,, JB P3.3,E37 ;JIA下降沿时,若P3.3为1,退出子程序
,,, ; MOV A,20H
007E,20 06 4D,, JB 20H.6,E36
0081,20 05 3E,, JB 20H.5,E35
0084,20 04 2F,, JB 20H.4,E34
0087,20 03 2A,, JB 20H.3,E33
008A,20 02 1B,, JB 20H.2,E32
008D,20 01 0C,, JB 20H.1,E31
,,,
0090,05 70,, INC 70H ;修改秒
0092,E5 70,, MOV A,70H
0094,B4 3C 41,, CJNE A,#60,BTOD
0097,75 70 00,, MOV 70H,#0
009A,80 3C,, SJMP BTOD
009C,05 71,E31,E31:INC 71H ;修改分
009E,E5 71,, MOV A,71H
00A0,B4 3C 35,, CJNE A,#60,BTOD
00A3,75 71 00,, MOV 71H,#0
00A6,80 30,, SJMP BTOD
00A8,05 72,E32,E32: INC 72H ;修改时
00AA,E5 72,, MOV A,72H
00AC,B4 18 29,, CJNE A,#24,BTOD
00AF,75 72 00,, MOV 72H,#0
00B2,80 24,, SJMP BTOD
00B4,80 30,E33,E33: SJMP YUE ; 跳转YUE,修改天
00B6,05 74,E34,E34:INC 74H ;修改月
00B8,E5 74,, MOV A,74H
00BA,B4 0D 1B,, CJNE A,#13,BTOD
00BD,75 74 01,, MOV 74H,#1
00C0,80 16,, SJMP BTOD
00C2,05 75,E35,E35:INC 75H ;修改低年
00C4,E5 75,, MOV A,75H
00C6,B4 64 0F,, CJNE A,#100,BTOD
00C9,75 75 00,, MOV 75H,#0
00CC,80 0A,, SJMP BTOD
00CE,05 76,E36,E36:INC 76H ;修改高年
00D0,E5 76,, MOV A,76H
00D2,B4 64 03,, CJNE A,#100,BTOD
00D5,75 76 00,, MOV 76H,#0
00D8,31 25,BTOD,BTOD:ACALL BTOD5
00DA,31 39,, ACALL DISP
00DC,80 97,, SJMP E20
00DE,D0 E0,E37,E37:POP ACC
00E0,32,, RETI
,,,;;;;;;;;;;;;;;;
00E1,75 73 01,AA,AA:MOV 73H,#1 ;中间跳转
00E4,80 F2,, SJMP BTOD
,,,;;;;;;;;;;;;;;;
00E6,E5 74,YUE,YUE: MOV A,74H
00E8,B4 02 2F,, CJNE A,#2,SS
00EB,E5 75,, MOV A,75H
00ED,B4 00 0C,, CJNE A,#0,ss1;判断75H内是0,向下执行
,,,
00F0,E5 76,, MOV A,76H ;76H,即检验能否被400除
00F2,75 F0 04,, MOV B,#4
00F5,84,, DIV AB
00F6,E5 F0,, MOV A,B
00F8,60 0E,, JZ ss2
00FA,80 15,, SJMP ss3
,,,
00FC,E5 75,ss1,ss1:MOV A,75H ;75H不为0,验证75H能否被4整除
00FE,75 F0 04,, MOV B,#4
0101,84,, DIV AB
0102,E5 F0,, MOV A,B
0104,60 02,, JZ ss2
0106,80 09,, SJMP ss3
,,,
0108,05 73,ss2,ss2:INC 73H ;闰年时二月
010A,E5 73,, MOV A,73H
010C,B4 1E C9,, CJNE A,#30,BTOD
010F,80 D0,, SJMP AA
0111,05 73,ss3,ss3: INC 73H ;平年时二月
0113,E5 73,, MOV A,73H
0115,B4 1D C0,, CJNE A,#29,BTOD
0118,80 C7,, SJMP AA
011A,E5 74,SS,SS: MOV A,74H ;除二月其它月
011C,51 15,, ACALL seg7
011E,05 73,, INC 73H
0120,B5 73 B5,, CJNE A,73H,BTOD
0123,80 BC,, SJMP AA
,,,;;;;;;;;;;;;;;;
0125,78 70,BTOD5,BTOD5: MOV R0,#70H ;数据转换子程序
0127,79 50,, MOV R1,#50H
0129,E6,BTOD1,BTOD1: MOV A,@R0
012A,75 F0 0A,, MOV B,#10
012D,84,, DIV AB
012E,A7 F0,, MOV @R1,B
0130,C4,, SWAP A
0131,47,, ORL A,@R1
0132,F7,, MOV @R1,A
0133,09,, INC R1
0134,08,, INC R0
0135,B8 77 F1,, CJNE R0,#77H,BTOD1
0138,22,, RET
,,,;;;;;;;;;;;;;;;;
0139,79 50,DISP,DISP: MOV R1,#50H ;显示子程序
013B,E7,, MOV A,@R1
013C,F5 90,, MOV P1,A ;显示秒
013E,C2 B2,, CLR P3.2
0140,D2 B2,, SETB P3.2
0142,00,, NOP
0143,09,, INC R1
0144,E7,, MOV A,@R1
0145,F5 90,, MOV P1,A ;显示分
0147,C2 B1,, CLR P3.1
0149,D2 B1,, SETB P3.1 ;产生锁存信号
014B,00,, NOP
014C,09,, INC R1
014D,E7,, MOV A,@R1
014E,F5 90,, MOV P1,A ;显示时
0150,C2 B0,, CLR P3.0
0152,D2 B0,, SETB P3.0 ;产生锁存信号
0154,00,, NOP
0155,09,, INC R1
0156,E7,, MOV A,@R1
0157,F5 90,, MOV P1,A ;显示天
0159,C2 A2,, CLR P2.2
015B,D2 A2,, SETB P2.2 ;产生锁存信号
015D,00,, NOP
015E,09,, INC R1
015F,E7,, MOV A,@R1
0160,F5 90,, MOV P1,A ;显示月
0162,C2 A1,, CLR P2.1
0164,D2 A1,, SETB P2.1 ;产生锁存信号
0166,00,, NOP
,,,
0167,09,, INC R1
0168,E7,, MOV A,@R1
0169,F5 90,, MOV P1,A ;显示年
016B,C2 A0,, CLR P2.0
016D,D2 A0,, SETB P2.0 ;产生锁存信号
016F,00,, NOP
0170,09,, INC R1
0171,E7,, MOV A,@R1
0172,F5 90,, MOV P1,A ;显示年
0174,C2 A3,, CLR P2.3
0176,D2 A3,, SETB P2.3 ;产生锁存信号
0178,00,, NOP
0179,22,, RET
,,,;;;;;;;;;;;;
017A,,TLSTART,TLSTART: ;SETB RS1 ;定时中断
,,, ;CLR RS0
017A,C0 E0,, PUSH ACC
017C,75 8D 3C,, MOV TH1,#3CH
017F,75 8B B0,, MOV TL1,#0B0H
0182,D5 40 4A,, DJNZ 40H,E50
0185,75 40 02,, MOV 40H,#2
0188,31 25,, ACALL BTOD5
018A,05 70,, INC 70H ;够1秒
018C,E5 70,, MOV A,70H
018E,B4 3C 3A,, CJNE A,#60,BTOD2
0191,75 70 00,, MOV 70H,#0
0194,05 71,, INC 71H ;够1分
0196,E5 71,, MOV A,71H
0198,B4 3C 30,, CJNE A,#60,BTOD2
019B,75 71 00,, MOV 71H,#0
019E,05 72,, INC 72H ;够1小时
01A0,E5 72,, MOV A,72H
01A2,B4 18 26,, CJNE A,#24,BTOD2
01A5,75 72 00,, MOV 72H,#0
,,,
,,,;;;;;;;;;;;
01A8,80 2C,, SJMP YUEE ;跳到YUEE 判断修改天
,,,;;;;;;;;;;;;
01AA,75 73 01,BB,BB:MOV 73H,#1 ;中间跳转
,,, ;SJMP CC
,,,;;;;;;;;;;
01AD,05 74,CC,CC:INC 74H ;够1月
01AF,E5 74,, MOV A,74H
01B1,B4 0D 17,, CJNE A,#13,BTOD2
01B4,75 74 01,, MOV 74H,#1
01B7,05 75,, INC 75H ;够1年
01B9,E5 75,, MOV A,75H
01BB,B4 64 0D,, CJNE A,#100,BTOD2
01BE,75 75 00,, MOV 75H,#0
01C1,05 76,, INC 76H ;够100年
01C3,E5 76,, MOV A,76H
01C5,B4 64 03,, CJNE A,#100,BTOD2
01C8,75 76 00,, MOV 76H,#0
01CB,31 25,BTOD2,BTOD2:ACALL BTOD5
01CD,31 39,, ACALL DISP
01CF,C2 D3,E50,E50: CLR RS0
01D1,C2 D4,, CLR RS1
01D3,D0 E0,, POP ACC
01D5,32,, RETI
,,,;;;;;;;;;;;;;;
01D6,E5 74,YUEE,YUEE:MOV A,74H
01D8,B4 02 2F,, CJNE A,#2,KK
01DB,E5 75,, MOV A,75H
01DD,B4 00 0C,, CJNE A,#0,kk1; 75H为0向下执行
,,,
01E0,E5 76,, MOV A,76H ; 看76H,即检验能否被400整除
01E2,75 F0 04,, MOV B,#4
01E5,84,, DIV AB
01E6,E5 F0,, MOV A,B
01E8,60 0E,, JZ kk2
01EA,80 15,, SJMP kk3
01EC,E5 75,kk1,kk1:MOV A,75H ;75H不为0 ,只验证75H能不能被4整除
01EE,75 F0 04,, MOV B,#4
01F1,84,, DIV AB
01F2,E5 F0,, MOV A,B
01F4,60 02,, JZ kk2
01F6,80 09,, SJMP kk3
,,,
01F8,05 73,kk2,kk2:INC 73H ;闰年时二月
01FA,E5 73,, MOV A,73H
01FC,B4 1E CC,, CJNE A,#30,BTOD2
01FF,80 A9,, SJMP BB
,,,
0201,05 73,kk3,kk3: INC 73H ;平年时二月
0203,E5 73,, MOV A,73H
0205,B4 1D C3,, CJNE A,#29,BTOD2
0208,80 A0,, SJMP BB
020A,E5 74,KK,KK: MOV A,74H ;除二月其它月
020C,51 15,, ACALL SEG7
020E,05 73,, INC 73H
0210,B5 73 B8,, CJNE A,73H,BTOD2
0213,80 95,, SJMP BB
,,,;;;;;;;;;;;;;;;;;
0215,83,SEG7,SEG7:MOVC A,@A+PC
0216,22,, RET
0217,20 1C 20 1F,TAB,TAB: DB 32,28,32,31,32,31,32,32,31,32,31,32
,,,;;;;;;;;;;;;;;;;;
000E,,,END
,,,
,,,
,,,
,,,
,,,
,,,
,,,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -