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

📄 twi.lis

📁 一个关于AVR单片机的例程
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A0 5E07              cpc R21,R30
 00A2 09F4              brne X5
 00A4 6BC0              xjmp L23
 00A6           X5:
 00A6 80E7              ldi R24,112
 00A8 90E0              ldi R25,0
 00AA 8417              cp R24,R20
 00AC 9507              cpc R25,R21
 00AE ACF0              brlt L35
 00B0           L34:
 00B0 4036              cpi R20,96
 00B2 E0E0              ldi R30,0
 00B4 5E07              cpc R21,R30
 00B6 09F4              brne X6
 00B8 61C0              xjmp L23
 00BA           X6:
 00BA 80E6              ldi R24,96
 00BC 90E0              ldi R25,0
 00BE 8417              cp R24,R20
 00C0 9507              cpc R25,R21
 00C2 2CF0              brlt L37
 00C4           L36:
 00C4 4030              cpi R20,0
 00C6 4507              cpc R20,R21
 00C8 09F4              brne X7
 00CA 85C0              xjmp L31
 00CC           X7:
 00CC           X0:
 00CC 88C0              xjmp L21
 00CE           L37:
 00CE 4836              cpi R20,104
 00D0 E0E0              ldi R30,0
 00D2 5E07              cpc R21,R30
 00D4 09F4              brne X8
 00D6 52C0              xjmp L23
 00D8           X8:
 00D8 82C0              xjmp L21
 00DA           L35:
 00DA 4038              cpi R20,128
 00DC E0E0              ldi R30,0
 00DE 5E07              cpc R21,R30
 00E0 09F4              brne X9
 00E2 51C0              xjmp L24
 00E4           X9:
 00E4 80E8              ldi R24,128
 00E6 90E0              ldi R25,0
 00E8 8417              cp R24,R20
 00EA 9507              cpc R25,R21
 00EC 34F0              brlt L39
 00EE           L38:
 00EE 4837              cpi R20,120
 00F0 E0E0              ldi R30,0
 00F2 5E07              cpc R21,R30
 00F4 09F4              brne X10
 00F6 42C0              xjmp L23
 00F8           X10:
 00F8 72C0              xjmp L21
 00FA           L39:
 00FA 4838              cpi R20,136
 00FC E0E0              ldi R30,0
 00FE 5E07              cpc R21,R30
 0100 09F4              brne X11
 0102 41C0              xjmp L24
 0104           X11:
 0104 6CC0              xjmp L21
 0106           L33:
 0106 403B              cpi R20,176
 0108 E0E0              ldi R30,0
 010A 5E07              cpc R21,R30
 010C 09F4              brne X12
 010E 50C0              xjmp L27
 0110           X12:
 0110 80EB              ldi R24,176
 0112 90E0              ldi R25,0
 0114 8417              cp R24,R20
 0116 9507              cpc R25,R21
 0118 ACF0              brlt L41
 011A           L40:
 011A 403A              cpi R20,160
 011C E0E0              ldi R30,0
 011E 5E07              cpc R21,R30
 0120 09F4              brne X13
 0122 41C0              xjmp L26
 0124           X13:
 0124 80EA              ldi R24,160
 0126 90E0              ldi R25,0
 0128 8417              cp R24,R20
 012A 9507              cpc R25,R21
 012C 2CF0              brlt L43
 012E           L42:
 012E 4839              cpi R20,152
 0130 E0E0              ldi R30,0
 0132 5E07              cpc R21,R30
 0134 99F1              breq L25
 0136 53C0              xjmp L21
 0138           L43:
 0138 483A              cpi R20,168
 013A E0E0              ldi R30,0
 013C 5E07              cpc R21,R30
 013E 09F4              brne X14
 0140 37C0              xjmp L27
 0142           X14:
 0142 4DC0              xjmp L21
 0144           L41:
 0144 403C              cpi R20,192
 0146 E0E0              ldi R30,0
 0148 5E07              cpc R21,R30
 014A 09F4              brne X15
 014C 3DC0              xjmp L29
 014E           X15:
 014E 80EC              ldi R24,192
 0150 90E0              ldi R25,0
 0152 8417              cp R24,R20
 0154 9507              cpc R25,R21
 0156 2CF0              brlt L45
 0158           L44:
 0158 483B              cpi R20,184
 015A E0E0              ldi R30,0
 015C 5E07              cpc R21,R30
 015E 81F1              breq L28
 0160 3EC0              xjmp L21
 0162           L45:
 0162 483C              cpi R20,200
 0164 E0E0              ldi R30,0
 0166 5E07              cpc R21,R30
 0168 79F1              breq L29
 016A 483C              cpi R20,200
 016C E0E0              ldi R30,0
 016E 5E07              cpc R21,R30
 0170 B4F1              brlt L21
 0172           L46:
 0172 483F              cpi R20,248
 0174 E0E0              ldi R30,0
 0176 5E07              cpc R21,R30
 0178 91F1              breq L21
 017A 31C0              xjmp L21
 017C           X1:
 017C                   .dbline 78
 017C           ;  {
 017C           L23:
 017C                   .dbline 84
 017C           ;  //从接收
 017C           ;  case TW_SR_SLA_ACK:
 017C           ;  case TW_SR_ARB_LOST_SLA_ACK:
 017C           ;  case TW_SR_GCALL_ACK:
 017C           ;  case TW_SR_ARB_LOST_GCALL_ACK:
 017C           ;         Twi_Ack();  //返回ACK
 017C                   .dbline 84
 017C 86B7              in R24,0x36
 017E 8F70              andi R24,15
 0180 806C              ori R24,192
 0182 86BF              out 0x36,R24
 0184                   .dbline 84
 0184                   .dbline 84
 0184                   .dbline 85
 0184           ;         break;
 0184 2CC0              xjmp L21
 0186           L24:
 0186                   .dbline 88
 0186           ;  case TW_SR_DATA_ACK:
 0186           ;  case TW_SR_DATA_NACK:
 0186           ;         main_tmp = TWDR;
 0186 23B0              in R2,0x3
 0188 20920000          sts _main_tmp,R2
 018C                   .dbline 89
 018C           ;         PORTA = ~ TWDR; //接收数据并显示
 018C 23B0              in R2,0x3
 018E 2094              com R2
 0190 2BBA              out 0x1b,R2
 0192                   .dbline 90
 0192           ;         Twi_Ack();  //返回ACK
 0192                   .dbline 90
 0192 86B7              in R24,0x36
 0194 8F70              andi R24,15
 0196 806C              ori R24,192
 0198 86BF              out 0x36,R24
 019A                   .dbline 90
 019A                   .dbline 90
 019A                   .dbline 91
 019A           ;         break;
 019A 21C0              xjmp L21
 019C           L25:
 019C                   .dbline 94
 019C           ;  case TW_SR_GCALL_DATA_ACK:
 019C           ;  case TW_SR_GCALL_DATA_NACK:  
 019C           ;         Twi_Ack();  //返回ACK
 019C                   .dbline 94
 019C 86B7              in R24,0x36
 019E 8F70              andi R24,15
 01A0 806C              ori R24,192
 01A2 86BF              out 0x36,R24
 01A4                   .dbline 94
 01A4                   .dbline 94
 01A4                   .dbline 95
 01A4           ;         break;
 01A4 1CC0              xjmp L21
 01A6           L26:
 01A6                   .dbline 97
 01A6           ;  case TW_SR_STOP:
 01A6           ;         Twi_Ack(); 
 01A6                   .dbline 97
 01A6 86B7              in R24,0x36
 01A8 8F70              andi R24,15
 01AA 806C              ori R24,192
 01AC 86BF              out 0x36,R24
 01AE                   .dbline 97
 01AE                   .dbline 97
 01AE                   .dbline 98
 01AE           ;         break;
 01AE 17C0              xjmp L21
 01B0           L27:
 01B0                   .dbline 104
 01B0           ;  //从发送*****************************
 01B0           ;  
 01B0           ;    case TW_ST_SLA_ACK:               // 0xA8: 自己的SLA+R 已经被接收,ACK 已返回 
 01B0           ;    case TW_ST_ARB_LOST_SLA_ACK:// 0xB0: SLA+R/W 作为主机的仲裁失败;自己的SLA+R 已经被接收,ACK 已返回 
 01B0           ;       // 被选中为从读出 (数据将从传回主机) 
 01B0           ;         TWDR=main_tmp;  //发送全局变量中值
 01B0 20900000          lds R2,_main_tmp
 01B4 23B8              out 0x3,R2
 01B6                   .dbline 105
 01B6           ;         Twi_Ack();            
 01B6                   .dbline 105
 01B6 86B7              in R24,0x36
 01B8 8F70              andi R24,15
 01BA 806C              ori R24,192
 01BC 86BF              out 0x36,R24
 01BE                   .dbline 105
 01BE                   .dbline 105
 01BE                   .dbline 106
 01BE           ;         break;    
 01BE 0FC0              xjmp L21
 01C0           L28:
 01C0                   .dbline 109
 01C0           ;   case TW_ST_DATA_ACK:            // 0xB8: TWDR 里数据已经发送,接收到ACK 
 01C0           ;       //发送数据位 
 01C0           ;        TWDR=main_tmp;
 01C0 20900000          lds R2,_main_tmp
 01C4 23B8              out 0x3,R2
 01C6                   .dbline 110
 01C6           ;      break;    
 01C6 0BC0              xjmp L21
 01C8           L29:
 01C8                   .dbline 115
 01C8           ;    case TW_ST_DATA_NACK:            // 0xC0: TWDR 里数据已经发送接收到NOT ACK 
 01C8           ;    case TW_ST_LAST_DATA:            // 0xC8: TWDR 的一字节数据已经发送(TWAE = “0”);接收到ACK 
 01C8           ;       // 全部完成 
 01C8           ;       // 从方式开放 
 01C8           ;       Twi_NoAcK(); 
 01C8                   .dbline 115
 01C8 86B7              in R24,0x36
 01CA 8F70              andi R24,15
 01CC 8068              ori R24,128
 01CE 86BF              out 0x36,R24
 01D0                   .dbline 115
 01D0                   .dbline 115
 01D0                   .dbline 116
 01D0           ;         twi_slave_init(0x50);        //重新回到初始化状态,等待接收模式的到来
 01D0 00E5              ldi R16,80
 01D2 1FDF              xcall _twi_slave_init
 01D4                   .dbline 117
 01D4           ;       break; 
 01D4 04C0              xjmp L21
 01D6           X2:
 01D6                   .dbline 120
 01D6           ;    case TW_NO_INFO:                 // 0xF8: 没有相关的状态信息;TWINT = “0” 
 01D6           ;       // 无操作 
 01D6           ;         break; 
 01D6           L31:
 01D6                   .dbline 123
 01D6 86B7              in R24,0x36
 01D8 8F70              andi R24,15
 01DA 806D              ori R24,208
 01DC 86BF              out 0x36,R24
 01DE                   .dbline 124
 01DE                   .dbline 126
 01DE           L21:
 01DE                   .dbline -2
 01DE           L19:
 01DE 0E940000          xcall pop_gset1
 01E2 0E940000          xcall pop_lset
 01E6                   .dbline 0 ; func end
 01E6 1895              reti
 01E8                   .dbend

⌨️ 快捷键说明

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