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

📄 feedis_spi.lis

📁 AVR系列单片机ATMEGA64开发的LED显示屏程序 内容包括ATMEGA64大部分资源的初始化程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 021E           ;                                               if(!ISDmoney[temp-1])
 021E 80E0              ldi R24,<_ISDmoney-1
 0220 90E0              ldi R25,>_ISDmoney-1
 0222 E0910000          lds R30,L13
 0226 FF27              clr R31
 0228 E80F              add R30,R24
 022A F91F              adc R31,R25
 022C 2080              ldd R2,z+0
 022E 2220              tst R2
 0230 31F4              brne L43
 0232                   .dbline 224
 0232           ;                                               {
 0232                   .dbline 226
 0232           ;                                                       
 0232           ;                                                       temp--;
 0232 80910000          lds R24,L13
 0236 8150              subi R24,1
 0238 80930000          sts L13,R24
 023C                   .dbline 228
 023C           ;                                                       
 023C           ;                                               }
 023C 1BC0              xjmp L44
 023E           L43:
 023E                   .dbline 230
 023E           ;                                               else 
 023E           ;                                               {
 023E                   .dbline 231
 023E           ;                                                       ISDstatus &= 0b11100111;
 023E 80910600          lds R24,_ISDstatus
 0242 877E              andi R24,231
 0244 80930600          sts _ISDstatus,R24
 0248                   .dbline 232
 0248           ;                                                       ISDstatus += (--temp) << 3; 
 0248 80910000          lds R24,L13
 024C 8150              subi R24,1
 024E 282E              mov R2,R24
 0250 20920000          sts L13,R2
 0254 220C              lsl R2
 0256 220C              lsl R2
 0258 220C              lsl R2
 025A 30900600          lds R3,_ISDstatus
 025E 320C              add R3,R2
 0260 30920600          sts _ISDstatus,R3
 0264                   .dbline 233
 0264           ;                                                       if((temp1 > 0) )
 0264 2224              clr R2
 0266 2416              cp R2,R20
 0268 08F0              brlo X9
 026A 8EC0              xjmp L26
 026C           X9:
 026C                   .dbline 234
 026C           ;                                                               temp = 4;
 026C 84E0              ldi R24,4
 026E 80930000          sts L13,R24
 0272                   .dbline 235
 0272           ;                                                       break;
 0272 8AC0              xjmp L26
 0274           L44:
 0274                   .dbline 237
 0274           ;                                               }
 0274           ;                                               temp1++;
 0274 4395              inc R20
 0276                   .dbline 238
 0276           ;                                               if(temp1 == 2)
 0276 4230              cpi R20,2
 0278 69F4              brne L48
 027A                   .dbline 239
 027A           ;                                               {
 027A                   .dbline 240
 027A           ;                                                       ISDstatus &= 0x1f;
 027A 80910600          lds R24,_ISDstatus
 027E 8F71              andi R24,31
 0280 80930600          sts _ISDstatus,R24
 0284                   .dbline 241
 0284           ;                                                       ISDstatus |= 0x80;
 0284 80910600          lds R24,_ISDstatus
 0288 8068              ori R24,128
 028A 80930600          sts _ISDstatus,R24
 028E                   .dbline 242
 028E           ;                                                       SPEAK = 0;
 028E 2224              clr R2
 0290 20920000          sts _SPEAK,R2
 0294                   .dbline 243
 0294           ;                                               }
 0294           L48:
 0294                   .dbline 245
 0294           L41:
 0294                   .dbline 221
 0294 4230              cpi R20,2
 0296 08F4              brsh X10
 0298 C2CF              xjmp L40
 029A           X10:
 029A                   .dbline 246
 029A           ;                                                       
 029A           ;                                       }
 029A           ;                                       break;
 029A 76C0              xjmp L26
 029C           L50:
 029C                   .dbline 248
 029C           ;                               case 1:
 029C           ;                                       ISDplay(ISDmoney[temp]+64);
 029C 80E0              ldi R24,<_ISDmoney
 029E 90E0              ldi R25,>_ISDmoney
 02A0 E0910000          lds R30,L13
 02A4 FF27              clr R31
 02A6 E80F              add R30,R24
 02A8 F91F              adc R31,R25
 02AA 0081              ldd R16,z+0
 02AC 005C              subi R16,192    ; addi 64
 02AE DFDE              xcall _ISDplay
 02B0                   .dbline 249
 02B0           ;                                       temp1 = 0;
 02B0 4427              clr R20
 02B2 3BC0              xjmp L52
 02B4           L51:
 02B4                   .dbline 251
 02B4           ;                                       while(temp1 < 1)
 02B4           ;                                       {
 02B4                   .dbline 252
 02B4           ;                                               if(!ISDmoney[temp-1])
 02B4 80E0              ldi R24,<_ISDmoney-1
 02B6 90E0              ldi R25,>_ISDmoney-1
 02B8 E0910000          lds R30,L13
 02BC FF27              clr R31
 02BE E80F              add R30,R24
 02C0 F91F              adc R31,R25
 02C2 2080              ldd R2,z+0
 02C4 2220              tst R2
 02C6 31F4              brne L54
 02C8                   .dbline 253
 02C8           ;                                               {
 02C8                   .dbline 255
 02C8           ;                                                       
 02C8           ;                                                       temp--;
 02C8 80910000          lds R24,L13
 02CC 8150              subi R24,1
 02CE 80930000          sts L13,R24
 02D2                   .dbline 257
 02D2           ;                                                       
 02D2           ;                                               }
 02D2 1BC0              xjmp L55
 02D4           L54:
 02D4                   .dbline 259
 02D4           ;                                               else 
 02D4           ;                                               {
 02D4                   .dbline 260
 02D4           ;                                                       ISDstatus &= 0b11100111;
 02D4 80910600          lds R24,_ISDstatus
 02D8 877E              andi R24,231
 02DA 80930600          sts _ISDstatus,R24
 02DE                   .dbline 261
 02DE           ;                                                       ISDstatus += (--temp) << 3; 
 02DE 80910000          lds R24,L13
 02E2 8150              subi R24,1
 02E4 282E              mov R2,R24
 02E6 20920000          sts L13,R2
 02EA 220C              lsl R2
 02EC 220C              lsl R2
 02EE 220C              lsl R2
 02F0 30900600          lds R3,_ISDstatus
 02F4 320C              add R3,R2
 02F6 30920600          sts _ISDstatus,R3
 02FA                   .dbline 262
 02FA           ;                                                       if((temp1 > 0) )
 02FA 2224              clr R2
 02FC 2416              cp R2,R20
 02FE 08F0              brlo X11
 0300 43C0              xjmp L26
 0302           X11:
 0302                   .dbline 263
 0302           ;                                                               temp = 4;
 0302 84E0              ldi R24,4
 0304 80930000          sts L13,R24
 0308                   .dbline 264
 0308           ;                                                       break;
 0308 3FC0              xjmp L26
 030A           L55:
 030A                   .dbline 266
 030A           ;                                               }
 030A           ;                                               temp1++;
 030A 4395              inc R20
 030C                   .dbline 267
 030C           ;                                               if(temp1 == 1)
 030C 4130              cpi R20,1
 030E 69F4              brne L59
 0310                   .dbline 268
 0310           ;                                               {
 0310                   .dbline 269
 0310           ;                                                       ISDstatus &= 0x1f;
 0310 80910600          lds R24,_ISDstatus
 0314 8F71              andi R24,31
 0316 80930600          sts _ISDstatus,R24
 031A                   .dbline 270
 031A           ;                                                       ISDstatus |= 0x80;
 031A 80910600          lds R24,_ISDstatus
 031E 8068              ori R24,128
 0320 80930600          sts _ISDstatus,R24
 0324                   .dbline 271
 0324           ;                                                       SPEAK = 0;
 0324 2224              clr R2
 0326 20920000          sts _SPEAK,R2
 032A                   .dbline 272
 032A           ;                                               }
 032A           L59:
 032A                   .dbline 273
 032A           L52:
 032A                   .dbline 250
 032A 4130              cpi R20,1
 032C 08F4              brsh X12
 032E C2CF              xjmp L51
 0330           X12:
 0330                   .dbline 274
 0330           ;                                       }
 0330           ;                                       break;
 0330 2BC0              xjmp L26
 0332           L61:
 0332                   .dbline 276
 0332           ;                               case 0:
 0332           ;                                       if(ISDmoney[temp])
 0332 80E0              ldi R24,<_ISDmoney
 0334 90E0              ldi R25,>_ISDmoney
 0336 E0910000          lds R30,L13
 033A FF27              clr R31
 033C E80F              add R30,R24
 033E F91F              adc R31,R25
 0340 2080              ldd R2,z+0
 0342 2220              tst R2
 0344 49F0              breq L62
 0346                   .dbline 277
 0346           ;                                               ISDplay(ISDmoney[temp]+54);
 0346 E0910000          lds R30,L13
 034A FF27              clr R31
 034C E80F              add R30,R24
 034E F91F              adc R31,R25
 0350 0081              ldd R16,z+0
 0352 0A5C              subi R16,202    ; addi 54
 0354 8CDE              xcall _ISDplay
 0356 05C0              xjmp L63
 0358           L62:
 0358                   .dbline 279
 0358           ;                                       else
 0358           ;                                               ISDstatus &= 0xfd;
 0358 80910600          lds R24,_ISDstatus
 035C 8D7F              andi R24,253
 035E 80930600          sts _ISDstatus,R24
 0362           L63:
 0362                   .dbline 280
 0362           ;                                       ISDstatus &= 0x1f;
 0362 80910600          lds R24,_ISDstatus
 0366 8F71              andi R24,31
 0368 80930600          sts _ISDstatus,R24
 036C                   .dbline 281
 036C           ;                                       ISDstatus |= 0x80;
 036C 80910600          lds R24,_ISDstatus
 0370 8068              ori R24,128
 0372 80930600          sts _ISDstatus,R24
 0376                   .dbline 282
 0376           ;                                       SPEAK = 0;
 0376 2224              clr R2
 0378 20920000          sts _SPEAK,R2
 037C                   .dbline 283
 037C           ;                                       break;
 037C 05C0              xjmp L26
 037E           L64:
 037E                   .dbline 285
 037E           ;                               case 4:
 037E           ;                                       ISDplay(54);
 037E 06E3              ldi R16,54
 0380 76DE              xcall _ISDplay
 0382                   .dbline 286
 0382           ;                                       temp = 5;
 0382 85E0              ldi R24,5
 0384 80930000          sts L13,R24
 0388                   .dbline 287
 0388           ;                                       break;
 0388                   .dbline 289
 0388           ;                               default:
 0388           ;                                       break;
 0388           L26:
 0388                   .dbline 294
 0388           ;                       }
 0388           ;                       //ISDstatus |= 0x02;
 0388           ;                       
 0388           ;                       //ISDstatus |= 0x02;
 0388           ;                       return 0;
 0388 0027              clr R16
 038A 10C0              xjmp L12
 038C           L21:
 038C                   .dbline 296
 038C           ;               }
 038C           ;               if((ISDstatus & 0xe0) == 0x80  && SPEAK)
 038C 80910600          lds R24,_ISDstatus
 0390 807E              andi R24,224
 0392 8038              cpi R24,128
 0394 59F4              brne L65
 0396 20900000          lds R2,_SPEAK
 039A 2220              tst R2
 039C 39F0              breq L65
 039E                   .dbline 297
 039E           ;                       {
 039E                   .dbline 298
 039E           ;                               ISDplay(44);    //
 039E 0CE2              ldi R16,44
 03A0 66DE              xcall _ISDplay
 03A2                   .dbline 299
 03A2           ;                               ISDstatus &= 0xfc; 
 03A2 80910600          lds R24,_ISDstatus
 03A6 8C7F              andi R24,252
 03A8 80930600          sts _ISDstatus,R24
 03AC                   .dbline 301
 03AC           ;                               
 03AC           ;                       }
 03AC           L65:
 03AC                   .dbline 303
 03AC           ;               //if(ISDstatus & 0x04)   //paly the money voice
 03AC           ;               {
 03AC                   .dbline 318
 03AC           ;                       /*if((ISDstatus & 0xe0) == 0xe0)                //play "thank you"
 03AC           ;                       {
 03AC           ;                               ISDplay(THANKYOU);
 03AC           ;                               ISDstatus &= 0b11111110;                //clear the bit 0,then wait for the end of this voice
 03AC           ;                               return 0;
 03AC           ;                       }
 03AC           ;                       temp = (ISDstatus>>3) & 0x03;
 03AC           ;                       ISDstatus &= 0b00000011;                //clear the bit 2-bit 7
 03AC           ;                       ISDstatus += temp << 2 + 3;
 03AC           ;                       
 03AC           ;                       
 03AC           ;                       
 03AC           ;                       ISDstatus |= 0b00000010;        //set the busy bit
 03AC           ;                       */
 03AC           ;               }
 03AC                   .dbline -2
 03AC           L12:
 03AC 0E940000          xcall pop_gset1
 03B0                   .dbline 0 ; func end
 03B0 0895              ret
 03B2                   .dbsym r temp1 20 c
 03B2                   .dbend
                        .area bss(ram, con, rel)
 0001                   .dbfile C:\DOCUME~1\11111\桌面\13个费显MEGA64\重显MEGA64\feedis_spi.c
 0001           _ISDmoney::
 0001                   .blkb 5
 0006                   .dbsym e ISDmoney _ISDmoney A[5:5]c
 0006           _ISDstatus::
 0006                   .blkb 1
 0007                   .dbsym e ISDstatus _ISDstatus c

⌨️ 快捷键说明

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