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

📄 ex3-9.lst

📁 《PIC单片机应用开发典型模块》源代码及图片
💻 LST
📖 第 1 页 / 共 5 页
字号:
                     250               
0141                 251     INITSNAG2:
0141 900628          252               MOV DPTR,#SPOTXDB;
0144 E8              253               MOV A,R0;
0145 93              254               MOVC A,@A+DPTR;
0146 F538            255               MOV PX,A;
                     256               
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     5

0148 900631          257               MOV DPTR,#SPOTYDB;
014B E8              258               MOV A,R0;
014C 93              259               MOVC A,@A+DPTR;
014D F539            260               MOV PY,A;
                     261               
014F E8              262               MOV A,R0;
0150 C0E0            263               PUSH ACC;
0152 12015E          264               LCALL DISPXY;
0155 D0E0            265               POP ACC;
0157 F8              266               MOV R0,A;
0158 08              267               INC R0;
0159 E8              268               MOV A,R0;
015A B545E4          269               CJNE A,SPOT,INITSNAG2;
                     270     
015D 22              271               RET;
                     272     
                     273     ; THE FUNCTION TO DISPLAY A POINT AT (X,Y)
                     274     ; AND ON THE LCD DISPLAY, THE HORIZON DIRECTION IS X
                     275     ; AND ALSO THE VETICAL IS Y
                     276     ;(PX,PY);  PX,PY BOTH FROM  0 TO 63
015E                 277     DISPXY:
015E 7532B8          278            MOV PAGEADD,#0B8H;
0161 753340          279            MOV YNUM,#40H;
                     280     
0164 E538            281            MOV A,PX;          TO SET THE PAGE AND Y
0166 2533            282            ADD A,YNUM;
0168 F533            283            MOV YNUM,A;
016A 853390          284            MOV LCMP,YNUM;
016D 120067          285            LCALL WI;
                     286     
0170 E539            287            MOV A,PY;
0172 75F008          288            MOV B,#08H;
0175 84              289            DIV AB;
0176 2532            290            ADD A,PAGEADD;
0178 F532            291            MOV PAGEADD,A;
017A 853290          292            MOV LCMP,PAGEADD;
017D 120067          293            LCALL WI;
                     294     
                     295     
0180 1205D8          296            LCALL DELAY;
0183 120087          297            LCALL RDD;
0186 E590            298            MOV A,LCMP;      TO READ THE CURRENT DATA OF THE LCM RAM;
                     299     
                     300            ;SETB E;
0188 C2B7            301            CLR DI;
018A C2B6            302            CLR RW;
                     303     
018C F8              304            MOV R0,A;
                     305     
018D E5F0            306            MOV A,B;
018F 900618          307            MOV DPTR,#DISPDB;
0192 93              308            MOVC A,@A+DPTR;
0193 48              309            ORL A,R0;
                     310     
0194 853390          311            MOV LCMP,YNUM;
0197 120067          312            LCALL WI;
019A 853290          313            MOV LCMP,PAGEADD;
019D 120067          314            LCALL WI;
                     315     
01A0 F590            316            MOV LCMP,A;
01A2 120076          317            LCALL WD;
                     318     
01A5 22              319            RET;
                     320     
01A6                 321     UNDISPXY:
01A6 7532B8          322            MOV PAGEADD,#0B8H;
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     6

01A9 753340          323            MOV YNUM,#40H;
                     324     
01AC E538            325            MOV A,PX;          TO SET THE PAGE AND Y
01AE 2533            326            ADD A,YNUM;
01B0 F533            327            MOV YNUM,A;
01B2 853390          328            MOV LCMP,YNUM;
01B5 120067          329            LCALL WI;
                     330     
01B8 E539            331            MOV A,PY;
01BA 75F008          332            MOV B,#08H;
01BD 84              333            DIV AB;
01BE 2532            334            ADD A,PAGEADD;
01C0 F532            335            MOV PAGEADD,A;
01C2 853290          336            MOV LCMP,PAGEADD;
01C5 120067          337            LCALL WI;
                     338     
01C8 1205D8          339            LCALL DELAY;
01CB 120087          340            LCALL RDD;
01CE E590            341            MOV A,LCMP;      TO READ THE CURRENT DATA OF THE LCM RAM;
                     342     
                     343            ;SETB E;
01D0 C2B7            344            CLR DI;
01D2 C2B6            345            CLR RW;
                     346     
01D4 F8              347            MOV R0,A;
                     348     
01D5 E5F0            349            MOV A,B;
01D7 900620          350            MOV DPTR,#UNDISPDB;
01DA 93              351            MOVC A,@A+DPTR;
01DB 58              352            ANL A,R0;
                     353     
01DC 853390          354            MOV LCMP,YNUM;
01DF 120067          355            LCALL WI;
01E2 853290          356            MOV LCMP,PAGEADD;
01E5 120067          357            LCALL WI;
                     358     
01E8 F590            359            MOV LCMP,A;
01EA 120076          360            LCALL WD;
                     361     
01ED 22              362            RET;
                     363     
01EE                 364     READXY:
01EE 900694          365            MOV DPTR,#BMPDB;
01F1 E539            366            MOV A,PY;
01F3 75F008          367            MOV B,#08H;
01F6 84              368            DIV AB;
01F7 F8              369            MOV R0,A;
01F8 A9F0            370            MOV R1,B;
                     371     
01FA E538            372            MOV A,PX;
01FC 75F008          373            MOV B,#08H;
01FF A4              374            MUL AB;     B IS THE HIGH PART OF THE MULTIPLICATION
0200 C2D7            375            CLR CY;
0202 28              376            ADD A,R0;
0203 F8              377            MOV R0,A;
0204 E5F0            378            MOV A,B;
0206 3583            379            ADDC A,DPH;
0208 F583            380            MOV DPH,A;
020A E8              381            MOV A,R0;
020B 93              382            MOVC A,@A+DPTR;
                     383     
020C B90008          384            CJNE R1,#00H,READXY0;
020F 30E005          385            JNB ACC.0,READXY0;
0212 D200            386            SETB ERR;
0214 020266          387            LJMP READEND;
0217                 388     READXY0:
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     7

0217 B90108          389            CJNE R1,#01H,READXY1;
021A 30E105          390            JNB ACC.1,READXY1;
021D D200            391            SETB ERR;
021F 020266          392            LJMP READEND;
0222                 393     READXY1:
0222 B90208          394            CJNE R1,#02H,READXY2;
0225 30E205          395            JNB ACC.2,READXY2;
0228 D200            396            SETB ERR;
022A 020266          397            LJMP READEND;
022D                 398     READXY2:
022D B90308          399            CJNE R1,#03H,READXY3;
0230 30E305          400            JNB ACC.3,READXY3;
0233 D200            401            SETB ERR;
0235 020266          402            LJMP READEND;
0238                 403     READXY3:
0238 B90408          404            CJNE R1,#04H,READXY4;
023B 30E405          405            JNB ACC.4,READXY4;
023E D200            406            SETB ERR;
0240 020266          407            LJMP READEND;
0243                 408     READXY4:
0243 B90508          409            CJNE R1,#05H,READXY5;
0246 30E505          410            JNB ACC.5,READXY5;
0249 D200            411            SETB ERR;
024B 020266          412            LJMP READEND;
024E                 413     READXY5:
024E B90608          414            CJNE R1,#06H,READXY6;
0251 30E605          415            JNB ACC.6,READXY6;
0254 D200            416            SETB ERR;
0256 020266          417            LJMP READEND;
0259                 418     READXY6:
0259 B90708          419            CJNE R1,#07H,READXY7;
025C 30E705          420            JNB ACC.7,READXY7;
025F D200            421            SETB ERR;
0261 020266          422            LJMP READEND;
0264                 423     READXY7:
0264 C200            424            CLR ERR;
0266                 425     READEND:
                     426     
0266 A842            427            MOV R0,TAILXA;
0268 A943            428            MOV R1,TAILYA;
026A AA41            429            MOV R2,SNAGLNG;
026C                 430     READXY9:
026C E6              431            MOV A,@R0;
026D B53806          432            CJNE A,PX,READXY8;
0270 E7              433            MOV A,@R1;
0271 B53902          434            CJNE A,PY,READXY8;
0274 D200            435            SETB ERR;
0276                 436     READXY8:  
0276 08              437            INC R0;
0277 09              438            INC R1;
0278 DAF2            439            DJNZ R2,READXY9;
                     440                 
027A 22              441            RET;
                     442     ;                                 TO DISPLAY THE DATA OF THE GAME;
027B                 443     ERROR:
027B 12009E          444            LCALL RIGHTSIDE;
027E 753345          445            MOV YNUM,#45H;
0281 7532BB          446            MOV PAGEADD,#0BBH;
0284 7800            447            MOV R0,#00H;
                     448     
0286 120556          449     ERROR1:LCALL KEYEEE;
0289 08              450            INC R0;
028A E533            451            MOV A,YNUM
028C 2405            452            ADD A,#05H;
028E F533            453            MOV YNUM,A;
0290 B809F3          454            CJNE R0,#09H,ERROR1;
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     8

0293                 455     ERROREND:
0293 120099          456            LCALL LEFTSIDE;
                     457     
                     458            ;LCALL KEYEF;
0296 22              459            RET;
                     460     
0297                 461     TOSPOT:                      ; THE SNAG TO ENCOUNT SPOT OR NOT
                     462                                  ; INPUT PX AND PY   OUTPUT ENSPOT BIT
                     463                                  ; USE THE REGISTER A,R0
0297 7800            464               MOV R0,#00H;                   
0299                 465       TOSPOT1:
0299 900628          466               MOV DPTR,#SPOTXDB;
029C E8              467               MOV A,R0;
029D 93              468               MOVC A,@A+DPTR;
029E B5380C          469               CJNE A,PX,TOSPOT2;
                     470               
02A1 900631          471               MOV DPTR,#SPOTYDB;
02A4 E8              472               MOV A,R0;
02A5 93              473               MOVC A,@A+DPTR;
02A6 B53904          474               CJNE A,PY,TOSPOT2;
02A9 D201            475               SETB ENSPOT;
02AB 0546            476               INC SPOTED;
                     477               
02AD                 478        TOSPOT2:       
02AD 08              479               INC R0;
02AE E8              480               MOV A,R0;
02AF B545E7          481               CJNE A,SPOT,TOSPOT1; ; 05 IS THE NUMBER OF THE SPOTS
                     482     
02B2 E546            483               MOV A,SPOTED;
02B4 B54502          484               CJNE A,SPOT,TOSPOTEND;
02B7 D202            485               SETB ALL;
02B9                 486       TOSPOTEND:
                     487               
02B9 22              488               RET;
                     489               
02BA                 490     ALLSPOT:
                     491     
02BA 12009E          492            LCALL RIGHTSIDE;
02BD 753345          493            MOV YNUM,#45H;
02C0 7532BB          494            MOV PAGEADD,#0BBH;
02C3 7809            495            MOV R0,#09H;
                     496     
02C5                 497     ALLSPOT1:
02C5 120556          498            LCALL KEYEEE;
02C8 08              499            INC R0;
02C9 E533            500            MOV A,YNUM
02CB 2405            501            ADD A,#05H;
02CD F533            502            MOV YNUM,A;
02CF B812F3          503            CJNE R0,#12H,ALLSPOT1;
02D2                 504     ALLSPOTEND:
02D2 120099          505            LCALL LEFTSIDE;

⌨️ 快捷键说明

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