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

📄 dualdptr.lst

📁 aduc842原程序代码 ad公司芯片应用笔记
💻 LST
字号:
DUALDPTR                                                                                                      PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : October 2003
                       6    ;
                       7    ; File          : DualDPTR.asm
                       8    ;
                       9    ; Hardware      : ADuC842/ADuC843
                      10    ;
                      11    ; Description   : Sample Program to show the new ADuC842 features 
                      12    ;                 of dual DPTRs.
                      13    ;
                      14    ;********************************************************************
                      15    
                      16    $MOD842                         ; Use 8052&ADuC832 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
0000 75D703           24            MOV     PLLCON,#03H
                      25    ; CONFIGURE UART....9600 buad at core clk of 2.097152MHz
                      26    
0003 759E83           27            MOV     T3CON,#83h
0006 759D2D           28            MOV     T3FD,#2Dh
0009 759852           29            MOV     SCON,#52h
                      30    
                      31    ; enable the intenal On-Chip XRAM
                      32            
000C 43AF01           33            ORL     CFG842, #01h
                      34    
                      35    ; move 512 bytes from code memory (adress 1000h -> 1200h) into
                      36    ; data XRAM (address 0000h -> 0200h)
                      37            ; configure the datapointer
000F 900000           38            MOV     DPTR, #0
0012 75A755           39            MOV     DPCON, #55h     ; auto toggle between DPTRs
                      40                                    ; auto increment shadow DPTR
                      41                                    ; auto increment main DPTR
                      42                                    ; select shadow DPTR
0015 901000           43            MOV     DPTR, #1000h
                      44    
0018                  45    COPYDATALOOP:
                      46            ; read Code Memory using Shadow DPTR
0018 E4               47            CLR     A
0019 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
001A 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)
001B E583             57            MOV     A, DPH
001D B412F8           58            CJNE    A, #12h, COPYDATALOOP
DUALDPTR                                                                                                      PAGE 2

                      59    
                      60    
0020 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
0021 75A704           72            MOV     DPCON, #4       ; select main DPTR
                      73                                    ; auto increment DPTR
                      74                                    ; do not toggle DPTR
0024 900000           75            MOV     DPTR, #0
0027 7810             76            MOV     R0, #16
0029                  77    SENDXRAM:
0029 E0               78            MOVX    A, @DPTR
002A 120042           79            CALL    SENDVAL
002D D8FA             80            DJNZ    R0, SENDXRAM
                      81            ; send a newline
002F 740A             82            MOV     A, #10
0031 120058           83            CALL    SENDCHAR
0034 740D             84            MOV     A, #13
0036 120058           85            CALL    SENDCHAR
0039 7810             86            MOV     R0, #16
003B E583             87            MOV     A, DPH
003D B402E9           88            CJNE    A, #2, SENDXRAM
                      89    
0040 80FE             90            JMP     $
                      91    
                      92    
                      93    ;____________________________________________________________________
                      94                                                                ; SENDVAL
                      95    
0042                  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    
0042 C0E0            100            PUSH    ACC
0044 C4              101            SWAP    A
0045 120060          102            CALL    HEX2ASCII
0048 120058          103            CALL    SENDCHAR        ; send high nibble
004B D0E0            104            POP     ACC
004D C0E0            105            PUSH    ACC
004F 120060          106            CALL    HEX2ASCII
0052 120058          107            CALL    SENDCHAR        ; send low nibble
0055 D0E0            108            POP     ACC
                     109    
0057 22              110            RET
                     111    ;____________________________________________________________________
                     112                                                               ; SENDCHAR
                     113    
0058                 114    SENDCHAR:       ; sends ASCII value contained in A to UART
                     115    
0058 3099FD          116            JNB     TI,$            ; wait til present char gone
DUALDPTR                                                                                                      PAGE 3

005B C299            117            CLR     TI              ; must clear TI
005D F599            118            MOV     SBUF,A
                     119    
005F 22              120            RET
                     121    ;____________________________________________________________________
                     122                                                              ; HEX2ASCII
                     123    
0060                 124    HEX2ASCII:      ; converts A into the hex character representing the
                     125                    ; value of A's least significant nibble
                     126    
0060 540F            127            ANL     A,#00Fh
0062 B40A00          128            CJNE    A,#00Ah,$+3
0065 4002            129            JC      IO0030
0067 2407            130            ADD     A,#007h
0069 2430            131    IO0030: ADD     A,#'0'
                     132    
006B 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  
CFG842 . . . . . . . . . . . . .  D ADDR  00AFH  PREDEFINED  
COPYDATALOOP . . . . . . . . . .  C ADDR  0018H  
DPCON. . . . . . . . . . . . . .  D ADDR  00A7H  PREDEFINED  
DPH. . . . . . . . . . . . . . .  D ADDR  0083H  PREDEFINED  
HEX2ASCII. . . . . . . . . . . .  C ADDR  0060H  
IO0030 . . . . . . . . . . . . .  C ADDR  0069H  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  NOT USED  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
PLLCON . . . . . . . . . . . . .  D ADDR  00D7H  PREDEFINED  
SBUF . . . . . . . . . . . . . .  D ADDR  0099H  PREDEFINED  
SCON . . . . . . . . . . . . . .  D ADDR  0098H  PREDEFINED  
SENDCHAR . . . . . . . . . . . .  C ADDR  0058H  
SENDVAL. . . . . . . . . . . . .  C ADDR  0042H  
SENDXRAM . . . . . . . . . . . .  C ADDR  0029H  
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 + -