📄 1.lst
字号:
A51 MACRO ASSEMBLER 1 12/20/2008 16:21:14 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
00B6 1 SW1 EQU P3.6
00B7 2 SW2 EQU P3.7
00B2 3 SW3 EQU P3.2
00B3 4 SW4 EQU P3.3
0090 5 BU EQU P1.0
0030 6 MS EQU 30H
0031 7 SECS EQU 31H
0032 8 MINUTE EQU 32H
0033 9 HOUR EQU 33H
0034 10 DM EQU 34H
0035 11 A1 EQU 35H
0036 12 A2 EQU 36H
0037 13 A3 EQU 37H
003A 14 S1 EQU 3AH
003B 15 M1 EQU 3BH
003C 16 H1 EQU 3CH
003D 17 TABB EQU 3DH
18
0000 19 ORG 0000H
0000 020030 20 LJMP MAIN
000B 21 ORG 000BH
000B 020126 22 LJMP T0INT
0030 23 ORG 0030H
24 ;主程序
0030 753A00 25 MAIN:MOV S1,#0
0033 753B00 26 MOV M1,#0
0036 753C00 27 MOV H1,#0
0039 758170 28 MOV SP,#70H
003C C2D5 29 CLR F0
003E D2AF 30 SETB EA
0040 D2A9 31 SETB ET0
0042 758901 32 MOV TMOD,#01H
0045 758A10 33 MOV TL0,#10H
0048 758CB6 34 MOV TH0,#0B6H
004B 753000 35 MOV MS,#0
004E 753100 36 MOV SECS,#0
0051 753200 37 MOV MINUTE,#0
0054 753312 38 MOV HOUR,#12H
0057 D28C 39 SETB TR0
0059 7831 40 LOOP: MOV R0,#SECS
005B 120191 41 LCALL CF
005E 1201A4 42 LCALL DISP
0061 120104 43 LCALL COMP
0064 20B2F2 44 JB SW3,LOOP
0067 12006C 45 LCALL SETT
006A 80ED 46 JMP LOOP
47
48 ;定时设置
006C 1200ED 49 SETT: LCALL CLEAR
006F 1200F7 50 LCALL BB
0072 783A 51 SET0:MOV R0,#S1
0074 120191 52 LCALL CF
0077 1201A4 53 LCALL DISP
007A 30B2F5 54 JNB SW3,SET0
007D D2D5 55 SETB F0
007F 753D40 56 MOV TABB,#40H
0082 783A 57 SET1:MOV R0,#S1
0084 120191 58 LCALL CF
A51 MACRO ASSEMBLER 1 12/20/2008 16:21:14 PAGE 2
0087 1201A4 59 LCALL DISP
008A 30B625 60 JNB SW1,SETH
008D 30B708 61 JNB SW2,SETM
0090 30B239 62 JNB SW3,SAVE
0093 20B3EC 63 JB SW4,SET1
0096 804F 64 SJMP SEXIT
65 ;设置分定时值
0098 783A 66 SETM:MOV R0,#S1
009A 120191 67 LCALL CF
009D 1201A4 68 LCALL DISP
00A0 30B7F5 69 JNB SW2,SETM
00A3 E53B 70 MOV A,M1
00A5 2401 71 ADD A,#1
00A7 D4 72 DA A
00A8 F53B 73 MOV M1,A
00AA B460D5 74 CJNE A,#60H,SET1
00AD 753B00 75 MOV M1,#0
00B0 80D0 76 SJMP SET1
77 ;设置时定时值
00B2 783A 78 SETH:MOV R0,#S1
00B4 120191 79 LCALL CF
00B7 1201A4 80 LCALL DISP
00BA 30B6F5 81 JNB SW1,SETH
00BD E53C 82 MOV A,H1
00BF 2401 83 ADD A,#1
00C1 D4 84 DA A
00C2 F53C 85 MOV H1,A
00C4 B424BB 86 CJNE A,#24H,SET1
00C7 753C00 87 MOV H1,#0
00CA 80B6 88 SJMP SET1
89 ;存储定时值
00CC 783A 90 SAVE:MOV R0,#S1
00CE 120191 91 LCALL CF
00D1 1201A4 92 LCALL DISP
00D4 30B2F5 93 JNB SW3,SAVE
00D7 1200F7 94 LCALL BB
00DA A83D 95 MOV R0,TABB
00DC A63C 96 MOV @R0,H1
00DE 08 97 INC R0
00DF A63B 98 MOV @R0,M1
00E1 08 99 INC R0
00E2 883D 100 MOV TABB,R0
00E4 B8709B 101 CJNE R0,#70H,SET1
00E7 1200F7 102 SEXIT:LCALL BB
00EA C2D5 103 CLR F0
00EC 22 104 RET
105 ;清零程序
00ED 7840 106 CLEAR: MOV R0,#40H
00EF 74FF 107 MOV A,#0FFH
00F1 F6 108 CLEAR1:MOV @R0,A
00F2 08 109 INC R0
00F3 B870FB 110 CJNE R0,#70H,CLEAR1
00F6 22 111 RET
112 ;“嘀—”提示音
00F7 7D80 113 BB: MOV R5,#80H
00F9 7E80 114 BB1: MOV R6,#80H
00FB DEFE 115 DJNZ R6,$
00FD B290 116 CPL BU
00FF DDF8 117 DJNZ R5,BB1
0101 D290 118 SETB BU
0103 22 119 RET
120
121 ;定时比较
0104 7940 122 COMP:MOV R1,#40H
0106 E7 123 COMP1:MOV A,@R1
0107 B53316 124 CJNE A,HOUR,COMP5
A51 MACRO ASSEMBLER 1 12/20/2008 16:21:14 PAGE 3
010A 09 125 INC R1
010B E7 126 MOV A,@R1
010C B53212 127 CJNE A,MINUTE,COMP6
010F C290 128 CLR BU
0111 7831 129 comp4:MOV R0,#SECS
0113 120191 130 LCALL CF
0116 1201A4 131 LCALL DISP
0119 E531 132 MOV A,SECS
011B 60F4 133 JZ COMP4
011D D290 134 SETB BU
011F 22 135 RET
0120 09 136 COMP5:INC R1
0121 09 137 COMP6:INC R1
0122 B970E1 138 CJNE R1,#70H,COMP1
0125 22 139 RET
140
141 ;T0中断计时
0126 C0E0 142 T0INT:PUSH ACC
0128 758A10 143 MOV TL0,#10H
012B 758CB6 144 MOV TH0,#0B6H
012E 0530 145 INC MS
0130 E530 146 MOV A,MS
0132 B41433 147 CJNE A,#20,T0EXIT
0135 753000 148 MOV MS,#0
0138 20D506 149 JB F0,T0INT1
013B 30B640 150 JNB SW1,VH
013E 30B72A 151 JNB SW2,VM
0141 E531 152 T0INT1:MOV A,SECS
0143 2401 153 ADD A,#1
0145 D4 154 DA A
0146 F531 155 MOV SECS,A
0148 B4601D 156 CJNE A,#60H,T0EXIT
014B 753100 157 MOV SECS,#0
014E E532 158 MOV A,MINUTE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -