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

📄 project.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01B8 04E6              ldi R16,100
 01BA 10E0              ldi R17,0
 01BC 21DF              rcall _delay
 01BE                   .dbline 155
 01BE           ;  Set_SDA(0);                         //SDA=0;
 01BE 0027              clr R16
 01C0 EFDF              rcall _Set_SDA
 01C2                   .dbline 156
 01C2           ;  delay(100);
 01C2 04E6              ldi R16,100
 01C4 10E0              ldi R17,0
 01C6 1CDF              rcall _delay
 01C8                   .dbline 157
 01C8           ;  Set_SCL(0);                         // SCL=0;
 01C8 0027              clr R16
 01CA                   .dbline -2
 01CA                   .dbline 158
 01CA           ; }
 01CA           L55:
 01CA                   .dbline 0 ; func end
 01CA E2CF              rjmp _Set_SCL
 01CC                   .dbend
 01CC                   .dbfunc e Stop _Stop fV
                        .even
 01CC           _Stop::
 01CC                   .dbline -1
 01CC                   .dbline 161
 01CC           ; 
 01CC           ; void Stop()                            //I2C总线结束条件
 01CC           ; {Set_SDA(0);                         //SDA=0;
 01CC                   .dbline 161
 01CC 0027              clr R16
 01CE E8DF              rcall _Set_SDA
 01D0                   .dbline 162
 01D0           ;  delay(100);
 01D0 04E6              ldi R16,100
 01D2 10E0              ldi R17,0
 01D4 15DF              rcall _delay
 01D6                   .dbline 163
 01D6           ;  Set_SCL(1);                         //SCL=1;
 01D6 01E0              ldi R16,1
 01D8 DBDF              rcall _Set_SCL
 01DA                   .dbline 164
 01DA           ;  delay(100);                         //等待时钟信号变低
 01DA 04E6              ldi R16,100
 01DC 10E0              ldi R17,0
 01DE 10DF              rcall _delay
 01E0                   .dbline 165
 01E0           ;  Set_SDA(1);                         //SDA=1;
 01E0 01E0              ldi R16,1
 01E2 DEDF              rcall _Set_SDA
 01E4                   .dbline 166
 01E4           ;  delay(100);
 01E4 04E6              ldi R16,100
 01E6 10E0              ldi R17,0
 01E8 0BDF              rcall _delay
 01EA                   .dbline 167
 01EA           ;  Set_SCL(0);                         //SCL=0;
 01EA 0027              clr R16
 01EC                   .dbline -2
 01EC                   .dbline 168
 01EC           ; }
 01EC           L56:
 01EC                   .dbline 0 ; func end
 01EC D1CF              rjmp _Set_SCL
 01EE                   .dbend
 01EE                   .dbfunc e Ack _Ack fV
                        .even
 01EE           _Ack::
 01EE                   .dbline -1
 01EE                   .dbline 171
 01EE           ; 
 01EE           ; void Ack()                             //I2C总线应答
 01EE           ; {Set_SDA(0);                         //SDA=0;
 01EE                   .dbline 171
 01EE 0027              clr R16
 01F0 D7DF              rcall _Set_SDA
 01F2                   .dbline 172
 01F2           ;  delay(50);
 01F2 02E3              ldi R16,50
 01F4 10E0              ldi R17,0
 01F6 04DF              rcall _delay
 01F8                   .dbline 173
 01F8           ;  Set_SCL(1);                         //SCL=1;
 01F8 01E0              ldi R16,1
 01FA CADF              rcall _Set_SCL
 01FC                   .dbline 174
 01FC           ;  delay(100);
 01FC 04E6              ldi R16,100
 01FE 10E0              ldi R17,0
 0200 FFDE              rcall _delay
 0202                   .dbline 175
 0202           ;  Set_SCL(0);                         //SCL=0;
 0202 0027              clr R16
 0204 C5DF              rcall _Set_SCL
 0206                   .dbline 176
 0206           ;  delay(50);
 0206 02E3              ldi R16,50
 0208 10E0              ldi R17,0
 020A FADE              rcall _delay
 020C                   .dbline 177
 020C           ;  Set_SDA(1);                         //SDA=1;
 020C 01E0              ldi R16,1
 020E                   .dbline -2
 020E                   .dbline 178
 020E           ; }
 020E           L57:
 020E                   .dbline 0 ; func end
 020E C8CF              rjmp _Set_SDA
 0210                   .dbend
 0210                   .dbfunc e Nack _Nack fV
                        .even
 0210           _Nack::
 0210                   .dbline -1
 0210                   .dbline 181
 0210           ; 
 0210           ; void Nack()                            //I2C总线应答非
 0210           ; {Set_SDA(1);                         //SDA=1;
 0210                   .dbline 181
 0210 01E0              ldi R16,1
 0212 C6DF              rcall _Set_SDA
 0214                   .dbline 182
 0214           ;  delay(50);
 0214 02E3              ldi R16,50
 0216 10E0              ldi R17,0
 0218 F3DE              rcall _delay
 021A                   .dbline 183
 021A           ;  Set_SCL(1);                         //SCL=1;
 021A 01E0              ldi R16,1
 021C B9DF              rcall _Set_SCL
 021E                   .dbline 184
 021E           ;  delay(100);
 021E 04E6              ldi R16,100
 0220 10E0              ldi R17,0
 0222 EEDE              rcall _delay
 0224                   .dbline 185
 0224           ;  Set_SCL(0);                         //SCL=0;
 0224 0027              clr R16
 0226 B4DF              rcall _Set_SCL
 0228                   .dbline 186
 0228           ;  delay(50);
 0228 02E3              ldi R16,50
 022A 10E0              ldi R17,0
 022C E9DE              rcall _delay
 022E                   .dbline 187
 022E           ;  Set_SDA(0);                         //SDA=0;
 022E 0027              clr R16
 0230                   .dbline -2
 0230                   .dbline 188
 0230           ; }
 0230           L58:
 0230                   .dbline 0 ; func end
 0230 B7CF              rjmp _Set_SDA
 0232                   .dbend
 0232                   .dbfunc e Check_Ack _Check_Ack fV
                        .even
 0232           _Check_Ack::
 0232                   .dbline -1
 0232                   .dbline 191
 0232           ; 
 0232           ; void Check_Ack()                       //I2C总线应答检查
 0232           ; {Set_SDA(1);                         //SDA=1;
 0232                   .dbline 191
 0232 01E0              ldi R16,1
 0234 B5DF              rcall _Set_SDA
 0236                   .dbline 192
 0236           ;  Set_SCL(1);                         //SCL=1;
 0236 01E0              ldi R16,1
 0238 ABDF              rcall _Set_SCL
 023A                   .dbline 193
 023A           ;  Ack_Flag=0;                         //清除应答标志;
 023A 2224              clr R2
 023C 20924600          sts _Ack_Flag,R2
 0240                   .dbline 194
 0240           ;  DDRA&=0xbf;                         //设置SDA为输入
 0240 8AB3              in R24,0x1a
 0242 8F7B              andi R24,191
 0244 8ABB              out 0x1a,R24
 0246                   .dbline 195
 0246           ;  if(!((PINA & 0x40)>>6))
 0246 89B3              in R24,0x19
 0248 8074              andi R24,64
 024A 8695              lsr R24
 024C 8695              lsr R24
 024E 8695              lsr R24
 0250 8695              lsr R24
 0252 8695              lsr R24
 0254 8695              lsr R24
 0256 8823              tst R24
 0258 49F4              brne L60
 025A                   .dbline 196
 025A           ;    {delay(50);
 025A                   .dbline 196
 025A 02E3              ldi R16,50
 025C 10E0              ldi R17,0
 025E D0DE              rcall _delay
 0260                   .dbline 197
 0260           ;     Set_SCL(0);                              //SCL=0;
 0260 0027              clr R16
 0262 96DF              rcall _Set_SCL
 0264                   .dbline 198
 0264           ;     delay(100);}
 0264 04E6              ldi R16,100
 0266 10E0              ldi R17,0
 0268 CBDE              rcall _delay
 026A                   .dbline 198
 026A 0BC0              rjmp L61
 026C           L60:
 026C                   .dbline 200
 026C           ;  else
 026C           ;    {Ack_Flag=1;                              //收到应答;
 026C                   .dbline 200
 026C 81E0              ldi R24,1
 026E 80934600          sts _Ack_Flag,R24
 0272                   .dbline 201
 0272           ;     delay(50);
 0272 02E3              ldi R16,50
 0274 10E0              ldi R17,0
 0276 C4DE              rcall _delay
 0278                   .dbline 202
 0278           ;     Set_SCL(0);                              //SCL=0;
 0278 0027              clr R16
 027A 8ADF              rcall _Set_SCL
 027C                   .dbline 203
 027C           ;     delay(100);}
 027C 04E6              ldi R16,100
 027E 10E0              ldi R17,0
 0280 BFDE              rcall _delay
 0282                   .dbline 203
 0282           L61:
 0282                   .dbline 204
 0282           ;  DDRA |=0xff;                                //重新设置SDA为输出       
 0282 8AB3              in R24,0x1a
 0284 8F6F              ori R24,255
 0286 8ABB              out 0x1a,R24
 0288                   .dbline -2
 0288                   .dbline 205
 0288           ; }
 0288           L59:
 0288                   .dbline 0 ; func end
 0288 0895              ret
 028A                   .dbend
 028A                   .dbfunc e Write_Bit0 _Write_Bit0 fV
                        .even
 028A           _Write_Bit0::
 028A                   .dbline -1
 028A                   .dbline 208
 028A           ; 
 028A           ; void Write_Bit0()                      //写1bit数据:0    
 028A           ; {Set_SDA(0);                         //SDA=0;
 028A                   .dbline 208
 028A 0027              clr R16
 028C 89DF              rcall _Set_SDA
 028E                   .dbline 209
 028E           ;  Set_SCL(1);                         //SCL=1;
 028E 01E0              ldi R16,1
 0290 7FDF              rcall _Set_SCL
 0292                   .dbline 210
 0292           ;  delay(100);
 0292 04E6              ldi R16,100
 0294 10E0              ldi R17,0
 0296 B4DE              rcall _delay
 0298                   .dbline 211
 0298           ;  Set_SCL(0);                         //SCL=0;
 0298 0027              clr R16
 029A                   .dbline -2
 029A                   .dbline 212
 029A           ; }
 029A           L62:
 029A                   .dbline 0 ; func end
 029A 7ACF              rjmp _Set_SCL
 029C                   .dbend
 029C                   .dbfunc e Write_Bit1 _Write_Bit1 fV
                        .even
 029C           _Write_Bit1::
 029C                   .dbline -1
 029C                   .dbline 215
 029C           ; 
 029C           ; void Write_Bit1()                      //写1bit数据:1       
 029C           ; {Set_SDA(1);                         //SDA=1;
 029C                   .dbline 215
 029C 01E0              ldi R16,1
 029E 80DF              rcall _Set_SDA
 02A0                   .dbline 216
 02A0           ;  Set_SCL(1);                         //SCL=1;
 02A0 01E0              ldi R16,1
 02A2 76DF              rcall _Set_SCL
 02A4                   .dbline 217
 02A4           ;  delay(100);
 02A4 04E6              ldi R16,100
 02A6 10E0              ldi R17,0
 02A8 ABDE              rcall _delay
 02AA                   .dbline 218
 02AA           ;  Set_SCL(0);                         //SCL=0;
 02AA 0027              clr R16
 02AC 71DF              rcall _Set_SCL
 02AE                   .dbline 219
 02AE           ;  Set_SDA(0);                         //SDA=0;
 02AE 0027              clr R16
 02B0                   .dbline -2
 02B0                   .dbline 220
 02B0           ; }
 02B0           L63:
 02B0                   .dbline 0 ; func end
 02B0 77CF              rjmp _Set_SDA
 02B2                   .dbend
 02B2                   .dbfunc e Write_Byte _Write_Byte fV
 02B2           ;              i -> R20
 02B2           ;           Data -> R22
                        .even
 02B2           _Write_Byte::
 02B2 00D0              rcall push_gset2
 02B4 602F              mov R22,R16
 02B6                   .dbline -1
 02B6                   .dbline 223
 02B6           ; 
 02B6           ; void Write_Byte(uchar Data)            //写一字节数据Data  
 02B6           ; {uchar i;
 02B6                   .dbline 224
 02B6           ;  for(i=0;i<8;i++)
 02B6 4427              clr R20
 02B8 07C0              rjmp L68
 02BA           L65:
 02BA                   .dbline 225

⌨️ 快捷键说明

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