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

📄 display_board3.0.lis

📁 一个LED特效显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0023 0400              .word 4
                        .area data(ram, con, rel)
 0025                   .dbfile display_board3.0.c
 0025                   .dbsym e PDataYMin _PDataYMin I
 0025           _FileEnd::
 0025                   .blkb 1
                        .area idata
 0025 01                .byte 1
                        .area data(ram, con, rel)
 0026                   .dbfile display_board3.0.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_board3.0.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_board3.0.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_board3.0.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_board3.0.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_board3.0.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_board3.0.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_board3.0.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_board3.0.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_board3.0.c
 0033                   .dbsym e ModelContJuge _ModelContJuge c
                        .area text(rom, con, rel)
 01D8                   .dbfile display_board3.0.c
 01D8                   .dbfunc e port_int _port_int fV
                        .even
 01D8           _port_int::
 01D8                   .dbline -1
 01D8                   .dbline 128
 01D8           ; ****************************************/
 01D8           ; void port_int(void)
 01D8           ; {
 01D8                   .dbline 129
 01D8           ;      DDRA =0XFF;
 01D8 8FEF              ldi R24,255
 01DA 8ABB              out 0x1a,R24
 01DC                   .dbline 130
 01DC           ;        PORTA =0XFF;
 01DC 8BBB              out 0x1b,R24
 01DE                   .dbline 131
 01DE           ;        DDRB =0B00001110;
 01DE 8EE0              ldi R24,14
 01E0 87BB              out 0x17,R24
 01E2                   .dbline 132
 01E2           ;        PORTB =0XFF;
 01E2 8FEF              ldi R24,255
 01E4 88BB              out 0x18,R24
 01E6                   .dbline 133
 01E6           ;        DDRC =0XFF;
 01E6 84BB              out 0x14,R24
 01E8                   .dbline 134
 01E8           ;        PORTC =0XFF;
 01E8 85BB              out 0x15,R24
 01EA                   .dbline 135
 01EA           ;        DDRD  = 0xF8;          //
 01EA 88EF              ldi R24,248
 01EC 81BB              out 0x11,R24
 01EE                   .dbline 136
 01EE           ;        PORTD = 0XFF;
 01EE 8FEF              ldi R24,255
 01F0 82BB              out 0x12,R24
 01F2                   .dbline -2
 01F2           L40:
 01F2                   .dbline 0 ; func end
 01F2 0895              ret
 01F4                   .dbend
 01F4                   .dbfunc e timer_int _timer_int fV
                        .even
 01F4           _timer_int::
 01F4                   .dbline -1
 01F4                   .dbline 143
 01F4           ; }
 01F4           ; 
 01F4           ; /****************************************
 01F4           ;           定时器
 01F4           ; ****************************************/
 01F4           ; void timer_int(void)
 01F4           ; { 
 01F4                   .dbline 144
 01F4           ;      TCCR1B = 0x00; //stop
 01F4 2224              clr R2
 01F6 2EBC              out 0x2e,R2
 01F8                   .dbline 145
 01F8           ;        TCNT1H = 0xd4; //setup
 01F8 84ED              ldi R24,212
 01FA 8DBD              out 0x2d,R24
 01FC                   .dbline 146
 01FC           ;        TCNT1L = 0xce;
 01FC 8EEC              ldi R24,206
 01FE 8CBD              out 0x2c,R24
 0200                   .dbline 147
 0200           ;        TCCR1A = 0x00;
 0200 2FBC              out 0x2f,R2
 0202                   .dbline 148
 0202           ;        TCCR1B = 0x01; //start Timer
 0202 81E0              ldi R24,1
 0204 8EBD              out 0x2e,R24
 0206                   .dbline 149
 0206           ;      TIMSK = 0x04;
 0206 84E0              ldi R24,4
 0208 89BF              out 0x39,R24
 020A                   .dbline -2
 020A           L41:
 020A                   .dbline 0 ; func end
 020A 0895              ret
 020C                   .dbend
 020C                   .dbfunc e exit_int _exit_int fV
                        .even
 020C           _exit_int::
 020C                   .dbline -1
 020C                   .dbline 157
 020C           ; 
 020C           ; }
 020C           ; 
 020C           ; /****************************************
 020C           ;           外中断
 020C           ; ****************************************/
 020C           ; void exit_int(void)
 020C           ; {
 020C                   .dbline 158
 020C           ;      GICR  = 0x40; 
 020C 80E4              ldi R24,64
 020E 8BBF              out 0x3b,R24
 0210                   .dbline 159
 0210           ;        MCUCR = 0x02;
 0210 82E0              ldi R24,2
 0212 85BF              out 0x35,R24
 0214                   .dbline -2
 0214           L42:
 0214                   .dbline 0 ; func end
 0214 0895              ret
 0216                   .dbend
 0216                   .dbfunc e uart_int _uart_int fV
                        .even
 0216           _uart_int::
 0216                   .dbline -1
 0216                   .dbline 167
 0216           ; 
 0216           ; }
 0216           ; 
 0216           ; /****************************************
 0216           ;           串口通讯
 0216           ; ****************************************/
 0216           ; void uart_int(void)
 0216           ; {
 0216                   .dbline 168
 0216           ;       UCSRB = 0x00; //disable while setting baud rate
 0216 2224              clr R2
 0218 2AB8              out 0xa,R2
 021A                   .dbline 169
 021A           ;       UCSRA = 0x00;
 021A 2BB8              out 0xb,R2
 021C                   .dbline 170
 021C           ;       UCSRC = 0x00;
 021C 20BC              out 0x20,R2
 021E                   .dbline 171
 021E           ;       UBRR =5;      //设置波特率115200
 021E 85E0              ldi R24,5
 0220 89B9              out 0x9,R24
 0222                   .dbline 172
 0222           ;       UCSRB = 0x98; //接受中断允许,接受允许,发送允许
 0222 88E9              ldi R24,152
 0224 8AB9              out 0xa,R24
 0226                   .dbline 173
 0226           ;       UCSRC = 0xAe; //8BIT, 奇校验,2停止位
 0226 8EEA              ldi R24,174
 0228 80BD              out 0x20,R24
 022A                   .dbline -2
 022A           L43:
 022A                   .dbline 0 ; func end
 022A 0895              ret
 022C                   .dbend
 022C                   .dbfunc e device_int _device_int fV
                        .even
 022C           _device_int::
 022C                   .dbline -1
 022C                   .dbline 180
 022C           ; }
 022C           ; 
 022C           ; /****************************************
 022C           ;           器件初始化函数
 022C           ; ****************************************/
 022C           ; void device_int(void)
 022C           ; {
 022C                   .dbline 181
 022C           ;      CLI();
 022C F894              cli
 022E                   .dbline 182
 022E           ;        port_int();
 022E D4DF              xcall _port_int
 0230                   .dbline 183
 0230           ;        timer_int();
 0230 E1DF              xcall _timer_int
 0232                   .dbline 184
 0232           ;        exit_int();
 0232 ECDF              xcall _exit_int
 0234                   .dbline 185
 0234           ;        uart_int();
 0234 F0DF              xcall _uart_int
 0236                   .dbline 186
 0236           ;        SEI(); 
 0236 7894              sei
 0238                   .dbline -2
 0238           L44:
 0238                   .dbline 0 ; func end
 0238 0895              ret
 023A                   .dbend
 023A                   .dbfunc e uart_TX _uart_TX fV
 023A           ;           data -> R16
                        .even
 023A           _uart_TX::
 023A                   .dbline -1
 023A                   .dbline 193
 023A           ; }
 023A           ; 
 023A           ; /****************************************
 023A           ;           串口收发数据
 023A           ; ****************************************/
 023A           ; void uart_TX(unsigned char data)
 023A           ; {
 023A                   .dbline 194
 023A           ;     UCSRA |=0X40;         //标志清零
 023A 5E9A              sbi 0xb,6
 023C                   .dbline 195
 023C           ;       UDR =data;
 023C 0CB9              out 0xc,R16
 023E                   .dbline -2
 023E           L45:
 023E                   .dbline 0 ; func end
 023E 0895              ret
 0240                   .dbsym r data 16 c
 0240                   .dbend
 0240                   .dbfunc e uart_time_out _uart_time_out fV
                        .even
 0240           _uart_time_out::
 0240                   .dbline -1
 0240                   .dbline 201
 0240           ; }
 0240           ; //***************
 0240           ; //传输超时处理,当time_out_ms大于设定值的时候,等待等待20S,并且
 0240           ; //一直发送标志符号,超过20S以后,进行错误处理    
 0240           ; void uart_time_out(void)
 0240           ; {
 0240                   .dbline 202
 0240           ;        time_out_ms++;
 0240 80912C00          lds R24,_time_out_ms
 0244 90912D00          lds R25,_time_out_ms+1
 0248 0196              adiw R24,1
 024A 90932D00          sts _time_out_ms+1,R25
 024E 80932C00          sts _time_out_ms,R24
 0252                   .dbline 203
 0252           ;        if (HeadEN ==0 && FileEnd ==0 && time_out_ms >=800 )
 0252 20902700          lds R2,_HeadEN
 0256 2220              tst R2
 0258 61F5              brne L47
 025A 20902500          lds R2,_FileEnd
 025E 2220              tst R2
 0260 41F5              brne L47
 0262 8032              cpi R24,32
 0264 E3E0              ldi R30,3
 0266 9E07              cpc R25,R30
 0268 20F1              brlo L47
 026A                   .dbline 204
 026A           ;        {
 026A                   .dbline 205
 026A           ;               if(sys_cont ==0)                 //秒记时 
 026A 20901D00          lds R2,_sys_cont
 026E 30901E00          lds R3,_sys_cont+1

⌨️ 快捷键说明

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