⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xdlkz.lst

📁 这是一个时钟程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
A51 MACRO ASSEMBLER  XDLKZ                                                                  09/06/07 21:12:44 PAGE     1


DOS MACRO ASSEMBLER A51 X4.86
OBJECT MODULE PLACED IN XDLKZ.O
ASSEMBLER INVOKED BY: C:\OMF51\BIN\A51.EXE C:\XDLKZ\XDLKZ.AQD DB SB XR RB(0) PR(XDLKZ.LST) OJ(XDLKZ.O) 

LOC  OBJ            LINE     SOURCE

0000                   1     ORG 00H
0000 02001E            2     JMP START ;开机跳至初始化程序
000B                   3     ORG 0BH
000B 0200EC            4     LJMP TIMEO ;跳至定时器0中断服务子程序
001B                   5     ORG 01BH
001B 0203FC            6     LJMP TIMEI ;跳至定时器中断服务子程序
001E 758911            7     START:MOV TMOD,#11H ;设定两定时器为定时模式,工作方式1
0021 D2AF              8     SETB EA ;开总中断
0023 D2AB              9     SETB ET1 ;开定时器1中断
0025 D2A9             10     SETB ET0 ;开定时器0中断
0027 D2B9             11     SETB PT0 ;设定定时器0为优先中断
0029 758C3C           12     MOV TH0,#3CH ;定时器装
002C 758AB0           13     MOV TL0,#0B0H ;入初值
002F 75440A           14     MOV 44H,#0AH
0032 75450A           15     MOV 45H,#0AH
0035 75460A           16     MOV 46H,#0AH
0038 75470A           17     MOV 47H,#0AH
003B 754800           18     MOV 48H,#0
003E 754900           19     MOV 49H,#0
0041 754A00           20     MOV 4AH,#0
0044 754B00           21     MOV 4BH,#0
0047 754C06           22     MOV 4CH,#6
004A 754D00           23     MOV 4DH,#0
004D 754E0E           24     MOV 4EH,#14
0050 754F00           25     MOV 4FH,#0
0053 755016           26     MOV 50H,#22
0056 755100           27     MOV 51H,#0
0059 755230           28     MOV 52H,#30H
005C 755301           29     MOV 53H,#1
005F 755401           30     MOV 54H,#1
0062 755501           31     MOV 55H,#1
0065 755600           32     MOV 56H,#0
0068 7590FB           33     MOV P1,#0FBH
006B 758171           34     MOV SP,#71H
006E 752314           35     MOV 23H,#20 ;设定20次中断
0071 D28C             36     SETB TR0 ;开定时器0
                      37     ; 按键识别程序
0073 20B209           38     KEY1:JB P3.2,KEY2 ;P3.2等于0?是则调用KEYQHCX,否则跳至KEY2
0076 120411           39     LCALL DELAY
0079 12012F           40     LCALL KEYQHCX
007C 30B2FD           41     JNB P3.2,$
007F 20B509           42     KEY2:JB P3.5,KEY3 ;P3.5=1?是则跳至KEY3,否则调用KEYHJY
0082 120411           43     LCALL DELAY ;调用延时子程序
0085 12018B           44     LCALL KEYHJY
0088 30B5FD           45     JNB P3.5,$
008B 20B609           46     KEY3:JB P3.6,KEY4
008E 120411           47     LCALL DELAY
0091 1201DE           48     LCALL KEYMJY
0094 30B6FD           49     JNB P3.6,$
0097 20B709           50     KEY4:JB P3.7,X6 ;P3.7=1?是则至X6,否则调用KEYGNXZ
009A 120411           51     LCALL DELAY
009D 120231           52     LCALL KEYGNXZ
00A0 30B7FD           53     JNB P3.7,$
00A3 12034E           54     X6:LCALL JY ;调用调压子程序
                      55     ;比较定时程序
00A6 E548             56     MOV A,48H
00A8 B55127           57     CJNE A,51H,DISPLAY
00AB E549             58     MOV A,49H
A51 MACRO ASSEMBLER  XDLKZ                                                                  09/06/07 21:12:44 PAGE     2

00AD B54B08           59     CJNE A,4BH,DS2
00B0 E54A             60     MOV A,4AH
00B2 B54C03           61     CJNE A,4CH,DS2
00B5 1202AC           62     LCALL YLKZ
00B8 E549             63     DS2:MOV A,49H
00BA B54D08           64     CJNE A,4DH,DS3
00BD E54A             65     MOV A,4AH
00BF B54E03           66     CJNE A,4EH,DS3
00C2 1202E8           67     LCALL ELKZ
00C5 E549             68     DS3:MOV A,49H
00C7 B54F08           69     CJNE A,4FH,DISPLAY
00CA E54A             70     MOV A,4AH
00CC B55003           71     CJNE A,50H,DISPLAY
00CF 120324           72     LCALL SLKZ
                      73     ;显示程序
00D2 A852             74     DISPLAY:MOV R0,52H ;要显示的值首地址存52H
00D4 7A7F             75     MOV R2,#7FH ;从P2.7开始扫描
00D6 E6               76     PLAY:MOV A,@R0
00D7 90042D           77     MOV DPTR,#TABLE
00DA 93               78     MOVC A,@A+DPTR
00DB F580             79     MOV P0,A
00DD 08               80     INC R0
00DE EA               81     MOV A,R2
00DF F5A0             82     MOV P2,A
00E1 120411           83     LCALL DELAY
00E4 EA               84     MOV A,R2
00E5 30E48B           85     JNB ACC.4,KEY1 ;四位显示完了,是则重新开始显示,否则断续显示
00E8 03               86     RR A
00E9 FA               87     MOV R2,A
00EA 80EA             88     JMP PLAY
00EC C0E0             89     TIMEO:PUSH ACC
00EE C0F0             90     PUSH B
00F0 C0D0             91     PUSH PSW
00F2 C28C             92     CLR TR0 ;关定时器0
00F4 758C3C           93     MOV TH0,#3CH ;重新装入初值
00F7 758AA4           94     MOV TL0,#0A4H
00FA D28C             95     SETB TR0 ;开定时器0
00FC D52329           96     DJNZ 23H,BACK ;20次中断完了吗?是则P2.3求反,重新设定中断次数,秒加1,否则继续计时
00FF B2A3             97     CPL P2.3
0101 752314           98     MOV 23H,#20
0104 E548             99     MOV A,48H
0106 2401            100     ADD A,#1
0108 F548            101     MOV 48H,A
010A B43C1B          102     CJNE A,#60,BACK ;60秒到了吗?是则秒寄存器清零,分加1,否则返回
010D 754800          103     MOV 48H,#00H
0110 E549            104     MOV A,49H
0112 2401            105     ADD A,#1
0114 F549            106     MOV 49H,A
0116 B43C0F          107     CJNE A,#60,BACK ;60分到了吗?是则分寄存器清零,时加1,否则返回
0119 754900          108     MOV 49H,#00H
011C E54A            109     MOV A,4AH
011E 2401            110     ADD A,#1
0120 F54A            111     MOV 4AH,A
0122 B41803          112     CJNE A,#24,BACK ;24时到了?是则时寄存器清零,否则返回
0125 754A00          113     MOV 4AH,#00H
0128 D0D0            114     BACK:POP PSW
012A D0F0            115     POP B
012C D0E0            116     POP ACC
012E 32              117     RETI
                     118     ;显示切换程序
012F E553            119     KEYQHCX:MOV A,53H
0131 2401            120     ADD A,#1
0133 B40602          121     CJNE A,#6,Y1
0136 7400            122     MOV A,#0
0138 F553            123     Y1:MOV 53H,A
013A F554            124     MOV 54H,A
A51 MACRO ASSEMBLER  XDLKZ                                                                  09/06/07 21:12:44 PAGE     3

013C F555            125     MOV 55H,A
013E B4000A          126     CJNE A,#0,Y2
0141 D290            127     SETB P1.0
0143 D291            128     SETB P1.1
0145 D292            129     SETB P1.2
0147 755244          130     MOV 52H,#44H
014A 22              131     RET
014B B4010A          132     Y2:CJNE A,#1,Y3
014E D290            133     SETB P1.0
0150 D291            134     SETB P1.1
0152 C292            135     CLR P1.2
0154 755230          136     MOV 52H,#30H
0157 22              137     RET
0158 B4020A          138     Y3:CJNE A,#2,Y4
015B D290            139     SETB P1.0
015D C291            140     CLR P1.1
015F D292            141     SETB P1.2
0161 755234          142     MOV 52H,#34H
0164 22              143     RET
0165 B40309          144     Y4:CJNE A,#3,Y5
0168 D290            145     SETB P1.0
016A C291            146     CLR P1.1
016C C292            147     CLR P1.2
016E 755238          148     MOV 52H,#38H
0171 B4040A          149     Y5:CJNE A,#4,Y6
0174 C290            150     CLR P1.0
0176 D291            151     SETB P1.1
0178 D292            152     SETB P1.2
017A 75523C          153     MOV 52H,#3CH
017D 22              154     RET
017E B40509          155     Y6:CJNE A,#5,Y7
0181 C290            156     CLR P1.0
0183 D291            157     SETB P1.1
0185 C292            158     CLR P1.2
0187 755240          159     MOV 52H,#40H
018A 22              160     Y7:RET
                     161     ;时加一程序
018B E554            162     KEYHJY:MOV A,54H
018D B40003          163     CJNE A,#0,N1
0190 B296            164     CPL P1.6
0192 22              165     RET
0193 B4010C          166     N1:CJNE A,#1,N2
0196 E54A            167     MOV A,4AH
0198 2401            168     ADD A,#1
019A B41802          169     CJNE A,#24,K1
019D 7400            170     MOV A,#0
019F F54A            171     K1:MOV 4AH,A
01A1 22              172     RET
01A2 B4020C          173     N2:CJNE A,#2,N3
01A5 E551            174     MOV A,51H
01A7 2401            175     ADD A,#1
01A9 B43C02          176     CJNE A,#60,K2
01AC 7400            177     MOV A,#0
01AE F551            178     K2:MOV 51H,A
01B0 22              179     RET
01B1 B4030C          180     N3:CJNE A,#3,N4
01B4 E54C            181     MOV A,4CH
01B6 2401            182     ADD A,#1
01B8 B41802          183     CJNE A,#24,K3
01BB 7400            184     MOV A,#0
01BD F54C            185     K3:MOV 4CH,A
01BF 22              186     RET
01C0 B4040C          187     N4:CJNE A,#4,N5
01C3 E54E            188     MOV A,4EH
01C5 2401            189     ADD A,#1
01C7 B41802          190     CJNE A,#24,K4
A51 MACRO ASSEMBLER  XDLKZ                                                                  09/06/07 21:12:44 PAGE     4

01CA 7400            191     MOV A,#0
01CC F54E            192     K4:MOV 4EH,A
01CE 22              193     RET
01CF B4050B          194     N5:CJNE A,#5,N6
01D2 E550            195     MOV A,50H
01D4 2401            196     ADD A,#1
01D6 B41802          197     CJNE A,#24,K5
01D9 7400            198     MOV A,#0
01DB F550            199     K5:MOV 50H,A
01DD 22              200     N6:RET
                     201     ;分加一程序
01DE E555            202     KEYMJY:MOV A,55H
01E0 B40003          203     CJNE A,#0,M1
01E3 B297            204     CPL P1.7
01E5 22              205     RET
01E6 B4010C          206     M1:CJNE A,#1,M2
01E9 E549            207     MOV A,49H
01EB 2401            208     ADD A,#1
01ED B43C02          209     CJNE A,#60,E1
01F0 7400            210     MOV A,#0
01F2 F549            211     E1:MOV 49H,A
01F4 22              212     RET
01F5 B4020C          213     M2:CJNE A,#2,M3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -