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

📄 up2dsptest1.lst

📁 This program allows reading or writing values to and from the DSP through hyperterminal serial por
💻 LST
📖 第 1 页 / 共 5 页
字号:
028E                 687     TXisr:                          ; else a TX interrupt
                     688     
                                     
                                     
                                     
                                     
                             
                             
                                     
                                     
                             
028E 8021            698             sjmp    ser_ret
A51 MACRO ASSEMBLER  UP2DSPTEST1                                                          04/12/2006 14:30:29 PAGE    12

                     699     ;
0290                 700     RXisr:  
                     701     ;       setb    rxflag   ;debug
                     702     ;       MOV rxbuf_ptr, #1
                     703     ;       reti ;debug
0290 9200     F      704             MOV sav_C, C
0292 F5F0            705             MOV B, A
                     706     
0294 7400     F      707             MOV A, #rxbuf
0296 2500     F      708             ADD A, rxbuf_ptr
                     709     
0298 8800     F      710             MOV tmp_sav, R0         ; save R0 value
029A F8              711             MOV R0, A
                     712     
029B A699            713             mov     @R0,sbuf        ; read incoming character
029D A800     F      714             MOV     R0, tmp_sav     ; restore
029F D200     F      715             setb    rxflag          ;  set received flag
02A1 C200     F      716             CLR     rxdone          ; data in rx buf
                     717     
02A3 C3              718             CLR C
02A4 E500     F      719             MOV A, rxbuf_ptr
02A6 04              720             INC A
02A7 F500     F      721             MOV rxbuf_ptr, A        ; increment to indicate value inside rxbuf
                     722     
                     723     ;       MOV tmp_sav, A
                     724     
                     725             ;check if over half size then issue XOFF        
02A9 9410            726             SUBB A, #10H    ; half size = 5
02AB 5005            727             JNC     send_xoff
                     728     
02AD                 729     back_seri:
02AD E5F0            730             MOV A, B                        ; put original value back
02AF A200     F      731             MOV C, sav_C
02B1                 732     ser_ret:
02B1 32              733             reti
02B2                 734     send_xoff:
02B2 D200     F      735             setb flow_control       ; indicate xoff sent
                     736     
02B4 7413            737             MOV A, #19
02B6 120000   F      738             call TRANS_BYTE
02B9 7458            739             MOV A, #'X'
02BB 120000   F      740             call TRANS_BYTE
02BE 7446            741             MOV A, #'F'
02C0 120000   F      742             call TRANS_BYTE
                     743     
02C3 80E8            744             JMP back_seri
                     745     
                     746     ;***************
02C5 020000   F      747     FILE_ERR1:      JMP FILE_ERR
                     748     
                     749     ;************************************
                     750     ; check whether it is the end of file transfer
02C8                 751     FILE_chk_end:
02C8 B41BFA          752                     CJNE    A,#1BH, FILE_ERR1                                       
02CB 120000   F      753                     call RECEI_BYTE
02CE B41BF4          754                     CJNE    A,#1BH, FILE_ERR1                                       
02D1 120000   F      755                     call RECEI_BYTE                         ; 6FH = 'o'
02D4 120000   F      756                     call RECEI_BYTE                         ; 0d = carriage return
02D7 120000   F      757                     call RECEI_BYTE                         ;       0a = line feed
                     758     ;;;;;;;;;;;;;;;;;;;;;;;;;;SEND RESERVED BYTE TO ADDRESS 0;;;;;;;;;;;;;;;
02DA 758004          759                     MOV     P0, #04H
02DD C2B2            760                     CLR     P3.2
                     761     
02DF 758000          762                     MOV     P0, #00H                                                ;address 0x
                             00;
02E2 C2B6            763                     CLR     P3.6
A51 MACRO ASSEMBLER  UP2DSPTEST1                                                          04/12/2006 14:30:29 PAGE    13

02E4 D2B6            764                     SETB    P3.6
02E6 D2B2            765                     SETB    P3.2
                     766     
                     767     ; retrieve low byte of address, byte0lower
                     768     
02E8 758005          769                     MOV     P0, #05H
02EB C2B2            770                     CLR     P3.2
                     771             
02ED 758000          772                     MOV     P0, #0H                                         ;address 0x00;  
02F0 C2B6            773                     CLR     P3.6
02F2 D2B6            774                     SETB    P3.6
02F4 D2B2            775                     SETB    P3.2
                     776     
                     777     ; send RW request in addr 02
                     778     ; do write (1) first and then read (0)
02F6 758002          779             MOV     P0, #02H
02F9 C2B2            780             CLR     P3.2
                     781     
02FB 758001          782             MOV     P0, #1                                                  ; write
02FE C2B6            783             CLR     P3.6
0300 D2B6            784             SETB    P3.6
0302 D2B2            785             SETB    P3.2
                     786     
0304 758006          787             MOV     P0, #06H
0307 C2B2            788             CLR     P3.2
                     789     
0309 853580          790             MOV     P0, byte0high                           ;high byte of pm data address 0
030C C2B6            791             CLR     P3.6
030E D2B6            792             SETB    P3.6
0310 D2B2            793             SETB    P3.2
                     794     
0312 E535            795     MOV     A,byte0high
0314 120000   F      796     call seebuf
0317 758006          797             MOV     P0, #06H
031A C2B2            798             CLR     P3.2
                     799     
031C 853480          800             MOV     P0, byte0middle                 ;middle byte of pm data address 0
031F C2B6            801             CLR     P3.6
0321 D2B6            802             SETB    P3.6
0323 D2B2            803             SETB    P3.2
0325 E534            804     MOV     A,byte0middle
0327 120000   F      805     call seebuf     
                     806             
032A 758006          807             MOV     P0, #06H
032D C2B2            808             CLR     P3.2
                     809     
032F 853780          810             MOV     P0, byte0low                            ;low byte of pm data address 0
0332 C2B6            811             CLR     P3.6
0334 D2B6            812             SETB    P3.6
0336 D2B2            813             SETB    P3.2            
0338 E537            814     MOV     A,byte0low
033A 120000   F      815     call seebuf
                     816     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;END;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                
                     817     
033D 7446            818                     MOV A, #'F'
033F 120000   F      819                     call TRANS_BYTE
0342 744C            820                     MOV A, #'L'
0344 120000   F      821                     call TRANS_BYTE
0347 744F            822                     MOV A, #'O'
0349 120000   F      823                     call TRANS_BYTE
034C 7441            824                     MOV A, #'A'
034E 120000   F      825                     call TRANS_BYTE
0351 7444            826                     MOV A, #'D'
0353 120000   F      827                     call TRANS_BYTE
                     828     
0356 020000   F      829             JMP label                  ;await for command, DO IT ALL OVER AGAIN
A51 MACRO ASSEMBLER  UP2DSPTEST1                                                          04/12/2006 14:30:29 PAGE    14

                     830                     
                     831     
                     832     ;*****************************************************
                     833     ; DOING FILE TRANSFER, LOADING INTO DSP CHIP
                     834     ;*****************************************************
                     835     ; R2 indicate PM/DM
                     836     ; 0xa, b stores current address being transferred
                     837     ; 0xc,d,e stores current data being transferred
                     838     ; 0x10,11,12,13 stores checksum value
                     839     ;
0359 446F776E        840     prompt3:        db 'Download ',0
035D 6C6F6164                
0361 2000                    
                     841     
0363                 842     FILE_XFR:
                     843     ;                mov dptr,#prompt3
                     844     ;                lcall outstr
                     845     
                             
                                              
                                              
                             
                     850     
0363 120000   F      851                     call RECEI_BYTE
0366 B41B2C          852                     CJNE    A,#1BH, FILE_ERR2       
0369 120000   F      853                     call RECEI_BYTE         
036C B46926          854                     CJNE    A,#69H, FILE_ERR2       ; i = x69
                     855     
                                             
                                             
                             
                             
                                             
                                             
                             
                                             
                                             
                                             
                                             
                             
                             
                             
                                             
                                             
                             
                             
036F                 874     FILE_new_seg:
                     875                     
036F 120000   F      876                     call RECEI_BYTE
0372 B40D20          877                     CJNE    A,#0DH, FILE_ERR2                ; carriage return = 0d0a but only 
                             see 0d
                     878                     ;KK can see it in scope so it has to take into account
0375 120000   F      879                     call RECEI_BYTE
0378 B40A1A          880                     CJNE    A,#0aH, FILE_ERR2                ; carriage return = 0d0a but only 
                             see 0d
                     881     
037B 120000   F      882                     call RECEI_BYTE
037E B44011          883                     CJNE    A,#40H, FILE_chk_end1            ; @
                     884     
0381 120000   F      885                     call RECEI_BYTE         
0384 B45004          886                     CJNE    A,#'P', FILE_DM
                     887     ;FILE_PM:
                     888                     
                                             
                                             
                             
A51 MACRO ASSEMBLER  UP2DSPTEST1                                                          04/12/2006 14:30:29 PAGE    15

0387 7A00            892                     MOV     R2, #0H         ; flag to be used when sending to dsp
                     893     
0389 8043            894                     SJMP FILE_SEG1          ;continue in common code segment 1
038B                 895     FILE_DM:
038B B44407          896                     CJNE    A,#'D', FILE_ERR2
                     897                     
                                             
                                             
                             
038E 7A40            901                     MOV     R2, #40H                ; flag to be used when sending to dsp
                     902     
0390 803C            903                     SJMP    FILE_SEG1
                     904                     
0392                 905     FILE_chk_end1:
0392 020000   F      906                     JMP     FILE_chk_end            ;KK
                     907     ;**************
0395                 908     FILE_ERR2:
0395 020000   F      909                     JMP FILE_ERR
                     910     
                     911     ;***********************************
                     912     ; detected the end of segment, now check checksum
0398                 913     FILE_end_seg:
0398 7468            914     MOV A, #'h'
039A 120000   F      915     call TRANS_BYTE
                     916             
039D 120000   F      917                     call RECEI_BYTE
03A0 B431F2          918                     CJNE    A,#'1', FILE_ERR2                                       

⌨️ 快捷键说明

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