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

📄 display_board2.1.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0026                   .dbfile display_board2.1.c
 0026                   .dbsym e FileEnd _FileEnd c
 0026           _HeadLoad::
 0026                   .blkb 1
                        .area idata
 0026 00                .byte 0
                        .area data(ram, con, rel)
 0027                   .dbfile display_board2.1.c
 0027                   .dbsym e HeadLoad _HeadLoad c
 0027           _HeadEN::
 0027                   .blkb 1
                        .area idata
 0027 01                .byte 1
                        .area data(ram, con, rel)
 0028                   .dbfile display_board2.1.c
 0028                   .dbsym e HeadEN _HeadEN c
 0028           _DataIndex::
 0028                   .blkb 2
                        .area idata
 0028 0000              .word 0
                        .area data(ram, con, rel)
 002A                   .dbfile display_board2.1.c
 002A                   .dbsym e DataIndex _DataIndex I
 002A           _FileLength::
 002A                   .blkb 2
                        .area idata
 002A 0000              .word 0
                        .area data(ram, con, rel)
 002C                   .dbfile display_board2.1.c
 002C                   .dbsym e FileLength _FileLength I
 002C           _time_out_ms::
 002C                   .blkb 2
                        .area idata
 002C 0100              .word 1
                        .area data(ram, con, rel)
 002E                   .dbfile display_board2.1.c
 002E                   .dbsym e time_out_ms _time_out_ms i
 002E           _time_out_s::
 002E                   .blkb 1
                        .area idata
 002E 00                .byte 0
                        .area data(ram, con, rel)
 002F                   .dbfile display_board2.1.c
 002F                   .dbsym e time_out_s _time_out_s c
 002F           _DispModel::
 002F                   .blkb 1
                        .area idata
 002F 00                .byte 0
                        .area data(ram, con, rel)
 0030                   .dbfile display_board2.1.c
 0030                   .dbsym e DispModel _DispModel c
 0030           _ModelDelayTime::
 0030                   .blkb 2
                        .area idata
 0030 0000              .word 0
                        .area data(ram, con, rel)
 0032                   .dbfile display_board2.1.c
 0032                   .dbsym e ModelDelayTime _ModelDelayTime I
 0032           _ModelContJuge::
 0032                   .blkb 1
                        .area idata
 0032 00                .byte 0
                        .area data(ram, con, rel)
 0033                   .dbfile display_board2.1.c
 0033                   .dbsym e ModelContJuge _ModelContJuge c
                        .area text(rom, con, rel)
 039C                   .dbfile display_board2.1.c
 039C                   .dbfunc e port_int _port_int fV
                        .even
 039C           _port_int::
 039C                   .dbline -1
 039C                   .dbline 128
 039C           ; ****************************************/
 039C           ; void port_int(void)
 039C           ; {
 039C                   .dbline 129
 039C           ;      DDRA =0XFF;
 039C 8FEF              ldi R24,255
 039E 8ABB              out 0x1a,R24
 03A0                   .dbline 130
 03A0           ;        PORTA =0XFF;
 03A0 8BBB              out 0x1b,R24
 03A2                   .dbline 131
 03A2           ;        DDRB =0B00001110;
 03A2 8EE0              ldi R24,14
 03A4 87BB              out 0x17,R24
 03A6                   .dbline 132
 03A6           ;        PORTB =0XFF;
 03A6 8FEF              ldi R24,255
 03A8 88BB              out 0x18,R24
 03AA                   .dbline 133
 03AA           ;        DDRC =0XFF;
 03AA 84BB              out 0x14,R24
 03AC                   .dbline 134
 03AC           ;        PORTC =0XFF;
 03AC 85BB              out 0x15,R24
 03AE                   .dbline 135
 03AE           ;        DDRD  = 0xF8;          //
 03AE 88EF              ldi R24,248
 03B0 81BB              out 0x11,R24
 03B2                   .dbline 136
 03B2           ;        PORTD = 0XFF;
 03B2 8FEF              ldi R24,255
 03B4 82BB              out 0x12,R24
 03B6                   .dbline -2
 03B6           L44:
 03B6                   .dbline 0 ; func end
 03B6 0895              ret
 03B8                   .dbend
 03B8                   .dbfunc e timer_int _timer_int fV
                        .even
 03B8           _timer_int::
 03B8                   .dbline -1
 03B8                   .dbline 143
 03B8           ; }
 03B8           ; 
 03B8           ; /****************************************
 03B8           ;           定时器
 03B8           ; ****************************************/
 03B8           ; void timer_int(void)
 03B8           ; { 
 03B8                   .dbline 144
 03B8           ;      TCCR1B = 0x00; //stop
 03B8 2224              clr R2
 03BA 2EBC              out 0x2e,R2
 03BC                   .dbline 145
 03BC           ;        TCNT1H = 0xd4; //setup
 03BC 84ED              ldi R24,212
 03BE 8DBD              out 0x2d,R24
 03C0                   .dbline 146
 03C0           ;        TCNT1L = 0xce;
 03C0 8EEC              ldi R24,206
 03C2 8CBD              out 0x2c,R24
 03C4                   .dbline 147
 03C4           ;        TCCR1A = 0x00;
 03C4 2FBC              out 0x2f,R2
 03C6                   .dbline 148
 03C6           ;        TCCR1B = 0x01; //start Timer
 03C6 81E0              ldi R24,1
 03C8 8EBD              out 0x2e,R24
 03CA                   .dbline 149
 03CA           ;      TIMSK = 0x04;
 03CA 84E0              ldi R24,4
 03CC 89BF              out 0x39,R24
 03CE                   .dbline -2
 03CE           L45:
 03CE                   .dbline 0 ; func end
 03CE 0895              ret
 03D0                   .dbend
 03D0                   .dbfunc e exit_int _exit_int fV
                        .even
 03D0           _exit_int::
 03D0                   .dbline -1
 03D0                   .dbline 157
 03D0           ; 
 03D0           ; }
 03D0           ; 
 03D0           ; /****************************************
 03D0           ;           外中断
 03D0           ; ****************************************/
 03D0           ; void exit_int(void)
 03D0           ; {
 03D0                   .dbline 158
 03D0           ;      GICR  = 0x40; 
 03D0 80E4              ldi R24,64
 03D2 8BBF              out 0x3b,R24
 03D4                   .dbline 159
 03D4           ;        MCUCR = 0x02;
 03D4 82E0              ldi R24,2
 03D6 85BF              out 0x35,R24
 03D8                   .dbline -2
 03D8           L46:
 03D8                   .dbline 0 ; func end
 03D8 0895              ret
 03DA                   .dbend
 03DA                   .dbfunc e uart_int _uart_int fV
                        .even
 03DA           _uart_int::
 03DA                   .dbline -1
 03DA                   .dbline 167
 03DA           ; 
 03DA           ; }
 03DA           ; 
 03DA           ; /****************************************
 03DA           ;           串口通讯
 03DA           ; ****************************************/
 03DA           ; void uart_int(void)
 03DA           ; {
 03DA                   .dbline 168
 03DA           ;       UCSRB = 0x00; //disable while setting baud rate
 03DA 2224              clr R2
 03DC 2AB8              out 0xa,R2
 03DE                   .dbline 169
 03DE           ;       UCSRA = 0x00;
 03DE 2BB8              out 0xb,R2
 03E0                   .dbline 170
 03E0           ;       UCSRC = 0x00;
 03E0 20BC              out 0x20,R2
 03E2                   .dbline 171
 03E2           ;       UBRR =5;      //设置波特率115200
 03E2 85E0              ldi R24,5
 03E4 89B9              out 0x9,R24
 03E6                   .dbline 172
 03E6           ;       UCSRB = 0x98; //接受中断允许,接受允许,发送允许
 03E6 88E9              ldi R24,152
 03E8 8AB9              out 0xa,R24
 03EA                   .dbline 173
 03EA           ;       UCSRC = 0xBc; //8BIT, 奇校验,2停止位
 03EA 8CEB              ldi R24,188
 03EC 80BD              out 0x20,R24
 03EE                   .dbline -2
 03EE           L47:
 03EE                   .dbline 0 ; func end
 03EE 0895              ret
 03F0                   .dbend
 03F0                   .dbfunc e device_int _device_int fV
                        .even
 03F0           _device_int::
 03F0                   .dbline -1
 03F0                   .dbline 180
 03F0           ; }
 03F0           ; 
 03F0           ; /****************************************
 03F0           ;           器件初始化函数
 03F0           ; ****************************************/
 03F0           ; void device_int(void)
 03F0           ; {
 03F0                   .dbline 181
 03F0           ;      CLI();
 03F0 F894              cli
 03F2                   .dbline 182
 03F2           ;        port_int();
 03F2 D4DF              xcall _port_int
 03F4                   .dbline 183
 03F4           ;        timer_int();
 03F4 E1DF              xcall _timer_int
 03F6                   .dbline 184
 03F6           ;        exit_int();
 03F6 ECDF              xcall _exit_int
 03F8                   .dbline 185
 03F8           ;        uart_int();
 03F8 F0DF              xcall _uart_int
 03FA                   .dbline 186
 03FA           ;        SEI(); 
 03FA 7894              sei
 03FC                   .dbline -2
 03FC           L48:
 03FC                   .dbline 0 ; func end
 03FC 0895              ret
 03FE                   .dbend
 03FE                   .dbfunc e uart_TX _uart_TX fV
 03FE           ;           data -> R16
                        .even
 03FE           _uart_TX::
 03FE                   .dbline -1
 03FE                   .dbline 193
 03FE           ; }
 03FE           ; 
 03FE           ; /****************************************
 03FE           ;           串口收发数据
 03FE           ; ****************************************/
 03FE           ; void uart_TX(unsigned char data)
 03FE           ; {
 03FE                   .dbline 194
 03FE           ;     UCSRA |=0X40;         //标志清零
 03FE 5E9A              sbi 0xb,6
 0400                   .dbline 195
 0400           ;       UDR =data;
 0400 0CB9              out 0xc,R16
 0402                   .dbline -2
 0402           L49:
 0402                   .dbline 0 ; func end
 0402 0895              ret
 0404                   .dbsym r data 16 c
 0404                   .dbend
 0404                   .dbfunc e uart_time_out _uart_time_out fV
                        .even
 0404           _uart_time_out::
 0404                   .dbline -1
 0404                   .dbline 201
 0404           ; }
 0404           ; //***************
 0404           ; //传输超时处理,当time_out_ms大于设定值的时候,等待等待20S,并且
 0404           ; //一直发送标志符号,超过20S以后,进行错误处理    
 0404           ; void uart_time_out(void)
 0404           ; {
 0404                   .dbline 202
 0404           ;        time_out_ms++;
 0404 80912C00          lds R24,_time_out_ms
 0408 90912D00          lds R25,_time_out_ms+1
 040C 0196              adiw R24,1
 040E 90932D00          sts _time_out_ms+1,R25
 0412 80932C00          sts _time_out_ms,R24
 0416                   .dbline 203
 0416           ;        if (HeadEN ==0 && FileEnd ==0 && time_out_ms >=800 )
 0416 20902700          lds R2,_HeadEN
 041A 2220              tst R2
 041C 61F5              brne L51
 041E 20902500          lds R2,_FileEnd
 0422 2220              tst R2
 0424 41F5              brne L51
 0426 8032              cpi R24,32
 0428 E3E0              ldi R30,3
 042A 9E07              cpc R25,R30
 042C 20F1              brlo L51
 042E                   .dbline 204
 042E           ;        {
 042E                   .dbline 205
 042E           ;               if(sys_cont ==0)                 //秒记时 
 042E 20901D00          lds R2,_sys_cont
 0432 30901E00          lds R3,_sys_cont+1
 0436 2220              tst R2
 0438 99F4              brne L53
 043A 3320              tst R3
 043C 89F4              brne L53
 043E           X1:
 043E                   .dbline 206
 043E           ;               {
 043E                   .dbline 207
 043E           ;                  time_out_s++;
 043E 80912E00          lds R24,_time_out_s
 0442 8F5F              subi R24,255    ; addi 1
 0444 80932E00          sts _time_out_s,R24
 0448                   .dbline 208

⌨️ 快捷键说明

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