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

📄 adcsingl.lst

📁 于ADuC812的智能无功补偿控制器的研制 一种眼科B型超声诊断议 SL11R单片机外部存储器扩展 单片机复位电路...支持键盘双击事件的C程序设计! 一些源程序 FrankLin C51 库函数的一
💻 LST
📖 第 1 页 / 共 2 页
字号:
                =1   151    ;____________________________________________________________________
                =1   152                                                                ; SENDVAL
                =1   153    
00B0            =1   154    SENDVAL:        ; converts the hex value of A into two ASCII chars,
                =1   155                    ; and then spits these two characters up the UART.
                =1   156                    ; does not change the value of A.
                =1   157    
00B0 C0E0       =1   158            PUSH    ACC
00B2 C4         =1   159            SWAP    A
00B3 1200C4     =1   160            CALL    HEX2ASCII
00B6 11A8       =1   161            CALL    SENDCHAR        ; send high nibble
00B8 D0E0       =1   162            POP     ACC
00BA C0E0       =1   163            PUSH    ACC
00BC 1200C4     =1   164            CALL    HEX2ASCII
00BF 11A8       =1   165            CALL    SENDCHAR        ; send low nibble
00C1 D0E0       =1   166            POP     ACC
                =1   167    
00C3 22         =1   168            RET
                =1   169    
                =1   170    ;____________________________________________________________________
                =1   171                                                              ; HEX2ASCII
                =1   172    
00C4            =1   173    HEX2ASCII:      ; converts A into the hex character representing the
                =1   174                    ; value of A's least significant nibble
ADCSINGL                                                                                                      PAGE 4

                =1   175    
00C4 540F       =1   176            ANL     A,#00Fh
00C6 B40A00     =1   177            CJNE    A,#00Ah,$+3
00C9 4002       =1   178            JC      IO0030
00CB 2407       =1   179            ADD     A,#007h
00CD 2430       =1   180    IO0030: ADD     A,#'0'
                =1   181    
00CF 22         =1   182            RET
                =1   183    
                =1   184    ;____________________________________________________________________
                =1   185                                                              ; ASCII2HEX
                =1   186    
00D0            =1   187    ASCII2HEX:      ; converts A from an ASCII digit ('0'-'9' or 'A'-'F')
                =1   188                    ; into the corresponding number (0-15).  returns C=1
                =1   189                    ; when input is other than an ASCII digit,
                =1   190                    ; indicating invalid output (returned as 255).
                =1   191    
00D0 C3         =1   192            CLR     C
00D1 9430       =1   193            SUBB    A,#'0'
00D3 B40A00     =1   194            CJNE    A,#10,$+3
00D6 401B       =1   195            JC      IO0050          ; if '0'<=char<='9', return OK
00D8 B41100     =1   196            CJNE    A,#17,$+3
00DB 4013       =1   197            JC      IO0040          ; if '9'<char<'A', return FAIL
00DD 9407       =1   198            SUBB    A,#7
00DF B41000     =1   199            CJNE    A,#10h,$+3
00E2 400F       =1   200            JC      IO0050          ; if 'A'<=char<='F', return OK
00E4 B42A00     =1   201            CJNE    A,#42,$+3
00E7 4007       =1   202            JC      IO0040          ; if 'F'<char<'a', return FAIL
00E9 9420       =1   203            SUBB    A,#20h
00EB B41000     =1   204            CJNE    A,#10h,$+3
00EE 4003       =1   205            JC      IO0050          ; if 'a'<=char<='f', return OK..
                =1   206    
00F0 C3         =1   207    IO0040: CLR     C               ; ..else return FAIL
00F1 74FF       =1   208            MOV     A,#0FFh
                =1   209    
00F3 B3         =1   210    IO0050: CPL     C
00F4 22         =1   211            RET
                =1   212    
                =1   213    ;____________________________________________________________________
                =1   214                                                                ; GETCHAR
                =1   215    
00F5            =1   216    GETCHAR:        ; waits for a single ASCII character to be received
                =1   217                    ; by the UART.  places this character into A.
                =1   218    
00F5 3098FD     =1   219            JNB     RI,$
00F8 E599       =1   220            MOV     A,SBUF
00FA C298       =1   221            CLR     RI
                =1   222    
00FC 22         =1   223            RET
                =1   224    
                =1   225    ;____________________________________________________________________
                =1   226                                                                 ; GETVAL
                =1   227    
00FD            =1   228    GETVAL:         ; waits for two ASCII hex digits to be received by
                =1   229                    ; the UART.  returns the hex value in A.
                =1   230    
00FD C0F0       =1   231            PUSH    B
00FF C000       =1   232            PUSH    0
ADCSINGL                                                                                                      PAGE 5

0101 C298       =1   233    IO0060: CLR     RI
0103 11F5       =1   234            CALL    GETCHAR         ; first nibble
0105 F500       =1   235            MOV     0,A             ; store received char
0107 11D0       =1   236            CALL    ASCII2HEX
0109 40F6       =1   237            JC      IO0060          ; if not '0' thru 'F', don't accept
010B C4         =1   238            SWAP    A               ; swap nibbles
010C F5F0       =1   239            MOV     B,A             ; store nibble in B
010E E500       =1   240            MOV     A,0             ; echo received char
0110 11A8       =1   241            CALL    SENDCHAR
0112 C298       =1   242    IO0070: CLR     RI
0114 11F5       =1   243            CALL    GETCHAR         ; second nibble
0116 F500       =1   244            MOV     0,A             ; store received char
0118 11D0       =1   245            CALL    ASCII2HEX
011A 40F6       =1   246            JC      IO0070          ; if not '0' thru 'F', don't accept
011C 45F0       =1   247            ORL     A,B             ; combine nibbles
011E F5F0       =1   248            MOV     B,A             ; store results in B
0120 E500       =1   249            MOV     A,0             ; echo received char
0122 11A8       =1   250            CALL    SENDCHAR
0124 E5F0       =1   251            MOV     A,B             ; final result
0126 D000       =1   252            POP     0
0128 D0F0       =1   253            POP     B
                =1   254    
012A 22         =1   255            RET
                =1   256    
                     257    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  
AGAIN. . . . . . . . . . . . . .  C ADDR  0067H  
ASCII2HEX. . . . . . . . . . . .  C ADDR  00D0H  
B. . . . . . . . . . . . . . . .  D ADDR  00F0H  PREDEFINED  
CHAN . . . . . . . . . . . . . .    NUMB  0000H  
DELAY. . . . . . . . . . . . . .  C ADDR  0084H  
DLY0 . . . . . . . . . . . . . .  C ADDR  0085H  
DLY1 . . . . . . . . . . . . . .  C ADDR  0087H  
EA . . . . . . . . . . . . . . .  B ADDR  00AFH  PREDEFINED  
EADC . . . . . . . . . . . . . .  B ADDR  00AEH  PREDEFINED  
GETCHAR. . . . . . . . . . . . .  C ADDR  00F5H  
GETVAL . . . . . . . . . . . . .  C ADDR  00FDH  NOT USED  
HEX2ASCII. . . . . . . . . . . .  C ADDR  00C4H  
IO0010 . . . . . . . . . . . . .  C ADDR  0097H  
IO0020 . . . . . . . . . . . . .  C ADDR  00A3H  
IO0030 . . . . . . . . . . . . .  C ADDR  00CDH  
IO0040 . . . . . . . . . . . . .  C ADDR  00F0H  
IO0050 . . . . . . . . . . . . .  C ADDR  00F3H  
IO0060 . . . . . . . . . . . . .  C ADDR  0101H  
IO0070 . . . . . . . . . . . . .  C ADDR  0112H  
LED. . . . . . . . . . . . . . .    NUMB  00B3H  
MAIN . . . . . . . . . . . . . .  C ADDR  004BH  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
RCAP2H . . . . . . . . . . . . .  D ADDR  00CBH  PREDEFINED  
RCAP2L . . . . . . . . . . . . .  D ADDR  00CAH  PREDEFINED  
RI . . . . . . . . . . . . . . .  B ADDR  0098H  PREDEFINED  
SBUF . . . . . . . . . . . . . .  D ADDR  0099H  PREDEFINED  
SCON . . . . . . . . . . . . . .  D ADDR  0098H  PREDEFINED  
SCONV. . . . . . . . . . . . . .  B ADDR  00DCH  PREDEFINED  
SENDCHAR . . . . . . . . . . . .  C ADDR  00A8H  
SENDSTRING . . . . . . . . . . .  C ADDR  0090H  NOT USED  
SENDVAL. . . . . . . . . . . . .  C ADDR  00B0H  
T2CON. . . . . . . . . . . . . .  D ADDR  00C8H  PREDEFINED  
TH2. . . . . . . . . . . . . . .  D ADDR  00CDH  PREDEFINED  
TI . . . . . . . . . . . . . . .  B ADDR  0099H  PREDEFINED  
TL2. . . . . . . . . . . . . . .  D ADDR  00CCH  PREDEFINED  

⌨️ 快捷键说明

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