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

📄 ic.lst

📁 IC卡收费器
💻 LST
📖 第 1 页 / 共 4 页
字号:
0204 5006            202             JNC DURU
0206 C3              203             CLR C
0207 9406            204             SUBB A,#06H
0209 540F            205             ANL A,#0FH
020B D3              206             SETB C
020C F7              207     DURU:   MOV @R1,A
020D 09              208             INC R1
020E 08              209             INC R0
020F DAF1            210             DJNZ R2,KOUQIAN    ;*********************************
0211 8003            211             SJMP FINISHED
0213                 212     ERRORB:
0213 120223          213               LCALL ERROR
0216                 214     FINISHED:
0216 120502          215             LCALL WT        ;将处理完的30h起始的数据写入到24c02的30h起始的单元中去
                     216             ;LCALL RT
0219 752120          217             MOV NUMB,#20H   ;标志位,用来查询的时候判断上一次的操作
021C 752040          218             MOV POINTER,#40H;标志位写入到40h中去
021F 12042C          219             LCALL WR_1B
                     220             ;LCALL RD_1B
0222 22              221             RET
0223                 222     ERROR:
0223 C2A7            223             CLR  WELA            ;出错时,所有数码管全显示一横
0225 758000          224             MOV  P0,#00H   
0228 D2A7            225             SETB WELA
022A C2A7            226             CLR  WELA                             
022C C2A6            227             CLR  DULA
022E 758001          228             MOV  P0,#01H         
0231 D2A6            229             SETB DULA
0233 C2A6            230             CLR  DULA
0235 120738          231             LCALL DELAY2
0238 120730          232             LCALL KSTART
023B 60E6            233             JZ ERROR
023D 22              234             RET
                     235     
023E E9              236     LOOP1:MOV A,R1      ;统计数据区的有效位数,放入R0中
023F C3              237           CLR C
0240 9430            238           SUBB A,#30H
0242 4012            239           JC ERRORA
0244 1A              240           DEC R2
0245 7400            241           MOV A,#00H    ;看看30H或40H中的数是否为全零,是则跳转
0247 C3              242           CLR C
0248 9A              243           SUBB A,R2
0249 500E            244           JNC ZERO
024B E7              245           MOV A,@R1
024C 19              246           DEC R1
024D C3              247           CLR C
024E 9400            248           SUBB A,#00H
0250 60EC            249           JZ LOOP1
0252 EA              250           MOV A,R2
0253 F6              251           MOV @R0,A
0254 8005            252           JMP FINISH
0256 120223          253     ERRORA:LCALL ERROR
0259 7600            254     ZERO:MOV @R0,#00H
025B                 255     FINISH:
A51 MACRO ASSEMBLER  IC                                                                   07/12/2008 15:19:28 PAGE     5

025B 22              256     RET
                     257     ;****************************存钱*******************************
025C                 258     DEPOSIT:
025C 120586          259             LCALL RT       ;把内存30~37读入外存30H~37H
025F 120540          260             LCALL STS
                     261                            ;键盘输入到60h~67h单元中,并且将输入的单元送到40h~47h中以便后面处理
0262 120521          262             LCALL WT1      ;将40h起始的内容写入到24c02中50-57H,以便进行查询
                     263                            ;等待处理
0265 7935            264     MOV R1,#35H            ;卡里的钱最低位存到30H
0267 7A07            265     MOV R2,#07H            ;统计卡里钱的位数,存到50H
0269 7850            266     MOV R0,#50H            ;
026B 1202CC          267     LCALL LOOP2            ;子程序统计
026E 7945            268     MOV R1,#45H            ;将要存的钱的低位数存到47h
0270 7A07            269     MOV R2,#07H
0272 7851            270     MOV R0,#51H            ;将要扣的钱位数存在51H
0274 1202CC          271     LCALL LOOP2            ;子程序统计
0277 7836            272     MOV R0,#36H
0279 7400            273     MOV A,#00H
027B F6              274     MOV @R0,A
027C 754600          275     MOV 46H,#00H
027F 7851            276     MOV R0,#51H
0281 E6              277     MOV A,@R0
0282 18              278     DEC R0
0283 B5501F          279     CJNE A,50H,ADDITION
                     280                            ;比较51H和50H中那个数大,如果一样大就按存钱的位数进行加,顺序执行
0286 7930            281     J1:     MOV R1,#30H
0288 7840            282             MOV R0,#40H
028A 04              283             INC A         ;***************************************
028B FA              284             MOV R2,A
028C C3              285             CLR C
028D E7              286     CUNQIAN:MOV A,@R1
028E 36              287             ADDC A,@R0
028F D4              288             DA A
0290 C3              289             CLR C
0291 FD              290             MOV R5,A
0292 54F0            291             ANL A,#0F0H
0294 C4              292             SWAP A
0295 B4000A          293             CJNE A,#00H,JINBIAO     ;跳转存储进位标志位,顺须执行没有进位
0298 ED              294     CONTINUE:MOV A,R5
0299 540F            295             ANL A,#0FH
029B F7              296             MOV @R1,A
029C 09              297             INC R1
029D 08              298             INC R0
029E DAED            299             DJNZ R2,CUNQIAN
02A0 800A            300             JMP DUSHU
02A2 D3              301     JINBIAO:SETB C
02A3 80F3            302             SJMP CONTINUE
02A5 4002            303     ADDITION:JC CARD            ;C=1,卡里剩余钱位数高,跳转
02A7 80DD            304              JMP J1             ;C=0,存钱位数高,按存钱位数进行加
02A9 E6              305     CARD:    MOV A,@R0
02AA 80DA            306              JMP J1
02AC E536            307     DUSHU:   MOV A,36H
02AE C3              308              CLR C
02AF 9401            309              SUBB A,#01H
02B1 4007            310              JC TIAO
02B3 7836            311              MOV R0,#36H
02B5 7400            312              MOV A,#00H
02B7 F6              313              MOV @R0,A
02B8 800E            314              SJMP ERRORC
02BA 120502          315     TIAO:    LCALL WT             ;将处理完的30h起始的数据写入到24c02的30h起始的单元中去
                     316              ;LCALL RT
02BD 752110          317              MOV NUMB,#10H        ;标志位
02C0 752040          318              MOV POINTER,#40H     ;标志位,用来查询的时候判断上一次的操作
02C3 12042C          319              LCALL WR_1B          ;标志位写入到40h中去 
02C6 8003            320              JMP TIAL
02C8 120223          321     ERRORC:  LCALL ERROR          ;然后重新调这个子程序,重新输入数字
A51 MACRO ASSEMBLER  IC                                                                   07/12/2008 15:19:28 PAGE     6

02CB 22              322     TIAL:     RET
                     323     
02CC 1A              324     LOOP2: DEC R2
02CD 7400            325            MOV A,#00H             ;看看30H或40H中的数是否为全零,是则跳转
02CF C3              326            CLR C
02D0 9A              327            SUBB A,R2
02D1 500B            328            JNC ZERO2
02D3 E7              329            MOV A,@R1
02D4 19              330            DEC R1
02D5 C3              331            CLR C
02D6 9400            332            SUBB A,#00H
02D8 60F2            333            JZ LOOP2
02DA EA              334            MOV A,R2
02DB F6              335            MOV @R0,A
02DC 8003            336            jMP FINISHED1
02DE                 337     ZERO2:
02DE 7400            338            MOV A,#00H
02E0 F6              339            MOV @R0,A
02E1 22              340     FINISHED1:       RET
                     341     ;***************************查询上一次的操作**********************
02E2                 342     INQUIRE:              
02E2 752040          343             MOV POINTER,#40H
02E5 12044F          344             LCALL RD_1B
02E8 EF              345             MOV A,R7
02E9 B41026          346             CJNE A,#10H,IN1  ;是否为存
02EC C2A7            347             CLR  WELA
02EE 758000          348             MOV  P0,#00H   
02F1 D2A7            349             SETB WELA
02F3 C2A7            350             CLR  WELA                              
02F5 C2A6            351             CLR  DULA
02F7 75804F          352             MOV  P0,#4fH         ;全选中,显示3
02FA D2A6            353             SETB DULA
02FC C2A6            354             CLR  DULA
02FE 120765          355             LCALL DELAY3
0301 120765          356             LCALL DELAY3
0304 120765          357             LCALL DELAY3
0307 120765          358             LCALL DELAY3
030A 120765          359             LCALL DELAY3
030D 120765          360             LCALL DELAY3
                     361     
0310 8024            362             JMP IN2
0312                 363     IN1:
0312 C2A7            364             CLR  WELA
0314 758000          365             MOV  P0,#00H   
0317 D2A7            366             SETB WELA
0319 C2A7            367             CLR  WELA                            
031B C2A6            368             CLR  DULA
031D 75805B          369             MOV  P0,#5bH         ;全选中,显示2
0320 D2A6            370             SETB DULA        
0322 C2A6            371             CLR  DULA
0324 120765          372             LCALL DELAY3
0327 120765          373             LCALL DELAY3
032A 120765          374             LCALL DELAY3
032D 120765          375             LCALL DELAY3
0330 120765          376             LCALL DELAY3
0333 120765          377             LCALL DELAY3
                     378     
0336                 379     IN2:
0336 7A64            380             MOV R2,#100
0338                 381     IN3:
0338 120738          382             LCALL DELAY2
033B DAFB            383             DJNZ R2,IN3 
033D 1205DD          384             LCALL RRT1
0340 1205F7          385             LCALL SHOWDO
0343 120765          386             LCALL DELAY3
0346 120765          387             LCALL DELAY3
A51 MACRO ASSEMBLER  IC                                                                   07/12/2008 15:19:28 PAGE     7

0349 120765          388             LCALL DELAY3
034C 120765          389             LCALL DELAY3
034F 120765          390             LCALL DELAY3
0352 120765          391             LCALL DELAY3
0355 22              392             RET
                     393     ;***************************查询余额********************************
0356                 394     SURPLUS:               
0356 120586          395             LCALL RT
0359                 396     SS1:
0359 1205A0          397             LCALL SHOWSUR
035C 120765          398             LCALL DELAY3
035F 120765          399             LCALL DELAY3
0362 120730          400             LCALL KSTART
0365 60F2            401             JZ SS1
                     402             ;LJMP MAIN1
0367 22              403             RET
                     404     ;**************************数据的输入***********************
0368                 405     NUIN:
0368 7860            406             MOV R0,#60H
036A 7F01            407             MOV R7,#1
036C                 408     D1:
036C 120730          409             LCALL KSTART         ;上一次的确认键要松开手
036F 70FB            410             JNZ D1 
0371                 411     D3:
0371 120395          412             LCALL ENTER          ;调用单个键的输入

⌨️ 快捷键说明

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