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

📄 832mstr.lst

📁 aduc842原程序代码 ad公司芯片应用笔记
💻 LST
📖 第 1 页 / 共 2 页
字号:
00A3 E4         =1   183            CLR     A
00A4 F5F0       =1   184            MOV     B,A
00A6 E5F0       =1   185    IO0010: MOV     A,B
00A8 05F0       =1   186            INC     B
00AA 93         =1   187            MOVC    A,@A+DPTR
00AB 6005       =1   188            JZ      IO0020
00AD 1200B7     =1   189            CALL    SENDCHAR
00B0 80F4       =1   190            JMP     IO0010
00B2 D0F0       =1   191    IO0020: POP     B
00B4 D0E0       =1   192            POP     ACC
                =1   193    
00B6 22         =1   194            RET
                =1   195    
                =1   196    ;____________________________________________________________________
                =1   197                                                               ; SENDCHAR
                =1   198    
00B7            =1   199    SENDCHAR:       ; sends ASCII value contained in A to UART
                =1   200    
00B7 3099FD     =1   201            JNB     TI,$            ; wait til present char gone
00BA C299       =1   202            CLR     TI              ; must clear TI
00BC F599       =1   203            MOV     SBUF,A
                =1   204    
00BE 22         =1   205            RET
                =1   206    
                =1   207    ;____________________________________________________________________
                =1   208                                                                ; SENDVAL
                =1   209    
00BF            =1   210    SENDVAL:        ; converts the hex value of A into two ASCII chars,
                =1   211                    ; and then spits these two characters up the UART.
                =1   212                    ; does not change the value of A.
                =1   213    
00BF C0E0       =1   214            PUSH    ACC
00C1 C4         =1   215            SWAP    A
00C2 1200D3     =1   216            CALL    HEX2ASCII
00C5 11B7       =1   217            CALL    SENDCHAR        ; send high nibble
00C7 D0E0       =1   218            POP     ACC
00C9 C0E0       =1   219            PUSH    ACC
00CB 1200D3     =1   220            CALL    HEX2ASCII
00CE 11B7       =1   221            CALL    SENDCHAR        ; send low nibble
00D0 D0E0       =1   222            POP     ACC
                =1   223    
00D2 22         =1   224            RET
                =1   225    
                =1   226    ;____________________________________________________________________
                =1   227                                                              ; HEX2ASCII
                =1   228    
00D3            =1   229    HEX2ASCII:      ; converts A into the hex character representing the
                =1   230                    ; value of A's least significant nibble
                =1   231    
00D3 540F       =1   232            ANL     A,#00Fh
832MSTR                                                                                                       PAGE 5

00D5 B40A00     =1   233            CJNE    A,#00Ah,$+3
00D8 4002       =1   234            JC      IO0030
00DA 2407       =1   235            ADD     A,#007h
00DC 2430       =1   236    IO0030: ADD     A,#'0'
                =1   237    
00DE 22         =1   238            RET
                =1   239    
                =1   240    ;____________________________________________________________________
                =1   241                                                              ; ASCII2HEX
                =1   242    
00DF            =1   243    ASCII2HEX:      ; converts A from an ASCII digit ('0'-'9' or 'A'-'F')
                =1   244                    ; into the corresponding number (0-15).  returns C=1
                =1   245                    ; when input is other than an ASCII digit,
                =1   246                    ; indicating invalid output (returned as 255).
                =1   247    
00DF C3         =1   248            CLR     C
00E0 9430       =1   249            SUBB    A,#'0'
00E2 B40A00     =1   250            CJNE    A,#10,$+3
00E5 401B       =1   251            JC      IO0050          ; if '0'<=char<='9', return OK
00E7 B41100     =1   252            CJNE    A,#17,$+3
00EA 4013       =1   253            JC      IO0040          ; if '9'<char<'A', return FAIL
00EC 9407       =1   254            SUBB    A,#7
00EE B41000     =1   255            CJNE    A,#10h,$+3
00F1 400F       =1   256            JC      IO0050          ; if 'A'<=char<='F', return OK
00F3 B42A00     =1   257            CJNE    A,#42,$+3
00F6 4007       =1   258            JC      IO0040          ; if 'F'<char<'a', return FAIL
00F8 9420       =1   259            SUBB    A,#20h
00FA B41000     =1   260            CJNE    A,#10h,$+3
00FD 4003       =1   261            JC      IO0050          ; if 'a'<=char<='f', return OK..
                =1   262    
00FF C3         =1   263    IO0040: CLR     C               ; ..else return FAIL
0100 74FF       =1   264            MOV     A,#0FFh
                =1   265    
0102 B3         =1   266    IO0050: CPL     C
0103 22         =1   267            RET
                =1   268    
                =1   269    ;____________________________________________________________________
                =1   270                                                                ; GETCHAR
                =1   271    
0104            =1   272    GETCHAR:        ; waits for a single ASCII character to be received
                =1   273                    ; by the UART.  places this character into A.
                =1   274    
0104 3098FD     =1   275            JNB     RI,$
0107 E599       =1   276            MOV     A,SBUF
0109 C298       =1   277            CLR     RI
                =1   278    
010B 22         =1   279            RET
                =1   280    
                =1   281    ;____________________________________________________________________
                =1   282                                                                 ; GETVAL
                =1   283    
010C            =1   284    GETVAL:         ; waits for two ASCII hex digits to be received by
                =1   285                    ; the UART.  returns the hex value in A.
                =1   286    
010C C0F0       =1   287            PUSH    B
010E C000       =1   288            PUSH    0
0110 C298       =1   289    IO0060: CLR     RI
0112 3104       =1   290            CALL    GETCHAR         ; first nibble
832MSTR                                                                                                       PAGE 6

0114 F500       =1   291            MOV     0,A             ; store received char
0116 11DF       =1   292            CALL    ASCII2HEX
0118 40F6       =1   293            JC      IO0060          ; if not '0' thru 'F', don't accept
011A C4         =1   294            SWAP    A               ; swap nibbles
011B F5F0       =1   295            MOV     B,A             ; store nibble in B
011D E500       =1   296            MOV     A,0             ; echo received char
011F 11B7       =1   297            CALL    SENDCHAR
0121 C298       =1   298    IO0070: CLR     RI
0123 3104       =1   299            CALL    GETCHAR         ; second nibble
0125 F500       =1   300            MOV     0,A             ; store received char
0127 11DF       =1   301            CALL    ASCII2HEX
0129 40F6       =1   302            JC      IO0070          ; if not '0' thru 'F', don't accept
012B 45F0       =1   303            ORL     A,B             ; combine nibbles
012D F5F0       =1   304            MOV     B,A             ; store results in B
012F E500       =1   305            MOV     A,0             ; echo received char
0131 11B7       =1   306            CALL    SENDCHAR
0133 E5F0       =1   307            MOV     A,B             ; final result
0135 D000       =1   308            POP     0
0137 D0F0       =1   309            POP     B
                =1   310    
0139 22         =1   311            RET
                =1   312    
                     313    
                     314    ;____________________________________________________________________
                     315                                                       ; TEXT DATA TABLES
                     316    
013A 0A0D00          317    SEPERATOR:      DB 10,13,0
                     318    
                     319    ;____________________________________________________________________
                     320    
                     321    END
                     322    

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
832MSTR                                                                                                       PAGE 7

ACC. . . . . . . . . . . . . . .  D ADDR  00E0H  PREDEFINED  
ASCII2HEX. . . . . . . . . . . .  C ADDR  00DFH  
B. . . . . . . . . . . . . . . .  D ADDR  00F0H  PREDEFINED  
DELAY. . . . . . . . . . . . . .  C ADDR  008BH  
DLY1 . . . . . . . . . . . . . .  C ADDR  0091H  
EA . . . . . . . . . . . . . . .  B ADDR  00AFH  PREDEFINED  
EX0. . . . . . . . . . . . . . .  B ADDR  00A8H  PREDEFINED  
GETCHAR. . . . . . . . . . . . .  C ADDR  0104H  
GETVAL . . . . . . . . . . . . .  C ADDR  010CH  NOT USED  
HEX2ASCII. . . . . . . . . . . .  C ADDR  00D3H  
IEIP2. . . . . . . . . . . . . .  D ADDR  00A9H  PREDEFINED  
INPUT. . . . . . . . . . . . . .  D ADDR  0060H  
IO0010 . . . . . . . . . . . . .  C ADDR  00A6H  
IO0020 . . . . . . . . . . . . .  C ADDR  00B2H  
IO0030 . . . . . . . . . . . . .  C ADDR  00DCH  
IO0040 . . . . . . . . . . . . .  C ADDR  00FFH  
IO0050 . . . . . . . . . . . . .  C ADDR  0102H  
IO0060 . . . . . . . . . . . . .  C ADDR  0110H  
IO0070 . . . . . . . . . . . . .  C ADDR  0121H  
IT0. . . . . . . . . . . . . . .  B ADDR  0088H  PREDEFINED  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  
LOOP . . . . . . . . . . . . . .  C ADDR  0066H  
MAIN . . . . . . . . . . . . . .  C ADDR  004BH  
OUTPUT . . . . . . . . . . . . .  D ADDR  0061H  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
RI . . . . . . . . . . . . . . .  B ADDR  0098H  PREDEFINED  
SBUF . . . . . . . . . . . . . .  D ADDR  0099H  PREDEFINED  
SCON . . . . . . . . . . . . . .  D ADDR  0098H  PREDEFINED  
SENDCHAR . . . . . . . . . . . .  C ADDR  00B7H  
SENDSPI. . . . . . . . . . . . .  C ADDR  0085H  
SENDSTRING . . . . . . . . . . .  C ADDR  009FH  
SENDVAL. . . . . . . . . . . . .  C ADDR  00BFH  
SEPERATOR. . . . . . . . . . . .  C ADDR  013AH  
SP . . . . . . . . . . . . . . .  D ADDR  0081H  PREDEFINED  
SPICON . . . . . . . . . . . . .  D ADDR  00F8H  PREDEFINED  
SPIDAT . . . . . . . . . . . . .  D ADDR  00F7H  PREDEFINED  
SS . . . . . . . . . . . . . . .    NUMB  00B5H  
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 + -