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

📄 ac15-4.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01B4 26B6              in R2,0x36
 01B6 27FE              sbrs R2,7
 01B8 FDCF              rjmp L42
 01BA                   .dbline 191
 01BA                   .dbline 191
 01BA                   .dbline 192
 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 192
 01C2 0027              clr R16
 01C4 1CC0              xjmp L26
 01C6           L45:
 01C6                   .dbline 193
 01C6           ;          Write8Bit(rd_device_add);
 01C6                   .dbline 193
 01C6 81EA              ldi R24,161
 01C8 83B9              out 0x3,R24
 01CA                   .dbline 193
 01CA 84E8              ldi R24,132
 01CC 86BF              out 0x36,R24
 01CE                   .dbline 193
 01CE                   .dbline 193
 01CE                   .dbline 194
 01CE           L47:
 01CE                   .dbline 194
 01CE           L48:
 01CE                   .dbline 194
 01CE           ;          Wait();
 01CE 26B6              in R2,0x36
 01D0 27FE              sbrs R2,7
 01D2 FDCF              rjmp L47
 01D4                   .dbline 194
 01D4                   .dbline 194
 01D4                   .dbline 195
 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 195
 01DC 0027              clr R16
 01DE 0FC0              xjmp L26
 01E0           L50:
 01E0                   .dbline 196
 01E0           ;          Twi();
 01E0 84E8              ldi R24,132
 01E2 86BF              out 0x36,R24
 01E4                   .dbline 197
 01E4           L52:
 01E4                   .dbline 197
 01E4           L53:
 01E4                   .dbline 197
 01E4           ;          Wait();
 01E4 26B6              in R2,0x36
 01E6 27FE              sbrs R2,7
 01E8 FDCF              rjmp L52
 01EA                   .dbline 197
 01EA                   .dbline 197
 01EA                   .dbline 198
 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 198
 01F2 0027              clr R16
 01F4 04C0              xjmp L26
 01F6           L55:
 01F6                   .dbline 199
 01F6           ;          temp=TWDR;
 01F6 43B1              in R20,0x3
 01F8                   .dbline 200
 01F8           ;        Stop();
 01F8 84E9              ldi R24,148
 01FA 86BF              out 0x36,R24
 01FC                   .dbline 201
 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 210
 020C           ;       }
 020C           ;         
 020C           ; /******************************************
 020C           ;                I2C总线写一个字节
 020C           ;                           返回0:写成功
 020C           ;                               返回非0:写失败
 020C           ; *******************************************/
 020C           ; unsigned char i2c_Write(unsigned char RomAddress,unsigned char Wdata) 
 020C           ; {
 020C                   .dbline 211
 020C           ;         Start();
 020C 84EA              ldi R24,164
 020E 86BF              out 0x36,R24
 0210                   .dbline 212
 0210           L58:
 0210                   .dbline 212
 0210           L59:
 0210                   .dbline 212
 0210           ;         Wait();
 0210 26B6              in R2,0x36
 0212 27FE              sbrs R2,7
 0214 FDCF              rjmp L58
 0216                   .dbline 212
 0216                   .dbline 212
 0216                   .dbline 213
 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 213
 021E 01E0              ldi R16,1
 0220 2BC0              xjmp L57
 0222           L61:
 0222                   .dbline 214
 0222           ;         Write8Bit(wr_device_add);
 0222                   .dbline 214
 0222 80EA              ldi R24,160
 0224 83B9              out 0x3,R24
 0226                   .dbline 214
 0226 84E8              ldi R24,132
 0228 86BF              out 0x36,R24
 022A                   .dbline 214
 022A                   .dbline 214
 022A                   .dbline 215
 022A           L63:
 022A                   .dbline 215
 022A           L64:
 022A                   .dbline 215
 022A           ;         Wait();
 022A 26B6              in R2,0x36
 022C 27FE              sbrs R2,7
 022E FDCF              rjmp L63
 0230                   .dbline 215
 0230                   .dbline 215
 0230                   .dbline 216
 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 216
 0238 01E0              ldi R16,1
 023A 1EC0              xjmp L57
 023C           L66:
 023C                   .dbline 217
 023C           ;         Write8Bit(RomAddress);
 023C                   .dbline 217
 023C 63B9              out 0x3,R22
 023E                   .dbline 217
 023E 84E8              ldi R24,132
 0240 86BF              out 0x36,R24
 0242                   .dbline 217
 0242                   .dbline 217
 0242                   .dbline 218
 0242           L68:
 0242                   .dbline 218
 0242           L69:
 0242                   .dbline 218
 0242           ;         Wait();
 0242 26B6              in R2,0x36
 0244 27FE              sbrs R2,7
 0246 FDCF              rjmp L68
 0248                   .dbline 218
 0248                   .dbline 218
 0248                   .dbline 219
 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 219
 0250 01E0              ldi R16,1
 0252 12C0              xjmp L57
 0254           L71:
 0254                   .dbline 220
 0254           ;         Write8Bit(Wdata);
 0254                   .dbline 220
 0254 43B9              out 0x3,R20
 0256                   .dbline 220
 0256 84E8              ldi R24,132
 0258 86BF              out 0x36,R24
 025A                   .dbline 220
 025A                   .dbline 220
 025A                   .dbline 221
 025A           L73:
 025A                   .dbline 221
 025A           L74:
 025A                   .dbline 221
 025A           ;         Wait();
 025A 26B6              in R2,0x36
 025C 27FE              sbrs R2,7
 025E FDCF              rjmp L73
 0260                   .dbline 221
 0260                   .dbline 221
 0260                   .dbline 222
 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 222
 0268 01E0              ldi R16,1
 026A 06C0              xjmp L57
 026C           L76:
 026C                   .dbline 223
 026C           ;         Stop();
 026C 84E9              ldi R24,148
 026E 86BF              out 0x36,R24
 0270                   .dbline 224
 0270           ;         delay_ms(10);
 0270 0AE0              ldi R16,10
 0272 10E0              ldi R17,0
 0274 CAD1              xcall _delay_ms
 0276                   .dbline 225
 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 timer1_init _timer1_init fV
                        .even
 027E           _timer1_init::
 027E                   .dbline -1
 027E                   .dbline 230
 027E           ; }
 027E           ; 
 027E           ; /*****************定时器1初始化*************/
 027E           ; void timer1_init(void)
 027E           ; {
 027E                   .dbline 231
 027E           ;  TCNT1H = 0xF3; //setup
 027E 83EF              ldi R24,243
 0280 8DBD              out 0x2d,R24
 0282                   .dbline 232
 0282           ;  TCNT1L = 0xCB;
 0282 8BEC              ldi R24,203
 0284 8CBD              out 0x2c,R24
 0286                   .dbline 233
 0286           ;  TCCR1B = 0x04; //start Timer
 0286 84E0              ldi R24,4
 0288 8EBD              out 0x2e,R24
 028A                   .dbline -2
 028A           L78:
 028A                   .dbline 0 ; func end
 028A 0895              ret
 028C                   .dbend
 028C                   .dbfunc e main _main fV
 028C           ;        key_val -> R22
                        .even
 028C           _main::
 028C 2297              sbiw R28,2
 028E                   .dbline -1
 028E                   .dbline 238
 028E           ; }
 028E           ; 
 028E           ; //******************************************
 028E           ; void main(void)                               
 028E           ; {
 028E                   .dbline 240
 028E           ;        uchar key_val; 
 028E           ;        init_devices();
 028E B3D1              xcall _init_devices
 0290                   .dbline 241
 0290           ;     delay_ms(400);                    
 0290 00E9              ldi R16,400
 0292 11E0              ldi R17,1
 0294 BAD1              xcall _delay_ms
 0296                   .dbline 242
 0296           ;       InitLcd();              
 0296 FFDE              xcall _InitLcd
 0298                   .dbline 243
 0298           ;       LcdWriteCommand(0x01,1); 
 0298 21E0              ldi R18,1
 029A 01E0              ldi R16,1
 029C 1EDF              xcall _LcdWriteCommand
 029E                   .dbline 244
 029E           ;       LcdWriteCommand(0x0c,1); 
 029E 21E0              ldi R18,1
 02A0 0CE0              ldi R16,12
 02A2 1BDF              xcall _LcdWriteCommand
 02A4                   .dbline 245
 02A4           ;       ePutstr(0,0,str0);  
 02A4 80E0              ldi R24,<_str0
 02A6 90E0              ldi R25,>_str0
 02A8 9983              std y+1,R25
 02AA 8883              std y+0,R24
 02AC 2227              clr R18
 02AE 0027              clr R16
 02B0 A7DE              xcall _ePutstr
 02B2                   .dbline 246
 02B2           ;       delay_ms(10);
 02B2 0AE0              ldi R16,10
 02B4 10E0              ldi R17,0
 02B6 A9D1              xcall _delay_ms
 02B8                   .dbline 247
 02B8           ;       ePutstr(0,1,str1);  
 02B8 80E0              ldi R24,<_str1
 02BA 90E0              ldi R25,>_str1
 02BC 9983              std y+1,R25
 02BE 8883              std y+0,R24
 02C0 21E0              ldi R18,1
 02C2 0027              clr R16
 02C4 9DDE              xcall _ePutstr
 02C6                   .dbline 248
 02C6           ;       delay_ms(10);
 02C6 0AE0              ldi R16,10
 02C8 10E0              ldi R17,0
 02CA 9FD1              xcall _delay_ms
 02CC 42C1              xjmp L81

⌨️ 快捷键说明

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