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

📄 display_board2.1.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0448           ;                  if (time_out_s ==20)  //结束标志
 0448 8431              cpi R24,20
 044A 51F4              brne L55
 044C                   .dbline 209
 044C           ;                  {
 044C                   .dbline 210
 044C           ;                         time_out_ms=1;         //闲置标志
 044C 81E0              ldi R24,1
 044E 90E0              ldi R25,0
 0450 90932D00          sts _time_out_ms+1,R25
 0454 80932C00          sts _time_out_ms,R24
 0458                   .dbline 211
 0458           ;                         HeadEN=1;
 0458 80932700          sts _HeadEN,R24
 045C                   .dbline 212
 045C           ;                         FileEnd=1;
 045C 80932500          sts _FileEnd,R24
 0460                   .dbline 214
 0460           ;                         //进行错误处理,并要跳出此结构体
 0460           ;                         {/**********/}
 0460                   .dbline 214
 0460                   .dbline 215
 0460           ;                  }
 0460           L55:
 0460                   .dbline 216
 0460           ;               }
 0460           L53:
 0460                   .dbline 217
 0460           ;               uart_TX(0xAA);                   //重复发送标志位
 0460 0AEA              ldi R16,170
 0462 CDDF              xcall _uart_TX
 0464                   .dbline 218
 0464           ;               time_out_ms--;   
 0464 80912C00          lds R24,_time_out_ms
 0468 90912D00          lds R25,_time_out_ms+1
 046C 0197              sbiw R24,1
 046E 90932D00          sts _time_out_ms+1,R25
 0472 80932C00          sts _time_out_ms,R24
 0476                   .dbline 219
 0476           ;        }
 0476           L51:
 0476                   .dbline 220
 0476 80912C00          lds R24,_time_out_ms
 047A 90912D00          lds R25,_time_out_ms+1
 047E 883E              cpi R24,232
 0480 E3E0              ldi R30,3
 0482 9E07              cpc R25,R30
 0484 31F4              brne L57
 0486                   .dbline 221
 0486 81E0              ldi R24,1
 0488 90E0              ldi R25,0
 048A 90932D00          sts _time_out_ms+1,R25
 048E 80932C00          sts _time_out_ms,R24
 0492           L57:
 0492                   .dbline -2
 0492           L50:
 0492                   .dbline 0 ; func end
 0492 0895              ret
 0494                   .dbend
 0494                   .dbfunc e SPI_data_send _SPI_data_send fV
 0494           ;          count -> R20
 0494           ;      send_data -> R22
                        .even
 0494           _SPI_data_send::
 0494 0E940000          xcall push_gset2
 0498 602F              mov R22,R16
 049A                   .dbline -1
 049A                   .dbline 228
 049A           ;        if (time_out_ms ==1000)
 049A           ;               time_out_ms=1;           //1 表示空闲状态
 049A           ; }
 049A           ; /***************************************************
 049A           ;                向显示屏送数据
 049A           ; ***************************************************/
 049A           ; 
 049A           ; void SPI_data_send(unsigned char send_data)       //向595送数据串
 049A           ; {  
 049A                   .dbline 230
 049A           ;    unsigned char count;
 049A           ;    for(count =0;count<8;count++)
 049A 4427              clr R20
 049C 11C0              xjmp L63
 049E           L60:
 049E                   .dbline 231
 049E           ;    {
 049E                   .dbline 232
 049E           ;       if(((send_data<<count)&0x80 )==0)
 049E 062F              mov R16,R22
 04A0 142F              mov R17,R20
 04A2 0E940000          xcall lsl8
 04A6 802F              mov R24,R16
 04A8 8078              andi R24,128
 04AA 21F4              brne L64
 04AC                   .dbline 233
 04AC           ;            PORTC &= 0b01111111;                                  //送 data
 04AC 85B3              in R24,0x15
 04AE 8F77              andi R24,127
 04B0 85BB              out 0x15,R24
 04B2 01C0              xjmp L65
 04B4           L64:
 04B4                   .dbline 235
 04B4           ;       else
 04B4           ;            PORTC |= 0b10000000;
 04B4 AF9A              sbi 0x15,7
 04B6           L65:
 04B6                   .dbline 236
 04B6 939A              sbi 0x12,3
 04B8                   .dbline 237
 04B8 82B3              in R24,0x12
 04BA 877F              andi R24,247
 04BC 82BB              out 0x12,R24
 04BE                   .dbline 238
 04BE           L61:
 04BE                   .dbline 230
 04BE 4395              inc R20
 04C0           L63:
 04C0                   .dbline 230
 04C0 4830              cpi R20,8
 04C2 68F3              brlo L60
 04C4                   .dbline -2
 04C4           L59:
 04C4 0E940000          xcall pop_gset2
 04C8                   .dbline 0 ; func end
 04C8 0895              ret
 04CA                   .dbsym r count 20 c
 04CA                   .dbsym r send_data 22 c
 04CA                   .dbend
 04CA                   .dbfunc e Screen_send _Screen_send fV
 04CA           ;              i -> R20
                        .even
 04CA           _Screen_send::
 04CA 0E940000          xcall push_gset1
 04CE                   .dbline -1
 04CE                   .dbline 241
 04CE           ;         PORTD |=0b00001000;                                      //送SCK信号
 04CE           ;       PORTD &=0b11110111;
 04CE           ;    }
 04CE           ; }
 04CE           ; void Screen_send(void)
 04CE           ; {
 04CE                   .dbline 243
 04CE           ;     char i;
 04CE           ;       PORTD &= 0b11101111;       //送RCK信号,底电平                
 04CE 82B3              in R24,0x12
 04D0 8F7E              andi R24,239
 04D2 82BB              out 0x12,R24
 04D4                   .dbline 244
 04D4           ;       for(i =0;i <8;i++)
 04D4 4427              clr R20
 04D6 03C0              xjmp L70
 04D8           L67:
 04D8                   .dbline 245
 04D8                   .dbline 246
 04D8 0FEF              ldi R16,255
 04DA DCDF              xcall _SPI_data_send
 04DC                   .dbline 247
 04DC           L68:
 04DC                   .dbline 244
 04DC 4395              inc R20
 04DE           L70:
 04DE                   .dbline 244
 04DE 4830              cpi R20,8
 04E0 D8F3              brlo L67
 04E2                   .dbline 248
 04E2           ;       {
 04E2           ;           SPI_data_send(0xff);//sys_cont);   //DispTemp[i]);  
 04E2           ;     }
 04E2           ;       PORTD |= 0b00010000;       //关闭RCK信号,高电平
 04E2 949A              sbi 0x12,4
 04E4                   .dbline -2
 04E4           L66:
 04E4 0E940000          xcall pop_gset1
 04E8                   .dbline 0 ; func end
 04E8 0895              ret
 04EA                   .dbsym r i 20 c
 04EA                   .dbend
 04EA                   .dbfunc e RAM_Write _RAM_Write fV
 04EA           ;           data -> R18
 04EA           ;         adress -> R16,R17
                        .even
 04EA           _RAM_Write::
 04EA                   .dbline -1
 04EA                   .dbline 256
 04EA           ; 
 04EA           ; }
 04EA           ; /**************************************************
 04EA           ;                        数据接受,外部RAM读写
 04EA           ; ****************************************************/
 04EA           ; //写外部RAM
 04EA           ; void RAM_Write(int adress,char data)
 04EA           ; {
 04EA                   .dbline 257
 04EA           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 04EA 82B3              in R24,0x12
 04EC 806E              ori R24,224
 04EE 82BB              out 0x12,R24
 04F0                   .dbline 258
 04F0           ;    DDRA =0XFF;
 04F0 8FEF              ldi R24,255
 04F2 8ABB              out 0x1a,R24
 04F4                   .dbline 259
 04F4           ;    PORTA =adress&0xff;
 04F4 C801              movw R24,R16
 04F6 9070              andi R25,0
 04F8 8BBB              out 0x1b,R24
 04FA                   .dbline 260
 04FA           ;    PORTC =(adress >>8)&0xff;
 04FA C801              movw R24,R16
 04FC 892F              mov R24,R25
 04FE 9927              clr R25
 0500 87FD              sbrc R24,7
 0502 9095              com R25
 0504 9070              andi R25,0
 0506 85BB              out 0x15,R24
 0508                   .dbline 261
 0508           ;    PORTD &=0b01111111;                         
 0508 82B3              in R24,0x12
 050A 8F77              andi R24,127
 050C 82BB              out 0x12,R24
 050E                   .dbline 262
 050E           ;    PORTA =data;
 050E 2BBB              out 0x1b,R18
 0510                   .dbline 263
 0510           ;    PORTD &=0b10111111;
 0510 82B3              in R24,0x12
 0512 8F7B              andi R24,191
 0514 82BB              out 0x12,R24
 0516                   .dbline -2
 0516           L71:
 0516                   .dbline 0 ; func end
 0516 0895              ret
 0518                   .dbsym r data 18 c
 0518                   .dbsym r adress 16 I
 0518                   .dbend
 0518                   .dbfunc e RAM_Read _RAM_Read fc
 0518           ;           temp -> R20
 0518           ;         adress -> R16,R17
                        .even
 0518           _RAM_Read::
 0518 0E940000          xcall push_gset1
 051C                   .dbline -1
 051C                   .dbline 268
 051C           ;    //PORTD |=0B01100000;           //关ALE  读关闭  写关闭
 051C           ; }
 051C           ; //读外部RAM
 051C           ; char RAM_Read(int adress)
 051C           ; {
 051C                   .dbline 270
 051C           ;    char temp;
 051C           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 051C 82B3              in R24,0x12
 051E 806E              ori R24,224
 0520 82BB              out 0x12,R24
 0522                   .dbline 271
 0522           ;    DDRA =0XFF;
 0522 8FEF              ldi R24,255
 0524 8ABB              out 0x1a,R24
 0526                   .dbline 272
 0526           ;    PORTA =adress&0xff;
 0526 C801              movw R24,R16
 0528 9070              andi R25,0
 052A 8BBB              out 0x1b,R24
 052C                   .dbline 273
 052C           ;    PORTC =(adress >>8)&0xff;
 052C C801              movw R24,R16
 052E 892F              mov R24,R25
 0530 9927              clr R25
 0532 87FD              sbrc R24,7
 0534 9095              com R25
 0536 9070              andi R25,0
 0538 85BB              out 0x15,R24
 053A                   .dbline 274
 053A           ;    PORTD &=0b01111111;                         
 053A 82B3              in R24,0x12
 053C 8F77              andi R24,127
 053E 82BB              out 0x12,R24
 0540                   .dbline 275
 0540           ;    PORTD &=0b11011111;
 0540 82B3              in R24,0x12
 0542 8F7D              andi R24,223
 0544 82BB              out 0x12,R24
 0546                   .dbline 276
 0546           ;    DDRA =0;
 0546 2224              clr R2
 0548 2ABA              out 0x1a,R2
 054A                   .dbline 277
 054A           ;    PORTA =0XFF;
 054A 8FEF              ldi R24,255
 054C 8BBB              out 0x1b,R24
 054E                   .dbline 278
 054E           ;    temp =PINA;
 054E 49B3              in R20,0x19
 0550                   .dbline 279
 0550           ;    return temp;
 0550 042F              mov R16,R20
 0552                   .dbline -2
 0552           L72:
 0552 0E940000          xcall pop_gset1
 0556                   .dbline 0 ; func end
 0556 0895              ret
 0558                   .dbsym r temp 20 c
 0558                   .dbsym r adress 16 I
 0558                   .dbend
 0558                   .dbfunc e data_store _data_store fV
 0558           ;           data -> R20
                        .even
 0558           _data_store::
 0558 0E940000          xcall push_gset1
 055C 402F              mov R20,R16
 055E                   .dbline -1
 055E                   .dbline 284
 055E           ; }
 055E           ; //存储数据到外部RAM
 055E           ; 
 055E           ; void data_store(char data)
 055E           ; {
 055E                   .dbline 285
 055E           ;    if((data ==76) &&(FileEnd ==1))     //数据起始位检测
 055E 4C34              cpi R20,76
 0560 79F4              brne L74
 0562 80912500          lds R24,_FileEnd
 0566 8130              cpi R24,1
 0568 59F4              brne L74
 056A                   .dbline 28

⌨️ 快捷键说明

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