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

📄 ac15-3.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01B0 84EA              ldi R24,164
 01B2 86BF              out 0x36,R24
 01B4                   .dbline 179
 01B4           L42:
 01B4                   .dbline 179
 01B4           L43:
 01B4                   .dbline 179
 01B4           ;          Wait();
 01B4 26B6              in R2,0x36
 01B6 27FE              sbrs R2,7
 01B8 FDCF              rjmp L42
 01BA                   .dbline 179
 01BA                   .dbline 179
 01BA                   .dbline 180
 01BA           ;          if (TestAck()!=RE_START)  return 0;
 01BA 81B1              in R24,0x1
 01BC 887F              andi R24,248
 01BE 8031              cpi R24,16
 01C0 11F0              breq L45
 01C2                   .dbline 180
 01C2 0027              clr R16
 01C4 1CC0              xjmp L26
 01C6           L45:
 01C6                   .dbline 181
 01C6           ;          Write8Bit(rd_device_add);
 01C6                   .dbline 181
 01C6 81EA              ldi R24,161
 01C8 83B9              out 0x3,R24
 01CA                   .dbline 181
 01CA 84E8              ldi R24,132
 01CC 86BF              out 0x36,R24
 01CE                   .dbline 181
 01CE                   .dbline 181
 01CE                   .dbline 182
 01CE           L47:
 01CE                   .dbline 182
 01CE           L48:
 01CE                   .dbline 182
 01CE           ;          Wait();
 01CE 26B6              in R2,0x36
 01D0 27FE              sbrs R2,7
 01D2 FDCF              rjmp L47
 01D4                   .dbline 182
 01D4                   .dbline 182
 01D4                   .dbline 183
 01D4           ;          if(TestAck()!=MR_SLA_ACK)  return 0;
 01D4 81B1              in R24,0x1
 01D6 887F              andi R24,248
 01D8 8034              cpi R24,64
 01DA 11F0              breq L50
 01DC                   .dbline 183
 01DC 0027              clr R16
 01DE 0FC0              xjmp L26
 01E0           L50:
 01E0                   .dbline 184
 01E0           ;          Twi();
 01E0 84E8              ldi R24,132
 01E2 86BF              out 0x36,R24
 01E4                   .dbline 185
 01E4           L52:
 01E4                   .dbline 185
 01E4           L53:
 01E4                   .dbline 185
 01E4           ;          Wait();
 01E4 26B6              in R2,0x36
 01E6 27FE              sbrs R2,7
 01E8 FDCF              rjmp L52
 01EA                   .dbline 185
 01EA                   .dbline 185
 01EA                   .dbline 186
 01EA           ;          if(TestAck()!=MR_DATA_NOACK) return 0;       
 01EA 81B1              in R24,0x1
 01EC 887F              andi R24,248
 01EE 8835              cpi R24,88
 01F0 11F0              breq L55
 01F2                   .dbline 186
 01F2 0027              clr R16
 01F4 04C0              xjmp L26
 01F6           L55:
 01F6                   .dbline 187
 01F6           ;          temp=TWDR;
 01F6 43B1              in R20,0x3
 01F8                   .dbline 188
 01F8           ;        Stop();
 01F8 84E9              ldi R24,148
 01FA 86BF              out 0x36,R24
 01FC                   .dbline 189
 01FC           ;          return temp;
 01FC 042F              mov R16,R20
 01FE                   .dbline -2
 01FE           L26:
 01FE 0E940000          xcall pop_gset1
 0202                   .dbline 0 ; func end
 0202 0895              ret
 0204                   .dbsym r temp 20 c
 0204                   .dbsym r RomAddress 16 c
 0204                   .dbend
 0204                   .dbfunc e i2c_Write _i2c_Write fc
 0204           ;          Wdata -> R20
 0204           ;     RomAddress -> R22
                        .even
 0204           _i2c_Write::
 0204 0E940000          xcall push_gset2
 0208 422F              mov R20,R18
 020A 602F              mov R22,R16
 020C                   .dbline -1
 020C                   .dbline 198
 020C           ;       }
 020C           ;         
 020C           ; /******************************************
 020C           ;                I2C总线写一个字节
 020C           ;                           返回0:写成功
 020C           ;                               返回非0:写失败
 020C           ; *******************************************/
 020C           ; unsigned char i2c_Write(unsigned char RomAddress,unsigned char Wdata) 
 020C           ; {
 020C                   .dbline 199
 020C           ;         Start();
 020C 84EA              ldi R24,164
 020E 86BF              out 0x36,R24
 0210                   .dbline 200
 0210           L58:
 0210                   .dbline 200
 0210           L59:
 0210                   .dbline 200
 0210           ;         Wait();
 0210 26B6              in R2,0x36
 0212 27FE              sbrs R2,7
 0214 FDCF              rjmp L58
 0216                   .dbline 200
 0216                   .dbline 200
 0216                   .dbline 201
 0216           ;         if(TestAck()!=START) return 1;
 0216 81B1              in R24,0x1
 0218 887F              andi R24,248
 021A 8830              cpi R24,8
 021C 11F0              breq L61
 021E                   .dbline 201
 021E 01E0              ldi R16,1
 0220 2BC0              xjmp L57
 0222           L61:
 0222                   .dbline 202
 0222           ;         Write8Bit(wr_device_add);
 0222                   .dbline 202
 0222 80EA              ldi R24,160
 0224 83B9              out 0x3,R24
 0226                   .dbline 202
 0226 84E8              ldi R24,132
 0228 86BF              out 0x36,R24
 022A                   .dbline 202
 022A                   .dbline 202
 022A                   .dbline 203
 022A           L63:
 022A                   .dbline 203
 022A           L64:
 022A                   .dbline 203
 022A           ;         Wait();
 022A 26B6              in R2,0x36
 022C 27FE              sbrs R2,7
 022E FDCF              rjmp L63
 0230                   .dbline 203
 0230                   .dbline 203
 0230                   .dbline 204
 0230           ;         if(TestAck()!=MT_SLA_ACK) return 1;
 0230 81B1              in R24,0x1
 0232 887F              andi R24,248
 0234 8831              cpi R24,24
 0236 11F0              breq L66
 0238                   .dbline 204
 0238 01E0              ldi R16,1
 023A 1EC0              xjmp L57
 023C           L66:
 023C                   .dbline 205
 023C           ;         Write8Bit(RomAddress);
 023C                   .dbline 205
 023C 63B9              out 0x3,R22
 023E                   .dbline 205
 023E 84E8              ldi R24,132
 0240 86BF              out 0x36,R24
 0242                   .dbline 205
 0242                   .dbline 205
 0242                   .dbline 206
 0242           L68:
 0242                   .dbline 206
 0242           L69:
 0242                   .dbline 206
 0242           ;         Wait();
 0242 26B6              in R2,0x36
 0244 27FE              sbrs R2,7
 0246 FDCF              rjmp L68
 0248                   .dbline 206
 0248                   .dbline 206
 0248                   .dbline 207
 0248           ;         if(TestAck()!=MT_DATA_ACK) return 1;
 0248 81B1              in R24,0x1
 024A 887F              andi R24,248
 024C 8832              cpi R24,40
 024E 11F0              breq L71
 0250                   .dbline 207
 0250 01E0              ldi R16,1
 0252 12C0              xjmp L57
 0254           L71:
 0254                   .dbline 208
 0254           ;         Write8Bit(Wdata);
 0254                   .dbline 208
 0254 43B9              out 0x3,R20
 0256                   .dbline 208
 0256 84E8              ldi R24,132
 0258 86BF              out 0x36,R24
 025A                   .dbline 208
 025A                   .dbline 208
 025A                   .dbline 209
 025A           L73:
 025A                   .dbline 209
 025A           L74:
 025A                   .dbline 209
 025A           ;         Wait();
 025A 26B6              in R2,0x36
 025C 27FE              sbrs R2,7
 025E FDCF              rjmp L73
 0260                   .dbline 209
 0260                   .dbline 209
 0260                   .dbline 210
 0260           ;         if(TestAck()!=MT_DATA_ACK) return 1;  
 0260 81B1              in R24,0x1
 0262 887F              andi R24,248
 0264 8832              cpi R24,40
 0266 11F0              breq L76
 0268                   .dbline 210
 0268 01E0              ldi R16,1
 026A 06C0              xjmp L57
 026C           L76:
 026C                   .dbline 211
 026C           ;         Stop();
 026C 84E9              ldi R24,148
 026E 86BF              out 0x36,R24
 0270                   .dbline 212
 0270           ;         delay_ms(10);
 0270 0AE0              ldi R16,10
 0272 10E0              ldi R17,0
 0274 CDD0              xcall _delay_ms
 0276                   .dbline 213
 0276           ;         return 0;
 0276 0027              clr R16
 0278                   .dbline -2
 0278           L57:
 0278 0E940000          xcall pop_gset2
 027C                   .dbline 0 ; func end
 027C 0895              ret
 027E                   .dbsym r Wdata 20 c
 027E                   .dbsym r RomAddress 22 c
 027E                   .dbend
 027E                   .dbfunc e main _main fV
 027E           ;        key_val -> R10
 027E           ;         rd_val -> R22
 027E           ;         wr_val -> R20
                        .even
 027E           _main::
 027E 2297              sbiw R28,2
 0280                   .dbline -1
 0280                   .dbline 218
 0280           ; }
 0280           ; 
 0280           ; //******************************************
 0280           ; void main(void)                               
 0280           ; {
 0280                   .dbline 219
 0280           ;        uchar key_val,wr_val=0,rd_val=0;       
 0280 4427              clr R20
 0282                   .dbline 219
 0282 6627              clr R22
 0284                   .dbline 220
 0284           ;        port_init();
 0284 60DF              xcall _port_init
 0286                   .dbline 221
 0286           ;     delay_ms(400);                    
 0286 00E9              ldi R16,400
 0288 11E0              ldi R17,1
 028A C2D0              xcall _delay_ms
 028C                   .dbline 222
 028C           ;       InitLcd();                              
 028C 04DF              xcall _InitLcd
 028E                   .dbline 223
 028E           ;       LcdWriteCommand(0x01,1); 
 028E 21E0              ldi R18,1
 0290 01E0              ldi R16,1
 0292 23DF              xcall _LcdWriteCommand
 0294                   .dbline 224
 0294           ;       LcdWriteCommand(0x0c,1);         
 0294 21E0              ldi R18,1
 0296 0CE0              ldi R16,12
 0298 20DF              xcall _LcdWriteCommand
 029A                   .dbline 225
 029A           ;       ePutstr(0,0,str0);  
 029A 80E0              ldi R24,<_str0
 029C 90E0              ldi R25,>_str0
 029E 9983              std y+1,R25
 02A0 8883              std y+0,R24
 02A2 2227              clr R18
 02A4 0027              clr R16
 02A6 ACDE              xcall _ePutstr
 02A8                   .dbline 226
 02A8           ;       delay_ms(10);
 02A8 0AE0              ldi R16,10
 02AA 10E0              ldi R17,0
 02AC B1D0              xcall _delay_ms
 02AE                   .dbline 227
 02AE           ;       ePutstr(0,1,str1);   
 02AE 80E0              ldi R24,<_str1
 02B0 90E0              ldi R25,>_str1
 02B2 9983              std y+1,R25
 02B4 8883              std y+0,R24
 02B6 21E0              ldi R18,1
 02B8 0027              clr R16
 02BA A2DE              xcall _ePutstr
 02BC                   .dbline 228
 02BC           ;       delay_ms(10);
 02BC 0AE0              ldi R16,10
 02BE 10E0              ldi R17,0
 02C0 A7D0              xcall _delay_ms
 02C2 A3C0              xjmp L80
 02C4           L79:
 02C4                   .dbline 231

⌨️ 快捷键说明

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