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

📄 display_board2.0.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0260           L51:
 0260                   .dbline 210
 0260           ;       else
 0260           ;            PORTC |= 0b10000000;
 0260 AF9A              sbi 0x15,7
 0262           L52:
 0262                   .dbline 211
 0262 939A              sbi 0x12,3
 0264                   .dbline 212
 0264 82B3              in R24,0x12
 0266 877F              andi R24,247
 0268 82BB              out 0x12,R24
 026A                   .dbline 213
 026A           L48:
 026A                   .dbline 205
 026A 4395              inc R20
 026C           L50:
 026C                   .dbline 205
 026C 4830              cpi R20,8
 026E 68F3              brlo L47
 0270                   .dbline -2
 0270           L46:
 0270 0E940000          xcall pop_gset2
 0274                   .dbline 0 ; func end
 0274 0895              ret
 0276                   .dbsym r count 20 c
 0276                   .dbsym r send_data 22 c
 0276                   .dbend
 0276                   .dbfunc e Screen_send _Screen_send fV
 0276           ;              i -> R20
                        .even
 0276           _Screen_send::
 0276 0E940000          xcall push_gset1
 027A                   .dbline -1
 027A                   .dbline 216
 027A           ;         PORTD |=0b00001000;                                      //送SCK信号
 027A           ;       PORTD &=0b11110111;
 027A           ;    }
 027A           ; }
 027A           ; void Screen_send(void)
 027A           ; {
 027A                   .dbline 218
 027A           ;     char i;
 027A           ;       PORTD &= 0b11101111;       //送RCK信号,底电平                
 027A 82B3              in R24,0x12
 027C 8F7E              andi R24,239
 027E 82BB              out 0x12,R24
 0280                   .dbline 219
 0280           ;       for(i =0;i <8;i++)
 0280 4427              clr R20
 0282 09C0              xjmp L57
 0284           L54:
 0284                   .dbline 220
 0284                   .dbline 221
 0284 80E0              ldi R24,<_DispTemp
 0286 90E0              ldi R25,>_DispTemp
 0288 E42F              mov R30,R20
 028A FF27              clr R31
 028C E80F              add R30,R24
 028E F91F              adc R31,R25
 0290 0081              ldd R16,z+0
 0292 D6DF              xcall _SPI_data_send
 0294                   .dbline 222
 0294           L55:
 0294                   .dbline 219
 0294 4395              inc R20
 0296           L57:
 0296                   .dbline 219
 0296 4830              cpi R20,8
 0298 A8F3              brlo L54
 029A                   .dbline 223
 029A           ;       {
 029A           ;           SPI_data_send(DispTemp[i]);  
 029A           ;     }
 029A           ;       PORTD |= 0b00010000;       //关闭RCK信号,高电平
 029A 949A              sbi 0x12,4
 029C                   .dbline -2
 029C           L53:
 029C 0E940000          xcall pop_gset1
 02A0                   .dbline 0 ; func end
 02A0 0895              ret
 02A2                   .dbsym r i 20 c
 02A2                   .dbend
 02A2                   .dbfunc e RAM_Write _RAM_Write fV
 02A2           ;           data -> R18
 02A2           ;         adress -> R16,R17
                        .even
 02A2           _RAM_Write::
 02A2                   .dbline -1
 02A2                   .dbline 231
 02A2           ; 
 02A2           ; }
 02A2           ; /**************************************************
 02A2           ;                        数据接受,外部RAM读写
 02A2           ; ****************************************************/
 02A2           ; //写外部RAM
 02A2           ; void RAM_Write(int adress,char data)
 02A2           ; {
 02A2                   .dbline 232
 02A2           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 02A2 82B3              in R24,0x12
 02A4 806E              ori R24,224
 02A6 82BB              out 0x12,R24
 02A8                   .dbline 233
 02A8           ;    DDRA =0XFF;
 02A8 8FEF              ldi R24,255
 02AA 8ABB              out 0x1a,R24
 02AC                   .dbline 234
 02AC           ;    PORTA =adress&0xff;
 02AC C801              movw R24,R16
 02AE 9070              andi R25,0
 02B0 8BBB              out 0x1b,R24
 02B2                   .dbline 235
 02B2           ;    PORTC =(adress >>8)&0xff;
 02B2 C801              movw R24,R16
 02B4 892F              mov R24,R25
 02B6 9927              clr R25
 02B8 87FD              sbrc R24,7
 02BA 9095              com R25
 02BC 9070              andi R25,0
 02BE 85BB              out 0x15,R24
 02C0                   .dbline 236
 02C0           ;    PORTD &=0b01111111;                         
 02C0 82B3              in R24,0x12
 02C2 8F77              andi R24,127
 02C4 82BB              out 0x12,R24
 02C6                   .dbline 237
 02C6           ;    PORTA =data;
 02C6 2BBB              out 0x1b,R18
 02C8                   .dbline 238
 02C8           ;    PORTD &=0b10111111;
 02C8 82B3              in R24,0x12
 02CA 8F7B              andi R24,191
 02CC 82BB              out 0x12,R24
 02CE                   .dbline -2
 02CE           L58:
 02CE                   .dbline 0 ; func end
 02CE 0895              ret
 02D0                   .dbsym r data 18 c
 02D0                   .dbsym r adress 16 I
 02D0                   .dbend
 02D0                   .dbfunc e RAM_Read _RAM_Read fc
 02D0           ;           temp -> R20
 02D0           ;         adress -> R16,R17
                        .even
 02D0           _RAM_Read::
 02D0 0E940000          xcall push_gset1
 02D4                   .dbline -1
 02D4                   .dbline 243
 02D4           ;    //PORTD |=0B01100000;           //关ALE  读关闭  写关闭
 02D4           ; }
 02D4           ; //读外部RAM
 02D4           ; char RAM_Read(int adress)
 02D4           ; {
 02D4                   .dbline 245
 02D4           ;    char temp;
 02D4           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 02D4 82B3              in R24,0x12
 02D6 806E              ori R24,224
 02D8 82BB              out 0x12,R24
 02DA                   .dbline 246
 02DA           ;    DDRA =0XFF;
 02DA 8FEF              ldi R24,255
 02DC 8ABB              out 0x1a,R24
 02DE                   .dbline 247
 02DE           ;    PORTA =adress&0xff;
 02DE C801              movw R24,R16
 02E0 9070              andi R25,0
 02E2 8BBB              out 0x1b,R24
 02E4                   .dbline 248
 02E4           ;    PORTC =(adress >>8)&0xff;
 02E4 C801              movw R24,R16
 02E6 892F              mov R24,R25
 02E8 9927              clr R25
 02EA 87FD              sbrc R24,7
 02EC 9095              com R25
 02EE 9070              andi R25,0
 02F0 85BB              out 0x15,R24
 02F2                   .dbline 249
 02F2           ;    PORTD &=0b01111111;                         
 02F2 82B3              in R24,0x12
 02F4 8F77              andi R24,127
 02F6 82BB              out 0x12,R24
 02F8                   .dbline 250
 02F8           ;    PORTD &=0b11011111;
 02F8 82B3              in R24,0x12
 02FA 8F7D              andi R24,223
 02FC 82BB              out 0x12,R24
 02FE                   .dbline 251
 02FE           ;    DDRA =0;
 02FE 2224              clr R2
 0300 2ABA              out 0x1a,R2
 0302                   .dbline 252
 0302           ;    PORTA =0XFF;
 0302 8FEF              ldi R24,255
 0304 8BBB              out 0x1b,R24
 0306                   .dbline 253
 0306           ;    temp =PINA;
 0306 49B3              in R20,0x19
 0308                   .dbline 254
 0308           ;    return temp;
 0308 042F              mov R16,R20
 030A                   .dbline -2
 030A           L59:
 030A 0E940000          xcall pop_gset1
 030E                   .dbline 0 ; func end
 030E 0895              ret
 0310                   .dbsym r temp 20 c
 0310                   .dbsym r adress 16 I
 0310                   .dbend
 0310                   .dbfunc e data_store _data_store fV
 0310           ;           data -> R20
                        .even
 0310           _data_store::
 0310 0E940000          xcall push_gset1
 0314 402F              mov R20,R16
 0316                   .dbline -1
 0316                   .dbline 259
 0316           ; }
 0316           ; //存储数据到外部RAM
 0316           ; 
 0316           ; void data_store(char data)
 0316           ; {
 0316                   .dbline 260
 0316           ;    if((data ==76) &&(FileEnd ==1))     //数据起始位检测
 0316 4C34              cpi R20,76
 0318 79F4              brne L61
 031A 80912500          lds R24,_FileEnd
 031E 8130              cpi R24,1
 0320 59F4              brne L61
 0322                   .dbline 261
 0322           ;    {
 0322                   .dbline 262
 0322           ;        HeadEN =1;                           //开启头文件数据传输
 0322 81E0              ldi R24,1
 0324 80932700          sts _HeadEN,R24
 0328                   .dbline 263
 0328           ;          HeadLoad =0;                         //头文件指针清零
 0328 2224              clr R2
 032A 20922600          sts _HeadLoad,R2
 032E                   .dbline 264
 032E           ;          DataIndex =0;                        //存储数据指针清零
 032E 3324              clr R3
 0330 30922900          sts _DataIndex+1,R3
 0334 20922800          sts _DataIndex,R2
 0338                   .dbline 265
 0338           ;    }
 0338           L61:
 0338                   .dbline 266
 0338           ;    if((HeadEN ==0) &&(FileEnd ==0))
 0338 20902700          lds R2,_HeadEN
 033C 2220              tst R2
 033E D9F5              brne L63
 0340 20902500          lds R2,_FileEnd
 0344 2220              tst R2
 0346 B9F5              brne L63
 0348                   .dbline 267
 0348           ;    {
 0348                   .dbline 268
 0348           ;          RAM_Write(DataIndex,data);            //数组送数
 0348 242F              mov R18,R20
 034A 00912800          lds R16,_DataIndex
 034E 10912900          lds R17,_DataIndex+1
 0352 A7DF              xcall _RAM_Write
 0354                   .dbline 269
 0354           ;          DataIndex++;
 0354 80912800          lds R24,_DataIndex
 0358 90912900          lds R25,_DataIndex+1
 035C 0196              adiw R24,1
 035E 90932900          sts _DataIndex+1,R25
 0362 80932800          sts _DataIndex,R24
 0366                   .dbline 270
 0366           ;          if(DataIndex <2)                      //送文件长度数据到变量
 0366 8230              cpi R24,2
 0368 E0E0              ldi R30,0
 036A 9E07              cpc R25,R30
 036C 7CF4              brge L65
 036E                   .dbline 271
 036E           ;          {
 036E                   .dbline 272
 036E           ;              FileLength |=data <<DataIndex;    
 036E 9C01              movw R18,R24
 0370 042F              mov R16,R20
 0372 1127              clr R17
 0374 0E940000          xcall lsl16
 0378 20902A00          lds R2,_FileLength
 037C 30902B00          lds R3,_FileLength+1
 0380 202A              or R2,R16
 0382 312A              or R3,R17
 0384 30922B00          sts _FileLength+1,R3
 0388 20922A00          sts _FileLength,R2
 038C                   .dbline 274
 038C           ;              //FileLength =316;
 038C           ;          }                                     //数据指针
 038C           L65:
 038C                   .dbline 275
 038C           ;          if((DataIndex >=FileLength)&& (DataIndex >16))
 038C 20902A00          lds R2,_FileLength
 0390 30902B00          lds R3,_FileLength+1
 0394 40902800          lds R4,_DataIndex
 0398 50902900          lds R5,_DataIndex+1
 039C 4214              cp R4,R2
 039E 5304              cpc R5,R3
 03A0 54F0              brlt L67
 03A2 80E1              ldi R24,16
 03A4 90E0              ldi R25,0
 03A6 8415              cp R24,R4
 03A8 9505              cpc R25,R5
 03AA 2CF4              brge L67
 03AC                   .dbline 276
 03AC           ;          {
 03AC                   .dbline 277
 03AC           ;                  HeadEN =1;
 03AC 81E0              ldi R24,1
 03AE 80932700          sts _HeadEN,R24
 03B2                   .dbline 278
 03B2           ;                  FileEnd =1;
 03B2 80932500          sts _FileEnd,R24
 03B6                   .dbline 279
 03B6           ;          }
 03B6           L67:

⌨️ 快捷键说明

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