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

📄 i2cslave.lst

📁 ADUC814单片机的例程,包括单片机的所有模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
I2CSLAVE                                                                                                      PAGE 3

0090 D201            117          SETB    FIRST          ; re-initialise flags
0092 C200            118          CLR     GO
0094 20E9F6          119          JB      I2CTX,WAITFORDATA
                     120                                 ; if the slave has just transmitted then
                     121                                 ; wait to receive a byte 
                     122                                 ; if the slave has just received then
                     123                                 ; send input up the UART
                     124            
0097                 125    SENDUART:
0097 B2B4            126          CPL     LED            ; LED changes each time one byte has been 
                     127                                 ; received and another transmitted
                     128    
0099 E531            129          MOV     A,INPUT        ; send value received out the UART
009B 1200C6          130          CALL    SENDVAL
009E 740A            131          MOV     A,#10
00A0 1200B2          132          CALL    SENDCHAR       ; send LF + CR
00A3 740D            133          MOV     A,#13
00A5 1200B2          134          CALL    SENDCHAR
                     135    
00A8 3098E2          136          JNB     RI, WAITFORDATA      ; repeat (unless UART data received)
                     137    
                     138    ; WHEN UART DATA RECEIVED, MOVE DATA TO I2C OUTPUT...
                     139    
00AB 859932          140          MOV     OUTPUT, SBUF    ; update OUTPUT byte to new value
00AE C298            141          CLR     RI              ; must clear RI
00B0 80DB            142          JMP     WAITFORDATA     ; back to main loop
                     143    
                     144    
                     145    ;======================================================================
                     146    ;                             SUBROUTINES
                     147    ;======================================================================
                     148    
                     149    ;____________________________________________________________________
                     150                                                               ; SENDCHAR
                     151    ; sends ASCII value contained in A to UART
                     152    
00B2                 153    SENDCHAR: 
00B2 3099FD          154            JNB     TI,$            ; wait 'til present char gone
00B5 C299            155            CLR     TI              ; must clear TI
00B7 F599            156            MOV     SBUF,A
00B9 22              157            RET
                     158    ;____________________________________________________________________
                     159                                                              ; HEX2ASCII
                     160    ; converts A into the hex character representing the value of A's 
                     161    ; least significant nibble
                     162    
00BA                 163    HEX2ASCII:      
00BA 540F            164            ANL     A,#00Fh
00BC B40A00          165            CJNE    A,#00Ah,$+3
00BF 4002            166            JC      IO0030
00C1 2407            167            ADD     A,#007h
00C3 2430            168    IO0030: ADD     A,#'0'
00C5 22              169            RET
                     170    ;____________________________________________________________________
                     171                                                                ; SENDVAL
                     172    ; converts the hex value of A into two ASCII chars, and then spits 
                     173    ; these two characters up the UART. does not change the value of A.
                     174    
I2CSLAVE                                                                                                      PAGE 4

00C6                 175    SENDVAL: 
00C6 C0E0            176            PUSH    ACC
00C8 C4              177            SWAP    A
00C9 11BA            178            CALL    HEX2ASCII
00CB 11B2            179            CALL    SENDCHAR        ; send high nibble
00CD D0E0            180            POP     ACC
00CF C0E0            181            PUSH    ACC
00D1 11BA            182            CALL    HEX2ASCII
00D3 11B2            183            CALL    SENDCHAR        ; send low nibble
00D5 D0E0            184            POP     ACC
00D7 22              185            RET
                     186    ;____________________________________________________________________
                     187    
                     188    END

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
I2CSLAVE                                                                                                      PAGE 5

ACC. . . . . . . . . . . . . . .  D ADDR  00E0H  PREDEFINED  
BYTECNT. . . . . . . . . . . . .  D ADDR  0030H  NOT USED  
CFG814 . . . . . . . . . . . . .  D ADDR  009CH  PREDEFINED  
EA . . . . . . . . . . . . . . .  B ADDR  00AFH  PREDEFINED  
ENDINT1. . . . . . . . . . . . .  C ADDR  0051H  
ENDINT2. . . . . . . . . . . . .  C ADDR  0053H  
EX0. . . . . . . . . . . . . . .  B ADDR  00A8H  PREDEFINED  
FIRST. . . . . . . . . . . . . .  B ADDR  0001H  
GO . . . . . . . . . . . . . . .  B ADDR  0000H  
HEX2ASCII. . . . . . . . . . . .  C ADDR  00BAH  
I2CADD . . . . . . . . . . . . .  D ADDR  009BH  PREDEFINED  
I2CCON . . . . . . . . . . . . .  D ADDR  00E8H  PREDEFINED  
I2CDAT . . . . . . . . . . . . .  D ADDR  009AH  PREDEFINED  
I2CI . . . . . . . . . . . . . .  B ADDR  00E8H  PREDEFINED  
I2CTX. . . . . . . . . . . . . .  B ADDR  00E9H  PREDEFINED  
IEIP2. . . . . . . . . . . . . .  D ADDR  00A9H  PREDEFINED  
INPUT. . . . . . . . . . . . . .  D ADDR  0031H  
IO0030 . . . . . . . . . . . . .  C ADDR  00C3H  
IT0. . . . . . . . . . . . . . .  B ADDR  0088H  PREDEFINED  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  
MAIN . . . . . . . . . . . . . .  C ADDR  0060H  
OUTPUT . . . . . . . . . . . . .  D ADDR  0032H  
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  
SENDCHAR . . . . . . . . . . . .  C ADDR  00B2H  
SENDUART . . . . . . . . . . . .  C ADDR  0097H  NOT USED  
SENDVAL. . . . . . . . . . . . .  C ADDR  00C6H  
SLAVE_RECEIVER . . . . . . . . .  C ADDR  003EH  NOT USED  
SLAVE_TRANSMITTER. . . . . . . .  C ADDR  0049H  
T2CON. . . . . . . . . . . . . .  D ADDR  00C8H  PREDEFINED  
TH2. . . . . . . . . . . . . . .  D ADDR  00CDH  PREDEFINED  
TI . . . . . . . . . . . . . . .  B ADDR  0099H  PREDEFINED  
TL2. . . . . . . . . . . . . . .  D ADDR  00CCH  PREDEFINED  
WAITFORDATA. . . . . . . . . . .  C ADDR  008DH  

⌨️ 快捷键说明

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