📄 ex24.lst
字号:
1 ; 实验二十四 I2C 接口实验(AT24C01)
2
0096 3 SCL EQU P1.6
0097 4 SDA EQU P1.7
5
0000 6 ORG 0000H
0000 7 MAIN:
0000 758160 8 MOV SP,#60H
0003 7590FF 9 MOV P1,#0FFH
0006 C2D4 10 CLR RS1
0008 A293 11 MOV C,P1.3
000A 5030 12 JNC READ
000C 753806 13 MOV 38H,#6
000F 753908 14 MOV 39H,#8
0012 753A01 15 MOV 3AH,#1
0015 753B02 16 MOV 3BH,#2
0018 753C01 17 MOV 3CH,#1
001B 753D04 18 MOV 3DH,#4
001E 7838 19 MOV R0,#38H
0020 754120 20 MOV 41H,#20H ; CHIP ADDRESS TO BE WRITED
0023 7F06 21 MOV R7,#6
0025 7540A0 22 MOV 40H,#0A0H ; WRITE CHIP (DEVICE) COMMAND
0028 23 WR1:
0028 E6 24 MOV A,@R0 ; DATA TO BE WRITED TO BE SENT A
0029 F542 25 MOV 42H,A
002B 119B 26 ACALL WRITEEP
002D 08 27 INC R0
002E 0541 28 INC 41H
0030 DFF6 29 DJNZ R7,WR1
0032 753001 30 MOV 30H,#1 ; AFTER WRITE,DISPLAY 01
0035 753100 31 MOV 31H,#0
0038 1160 32 ACALL DSPLY
003A 80FE 33 HERE1: SJMP HERE1
34
003C 7F06 35 READ: MOV R7,#6
003E 7540A0 36 MOV 40H,#0A0H
0041 754120 37 MOV 41H,#20H
0044 7838 38 MOV R0,#38H
0046 39 RD1:
0046 11E1 40 ACALL READEP
0048 F6 41 MOV @R0,A
0049 08 42 INC R0
004A 0541 43 INC 41H
004C DFF8 44 DJNZ R7,RD1
004E 7F06 45 MOV R7,#6
0050 7838 46 MOV R0,#38H
0052 753100 47 MOV 31H,#00H
0055 8630 48 RD2: MOV 30H,@R0
0057 1160 49 ACALL DSPLY
0059 118C 50 ACALL DLT ; DELAY 2 S
005B 08 51 INC R0
005C DFF7 52 DJNZ R7,RD2
005E 80FE 53 HERE2: SJMP HERE2
54
0060 8833 55 DSPLY: MOV 33H,R0
0062 8F34 56 MOV 34H,R7
0064 C299 57 CLR TI
0066 90007F 58 MOV DPTR,#TAB
0069 7830 59 MOV R0,#30H
006B 7F02 60 MOV R7,#2
006D 61 DP0:
006D E6 62 MOV A,@R0
006E 93 63 MOVC A,@A+DPTR
006F F4 64 CPL A
0070 F599 65 MOV SBUF,A
0072 66 DP1:
0072 3099FD 67 JNB TI,DP1
0075 C299 68 CLR TI
0077 08 69 INC R0
0078 DFF3 70 DJNZ R7,DP0
007A A833 71 MOV R0,33H
007C AF34 72 MOV R7,34H
007E 22 73 RET
74
007F 3F065B4F 75 TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
0083 666D7D07
0087 7F6F
0089 FF0073 76 DB 0FFH,00H,73H ; 全亮;全灭;P
77
008C 753514 78 DLT: MOV 35H,#20
008F 7E64 79 DLT0: MOV R6,#100
0091 7DFA 80 DLT1: MOV R5,#250
0093 DDFE 81 DLT2: DJNZ R5,DLT2
0095 DEFA 82 DJNZ R6,DLT1
0097 D535F5 83 DJNZ 35H,DLT0
009A 22 84 RET
85
86 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87 ; NAME: WRITEEP
88 ; INPUT PARAMETER:
89 ; 40H DEVICE ADDRESS COMMAND
90 ; 41H ADDRESS OF LOCATION TO BE WRITED
91 ; 42H NUMBER TO BE WRITE
92 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
009B D2D4 93 WRITEEP:SETB RS1 ;SELECT WORK AREA ONE
009D D297 94 SETB SDA ; START
009F D296 95 SETB SCL
00A1 11CA 96 ACALL DLY20US
00A3 C297 97 CLR SDA
00A5 7840 98 MOV R0,#40H
00A7 7F03 99 MOV R7,#3
00A9 100 WREP1:
00A9 E6 101 MOV A,@R0
00AA 11CF 102 ACALL WBYTE
00AC D296 103 SETB SCL
104 ; ACALL DLY20US
00AE A297 105 WACK: MOV C,SDA
00B0 40FC 106 JC WACK
00B2 C296 107 CLR SCL
00B4 08 108 INC R0
00B5 DFF2 109 DJNZ R7,WREP1
00B7 C297 110 CLR SDA
00B9 D296 111 SETB SCL ;STOP
00BB 11CA 112 ACALL DLY20US
00BD D297 113 SETB SDA
114
00BF 7F28 115 D20MS: MOV R7,#40
00C1 7EFA 116 D20MS0: MOV R6,#250
00C3 DEFE 117 D20MS1: DJNZ R6,D20MS1
00C5 DFFA 118 DJNZ R7,D20MS0
00C7 C2D4 119 CLR RS1
00C9 22 120 RET
121
00CA 122 DLY20US:
00CA 7B14 123 MOV R3,#20
00CC DBFE 124 W20US: DJNZ R3,W20US
00CE 22 125 RET
126
127 ;;;;;;;;;;;;;;;;;;;;
128 ; NAME: WBYTE
129 ; INPUT PARAMETER: A
130 ;;;;;;;;;;;;;;;;;;;;;;;
00CF 7E08 131 WBYTE: MOV R6,#8
00D1 C296 132 WB1: CLR SCL
00D3 33 133 RLC A
00D4 9297 134 MOV SDA,C
00D6 11CA 135 ACALL DLY20US
00D8 D296 136 SETB SCL
00DA 11CA 137 ACALL DLY20US
00DC DEF3 138 DJNZ R6,WB1
00DE C296 139 CLR SCL
00E0 22 140 RET
141
00E1 142 READEP:
00E1 D2D4 143 SETB RS1 ;SELECT WORK AREA ONE
00E3 D297 144 SETB SDA ; START
00E5 D296 145 SETB SCL
00E7 11CA 146 ACALL DLY20US
00E9 C297 147 CLR SDA
00EB 7840 148 MOV R0,#40H
00ED 7F02 149 MOV R7,#2
00EF 150 RDEP1:
00EF E6 151 MOV A,@R0
00F0 11CF 152 ACALL WBYTE
00F2 D296 153 SETB SCL
00F4 00 154 NOP
00F5 00 155 NOP
00F6 A297 156 RDACK: MOV C,SDA
00F8 40FC 157 JC RDACK
00FA C296 158 CLR SCL
00FC 08 159 INC R0
00FD DFF0 160 DJNZ R7,RDEP1
00FF 00 161 NOP
0100 D297 162 SETB SDA
0102 D296 163 SETB SCL
0104 00 164 NOP
0105 00 165 NOP
0106 C297 166 CLR SDA
0108 74A1 167 MOV A,#0A1H
010A 11CF 168 ACALL WBYTE
010C D296 169 SETB SCL
010E 00 170 NOP
010F 00 171 NOP
0110 A297 172 RDACK1: MOV C,SDA
0112 40FC 173 JC RDACK1
0114 C296 174 CLR SCL
0116 7F08 175 MOV R7,#8
0118 176 RDBIT:
0118 D296 177 SETB SCL
011A 11CA 178 ACALL DLY20US
011C A297 179 MOV C,SDA
011E C296 180 CLR SCL
0120 33 181 RLC A
0121 11CA 182 ACALL DLY20US
0123 DFF3 183 DJNZ R7,RDBIT
0125 D296 184 SETB SCL
0127 00 185 NOP
0128 00 186 NOP
0129 A297 187 RDACK2: MOV C,SDA
012B 50FC 188 JNC RDACK2
012D C296 189 CLR SCL
012F C297 190 CLR SDA
0131 D296 191 SETB SCL ;STOP
0133 00 192 NOP
0134 00 193 NOP
0135 D297 194 SETB SDA
0137 C2D4 195 CLR RS1
0139 22 196 RET
197
198 END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -