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

📄 ex3-9.lst

📁 《PIC单片机应用开发典型模块》源代码及图片
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN ex3-9.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE ex3-9.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;--------------程序信息-----------------
                       2     ;文件名   : ex3-9.asm
                       3     ;版本     : 1.0
                       4     ;作者     :
                       5     ;修改时间 :
                       6     
                       7     ;--------------程序说明------------------
                       8     ;CHAP 3.9 液晶显示复杂自制图形实例
                       9     
                      10     ;-----------常量和变量声明---------------
  00B7                11           DI  EQU  P3.7; DATA(1)\INSTRUCTION
  00B6                12           RW  EQU  P3.6; READ(1)\WRITE
  00B5                13           E   EQU  P3.5; ENABLE
  00B4                14           CS1 EQU  P3.4; CHIP SELECT RIGHT SIDE
  00B3                15           CS2 EQU  P3.3; CHIP SELECT LEFT SIDE
  0090                16           LCMP EQU P1;
  00A0                17           KEYIN EQU P2;
                      18     
  0032                19           PAGEADD EQU 32H;
  0033                20           YNUM EQU 33H
                      21     
  0034                22           STPAGE EQU 34H;
  0035                23           STY EQU 35H;
  0036                24           LNGTH EQU 36H;
  0037                25           WIDTH EQU 37H;
                      26     
  0038                27           PX EQU 38H;
  0039                28           PY EQU 39H;
                      29     
  003A                30           HEADX EQU 3AH;
  003B                31           HEADY EQU 3BH;
  003C                32           TAILX EQU 3CH;
  003D                33           TAILY EQU 3DH;
                      34     
  003E                35           DIR EQU 3EH; DIRECTION
  003F                36           HEADXA  EQU 3FH;
  0040                37           HEADYA  EQU 40H;
  0041                38           SNAGLNG EQU 41H;
                      39     
  0042                40           TAILXA EQU 42H;
  0043                41           TAILYA EQU 43H;
  0044                42           TDIR EQU 44H;
                      43     
  0045                44           SPOT EQU 45H;
  0046                45           SPOTED EQU 46H;
                      46     
  0000                47           ERR BIT 00H;
  0001                48           ENSPOT BIT 01H;
  0002                49           ALL BIT 02H;
                      50     ;--------------INTERRUPT PRG ADDRESS----------
                      51     
                      52     
                      53     ;--------------PRE-DEFINATION--------------------
0000                  54                    ORG 000H
0000 020003           55                    LJMP START
                      56                    ;ORG 0030H
                      57     
0003                  58     START:
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     2

                      59     ;--------------INITIAL PRG----------------
0003 758160           60            MOV SP,#60H;
0006 C200             61            CLR ERR;
0008 C201             62            CLR ENSPOT;
000A C202             63            CLR ALL;
                      64     ;--------------MAIN PRG--------------------
000C                  65     MAIN:
000C 12002D           66            LCALL INIT;
000F 120578           67            LCALL INITBMP;
0012 12058E           68            LCALL BMP;
0015 1200EC           69            LCALL INITSNAG;
                      70            ;LJMP INITSNAG;
0018                  71     MAINLOOP:
0018 200006           72            JB ERR,MAINLOOP1;
001B 200203           73            JB ALL,MAINLOOP1;
001E 1202D6           74            LCALL SNAG;
                      75            ;LJMP SNAG;
0021                  76     MAINLOOP1:
0021 1203E2           77            LCALL KEYBOARD;
0024 12046B           78            LCALL KEYEXE;
0027 1205FB           79            LCALL DELAY100MS;
002A 020018           80             LJMP MAINLOOP;
                      81     
                      82     
                      83     ;--------------SUB PRG------------------
002D 12009E           84     INIT:   LCALL RIGHTSIDE;
0030 120040           85             LCALL INITLCM;
0033 1200A3           86             LCALL CLS;
0036 120099           87             LCALL LEFTSIDE;
0039 120040           88             LCALL INITLCM;
003C 1200A3           89             LCALL CLS;
003F 22               90             RET;
                      91     ;--------------LCM SUB------------------
0040                  92     INITLCM:
0040 D2B5             93            SETB E;
                      94     
0042 75903E           95            MOV LCMP,#3EH;  DISPLAY OFF
0045 120067           96            LCALL WI;
                      97     
0048 7590C0           98            MOV LCMP,#0C0H; SET INITIAL ROW
004B 120067           99            LCALL WI;
                     100     
004E 7590B8          101            MOV LCMP,#0B8H; SET PAGEADD
0051 120067          102            LCALL WI;
0054 7532B8          103            MOV PAGEADD,#0B8H;
                     104     
0057 759040          105            MOV LCMP,#40H;  SET Y
005A 120067          106            LCALL WI;
005D 753340          107            MOV YNUM,#40H;
                     108     
0060 75903F          109            MOV LCMP,#3FH;  DISPLAY ON;
0063 120067          110            LCALL WI;
                     111     
0066 22              112            RET;
                     113     ;-------------------------------------
0067 C2B7            114     WI:     CLR DI
0069 C2B6            115             CLR RW
006B 1205CF          116             LCALL DELAYLCD
006E C2B5            117             CLR E
0070 1205CF          118             LCALL DELAYLCD
0073 D2B5            119             SETB E
0075 22              120             RET;
                     121     
0076 C2B6            122     WD:    CLR RW
0078 D2B7            123            SETB DI;
007A 1205CF          124            LCALL DELAYLCD
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     3

007D C2B5            125            CLR E;
007F 1205CF          126            LCALL DELAYLCD;
0082 D2B5            127            SETB E;
0084 C2B7            128            CLR DI;
0086 22              129            RET;
                     130     
0087 D2B6            131     RDD:    SETB RW
0089 D2B7            132            SETB DI;
008B 1205CF          133            LCALL DELAYLCD
008E C2B5            134            CLR E;
0090 1205CF          135            LCALL DELAYLCD;
0093 D2B5            136            SETB E;
0095 1205CF          137            LCALL DELAYLCD
                     138            ;CLR DI;
                     139            ;CLR RW;
0098 22              140            RET;
                     141     
0099                 142      LEFTSIDE:
0099 D2B4            143            SETB CS1;
009B C2B3            144            CLR CS2;
009D 22              145            RET;
                     146     
009E                 147      RIGHTSIDE:
009E D2B3            148            SETB CS2;
00A0 C2B4            149            CLR CS1;
00A2 22              150            RET;
                     151      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00A3                 152      CLS:  ;LCALL LEFTSIDE;
00A3 753340          153             MOV YNUM,#40H;
00A6 7532B8          154             MOV PAGEADD,#0B8H;
                     155     
00A9 7808            156             MOV R0,#08H;
00AB 7940            157      CLS0:  MOV R1,#64;
00AD 853290          158             MOV LCMP,PAGEADD;
00B0 120067          159             LCALL WI;
00B3 853390          160             MOV LCMP,YNUM;
00B6 120067          161             LCALL WI;
00B9                 162      CLS1:
00B9 759000          163             MOV LCMP,#00H;
00BC 120076          164             LCALL WD;
00BF D9F8            165             DJNZ R1,CLS1;
00C1 0532            166             INC PAGEADD;
00C3 D8E6            167             DJNZ R0,CLS0;
                     168     
00C5 22              169             RET;
                     170     
00C6                 171      CLSDRAW:
00C6 12009E          172             LCALL RIGHTSIDE;
00C9 75334C          173             MOV YNUM,#4CH;
00CC 7532B9          174             MOV PAGEADD,#0B9H;
                     175     
00CF 7806            176             MOV R0,#06H;
00D1 7928            177      CLS2:  MOV R1,#40;
00D3 853290          178             MOV LCMP,PAGEADD;
00D6 120067          179             LCALL WI;
                     180     
00D9 853390          181             MOV LCMP,YNUM;
00DC 120067          182             LCALL WI;
00DF                 183      CLS3:
00DF 759000          184             MOV LCMP,#00H;
00E2 120076          185             LCALL WD;
00E5 D9F8            186             DJNZ R1,CLS3;
00E7 0532            187             INC PAGEADD;
00E9 D8E6            188             DJNZ R0,CLS2;
                     189     
00EB 22              190             RET;
A51 MACRO ASSEMBLER  EX3_9                                                                06/23/2007 17:15:17 PAGE     4

                     191     ;--------------SNAG SUB-----------------
                     192     ;
00EC                 193     INITSNAG:
00EC 753902          194              MOV PY,#02H;
00EF 753820          195              MOV PX,#20H;
00F2 7B0A            196              MOV R3,#0AH;
                     197                             ;INITIALIZE HEAD AND TAIL
00F4 85383C          198              MOV TAILX,PX;
00F7 85393D          199              MOV TAILY,PY;
00FA E538            200              MOV A,PX;
00FC 2B              201              ADD A,R3;
00FD 14              202              DEC A;
00FE F53A            203              MOV HEADX,A;
0100 85393B          204              MOV HEADY,PY;
                     205     
0103 754280          206              MOV TAILXA,#80H;
0106 7543C0          207              MOV TAILYA,#0C0H;
0109 75410A          208              MOV SNAGLNG,#0AH; THE SAME WITH THE R3
                     209                              ; SO WE CAN INFER THE TAILXAYA FROM IT
010C E542            210              MOV A,TAILXA;
010E 2541            211              ADD A,SNAGLNG;
0110 14              212              DEC A;
0111 F53F            213              MOV HEADXA,A;
0113 7440            214              MOV A,#40H;
0115 253F            215              ADD A,HEADXA;
0117 F540            216              MOV HEADYA,A;
                     217     
0119 A842            218              MOV R0,TAILXA;
011B A943            219              MOV R1,TAILYA;
                     220     
011D                 221     INITSNAG1:
011D E9              222               MOV A,R1;
011E C0E0            223               PUSH ACC;
0120 E8              224               MOV A,R0;
0121 C0E0            225               PUSH ACC;
                     226     
0123 12015E          227               LCALL DISPXY;
                     228                                  ; INITIALIZE ALL THE BODY OF THE SNAG;
0126 D0E0            229               POP ACC;
0128 F8              230               MOV R0,A;
0129 D0E0            231               POP ACC;
012B F9              232               MOV R1,A;
                     233     
                     234               ;MOV R0,TAILXA;
012C A638            235               MOV @R0,PX;
                     236               ;MOV R0,TAILYA;
012E A739            237               MOV @R1,PY;
                     238     
0130 08              239               INC R0;
0131 09              240               INC R1;
0132 0538            241               INC PX;
0134 DBE7            242               DJNZ R3,INITSNAG1;
                     243     
0136 753E11          244               MOV DIR,#00010001B;
                     245     
                     246                                  ;INITIALIZE THE SNAGSPOT MAP 
0139 754509          247               MOV SPOT,#09H;     ;THE VARIABLE SPOT MEAN THE NUMBER OF THE SPOT IN MAP
013C 754600          248               MOV SPOTED,#00H;   ;SPOTXDB AND SPOTYDB STORE THE X Y COORDINATION 
013F 7800            249               MOV R0,#00H;

⌨️ 快捷键说明

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