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

📄 display_board3.0.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0392           ; //存储数据到外部RAM
 0392           ; 
 0392           ; void data_store(char data)
 0392           ; {
 0392                   .dbline 283
 0392           ;    if((data ==76) &&(FileEnd ==1))     //数据起始位检测
 0392 4C34              cpi R20,76
 0394 79F4              brne L70
 0396 80912500          lds R24,_FileEnd
 039A 8130              cpi R24,1
 039C 59F4              brne L70
 039E                   .dbline 284
 039E           ;    {
 039E                   .dbline 285
 039E           ;        HeadEN =1;                           //开启头文件数据传输
 039E 81E0              ldi R24,1
 03A0 80932700          sts _HeadEN,R24
 03A4                   .dbline 286
 03A4           ;          HeadLoad =0;                         //头文件指针清零
 03A4 2224              clr R2
 03A6 20922600          sts _HeadLoad,R2
 03AA                   .dbline 287
 03AA           ;          DataIndex =0;                        //存储数据指针清零
 03AA 3324              clr R3
 03AC 30922900          sts _DataIndex+1,R3
 03B0 20922800          sts _DataIndex,R2
 03B4                   .dbline 288
 03B4           ;    }
 03B4           L70:
 03B4                   .dbline 289
 03B4           ;    if((HeadEN ==0) &&(FileEnd ==0))
 03B4 20902700          lds R2,_HeadEN
 03B8 2220              tst R2
 03BA 09F0              breq X2
 03BC 44C0              xjmp L72
 03BE           X2:
 03BE 20902500          lds R2,_FileEnd
 03C2 2220              tst R2
 03C4 09F0              breq X3
 03C6 3FC0              xjmp L72
 03C8           X3:
 03C8                   .dbline 290
 03C8           ;    {
 03C8                   .dbline 291
 03C8           ;          RAM_Write(DataIndex,data);            //数组送数
 03C8 242F              mov R18,R20
 03CA 00912800          lds R16,_DataIndex
 03CE 10912900          lds R17,_DataIndex+1
 03D2 B0DF              xcall _RAM_Write
 03D4                   .dbline 292
 03D4           ;          DataIndex++;
 03D4 80912800          lds R24,_DataIndex
 03D8 90912900          lds R25,_DataIndex+1
 03DC 0196              adiw R24,1
 03DE 90932900          sts _DataIndex+1,R25
 03E2 80932800          sts _DataIndex,R24
 03E6                   .dbline 293
 03E6           ;          if(DataIndex <2)                      //送文件长度数据到变量
 03E6 8230              cpi R24,2
 03E8 E0E0              ldi R30,0
 03EA 9E07              cpc R25,R30
 03EC 34F4              brge L74
 03EE                   .dbline 294
 03EE           ;          {
 03EE                   .dbline 296
 03EE           ;              //FileLength =data;    
 03EE           ;              FileLength =1216;
 03EE 80EC              ldi R24,1216
 03F0 94E0              ldi R25,4
 03F2 90932B00          sts _FileLength+1,R25
 03F6 80932A00          sts _FileLength,R24
 03FA                   .dbline 297
 03FA           ;          }
 03FA           L74:
 03FA                   .dbline 298
 03FA           ;          if(DataIndex ==1)                      //送文件长度数据到变量
 03FA 80912800          lds R24,_DataIndex
 03FE 90912900          lds R25,_DataIndex+1
 0402 8130              cpi R24,1
 0404 E0E0              ldi R30,0
 0406 9E07              cpc R25,R30
 0408 01F4              brne L76
 040A                   .dbline 299
 040A           ;          {
 040A                   .dbline 301
 040A           ;              //FileLength =data |(FileLength<<8);    
 040A           ;          }                                     //数据指针
 040A           L76:
 040A                   .dbline 302
 040A           ;          if(((DataIndex >=FileLength)||(DataIndex >=1216))&& (DataIndex >16))
 040A 20902A00          lds R2,_FileLength
 040E 30902B00          lds R3,_FileLength+1
 0412 40902800          lds R4,_DataIndex
 0416 50902900          lds R5,_DataIndex+1
 041A 4214              cp R4,R2
 041C 5304              cpc R5,R3
 041E 2CF4              brge L80
 0420 C201              movw R24,R4
 0422 803C              cpi R24,192
 0424 E4E0              ldi R30,4
 0426 9E07              cpc R25,R30
 0428 74F0              brlt L78
 042A           L80:
 042A 80E1              ldi R24,16
 042C 90E0              ldi R25,0
 042E 20902800          lds R2,_DataIndex
 0432 30902900          lds R3,_DataIndex+1
 0436 8215              cp R24,R2
 0438 9305              cpc R25,R3
 043A 2CF4              brge L78
 043C                   .dbline 303
 043C           ;          {
 043C                   .dbline 304
 043C           ;                  HeadEN =1;
 043C 81E0              ldi R24,1
 043E 80932700          sts _HeadEN,R24
 0442                   .dbline 305
 0442           ;                  FileEnd =1;
 0442 80932500          sts _FileEnd,R24
 0446                   .dbline 306
 0446           ;          }
 0446           L78:
 0446                   .dbline 307
 0446           ;    }
 0446           L72:
 0446                   .dbline 308
 0446           ;    if(HeadEN ==1)                            //循环检测文件起始标志
 0446 80912700          lds R24,_HeadEN
 044A 8130              cpi R24,1
 044C 01F5              brne L81
 044E                   .dbline 309
 044E           ;    {
 044E                   .dbline 310
 044E           ;       Head[HeadLoad] =data;
 044E 80E0              ldi R24,<_Head
 0450 90E0              ldi R25,>_Head
 0452 E0912600          lds R30,_HeadLoad
 0456 FF27              clr R31
 0458 E80F              add R30,R24
 045A F91F              adc R31,R25
 045C 4083              std z+0,R20
 045E                   .dbline 311
 045E           ;       HeadLoad++;
 045E 80912600          lds R24,_HeadLoad
 0462 8F5F              subi R24,255    ; addi 1
 0464 80932600          sts _HeadLoad,R24
 0468                   .dbline 312
 0468           ;         if(HeadLoad ==3)
 0468 8330              cpi R24,3
 046A 89F4              brne L83
 046C                   .dbline 313
 046C           ;         { 
 046C                   .dbline 314
 046C           ;            if((Head[0] ==76) && (Head[1] ==69) &&(Head[2] ==68))//文件起始表示吻合
 046C 80910000          lds R24,_Head
 0470 8C34              cpi R24,76
 0472 69F4              brne L85
 0474 80910100          lds R24,_Head+1
 0478 8534              cpi R24,69
 047A 49F4              brne L85
 047C 80910200          lds R24,_Head+2
 0480 8434              cpi R24,68
 0482 29F4              brne L85
 0484                   .dbline 315
 0484           ;                {
 0484                   .dbline 316
 0484           ;                    HeadEN =0;
 0484 2224              clr R2
 0486 20922700          sts _HeadEN,R2
 048A                   .dbline 317
 048A           ;                        FileEnd =0;
 048A 20922500          sts _FileEnd,R2
 048E                   .dbline 318
 048E           ;                }
 048E           L85:
 048E                   .dbline 319
 048E           ;       }
 048E           L83:
 048E                   .dbline 320
 048E           L81:
 048E                   .dbline -2
 048E           L69:
 048E 0E940000          xcall pop_gset1
 0492                   .dbline 0 ; func end
 0492 0895              ret
 0494                   .dbsym r data 20 c
 0494                   .dbend
 0494                   .dbfunc e Disp_Model _Disp_Model fV
 0494           ;       PFileMax -> R16,R17
 0494           ;    file_length -> R18,R19
                        .even
 0494           _Disp_Model::
 0494                   .dbline -1
 0494                   .dbline 328
 0494           ;    }
 0494           ; }
 0494           ; /**************************************************
 0494           ; 
 0494           ;                        显示效果处理    
 0494           ;                        
 0494           ; ****************************************************/
 0494           ; void Disp_Model(void)
 0494           ; {   
 0494                   .dbline 329
 0494           ;     unsigned int file_length =0;
 0494 2227              clr R18
 0496 3327              clr R19
 0498                   .dbline 333
 0498           ;       int PFileMax;
 0498           ;       //DispModel =RAM_Read(2) & (RAM_Read(3)<<8);                     //model控制字节
 0498           ;       //PFileMax =(RAM_Read(0) & RAM_Read(1)<<8)>>3;       //计算缓冲区域的最大列数
 0498           ;       if(ModelDelayTime ==0)
 0498 20903000          lds R2,_ModelDelayTime
 049C 30903100          lds R3,_ModelDelayTime+1
 04A0 2220              tst R2
 04A2 09F0              breq X8
 04A4 84C0              xjmp L90
 04A6           X8:
 04A6 3320              tst R3
 04A8 09F0              breq X9
 04AA 81C0              xjmp L90
 04AC           X9:
 04AC           X4:
 04AC                   .dbline 334
 04AC           ;       {
 04AC                   .dbline 335
 04AC           ;            switch(DispModel)
 04AC 20912F00          lds R18,_DispModel
 04B0 3327              clr R19
 04B2 2030              cpi R18,0
 04B4 2307              cpc R18,R19
 04B6 B9F0              breq L95
 04B8           X5:
 04B8 2130              cpi R18,1
 04BA E0E0              ldi R30,0
 04BC 3E07              cpc R19,R30
 04BE F9F0              breq L96
 04C0 2230              cpi R18,2
 04C2 E0E0              ldi R30,0
 04C4 3E07              cpc R19,R30
 04C6 29F1              breq L97
 04C8 2330              cpi R18,3
 04CA E0E0              ldi R30,0
 04CC 3E07              cpc R19,R30
 04CE 09F4              brne X10
 04D0 68C0              xjmp L93
 04D2           X10:
 04D2 2430              cpi R18,4
 04D4 E0E0              ldi R30,0
 04D6 3E07              cpc R19,R30
 04D8 31F1              breq L99
 04DA 2530              cpi R18,5
 04DC E0E0              ldi R30,0
 04DE 3E07              cpc R19,R30
 04E0 09F4              brne X11
 04E2 5FC0              xjmp L93
 04E4           X11:
 04E4 5EC0              xjmp L92
 04E6           X6:
 04E6                   .dbline 336
 04E6           ;                {
 04E6           L95:
 04E6                   .dbline 338
 04E6           ;               case 0:
 04E6           ;                   {                //基本显示
 04E6                   .dbline 339
 04E6           ;                          PDataYMin =4;
 04E6 84E0              ldi R24,4
 04E8 90E0              ldi R25,0
 04EA 90932400          sts _PDataYMin+1,R25
 04EE 80932300          sts _PDataYMin,R24
 04F2                   .dbline 340
 04F2           ;                          PDataYMax =154;
 04F2 8AE9              ldi R24,154
 04F4 90932200          sts _PDataYMax+1,R25
 04F8 80932100          sts _PDataYMax,R24
 04FC                   .dbline 341
 04FC           ;                          break;
 04FC 52C0              xjmp L93
 04FE           L96:
 04FE                   .dbline 344
 04FE           ;                       }
 04FE           ;                       case 1:
 04FE           ;                   {                    //滚屏
 04FE                   .dbline 345
 04FE           ;                          PDataY++;
 04FE 80911F00          lds R24,_PDataY
 0502 90912000          lds R25,_PDataY+1
 0506 0196              adiw R24,1
 0508 90932000          sts _PDataY+1,R25
 050C 80931F00          sts _PDataY,R24
 0510                   .dbline 346
 0510           ;                          break;
 0510 48C0              xjmp L93
 0512           L97:
 0512                   .dbline 349
 0512           ;                   }
 0512           ;                       case 2:
 0512           ;                   {                            //反向滚屏
 0512                   .dbline 350
 0512           ;                          PDataY--;
 0512 80911F00          lds R24,_PDataY
 0516 90912000          lds R25,_PDataY+1
 051A 0197              sbiw R24,1
 051C 90932000          sts _PDataY+1,R25
 0520 80931F00          sts _PDataY,R24
 0524                   .dbline 351
 0524           ;                          break;
 0524 3EC0              xjmp L93
 0526           X7:
 0526                   .dbline 354
 0526           ;                   }
 0526           ;                       case 3:
 0526           ;                   {  
 0526                   .dbline 355
 0526           ;                          break;
 0526           L99:
 0526                   .dbline 358
 0526           ;   

⌨️ 快捷键说明

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