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

📄 display_board3.0.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 038A                   .dbline 295
 038A           ;    TWCR = (1<<TWINT) | (1<<TWEN);
 038A 84E8              ldi R24,132
 038C 86BF              out 0x36,R24
 038E 0CC0              xjmp L76
 0390           L75:
 0390                   .dbline 297
 0390           ;    while (!(TWCR & (1<<TWINT)))
 0390           ;    {
 0390                   .dbline 298
 0390           ;        if(I2C_TIME_OUT >1000)
 0390 88EE              ldi R24,1000
 0392 93E0              ldi R25,3
 0394 20902F00          lds R2,_I2C_TIME_OUT
 0398 30903000          lds R3,_I2C_TIME_OUT+1
 039C 8215              cp R24,R2
 039E 9305              cpc R25,R3
 03A0 18F4              brsh L78
 03A2                   .dbline 299
 03A2           ;          {
 03A2                   .dbline 300
 03A2           ;             TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN);
 03A2 84E9              ldi R24,148
 03A4 86BF              out 0x36,R24
 03A6                   .dbline 301
 03A6           ;                 goto start;
 03A6 ABCF              xjmp L58
 03A8           L78:
 03A8                   .dbline 303
 03A8           L76:
 03A8                   .dbline 296
 03A8 26B6              in R2,0x36
 03AA 27FE              sbrs R2,7
 03AC F1CF              rjmp L75
 03AE                   .dbline 304
 03AE           ;        }
 03AE           ;    }
 03AE           ;    Disp_Buff[7] =3;
 03AE 83E0              ldi R24,3
 03B0 80930700          sts _Disp_Buff+7,R24
 03B4                   .dbline 305
 03B4           ;    if ((TWSR & 0xF8) != MT_DATA_ACK)
 03B4 81B1              in R24,0x1
 03B6 887F              andi R24,248
 03B8 8832              cpi R24,40
 03BA 01F0              breq L81
 03BC                   .dbline 306
 03BC           ;    {
 03BC                   .dbline 308
 03BC           ;        //goto start;
 03BC           ;    }
 03BC           L81:
 03BC                   .dbline 309
 03BC           ;    TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
 03BC 84E9              ldi R24,148
 03BE 86BF              out 0x36,R24
 03C0                   .dbline -2
 03C0                   .dbline 310
 03C0           ; }
 03C0           L57:
 03C0 0E940000          xcall pop_gset1
 03C4                   .dbline 0 ; func end
 03C4 0895              ret
 03C6                   .dbsym r data 20 c
 03C6                   .dbend
 03C6                   .dbfunc e Screen_send _Screen_send fV
 03C6           ;              i -> R20
                        .even
 03C6           _Screen_send::
 03C6 0E940000          xcall push_gset1
 03CA                   .dbline -1
 03CA                   .dbline 315
 03CA           ; /***************************************************
 03CA           ;                向显示屏送数据
 03CA           ; ***************************************************/
 03CA           ; void Screen_send(void)
 03CA           ; {
 03CA                   .dbline 316
 03CA           ;     char i =8;
 03CA 48E0              ldi R20,8
 03CC                   .dbline 317
 03CC           ;       PORTB &=0B11101111;     //送RCK信号,底电平    
 03CC 88B3              in R24,0x18
 03CE 8F7E              andi R24,239
 03D0 88BB              out 0x18,R24
 03D2                   .dbline 318
 03D2           ;       for(;i >0;)
 03D2 09C0              xjmp L87
 03D4           L84:
 03D4                   .dbline 319
 03D4                   .dbline 320
 03D4 4A95              dec R20
 03D6                   .dbline 321
 03D6 80E0              ldi R24,<_DispTemp
 03D8 90E0              ldi R25,>_DispTemp
 03DA E42F              mov R30,R20
 03DC FF27              clr R31
 03DE E80F              add R30,R24
 03E0 F91F              adc R31,R25
 03E2 0081              ldd R16,z+0
 03E4 07D0              xcall _SPI_MasterTransmit
 03E6                   .dbline 322
 03E6           L85:
 03E6                   .dbline 318
 03E6           L87:
 03E6                   .dbline 318
 03E6 2224              clr R2
 03E8 2416              cp R2,R20
 03EA A0F3              brlo L84
 03EC                   .dbline 323
 03EC           ;       {   
 03EC           ;           i--;
 03EC           ;           SPI_MasterTransmit(DispTemp[i]);
 03EC           ;     }
 03EC           ;       PORTB |=0B00010000;    //关闭RCK信号,高电平
 03EC C49A              sbi 0x18,4
 03EE                   .dbline -2
 03EE                   .dbline 324
 03EE           ; }
 03EE           L83:
 03EE 0E940000          xcall pop_gset1
 03F2                   .dbline 0 ; func end
 03F2 0895              ret
 03F4                   .dbsym r i 20 c
 03F4                   .dbend
 03F4                   .dbfunc e SPI_MasterTransmit _SPI_MasterTransmit fV
 03F4           ;          cData -> R16
                        .even
 03F4           _SPI_MasterTransmit::
 03F4                   .dbline -1
 03F4                   .dbline 327
 03F4           ; //SPI硬件通讯
 03F4           ; void SPI_MasterTransmit(char cData)
 03F4           ; {
 03F4                   .dbline 328
 03F4           ;      SPDR = cData;/* 启动数据传输 */
 03F4 0FB9              out 0xf,R16
 03F6           L89:
 03F6                   .dbline 329
 03F6           L90:
 03F6                   .dbline 329
 03F6           ;        while(!(SPSR & (1<<SPIF)));/* 等待传输结束 */
 03F6 779B              sbis 0xe,7
 03F8 FECF              rjmp L89
 03FA                   .dbline -2
 03FA                   .dbline 330
 03FA           ; }
 03FA           L88:
 03FA                   .dbline 0 ; func end
 03FA 0895              ret
 03FC                   .dbsym r cData 16 c
 03FC                   .dbend
 03FC                   .dbfunc e RAM_Write _RAM_Write fV
 03FC           ;       High8Bit -> R20
 03FC           ;           data -> R18
 03FC           ;         adress -> R16,R17
                        .even
 03FC           _RAM_Write::
 03FC 0E940000          xcall push_gset1
 0400                   .dbline -1
 0400                   .dbline 336
 0400           ; /**************************************************
 0400           ;                        数据接受,外部RAM读写
 0400           ; ****************************************************/
 0400           ; //写外部RAM
 0400           ; void RAM_Write(int adress,char data)
 0400           ; {
 0400                   .dbline 338
 0400           ;    char High8Bit;
 0400           ;    High8Bit=adress >>8;
 0400 A801              movw R20,R16
 0402 452F              mov R20,R21
 0404 5527              clr R21
 0406 47FD              sbrc R20,7
 0408 5095              com R21
 040A                   .dbline 339
 040A           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 040A 82B3              in R24,0x12
 040C 806E              ori R24,224
 040E 82BB              out 0x12,R24
 0410                   .dbline 340
 0410           ;    PORTC =0;
 0410 2224              clr R2
 0412 25BA              out 0x15,R2
 0414                   .dbline 341
 0414           ;    DDRA =0XFF;
 0414 8FEF              ldi R24,255
 0416 8ABB              out 0x1a,R24
 0418                   .dbline 342
 0418           ;    PORTA =adress; 
 0418 0BBB              out 0x1b,R16
 041A                   .dbline 343
 041A           ;    PORTD &=0xe7;
 041A 82B3              in R24,0x12
 041C 877E              andi R24,231
 041E 82BB              out 0x12,R24
 0420                   .dbline 344
 0420           ;    PORTC =High8Bit;
 0420 45BB              out 0x15,R20
 0422                   .dbline 345
 0422           ;    PORTD |=(High8Bit <<3) & 0x18;
 0422 842F              mov R24,R20
 0424 880F              lsl R24
 0426 880F              lsl R24
 0428 880F              lsl R24
 042A 8871              andi R24,24
 042C 22B2              in R2,0x12
 042E 282A              or R2,R24
 0430 22BA              out 0x12,R2
 0432                   .dbline 346
 0432           ;    PORTD &=0b01111111;                         
 0432 82B3              in R24,0x12
 0434 8F77              andi R24,127
 0436 82BB              out 0x12,R24
 0438                   .dbline 347
 0438           ;    PORTA =data;
 0438 2BBB              out 0x1b,R18
 043A                   .dbline 348
 043A           ;    PORTD &=0b10111111;
 043A 82B3              in R24,0x12
 043C 8F7B              andi R24,191
 043E 82BB              out 0x12,R24
 0440                   .dbline -2
 0440                   .dbline 349
 0440           ; }
 0440           L92:
 0440 0E940000          xcall pop_gset1
 0444                   .dbline 0 ; func end
 0444 0895              ret
 0446                   .dbsym r High8Bit 20 c
 0446                   .dbsym r data 18 c
 0446                   .dbsym r adress 16 I
 0446                   .dbend
 0446                   .dbfunc e RAM_Read _RAM_Read fc
 0446           ;       High8Bit -> R20
 0446           ;         adress -> R16,R17
                        .even
 0446           _RAM_Read::
 0446 0E940000          xcall push_gset1
 044A                   .dbline -1
 044A                   .dbline 352
 044A           ; //读外部RAM
 044A           ; char RAM_Read(int adress)
 044A           ; {
 044A                   .dbline 354
 044A           ;    char High8Bit;
 044A           ;    High8Bit=adress >>8;
 044A A801              movw R20,R16
 044C 452F              mov R20,R21
 044E 5527              clr R21
 0450 47FD              sbrc R20,7
 0452 5095              com R21
 0454                   .dbline 355
 0454           ;    PORTD |=0B11100000;           //关ALE  读关闭  写关闭
 0454 82B3              in R24,0x12
 0456 806E              ori R24,224
 0458 82BB              out 0x12,R24
 045A                   .dbline 356
 045A           ;    DDRA =0XFF;
 045A 8FEF              ldi R24,255
 045C 8ABB              out 0x1a,R24
 045E                   .dbline 357
 045E           ;    PORTA =adress; 
 045E 0BBB              out 0x1b,R16
 0460                   .dbline 358
 0460           ;    PORTD &=0xe7;
 0460 82B3              in R24,0x12
 0462 877E              andi R24,231
 0464 82BB              out 0x12,R24
 0466                   .dbline 359
 0466           ;    PORTC =High8Bit;
 0466 45BB              out 0x15,R20
 0468                   .dbline 360
 0468           ;    PORTD |=(High8Bit <<3) & 0x18;
 0468 842F              mov R24,R20
 046A 880F              lsl R24
 046C 880F              lsl R24
 046E 880F              lsl R24
 0470 8871              andi R24,24
 0472 22B2              in R2,0x12
 0474 282A              or R2,R24
 0476 22BA              out 0x12,R2
 0478                   .dbline 361
 0478           ;    PORTD &=0b01011111;                         
 0478 82B3              in R24,0x12
 047A 8F75              andi R24,95
 047C 82BB              out 0x12,R24
 047E                   .dbline 362
 047E           ;    DDRA =0;
 047E 2224              clr R2
 0480 2ABA              out 0x1a,R2
 0482                   .dbline 363
 0482           ;    PORTA =0XFF;
 0482 8FEF              ldi R24,255
 0484 8BBB              out 0x1b,R24
 0486                   .dbline 364
 0486           ;    return PINA;
 0486 09B3              in R16,0x19
 0488                   .dbline -2
 0488           L93:
 0488 0E940000          xcall pop_gset1
 048C                   .dbline 0 ; func end
 048C 0895              ret
 048E                   .dbsym r High8Bit 20 c
 048E                   .dbsym r adress 16 I
 048E                   .dbend
 048E                   .dbfunc e data_store _data_store fV
 048E           ;           data -> R20
                        .even
 048E           _data_store::
 048E 0E940000          xcall push_gset1
 0492 402F              mov R20,R16
 0494                   .dbline -1
 0494                   .dbline 368
 0494           ; }
 0494           ; //存储数据到外部RAM
 0494           ; void data_store(char

⌨️ 快捷键说明

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