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

📄 ac15-3.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02C4           ;       /********************************************/
 02C4           ;               while(1)              
 02C4           ;               {
 02C4                   .dbline 232
 02C4           ;                  DisplayOneChar(9,0,wr_val/100+0x30);  
 02C4 14E6              ldi R17,100
 02C6 042F              mov R16,R20
 02C8 0E940000          xcall div8u
 02CC 802F              mov R24,R16
 02CE 805D              subi R24,208    ; addi 48
 02D0 8883              std y+0,R24
 02D2 2227              clr R18
 02D4 09E0              ldi R16,9
 02D6 D3DE              xcall _DisplayOneChar
 02D8                   .dbline 233
 02D8           ;                  delay_ms(10);
 02D8 0AE0              ldi R16,10
 02DA 10E0              ldi R17,0
 02DC 99D0              xcall _delay_ms
 02DE                   .dbline 234
 02DE           ;                  DisplayOneChar(10,0,(wr_val/10)%10+0x30); 
 02DE 1AE0              ldi R17,10
 02E0 042F              mov R16,R20
 02E2 0E940000          xcall div8u
 02E6 1AE0              ldi R17,10
 02E8 0E940000          xcall mod8u
 02EC 802F              mov R24,R16
 02EE 805D              subi R24,208    ; addi 48
 02F0 8883              std y+0,R24
 02F2 2227              clr R18
 02F4 0AE0              ldi R16,10
 02F6 C3DE              xcall _DisplayOneChar
 02F8                   .dbline 235
 02F8           ;                  delay_ms(10);
 02F8 0AE0              ldi R16,10
 02FA 10E0              ldi R17,0
 02FC 89D0              xcall _delay_ms
 02FE                   .dbline 236
 02FE           ;                  DisplayOneChar(11,0,wr_val%10+0x30);   
 02FE 1AE0              ldi R17,10
 0300 042F              mov R16,R20
 0302 0E940000          xcall mod8u
 0306 802F              mov R24,R16
 0308 805D              subi R24,208    ; addi 48
 030A 8883              std y+0,R24
 030C 2227              clr R18
 030E 0BE0              ldi R16,11
 0310 B6DE              xcall _DisplayOneChar
 0312                   .dbline 237
 0312           ;                  delay_ms(10);
 0312 0AE0              ldi R16,10
 0314 10E0              ldi R17,0
 0316 7CD0              xcall _delay_ms
 0318                   .dbline 239
 0318           ;          
 0318           ;                  DisplayOneChar(8,1,rd_val/100+0x30);   
 0318 14E6              ldi R17,100
 031A 062F              mov R16,R22
 031C 0E940000          xcall div8u
 0320 802F              mov R24,R16
 0322 805D              subi R24,208    ; addi 48
 0324 8883              std y+0,R24
 0326 21E0              ldi R18,1
 0328 08E0              ldi R16,8
 032A A9DE              xcall _DisplayOneChar
 032C                   .dbline 240
 032C           ;                  delay_ms(10);
 032C 0AE0              ldi R16,10
 032E 10E0              ldi R17,0
 0330 6FD0              xcall _delay_ms
 0332                   .dbline 241
 0332           ;                  DisplayOneChar(9,1,(rd_val/10%10)+0x30);      
 0332 1AE0              ldi R17,10
 0334 062F              mov R16,R22
 0336 0E940000          xcall div8u
 033A 1AE0              ldi R17,10
 033C 0E940000          xcall mod8u
 0340 802F              mov R24,R16
 0342 805D              subi R24,208    ; addi 48
 0344 8883              std y+0,R24
 0346 21E0              ldi R18,1
 0348 09E0              ldi R16,9
 034A 99DE              xcall _DisplayOneChar
 034C                   .dbline 242
 034C           ;                  delay_ms(10);
 034C 0AE0              ldi R16,10
 034E 10E0              ldi R17,0
 0350 5FD0              xcall _delay_ms
 0352                   .dbline 243
 0352           ;                  DisplayOneChar(10,1,rd_val%10+0x30);   
 0352 1AE0              ldi R17,10
 0354 062F              mov R16,R22
 0356 0E940000          xcall mod8u
 035A 802F              mov R24,R16
 035C 805D              subi R24,208    ; addi 48
 035E 8883              std y+0,R24
 0360 21E0              ldi R18,1
 0362 0AE0              ldi R16,10
 0364 8CDE              xcall _DisplayOneChar
 0366                   .dbline 244
 0366           ;                  delay_ms(10);
 0366 0AE0              ldi R16,10
 0368 10E0              ldi R17,0
 036A 52D0              xcall _delay_ms
 036C                   .dbline 246
 036C           ;                  
 036C           ;                  key_val=scan_key();  
 036C F9DE              xcall _scan_key
 036E A02E              mov R10,R16
 0370                   .dbline 247
 0370           ;                  switch(key_val)              
 0370 CA2C              mov R12,R10
 0372 DD24              clr R13
 0374 C601              movw R24,R12
 0376 8F3B              cpi R24,191
 0378 E0E0              ldi R30,0
 037A 9E07              cpc R25,R30
 037C 11F1              breq L91
 037E 8FEB              ldi R24,191
 0380 8C15              cp R24,R12
 0382 9D05              cpc R25,R13
 0384 34F0              brlt L94
 0386           L93:
 0386 C601              movw R24,R12
 0388 8F37              cpi R24,127
 038A E0E0              ldi R30,0
 038C 9E07              cpc R25,R30
 038E 11F1              breq L92
 0390 29C0              xjmp L83
 0392           L94:
 0392 C601              movw R24,R12
 0394 8F3D              cpi R24,223
 0396 E0E0              ldi R30,0
 0398 9E07              cpc R25,R30
 039A 71F0              breq L88
 039C 8F3D              cpi R24,223
 039E E0E0              ldi R30,0
 03A0 9E07              cpc R25,R30
 03A2 04F1              brlt L83
 03A4           L95:
 03A4 C601              movw R24,R12
 03A6 8F3E              cpi R24,239
 03A8 E0E0              ldi R30,0
 03AA 9E07              cpc R25,R30
 03AC 09F0              breq L85
 03AE 1AC0              xjmp L83
 03B0           X0:
 03B0                   .dbline 248
 03B0           ;                  {                            
 03B0           L85:
 03B0                   .dbline 249
 03B0           ;                       case 0xef:if(wr_val<255)wr_val++;break; 
 03B0 4F3F              cpi R20,255
 03B2 C0F4              brsh L83
 03B4                   .dbline 249
 03B4 4395              inc R20
 03B6                   .dbline 249
 03B6 16C0              xjmp L83
 03B8           L88:
 03B8                   .dbline 250
 03B8           ;                       case 0xdf:if(wr_val>0)wr_val--;break;   
 03B8 2224              clr R2
 03BA 2416              cp R2,R20
 03BC 98F4              brsh L83
 03BE                   .dbline 250
 03BE 4A95              dec R20
 03C0                   .dbline 250
 03C0 11C0              xjmp L83
 03C2           L91:
 03C2                   .dbline 251
 03C2           ;                       case 0xbf:i2c_Write(10,wr_val); 
 03C2 242F              mov R18,R20
 03C4 0AE0              ldi R16,10
 03C6 1EDF              xcall _i2c_Write
 03C8                   .dbline 252
 03C8           ;                                DisplayOneChar(15,0,0xef);break;
 03C8 8FEE              ldi R24,239
 03CA 8883              std y+0,R24
 03CC 2227              clr R18
 03CE 0FE0              ldi R16,15
 03D0 56DE              xcall _DisplayOneChar
 03D2                   .dbline 252
 03D2 08C0              xjmp L83
 03D4           L92:
 03D4                   .dbline 253
 03D4           ;                       case 0x7f:rd_val=i2c_Read(10); 
 03D4 0AE0              ldi R16,10
 03D6 C6DE              xcall _i2c_Read
 03D8 602F              mov R22,R16
 03DA                   .dbline 254
 03DA           ;                            DisplayOneChar(15,1,0xef);break;
 03DA 8FEE              ldi R24,239
 03DC 8883              std y+0,R24
 03DE 21E0              ldi R18,1
 03E0 0FE0              ldi R16,15
 03E2 4DDE              xcall _DisplayOneChar
 03E4                   .dbline 254
 03E4                   .dbline 255
 03E4           ;                       default:break;          
 03E4           L83:
 03E4                   .dbline 257
 03E4 08EC              ldi R16,200
 03E6 10E0              ldi R17,0
 03E8 13D0              xcall _delay_ms
 03EA                   .dbline 258
 03EA 80E2              ldi R24,32
 03EC 8883              std y+0,R24
 03EE 2227              clr R18
 03F0 0FE0              ldi R16,15
 03F2 45DE              xcall _DisplayOneChar
 03F4                   .dbline 258
 03F4 0AE0              ldi R16,10
 03F6 10E0              ldi R17,0
 03F8 0BD0              xcall _delay_ms
 03FA                   .dbline 259
 03FA 80E2              ldi R24,32
 03FC 8883              std y+0,R24
 03FE 21E0              ldi R18,1
 0400 0FE0              ldi R16,15
 0402 3DDE              xcall _DisplayOneChar
 0404                   .dbline 259
 0404 0AE0              ldi R16,10
 0406 10E0              ldi R17,0
 0408 03D0              xcall _delay_ms
 040A                   .dbline 261
 040A           L80:
 040A                   .dbline 230
 040A 5CCF              xjmp L79
 040C           X1:
 040C                   .dbline -2
 040C           L78:
 040C 2296              adiw R28,2
 040E                   .dbline 0 ; func end
 040E 0895              ret
 0410                   .dbsym r key_val 10 c
 0410                   .dbsym r rd_val 22 c
 0410                   .dbsym r wr_val 20 c
 0410                   .dbend
 0410                   .dbfunc e delay_ms _delay_ms fV
 0410           ;           time -> R20,R21
                        .even
 0410           _delay_ms::
 0410 0E940000          xcall push_gset1
 0414 A801              movw R20,R16
 0416                   .dbline -1
 0416                   .dbline 267
 0416           ;                       }                               
 0416           ;                       delay_ms(200); 
 0416           ;                       DisplayOneChar(15,0,0x20);delay_ms(10); 
 0416           ;                       DisplayOneChar(15,1,0x20);delay_ms(10); 
 0416           ;                                       
 0416           ;                }                              
 0416           ;       
 0416           ; }
 0416           ;                  
 0416           ; /*********************延时time*1ms子函数*********************/
 0416           ; void delay_ms(unsigned int time)
 0416           ;        {
 0416 05C0              xjmp L98
 0418           L97:
 0418                   .dbline 269
 0418                   .dbline 270
 0418 08EE              ldi R16,1000
 041A 13E0              ldi R17,3
 041C 08D0              xcall _delay_us
 041E                   .dbline 271
 041E 4150              subi R20,1
 0420 5040              sbci R21,0
 0422                   .dbline 272
 0422           L98:
 0422                   .dbline 268
 0422           ;         while(time!=0)
 0422 4030              cpi R20,0
 0424 4507              cpc R20,R21
 0426 C1F7              brne L97
 0428           X2:
 0428                   .dbline -2
 0428           L96:
 0428 0E940000          xcall pop_gset1
 042C                   .dbline 0 ; func end
 042C 0895              ret
 042E                   .dbsym r time 20 i
 042E                   .dbend
 042E                   .dbfunc e delay_us _delay_us fV
 042E           ;           time -> R16,R17
                        .even
 042E           _delay_us::
 042E                   .dbline -1
 042E                   .dbline 277
 042E           ;                 {             
 042E           ;                  delay_us(1000);
 042E           ;                  time--;
 042E           ;                 }
 042E           ;        }
 042E           ;                                               
 042E           ; /********************延时子函数*********************/
 042E           ; void delay_us(int time)
 042E           ;        {     
 042E           L101:
 042E                   .dbline 279
 042E           ;         do
 042E           ;               {
 042E                   .dbline 280
 042E           ;                time--;
 042E 0150              subi R16,1
 0430 1040              sbci R17,0
 0432                   .dbline 281
 0432           ;               }       
 0432           L102:
 0432                   .dbline 282
 0432           ;         while (time>1);
 0432 81E0              ldi R24,1
 0434 90E0              ldi R25,0
 0436 8017              cp R24,R16
 0438 9107              cpc R25,R17
 043A CCF3              brlt L101
 043C                   .dbline -2
 043C           L100:
 043C                   .dbline 0 ; func end
 043C 0895              ret
 043E                   .dbsym r time 16 I
 043E                   .dbend

⌨️ 快捷键说明

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