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

📄 i2c.lis

📁 详细介绍M8两版间通讯
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0210 282E              mov R2,R24
 0212 3324              clr R3
 0214 8150              subi R24,1
 0216 80930000          sts L3,R24
 021A 80E0              ldi R24,<_cDataBuff
 021C 90E0              ldi R25,>_cDataBuff
 021E E22D              mov R30,R2
 0220 FF27              clr R31
 0222 E80F              add R30,R24
 0224 F91F              adc R31,R25
 0226 4083              std z+0,R20
 0228                   .dbline 144
 0228           ;                                       charData/=10;
 0228 1AE0              ldi R17,10
 022A 00910200          lds R16,_charData
 022E 00D0              rcall div8u
 0230 00930200          sts _charData,R16
 0234                   .dbline 145
 0234           ;                                       cDataBuff[charIndex]=charData;
 0234 80E0              ldi R24,<_cDataBuff
 0236 90E0              ldi R25,>_cDataBuff
 0238 E0910000          lds R30,L3
 023C FF27              clr R31
 023E E80F              add R30,R24
 0240 F91F              adc R31,R25
 0242 202E              mov R2,R16
 0244 2082              std z+0,R2
 0246                   .dbline 146
 0246           ;                                       charIndex+=4;//指向末尾空位
 0246 80910000          lds R24,L3
 024A 8C5F              subi R24,252    ; addi 4
 024C 80930000          sts L3,R24
 0250                   .dbline 147
 0250           ;                                }
 0250                   .dbline 148
 0250           ;                               break;
 0250                   .dbline 150
 0250           ;                        }
 0250           ;                }
 0250                   .dbline 151
 0250           ;               break;
 0250 79C0              rjmp L5
 0252           L15:
 0252                   .dbline 153
 0252           ;               case SR_STOP_RESTART://收到STOP信号或者RESTART
 0252           ;                {
 0252                   .dbline 154
 0252           ;                       MT_ACK;
 0252 85EC              ldi R24,197
 0254 86BF              out 0x36,R24
 0256                   .dbline 155
 0256           ;                       }
 0256                   .dbline 156
 0256           ;               break;
 0256 76C0              rjmp L5
 0258           L16:
 0258                   .dbline 158
 0258           ;               case ST_SLA_ACK://收到读信号,将(最后一个-NT_NACK、普通数据-MT_ACK)数据发送出去
 0258           ;                {
 0258                   .dbline 161
 0258           ;                       /*charTemp=rom_read((unsigned int)charAddr);
 0258           ;                       TWDR=charTemp;*/
 0258           ;                       TWDR=0xdd;//测试用,发送测试数据。MEGA8的EEPROM的读速度跟不上TWI
 0258 8DED              ldi R24,221
 025A 83B9              out 0x3,R24
 025C                   .dbline 162
 025C           ;                       MT_ACK;
 025C 85EC              ldi R24,197
 025E 86BF              out 0x36,R24
 0260                   .dbline 163
 0260           ;                       }
 0260                   .dbline 164
 0260           ;               break;
 0260 71C0              rjmp L5
 0262           L17:
 0262                   .dbline 166
 0262           ;               case ST_DATA_ACK://主机要求继续发送数据
 0262           ;                {
 0262                   .dbline 167
 0262           ;                       TWDR=cDataBuff[++charAddr];
 0262 80910100          lds R24,_charAddr
 0266 8F5F              subi R24,255    ; addi 1
 0268 282E              mov R2,R24
 026A 20920100          sts _charAddr,R2
 026E 80E0              ldi R24,<_cDataBuff
 0270 90E0              ldi R25,>_cDataBuff
 0272 E22D              mov R30,R2
 0274 FF27              clr R31
 0276 E80F              add R30,R24
 0278 F91F              adc R31,R25
 027A 2080              ldd R2,z+0
 027C 23B8              out 0x3,R2
 027E                   .dbline 168
 027E           ;                       MT_ACK;
 027E 85EC              ldi R24,197
 0280 86BF              out 0x36,R24
 0282                   .dbline 169
 0282           ;                       }
 0282                   .dbline 170
 0282           ;               break;
 0282 60C0              rjmp L5
 0284           L18:
 0284                   .dbline 172
 0284           ;               case ST_DATA_NOACK://数据发送完毕
 0284           ;                {
 0284                   .dbline 173
 0284           ;                       MT_ACK;
 0284 85EC              ldi R24,197
 0286 86BF              out 0x36,R24
 0288                   .dbline 174
 0288           ;                       }
 0288                   .dbline 175
 0288           ;               break;
 0288 5DC0              rjmp L5
 028A           L4:
 028A                   .dbline 177
 028A                   .dbline 178
 028A 60930200          sts _charData,R22
 028E                   .dbline 179
 028E 80910000          lds R24,L3
 0292 8D5F              subi R24,253    ; addi 3
 0294 80930000          sts L3,R24
 0298                   .dbline 180
 0298 8F71              andi R24,31
 029A 80930000          sts L3,R24
 029E                   .dbline 181
 029E 282E              mov R2,R24
 02A0 3324              clr R3
 02A2 8150              subi R24,1
 02A4 80930000          sts L3,R24
 02A8 80E0              ldi R24,<_cDataBuff
 02AA 90E0              ldi R25,>_cDataBuff
 02AC E22D              mov R30,R2
 02AE FF27              clr R31
 02B0 E80F              add R30,R24
 02B2 F91F              adc R31,R25
 02B4 8BE0              ldi R24,11
 02B6 8083              std z+0,R24
 02B8                   .dbline 182
 02B8 1AE0              ldi R17,10
 02BA 00910200          lds R16,_charData
 02BE 00D0              rcall mod8u
 02C0 402F              mov R20,R16
 02C2                   .dbline 183
 02C2 80910000          lds R24,L3
 02C6 8F71              andi R24,31
 02C8 80930000          sts L3,R24
 02CC                   .dbline 184
 02CC 282E              mov R2,R24
 02CE 3324              clr R3
 02D0 8150              subi R24,1
 02D2 80930000          sts L3,R24
 02D6 80E0              ldi R24,<_cDataBuff
 02D8 90E0              ldi R25,>_cDataBuff
 02DA E22D              mov R30,R2
 02DC FF27              clr R31
 02DE E80F              add R30,R24
 02E0 F91F              adc R31,R25
 02E2 4083              std z+0,R20
 02E4                   .dbline 185
 02E4 1AE0              ldi R17,10
 02E6 00910200          lds R16,_charData
 02EA 00D0              rcall div8u
 02EC 00930200          sts _charData,R16
 02F0                   .dbline 186
 02F0 1AE0              ldi R17,10
 02F2 00D0              rcall mod8u
 02F4 402F              mov R20,R16
 02F6                   .dbline 187
 02F6 80910000          lds R24,L3
 02FA 8F71              andi R24,31
 02FC 80930000          sts L3,R24
 0300                   .dbline 188
 0300 282E              mov R2,R24
 0302 3324              clr R3
 0304 8150              subi R24,1
 0306 80930000          sts L3,R24
 030A 80E0              ldi R24,<_cDataBuff
 030C 90E0              ldi R25,>_cDataBuff
 030E E22D              mov R30,R2
 0310 FF27              clr R31
 0312 E80F              add R30,R24
 0314 F91F              adc R31,R25
 0316 4083              std z+0,R20
 0318                   .dbline 189
 0318 1AE0              ldi R17,10
 031A 00910200          lds R16,_charData
 031E 00D0              rcall div8u
 0320 00930200          sts _charData,R16
 0324                   .dbline 190
 0324 80E0              ldi R24,<_cDataBuff
 0326 90E0              ldi R25,>_cDataBuff
 0328 E0910000          lds R30,L3
 032C FF27              clr R31
 032E E80F              add R30,R24
 0330 F91F              adc R31,R25
 0332 202E              mov R2,R16
 0334 2082              std z+0,R2
 0336                   .dbline 191
 0336 80910000          lds R24,L3
 033A 8C5F              subi R24,252    ; addi 4
 033C 80930000          sts L3,R24
 0340                   .dbline 192
 0340 85EC              ldi R24,197
 0342 86BF              out 0x36,R24
 0344                   .dbline 193
 0344                   .dbline 194
 0344           L5:
 0344                   .dbline -2
 0344           L2:
 0344 00D0              rcall pop_gset2
 0346 2990              ld R2,y+
 0348 2FBE              out 0x3f,R2
 034A F991              ld R31,y+
 034C E991              ld R30,y+
 034E 9991              ld R25,y+
 0350 8991              ld R24,y+
 0352 1991              ld R17,y+
 0354 0991              ld R16,y+
 0356 3990              ld R3,y+
 0358 2990              ld R2,y+
 035A                   .dbline 0 ; func end
 035A 1895              reti
 035C                   .dbsym r charTemp 20 c
 035C                   .dbsym r TWI_STATE 22 c
 035C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\Mega8程序\TCXO评估板\LedShow\I2C.c
 0000           _charState::
 0000                   .blkb 1
 0001                   .dbsym e charState _charState c
 0001           _charAddr::
 0001                   .blkb 1
 0002                   .dbsym e charAddr _charAddr c
 0002           _charData::
 0002                   .blkb 1
 0003                   .dbsym e charData _charData c

⌨️ 快捷键说明

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