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

📄 adcsingl.lst

📁 aduc842原程序代码 ad公司芯片应用笔记
💻 LST
📖 第 1 页 / 共 2 页
字号:
                =1   145    
009E            =1   146    SENDVAL:        ; converts the hex value of A into two ASCII chars,
                =1   147                    ; and then spits these two characters up the UART.
                =1   148                    ; does not change the value of A.
                =1   149    
009E C0E0       =1   150            PUSH    ACC
00A0 C4         =1   151            SWAP    A
00A1 1200B2     =1   152            CALL    HEX2ASCII
00A4 1196       =1   153            CALL    SENDCHAR        ; send high nibble
00A6 D0E0       =1   154            POP     ACC
00A8 C0E0       =1   155            PUSH    ACC
00AA 1200B2     =1   156            CALL    HEX2ASCII
00AD 1196       =1   157            CALL    SENDCHAR        ; send low nibble
00AF D0E0       =1   158            POP     ACC
                =1   159    
00B1 22         =1   160            RET
                =1   161    
                =1   162    ;____________________________________________________________________
                =1   163                                                              ; HEX2ASCII
                =1   164    
00B2            =1   165    HEX2ASCII:      ; converts A into the hex character representing the
                =1   166                    ; value of A's least significant nibble
                =1   167    
00B2 540F       =1   168            ANL     A,#00Fh
00B4 B40A00     =1   169            CJNE    A,#00Ah,$+3
00B7 4002       =1   170            JC      IO0030
00B9 2407       =1   171            ADD     A,#007h
00BB 2430       =1   172    IO0030: ADD     A,#'0'
                =1   173    
00BD 22         =1   174            RET
ADCSINGL                                                                                                      PAGE 4

                =1   175    
                =1   176    ;____________________________________________________________________
                =1   177                                                              ; ASCII2HEX
                =1   178    
00BE            =1   179    ASCII2HEX:      ; converts A from an ASCII digit ('0'-'9' or 'A'-'F')
                =1   180                    ; into the corresponding number (0-15).  returns C=1
                =1   181                    ; when input is other than an ASCII digit,
                =1   182                    ; indicating invalid output (returned as 255).
                =1   183    
00BE C3         =1   184            CLR     C
00BF 9430       =1   185            SUBB    A,#'0'
00C1 B40A00     =1   186            CJNE    A,#10,$+3
00C4 401B       =1   187            JC      IO0050          ; if '0'<=char<='9', return OK
00C6 B41100     =1   188            CJNE    A,#17,$+3
00C9 4013       =1   189            JC      IO0040          ; if '9'<char<'A', return FAIL
00CB 9407       =1   190            SUBB    A,#7
00CD B41000     =1   191            CJNE    A,#10h,$+3
00D0 400F       =1   192            JC      IO0050          ; if 'A'<=char<='F', return OK
00D2 B42A00     =1   193            CJNE    A,#42,$+3
00D5 4007       =1   194            JC      IO0040          ; if 'F'<char<'a', return FAIL
00D7 9420       =1   195            SUBB    A,#20h
00D9 B41000     =1   196            CJNE    A,#10h,$+3
00DC 4003       =1   197            JC      IO0050          ; if 'a'<=char<='f', return OK..
                =1   198    
00DE C3         =1   199    IO0040: CLR     C               ; ..else return FAIL
00DF 74FF       =1   200            MOV     A,#0FFh
                =1   201    
00E1 B3         =1   202    IO0050: CPL     C
00E2 22         =1   203            RET
                =1   204    
                =1   205    ;____________________________________________________________________
                =1   206                                                                ; GETCHAR
                =1   207    
00E3            =1   208    GETCHAR:        ; waits for a single ASCII character to be received
                =1   209                    ; by the UART.  places this character into A.
                =1   210    
00E3 3098FD     =1   211            JNB     RI,$
00E6 E599       =1   212            MOV     A,SBUF
00E8 C298       =1   213            CLR     RI
                =1   214    
00EA 22         =1   215            RET
                =1   216    
                =1   217    ;____________________________________________________________________
                =1   218                                                                 ; GETVAL
                =1   219    
00EB            =1   220    GETVAL:         ; waits for two ASCII hex digits to be received by
                =1   221                    ; the UART.  returns the hex value in A.
                =1   222    
00EB C0F0       =1   223            PUSH    B
00ED C000       =1   224            PUSH    0
00EF C298       =1   225    IO0060: CLR     RI
00F1 11E3       =1   226            CALL    GETCHAR         ; first nibble
00F3 F500       =1   227            MOV     0,A             ; store received char
00F5 11BE       =1   228            CALL    ASCII2HEX
00F7 40F6       =1   229            JC      IO0060          ; if not '0' thru 'F', don't accept
00F9 C4         =1   230            SWAP    A               ; swap nibbles
00FA F5F0       =1   231            MOV     B,A             ; store nibble in B
00FC E500       =1   232            MOV     A,0             ; echo received char
ADCSINGL                                                                                                      PAGE 5

00FE 1196       =1   233            CALL    SENDCHAR
0100 C298       =1   234    IO0070: CLR     RI
0102 11E3       =1   235            CALL    GETCHAR         ; second nibble
0104 F500       =1   236            MOV     0,A             ; store received char
0106 11BE       =1   237            CALL    ASCII2HEX
0108 40F6       =1   238            JC      IO0070          ; if not '0' thru 'F', don't accept
010A 45F0       =1   239            ORL     A,B             ; combine nibbles
010C F5F0       =1   240            MOV     B,A             ; store results in B
010E E500       =1   241            MOV     A,0             ; echo received char
0110 1196       =1   242            CALL    SENDCHAR
0112 E5F0       =1   243            MOV     A,B             ; final result
0114 D000       =1   244            POP     0
0116 D0F0       =1   245            POP     B
                =1   246    
0118 22         =1   247            RET
                =1   248    
                     249    END

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

ACC. . . . . . . . . . . . . . .  D ADDR  00E0H  PREDEFINED  
ADCCON1. . . . . . . . . . . . .  D ADDR  00EFH  PREDEFINED  
ADCCON2. . . . . . . . . . . . .  D ADDR  00D8H  PREDEFINED  
ADCDATAH . . . . . . . . . . . .  D ADDR  00DAH  PREDEFINED  
ADCDATAL . . . . . . . . . . . .  D ADDR  00D9H  PREDEFINED  
ADCI . . . . . . . . . . . . . .  B ADDR  00DFH  PREDEFINED  
AGAIN. . . . . . . . . . . . . .  C ADDR  005AH  
ASCII2HEX. . . . . . . . . . . .  C ADDR  00BEH  
B. . . . . . . . . . . . . . . .  D ADDR  00F0H  PREDEFINED  
CHAN . . . . . . . . . . . . . .    NUMB  0000H  
DELAY. . . . . . . . . . . . . .  C ADDR  0072H  
DLY0 . . . . . . . . . . . . . .  C ADDR  0073H  
DLY1 . . . . . . . . . . . . . .  C ADDR  0075H  
GETCHAR. . . . . . . . . . . . .  C ADDR  00E3H  
GETVAL . . . . . . . . . . . . .  C ADDR  00EBH  NOT USED  
HEX2ASCII. . . . . . . . . . . .  C ADDR  00B2H  
IO0010 . . . . . . . . . . . . .  C ADDR  0085H  
IO0020 . . . . . . . . . . . . .  C ADDR  0091H  
IO0030 . . . . . . . . . . . . .  C ADDR  00BBH  
IO0040 . . . . . . . . . . . . .  C ADDR  00DEH  
IO0050 . . . . . . . . . . . . .  C ADDR  00E1H  
IO0060 . . . . . . . . . . . . .  C ADDR  00EFH  
IO0070 . . . . . . . . . . . . .  C ADDR  0100H  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  
MAIN . . . . . . . . . . . . . .  C ADDR  004BH  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
RI . . . . . . . . . . . . . . .  B ADDR  0098H  PREDEFINED  
SBUF . . . . . . . . . . . . . .  D ADDR  0099H  PREDEFINED  
SCON . . . . . . . . . . . . . .  D ADDR  0098H  PREDEFINED  
SCONV. . . . . . . . . . . . . .  B ADDR  00DCH  PREDEFINED  
SENDCHAR . . . . . . . . . . . .  C ADDR  0096H  
SENDSTRING . . . . . . . . . . .  C ADDR  007EH  NOT USED  
SENDVAL. . . . . . . . . . . . .  C ADDR  009EH  
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 + -