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

📄 dualdptr.lst

📁 大量ADuc831的程序员代码
💻 LST
字号:
DUALDPTR                                                                                                      PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : May 2002
                       6    ;
                       7    ; File          : DualDPTR.asm
                       8    ;
                       9    ; Hardware      : ADuC831
                      10    ;
                      11    ; Description   : Sample Program to show the new ADuC831 features 
                      12    ;                 of dual DPTRs.
                      13    ;
                      14    ;********************************************************************
                      15    
                      16    $MOD831                         ; Use 8052&ADuC831 predefined symbols
  00B4                17    LED     EQU     P3.4            ; P3.4 drives red LED on eval board
                      18    
                      19    ;____________________________________________________________________
                      20                                                      ; BEGINNING OF CODE
----                  21    CSEG
                      22    
0000                  23    ORG 0000h
                      24    
                      25    ; CONFIGURE UART....9600 buad
                      26    
0000 759E85           27            MOV     T3CON,#85h
0003 759D08           28            MOV     T3FD,#08h
0006 759852           29            MOV     SCON,#52h
                      30    
                      31    ; enable the intenal On-Chip XRAM, keep Flash Timing correct
                      32            
0009 43AF01           33            ORL     CFG831, #01h
                      34    
                      35    ; move 512 bytes from code memory (adress 1000h -> 1200h) into
                      36    ; data XRAM (address 0000h -> 0200h)
                      37            ; configure the datapointer
000C 900000           38            MOV     DPTR, #0
000F 75A755           39            MOV     DPCON, #55h     ; auto toggle between DPTRs
                      40                                    ; auto increment shadow DPTR
                      41                                    ; auto increment main DPTR
                      42                                    ; select shadow DPTR
0012 901000           43            MOV     DPTR, #1000h
                      44    
0015                  45    COPYDATALOOP:
                      46            ; read Code Memory using Shadow DPTR
0015 E4               47            CLR     A
0016 93               48            MOVC    A, @A+DPTR      ; read code memory
                      49                                    ; auto increment shadow DPTR
                      50                                    ; swap to main DPTR
                      51            ; write to XRAM using main DPTR
0017 F0               52            MOVX    @DPTR, A        ; write to XRAM
                      53                                    ; auto increment main DPTR
                      54                                    ; swap to shadow DPTR
                      55            ; check if at end of loop
                      56            ; NOTE:  shadow DPTR selected (not main)
0018 E583             57            MOV     A, DPH
001A B412F8           58            CJNE    A, #12h, COPYDATALOOP
DUALDPTR                                                                                                      PAGE 2

                      59    
                      60    
001D 00               61            NOP     ; <----NOTE: Set a breakpoint in the debugger here
                      62                    ; This will show that the values in code memory
                      63                    ; at addresses 1000h thru 1200h has been mapped
                      64                    ; into XRAM at address 0000h thru 0200h.
                      65                    ; The debugger will not run the nextpiece of
                      66                    ; code as this requires the use of the serial port
                      67    
                      68    
                      69    
                      70    
                      71    ; transmit XRAM up UART
001E 75A704           72            MOV     DPCON, #4       ; select main DPTR
                      73                                    ; auto increment DPTR
                      74                                    ; do not toggle DPTR
0021 900000           75            MOV     DPTR, #0
0024 7810             76            MOV     R0, #16
0026                  77    SENDXRAM:
0026 E0               78            MOVX    A, @DPTR
0027 12003F           79            CALL    SENDVAL
002A D8FA             80            DJNZ    R0, SENDXRAM
                      81            ; send a newline
002C 740A             82            MOV     A, #10
002E 120055           83            CALL    SENDCHAR
0031 740D             84            MOV     A, #13
0033 120055           85            CALL    SENDCHAR
0036 7810             86            MOV     R0, #16
0038 E583             87            MOV     A, DPH
003A B402E9           88            CJNE    A, #2, SENDXRAM
                      89    
003D 80FE             90            JMP     $
                      91    
                      92    
                      93    ;____________________________________________________________________
                      94                                                                ; SENDVAL
                      95    
003F                  96    SENDVAL:        ; converts the hex value of A into two ASCII chars,
                      97                    ; and then spits these two characters up the UART.
                      98                    ; does not change the value of A.
                      99    
003F C0E0            100            PUSH    ACC
0041 C4              101            SWAP    A
0042 12005D          102            CALL    HEX2ASCII
0045 120055          103            CALL    SENDCHAR        ; send high nibble
0048 D0E0            104            POP     ACC
004A C0E0            105            PUSH    ACC
004C 12005D          106            CALL    HEX2ASCII
004F 120055          107            CALL    SENDCHAR        ; send low nibble
0052 D0E0            108            POP     ACC
                     109    
0054 22              110            RET
                     111    ;____________________________________________________________________
                     112                                                               ; SENDCHAR
                     113    
0055                 114    SENDCHAR:       ; sends ASCII value contained in A to UART
                     115    
0055 3099FD          116            JNB     TI,$            ; wait til present char gone
DUALDPTR                                                                                                      PAGE 3

0058 C299            117            CLR     TI              ; must clear TI
005A F599            118            MOV     SBUF,A
                     119    
005C 22              120            RET
                     121    ;____________________________________________________________________
                     122                                                              ; HEX2ASCII
                     123    
005D                 124    HEX2ASCII:      ; converts A into the hex character representing the
                     125                    ; value of A's least significant nibble
                     126    
005D 540F            127            ANL     A,#00Fh
005F B40A00          128            CJNE    A,#00Ah,$+3
0062 4002            129            JC      IO0030
0064 2407            130            ADD     A,#007h
0066 2430            131    IO0030: ADD     A,#'0'
                     132    
0068 22              133            RET
                     134    ;____________________________________________________________________
1000                 135    ORG 1000h
                     136    
1000 00010203        137    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
1004 04050607   
1008 08090A0B   
100C 0C0D0E0F   
1010 10111213        138    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
1014 14151617   
1018 18191A1B   
101C 1C1D1E1F   
1020 20212223        139    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
1024 24252627   
1028 28292A2B   
102C 2C2D2E2F   
1030 30313233        140    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
1034 34353637   
1038 38393A3B   
103C 3C3D3E3F   
1040 00010203        141    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
1044 04050607   
1048 08090A0B   
104C 0C0D0E0F   
1050 10111213        142    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
1054 14151617   
1058 18191A1B   
105C 1C1D1E1F   
1060 20212223        143    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
1064 24252627   
1068 28292A2B   
106C 2C2D2E2F   
1070 30313233        144    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
1074 34353637   
1078 38393A3B   
107C 3C3D3E3F   
1080 00010203        145    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
1084 04050607   
1088 08090A0B   
108C 0C0D0E0F   
1090 10111213        146    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
1094 14151617   
DUALDPTR                                                                                                      PAGE 4

1098 18191A1B   
109C 1C1D1E1F   
10A0 20212223        147    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
10A4 24252627   
10A8 28292A2B   
10AC 2C2D2E2F   
10B0 30313233        148    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
10B4 34353637   
10B8 38393A3B   
10BC 3C3D3E3F   
10C0 00010203        149    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
10C4 04050607   
10C8 08090A0B   
10CC 0C0D0E0F   
10D0 10111213        150    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
10D4 14151617   
10D8 18191A1B   
10DC 1C1D1E1F   
10E0 20212223        151    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
10E4 24252627   
10E8 28292A2B   
10EC 2C2D2E2F   
10F0 30313233        152    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
10F4 34353637   
10F8 38393A3B   
10FC 3C3D3E3F   
1100 00010203        153    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
1104 04050607   
1108 08090A0B   
110C 0C0D0E0F   
1110 10111213        154    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
1114 14151617   
1118 18191A1B   
111C 1C1D1E1F   
1120 20212223        155    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
1124 24252627   
1128 28292A2B   
112C 2C2D2E2F   
1130 30313233        156    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
1134 34353637   
1138 38393A3B   
113C 3C3D3E3F   
1140 00010203        157    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
1144 04050607   
1148 08090A0B   
114C 0C0D0E0F   
1150 10111213        158    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
1154 14151617   
1158 18191A1B   
115C 1C1D1E1F   
1160 20212223        159    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
1164 24252627   
1168 28292A2B   
116C 2C2D2E2F   
1170 30313233        160    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
1174 34353637   
1178 38393A3B   
117C 3C3D3E3F   
DUALDPTR                                                                                                      PAGE 5

1180 00010203        161    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
1184 04050607   
1188 08090A0B   
118C 0C0D0E0F   
1190 10111213        162    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
1194 14151617   
1198 18191A1B   
119C 1C1D1E1F   
11A0 20212223        163    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
11A4 24252627   
11A8 28292A2B   
11AC 2C2D2E2F   
11B0 30313233        164    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
11B4 34353637   
11B8 38393A3B   
11BC 3C3D3E3F   
11C0 00010203        165    DB  00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
11C4 04050607   
11C8 08090A0B   
11CC 0C0D0E0F   
11D0 10111213        166    DB  10h,11h,12h,13h,14h,15h,16h,17h,18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
11D4 14151617   
11D8 18191A1B   
11DC 1C1D1E1F   
11E0 20212223        167    DB  20h,21h,22h,23h,24h,25h,26h,27h,28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
11E4 24252627   
11E8 28292A2B   
11EC 2C2D2E2F   
11F0 30313233        168    DB  30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
11F4 34353637   
11F8 38393A3B   
11FC 3C3D3E3F   
                     169    
                     170    
                     171    ;____________________________________________________________________
                     172    
                     173    END

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
DUALDPTR                                                                                                      PAGE 6

ACC. . . . . . . . . . . . . . .  D ADDR  00E0H  PREDEFINED  
CFG831 . . . . . . . . . . . . .  D ADDR  00AFH  PREDEFINED  
COPYDATALOOP . . . . . . . . . .  C ADDR  0015H  
DPCON. . . . . . . . . . . . . .  D ADDR  00A7H  PREDEFINED  
DPH. . . . . . . . . . . . . . .  D ADDR  0083H  PREDEFINED  
HEX2ASCII. . . . . . . . . . . .  C ADDR  005DH  
IO0030 . . . . . . . . . . . . .  C ADDR  0066H  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  NOT USED  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
SBUF . . . . . . . . . . . . . .  D ADDR  0099H  PREDEFINED  
SCON . . . . . . . . . . . . . .  D ADDR  0098H  PREDEFINED  
SENDCHAR . . . . . . . . . . . .  C ADDR  0055H  
SENDVAL. . . . . . . . . . . . .  C ADDR  003FH  
SENDXRAM . . . . . . . . . . . .  C ADDR  0026H  
T3CON. . . . . . . . . . . . . .  D ADDR  009EH  PREDEFINED  
T3FD . . . . . . . . . . . . . .  D ADDR  009DH  PREDEFINED  
TI . . . . . . . . . . . . . . .  B ADDR  0099H  PREDEFINED  

⌨️ 快捷键说明

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