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

📄 display_board2.1.lis

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

⌨️ 快捷键说明

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