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

📄 display_board3.0.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0272 2220              tst R2
 0274 99F4              brne L49
 0276 3320              tst R3
 0278 89F4              brne L49
 027A           X1:
 027A                   .dbline 206
 027A           ;               {
 027A                   .dbline 207
 027A           ;                  time_out_s++;
 027A 80912E00          lds R24,_time_out_s
 027E 8F5F              subi R24,255    ; addi 1
 0280 80932E00          sts _time_out_s,R24
 0284                   .dbline 208
 0284           ;                  if (time_out_s ==20)  //结束标志
 0284 8431              cpi R24,20
 0286 51F4              brne L51
 0288                   .dbline 209
 0288           ;                  {
 0288                   .dbline 210
 0288           ;                         time_out_ms=1;         //闲置标志
 0288 81E0              ldi R24,1
 028A 90E0              ldi R25,0
 028C 90932D00          sts _time_out_ms+1,R25
 0290 80932C00          sts _time_out_ms,R24
 0294                   .dbline 211
 0294           ;                         HeadEN=1;
 0294 80932700          sts _HeadEN,R24
 0298                   .dbline 212
 0298           ;                         FileEnd=1;
 0298 80932500          sts _FileEnd,R24
 029C                   .dbline 214
 029C           ;                         //进行错误处理,并要跳出此结构体
 029C           ;                         {/**********/}
 029C                   .dbline 214
 029C                   .dbline 215
 029C           ;                  }
 029C           L51:
 029C                   .dbline 216
 029C           ;               }
 029C           L49:
 029C                   .dbline 217
 029C           ;               uart_TX(0xAA);                   //重复发送标志位
 029C 0AEA              ldi R16,170
 029E CDDF              xcall _uart_TX
 02A0                   .dbline 218
 02A0           ;               time_out_ms--;   
 02A0 80912C00          lds R24,_time_out_ms
 02A4 90912D00          lds R25,_time_out_ms+1
 02A8 0197              sbiw R24,1
 02AA 90932D00          sts _time_out_ms+1,R25
 02AE 80932C00          sts _time_out_ms,R24
 02B2                   .dbline 219
 02B2           ;        }
 02B2           L47:
 02B2                   .dbline 220
 02B2 80912C00          lds R24,_time_out_ms
 02B6 90912D00          lds R25,_time_out_ms+1
 02BA 883E              cpi R24,232
 02BC E3E0              ldi R30,3
 02BE 9E07              cpc R25,R30
 02C0 31F4              brne L53
 02C2                   .dbline 221
 02C2 81E0              ldi R24,1
 02C4 90E0              ldi R25,0
 02C6 90932D00          sts _time_out_ms+1,R25
 02CA 80932C00          sts _time_out_ms,R24
 02CE           L53:
 02CE                   .dbline -2
 02CE           L46:
 02CE                   .dbline 0 ; func end
 02CE 0895              ret
 02D0                   .dbend
 02D0                   .dbfunc e SPI_data_send _SPI_data_send fV
 02D0           ;          count -> R20
 02D0           ;      send_data -> R22
                        .even
 02D0           _SPI_data_send::
 02D0 0E940000          xcall push_gset2
 02D4 602F              mov R22,R16
 02D6                   .dbline -1
 02D6                   .dbline 228
 02D6           ;        if (time_out_ms ==1000)
 02D6           ;               time_out_ms=1;           //1 表示空闲状态
 02D6           ; }
 02D6           ; /***************************************************
 02D6           ;                向显示屏送数据
 02D6           ; ***************************************************/
 02D6           ; 
 02D6           ; void SPI_data_send(unsigned char send_data)       //向595送数据串
 02D6           ; {  
 02D6                   .dbline 230
 02D6           ;    unsigned char count;
 02D6           ;    for(count =0;count<8;count++)
 02D6 4427              clr R20
 02D8 11C0              xjmp L59
 02DA           L56:
 02DA                   .dbline 231
 02DA           ;    {
 02DA                   .dbline 232
 02DA           ;       if(((send_data >>count)&0x01 )==0)
 02DA 062F              mov R16,R22
 02DC 142F              mov R17,R20
 02DE 0E940000          xcall lsr8
 02E2 802F              mov R24,R16
 02E4 8170              andi R24,1
 02E6 21F4              brne L60
 02E8                   .dbline 233
 02E8           ;            PORTC &= 0b01111111;                                  //送 data
 02E8 85B3              in R24,0x15
 02EA 8F77              andi R24,127
 02EC 85BB              out 0x15,R24
 02EE 01C0              xjmp L61
 02F0           L60:
 02F0                   .dbline 235
 02F0           ;       else
 02F0           ;            PORTC |= 0b10000000;
 02F0 AF9A              sbi 0x15,7
 02F2           L61:
 02F2                   .dbline 236
 02F2 939A              sbi 0x12,3
 02F4                   .dbline 237
 02F4 82B3              in R24,0x12
 02F6 877F              andi R24,247
 02F8 82BB              out 0x12,R24
 02FA                   .dbline 238
 02FA           L57:
 02FA                   .dbline 230
 02FA 4395              inc R20
 02FC           L59:
 02FC                   .dbline 230
 02FC 4830              cpi R20,8
 02FE 68F3              brlo L56
 0300                   .dbline -2
 0300           L55:
 0300 0E940000          xcall pop_gset2
 0304                   .dbline 0 ; func end
 0304 0895              ret
 0306                   .dbsym r count 20 c
 0306                   .dbsym r send_data 22 c
 0306                   .dbend
 0306                   .dbfunc e Screen_send _Screen_send fV
 0306           ;              i -> R20
                        .even
 0306           _Screen_send::
 0306 0E940000          xcall push_gset1
 030A                   .dbline -1
 030A                   .dbline 241
 030A           ;         PORTD |=0b00001000;                                      //送SCK信号
 030A           ;       PORTD &=0b11110111;
 030A           ;    }
 030A           ; }
 030A           ; void Screen_send(void)
 030A           ; {
 030A                   .dbline 242
 030A           ;     char i =8;
 030A 48E0              ldi R20,8
 030C                   .dbline 243
 030C           ;       PORTD &= 0b11101111;       //送RCK信号,底电平                
 030C 82B3              in R24,0x12
 030E 8F7E              andi R24,239
 0310 82BB              out 0x12,R24
 0312                   .dbline 244
 0312           ;       for(;i >0;)
 0312 09C0              xjmp L66
 0314           L63:
 0314                   .dbline 245
 0314                   .dbline 246
 0314 4A95              dec R20
 0316                   .dbline 247
 0316 80E0              ldi R24,<_DispTemp
 0318 90E0              ldi R25,>_DispTemp
 031A E42F              mov R30,R20
 031C FF27              clr R31
 031E E80F              add R30,R24
 0320 F91F              adc R31,R25
 0322 0081              ldd R16,z+0
 0324 D5DF              xcall _SPI_data_send
 0326                   .dbline 248
 0326           L64:
 0326                   .dbline 244
 0326           L66:
 0326                   .dbline 244
 0326 2224              clr R2
 0328 2416              cp R2,R20
 032A A0F3              brlo L63
 032C                   .dbline 249
 032C           ;       {   
 032C           ;           i--;
 032C           ;           SPI_data_send(DispTemp[i]);
 032C           ;     }
 032C           ;       PORTD |= 0b00010000;       //关闭RCK信号,高电平
 032C 949A              sbi 0x12,4
 032E                   .dbline -2
 032E           L62:
 032E 0E940000          xcall pop_gset1
 0332                   .dbline 0 ; func end
 0332 0895              ret
 0334                   .dbsym r i 20 c
 0334                   .dbend
 0334                   .dbfunc e RAM_Write _RAM_Write fV
 0334           ;           data -> R18
 0334           ;         adress -> R16,R17
                        .even
 0334           _RAM_Write::
 0334                   .dbline -1
 0334                   .dbline 256
 0334           ; }
 0334           ; /**************************************************
 0334           ;                        数据接受,外部RAM读写
 0334           ; ****************************************************/
 0334           ; //写外部RAM
 0334           ; void RAM_Write(int adress,char data)
 0334           ; {
 0334                   .dbline 257
 0334           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 0334 82B3              in R24,0x12
 0336 806E              ori R24,224
 0338 82BB              out 0x12,R24
 033A                   .dbline 258
 033A           ;    DDRA =0XFF;
 033A 8FEF              ldi R24,255
 033C 8ABB              out 0x1a,R24
 033E                   .dbline 259
 033E           ;    PORTA =adress;
 033E 0BBB              out 0x1b,R16
 0340                   .dbline 260
 0340           ;    PORTC =(adress >>8);
 0340 1801              movw R2,R16
 0342 232C              mov R2,R3
 0344 3324              clr R3
 0346 27FC              sbrc R2,7
 0348 3094              com R3
 034A 25BA              out 0x15,R2
 034C                   .dbline 261
 034C           ;    PORTD &=0b01111111;                         
 034C 82B3              in R24,0x12
 034E 8F77              andi R24,127
 0350 82BB              out 0x12,R24
 0352                   .dbline 262
 0352           ;    PORTA =data;
 0352 2BBB              out 0x1b,R18
 0354                   .dbline 263
 0354           ;    PORTD &=0b10111111;
 0354 82B3              in R24,0x12
 0356 8F7B              andi R24,191
 0358 82BB              out 0x12,R24
 035A                   .dbline -2
 035A           L67:
 035A                   .dbline 0 ; func end
 035A 0895              ret
 035C                   .dbsym r data 18 c
 035C                   .dbsym r adress 16 I
 035C                   .dbend
 035C                   .dbfunc e RAM_Read _RAM_Read fc
 035C           ;         adress -> R16,R17
                        .even
 035C           _RAM_Read::
 035C                   .dbline -1
 035C                   .dbline 268
 035C           ;    //PORTD |=0B01100000;           //关ALE  读关闭  写关闭
 035C           ; }
 035C           ; //读外部RAM
 035C           ; char RAM_Read(int adress)
 035C           ; {
 035C                   .dbline 269
 035C           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 035C 82B3              in R24,0x12
 035E 806E              ori R24,224
 0360 82BB              out 0x12,R24
 0362                   .dbline 270
 0362           ;    DDRA =0XFF;
 0362 8FEF              ldi R24,255
 0364 8ABB              out 0x1a,R24
 0366                   .dbline 271
 0366           ;    PORTA =adress;
 0366 0BBB              out 0x1b,R16
 0368                   .dbline 272
 0368           ;    PORTC =adress >>8;
 0368 1801              movw R2,R16
 036A 232C              mov R2,R3
 036C 3324              clr R3
 036E 27FC              sbrc R2,7
 0370 3094              com R3
 0372 25BA              out 0x15,R2
 0374                   .dbline 273
 0374           ;    PORTD &=0b01111111;                         
 0374 82B3              in R24,0x12
 0376 8F77              andi R24,127
 0378 82BB              out 0x12,R24
 037A                   .dbline 274
 037A           ;    PORTD &=0b11011111;
 037A 82B3              in R24,0x12
 037C 8F7D              andi R24,223
 037E 82BB              out 0x12,R24
 0380                   .dbline 275
 0380           ;    DDRA =0;
 0380 2224              clr R2
 0382 2ABA              out 0x1a,R2
 0384                   .dbline 276
 0384           ;    PORTA =0XFF;
 0384 8FEF              ldi R24,255
 0386 8BBB              out 0x1b,R24
 0388                   .dbline 277
 0388           ;    return PINA;
 0388 09B3              in R16,0x19
 038A                   .dbline -2
 038A           L68:
 038A                   .dbline 0 ; func end
 038A 0895              ret
 038C                   .dbsym r adress 16 I
 038C                   .dbend
 038C                   .dbfunc e data_store _data_store fV
 038C           ;           data -> R20
                        .even
 038C           _data_store::
 038C 0E940000          xcall push_gset1
 0390 402F              mov R20,R16
 0392                   .dbline -1
 0392                   .dbline 282
 0392           ; }

⌨️ 快捷键说明

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