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

📄 ac15-3.lis

📁 AVR的MEGA16通过TWI接口读写AT24C02
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0192           ;         Wait();
 0192 26B6              in R2,0x36
 0194 27FE              sbrs R2,7
 0196 FDCF              rjmp L54
 0198                   .dbline 146
 0198                   .dbline 146
 0198                   .dbline 147
 0198           ;         if(TestAck()!=START) return 1;
 0198 81B1              in R24,0x1
 019A 887F              andi R24,248
 019C 8830              cpi R24,8
 019E 11F0              breq L57
 01A0                   .dbline 147
 01A0 01E0              ldi R16,1
 01A2 2BC0              xjmp L53
 01A4           L57:
 01A4                   .dbline 148
 01A4           ;         Write8Bit(wr_device_add);
 01A4                   .dbline 148
 01A4 80EA              ldi R24,160
 01A6 83B9              out 0x3,R24
 01A8                   .dbline 148
 01A8 84E8              ldi R24,132
 01AA 86BF              out 0x36,R24
 01AC                   .dbline 148
 01AC                   .dbline 148
 01AC                   .dbline 149
 01AC           L59:
 01AC                   .dbline 149
 01AC           L60:
 01AC                   .dbline 149
 01AC           ;         Wait();
 01AC 26B6              in R2,0x36
 01AE 27FE              sbrs R2,7
 01B0 FDCF              rjmp L59
 01B2                   .dbline 149
 01B2                   .dbline 149
 01B2                   .dbline 150
 01B2           ;         if(TestAck()!=MT_SLA_ACK) return 1;
 01B2 81B1              in R24,0x1
 01B4 887F              andi R24,248
 01B6 8831              cpi R24,24
 01B8 11F0              breq L62
 01BA                   .dbline 150
 01BA 01E0              ldi R16,1
 01BC 1EC0              xjmp L53
 01BE           L62:
 01BE                   .dbline 151
 01BE           ;         Write8Bit(RomAddress);
 01BE                   .dbline 151
 01BE 63B9              out 0x3,R22
 01C0                   .dbline 151
 01C0 84E8              ldi R24,132
 01C2 86BF              out 0x36,R24
 01C4                   .dbline 151
 01C4                   .dbline 151
 01C4                   .dbline 152
 01C4           L64:
 01C4                   .dbline 152
 01C4           L65:
 01C4                   .dbline 152
 01C4           ;         Wait();
 01C4 26B6              in R2,0x36
 01C6 27FE              sbrs R2,7
 01C8 FDCF              rjmp L64
 01CA                   .dbline 152
 01CA                   .dbline 152
 01CA                   .dbline 153
 01CA           ;         if(TestAck()!=MT_DATA_ACK) return 1;
 01CA 81B1              in R24,0x1
 01CC 887F              andi R24,248
 01CE 8832              cpi R24,40
 01D0 11F0              breq L67
 01D2                   .dbline 153
 01D2 01E0              ldi R16,1
 01D4 12C0              xjmp L53
 01D6           L67:
 01D6                   .dbline 154
 01D6           ;         Write8Bit(Wdata);
 01D6                   .dbline 154
 01D6 43B9              out 0x3,R20
 01D8                   .dbline 154
 01D8 84E8              ldi R24,132
 01DA 86BF              out 0x36,R24
 01DC                   .dbline 154
 01DC                   .dbline 154
 01DC                   .dbline 155
 01DC           L69:
 01DC                   .dbline 155
 01DC           L70:
 01DC                   .dbline 155
 01DC           ;         Wait();
 01DC 26B6              in R2,0x36
 01DE 27FE              sbrs R2,7
 01E0 FDCF              rjmp L69
 01E2                   .dbline 155
 01E2                   .dbline 155
 01E2                   .dbline 156
 01E2           ;         if(TestAck()!=MT_DATA_ACK) return 1;  
 01E2 81B1              in R24,0x1
 01E4 887F              andi R24,248
 01E6 8832              cpi R24,40
 01E8 11F0              breq L72
 01EA                   .dbline 156
 01EA 01E0              ldi R16,1
 01EC 06C0              xjmp L53
 01EE           L72:
 01EE                   .dbline 157
 01EE           ;         Stop();
 01EE 84E9              ldi R24,148
 01F0 86BF              out 0x36,R24
 01F2                   .dbline 158
 01F2           ;         delay_ms(10);
 01F2 0AE0              ldi R16,10
 01F4 10E0              ldi R17,0
 01F6 17DF              xcall _delay_ms
 01F8                   .dbline 159
 01F8           ;         return 0;
 01F8 0027              clr R16
 01FA                   .dbline -2
 01FA           L53:
 01FA 0E940000          xcall pop_gset2
 01FE                   .dbline 0 ; func end
 01FE 0895              ret
 0200                   .dbsym r Wdata 20 c
 0200                   .dbsym r RomAddress 22 c
 0200                   .dbend
 0200                   .dbfunc e twi_init _twi_init fV
                        .even
 0200           _twi_init::
 0200                   .dbline -1
 0200                   .dbline 164
 0200           ; }
 0200           ; 
 0200           ; 
 0200           ; void twi_init(void)
 0200           ; {
 0200                   .dbline 165
 0200           ;         TWCR= 0X00; //disable twi 
 0200 2224              clr R2
 0202 26BE              out 0x36,R2
 0204                   .dbline 166
 0204           ;     TWBR= 0x12; //set bit rate 
 0204 82E1              ldi R24,18
 0206 80B9              out 0x0,R24
 0208                   .dbline 167
 0208           ;     TWSR= 0x01; //set prescale 
 0208 81E0              ldi R24,1
 020A 81B9              out 0x1,R24
 020C                   .dbline 168
 020C           ;     TWCR= 0x04; //enable twi 
 020C 84E0              ldi R24,4
 020E 86BF              out 0x36,R24
 0210                   .dbline -2
 0210           L74:
 0210                   .dbline 0 ; func end
 0210 0895              ret
 0212                   .dbend
 0212                   .dbfunc e main _main fV
 0212           ;              i -> <dead>
 0212           ;        key_val -> <dead>
 0212           ;         wr_val -> R20
 0212           ;              j -> R20
 0212           ;         rd_val -> R22
 0212           ;              k -> R10,R11
                        .even
 0212           _main::
 0212                   .dbline -1
 0212                   .dbline 175
 0212           ; 
 0212           ; 
 0212           ; 
 0212           ; }
 0212           ; //******************************************
 0212           ; void main(void)                               
 0212           ; {
 0212                   .dbline 176
 0212           ;       uchar key_val,wr_val=0,rd_val,i,j;      
 0212 4427              clr R20
 0214                   .dbline 178
 0214           ;       uint k;
 0214           ;       port_init();
 0214 61DF              xcall _port_init
 0216                   .dbline 179
 0216           ;       CS_OFF();
 0216 C39A              sbi 0x18,3
 0218                   .dbline 180
 0218           ;     delay_ms(10);                     
 0218 0AE0              ldi R16,10
 021A 10E0              ldi R17,0
 021C 04DF              xcall _delay_ms
 021E                   .dbline 181
 021E           ;       delay_ms(10);
 021E 0AE0              ldi R16,10
 0220 10E0              ldi R17,0
 0222 01DF              xcall _delay_ms
 0224 16C0              xjmp L77
 0226           L76:
 0226                   .dbline 184
 0226           ;       //twi_init();
 0226           ;               while(1)              
 0226           ;               {
 0226                   .dbline 185
 0226           ;                       rd_val=12;      
 0226 6CE0              ldi R22,12
 0228                   .dbline 196
 0228           ;                        
 0228           ;                       //for(i=1; i<255;i++)
 0228           ;                       //{
 0228           ;                       // i2c_Write(i,i);
 0228           ;                       //  _delay_us(20);
 0228           ;                         
 0228           ;                         //adc_to_disbuffer1(16);      
 0228           ;                               
 0228           ;                        // 
 0228           ;                       //}
 0228           ;                       for( j=1; j<255;j++)
 0228 41E0              ldi R20,1
 022A 11C0              xjmp L82
 022C           L79:
 022C                   .dbline 197
 022C           ;                       {
 022C                   .dbline 198
 022C           ;                         for( k=1; k<1025;k++)
 022C 81E0              ldi R24,1
 022E 90E0              ldi R25,0
 0230 5C01              movw R10,R24
 0232 07C0              xjmp L86
 0234           L83:
 0234                   .dbline 199
 0234                   .dbline 200
 0234 042F              mov R16,R20
 0236 57DF              xcall _i2c_Read
 0238 602F              mov R22,R16
 023A                   .dbline 201
 023A 14DF              xcall _display
 023C                   .dbline 204
 023C           L84:
 023C                   .dbline 198
 023C C501              movw R24,R10
 023E 0196              adiw R24,1
 0240 5C01              movw R10,R24
 0242           L86:
 0242                   .dbline 198
 0242 C501              movw R24,R10
 0244 8130              cpi R24,1
 0246 E4E0              ldi R30,4
 0248 9E07              cpc R25,R30
 024A A0F3              brlo L83
 024C                   .dbline 205
 024C           L80:
 024C                   .dbline 196
 024C 4395              inc R20
 024E           L82:
 024E                   .dbline 196
 024E 4F3F              cpi R20,255
 0250 68F3              brlo L79
 0252                   .dbline 206
 0252           L77:
 0252                   .dbline 183
 0252 E9CF              xjmp L76
 0254           X1:
 0254                   .dbline -2
 0254           L75:
 0254                   .dbline 0 ; func end
 0254 0895              ret
 0256                   .dbsym l i 1 c
 0256                   .dbsym l key_val 1 c
 0256                   .dbsym r wr_val 20 c
 0256                   .dbsym r j 20 c
 0256                   .dbsym r rd_val 22 c
 0256                   .dbsym r k 10 i
 0256                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\programe\AVR实验\I2C\TWI-at2401\ac15-3.c
 0000           _posit::
 0000                   .blkb 1
 0001                   .dbsym e posit _posit c

⌨️ 快捷键说明

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