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

📄 main.lis

📁 LED条屏显示程序,但是对初学者
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00C8 14D0              xcall _main_init
 00CA                   .dbline 77
 00CA           ; 
 00CA           ;   for(;;)
 00CA           L19:
 00CA                   .dbline 78
 00CA                   .dbline 79
 00CA 0E940000          xcall _SONG_task
 00CE                   .dbline 80
 00CE A895              wdr
 00D0                   .dbline 81
 00D0 0E940000          xcall _KBOD_task
 00D4                   .dbline 82
 00D4 A895              wdr
 00D6                   .dbline 83
 00D6 0E940000          xcall _DISP_task
 00DA                   .dbline 84
 00DA A895              wdr
 00DC                   .dbline 85
 00DC                   .dbline 77
 00DC                   .dbline 77
 00DC F6CF              xjmp L19
 00DE           X2:
 00DE                   .dbline -2
 00DE           L17:
 00DE                   .dbline 0 ; func end
 00DE 0895              ret
 00E0                   .dbend
 00E0                   .dbfunc e uart_init _uart_init fV
                        .even
 00E0           _uart_init::
 00E0                   .dbline -1
 00E0                   .dbline 91
 00E0           ;   {
 00E0           ;    SONG_task();
 00E0           ;    _WDR();
 00E0           ;    KBOD_task();
 00E0           ;    _WDR();
 00E0           ;    DISP_task();
 00E0           ;    _WDR();
 00E0           ;    }
 00E0           ; }
 00E0           ; 
 00E0           ; 
 00E0           ; //=======================================================================
 00E0           ; void uart_init(void)           //用232串口发数据到PC,收集数据
 00E0           ;   {
 00E0                   .dbline 92
 00E0           ;     UCSRB=(1<<RXEN)|(1<<TXEN);//允许发送和接收
 00E0 88E1              ldi R24,24
 00E2 8AB9              out 0xa,R24
 00E4                   .dbline 93
 00E4           ;     UBRRH=1;
 00E4 81E0              ldi R24,1
 00E6 80BD              out 0x20,R24
 00E8                   .dbline 94
 00E8           ;       UBRRL=0X9E;
 00E8 8EE9              ldi R24,158
 00EA 89B9              out 0x9,R24
 00EC                   .dbline 95
 00EC           ;     UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
 00EC 86E8              ldi R24,134
 00EE 80BD              out 0x20,R24
 00F0                   .dbline -2
 00F0           L23:
 00F0                   .dbline 0 ; func end
 00F0 0895              ret
 00F2                   .dbend
 00F2                   .dbfunc e main_init _main_init fV
                        .even
 00F2           _main_init::
 00F2 2597              sbiw R28,5
 00F4                   .dbline -1
 00F4                   .dbline 101
 00F4           ;   }
 00F4           ; 
 00F4           ; 
 00F4           ; //=======================================================================
 00F4           ; void main_init(void)
 00F4           ; {
 00F4                   .dbline 102
 00F4           ;  I2C_Ini();
 00F4 0E940000          xcall _I2C_Ini
 00F8                   .dbline 103
 00F8           ;  STA013_Ini(); 
 00F8 0E940000          xcall _STA013_Ini
 00FC                   .dbline 104
 00FC           ;  buffer[0]=SDInit();    //里面有SPI的使能初始化,要放在LCD初始化的前面
 00FC 0E940000          xcall _SDInit
 0100 00934000          sts _buffer,R16
 0104                   .dbline 105
 0104           ;  LCD_init();          //初始化LCD模块
 0104 0E940000          xcall _LCD_init
 0108                   .dbline 109
 0108           ;                       //显示LOGO
 0108           ;  
 0108           ;  
 0108           ;  if(buffer[0])
 0108 20904000          lds R2,_buffer
 010C 2220              tst R2
 010E 81F0              breq L25
 0110                   .dbline 110
 0110           ;    {
 0110                   .dbline 111
 0110           ;     LCD_write_String(0,1,12,"SD INIT ERR!",0);
 0110 2224              clr R2
 0112 2C82              std y+4,R2
 0114 80E0              ldi R24,<L27
 0116 90E0              ldi R25,>L27
 0118 9B83              std y+3,R25
 011A 8A83              std y+2,R24
 011C 8CE0              ldi R24,12
 011E 8883              std y+0,R24
 0120 21E0              ldi R18,1
 0122 0027              clr R16
 0124 0E940000          xcall _LCD_write_String
 0128                   .dbline 112
 0128           ;       putstring("SD INIT ERR!");
 0128 00E0              ldi R16,<L27
 012A 10E0              ldi R17,>L27
 012C 84DF              xcall _putstring
 012E           L28:
 012E                   .dbline 113
 012E           L29:
 012E                   .dbline 113
 012E           ;     while(1);
 012E FFCF              xjmp L28
 0130           X3:
 0130                   .dbline 114
 0130           ;    } 
 0130           L25:
 0130                   .dbline 115
 0130           ;  LCD_write_String(0,1,11,"SD INIT OK!",0);
 0130 2224              clr R2
 0132 2C82              std y+4,R2
 0134 80E0              ldi R24,<L31
 0136 90E0              ldi R25,>L31
 0138 9B83              std y+3,R25
 013A 8A83              std y+2,R24
 013C 8BE0              ldi R24,11
 013E 8883              std y+0,R24
 0140 21E0              ldi R18,1
 0142 0027              clr R16
 0144 0E940000          xcall _LCD_write_String
 0148                   .dbline 116
 0148           ;  putstring("SD INIT OK!"); 
 0148 00E0              ldi R16,<L31
 014A 10E0              ldi R17,>L31
 014C 74DF              xcall _putstring
 014E                   .dbline 118
 014E           ;  
 014E           ;  sta_Init();
 014E 0E940000          xcall _sta_Init
 0152                   .dbline 119
 0152           ;  LCD_write_String(0,2,10,"STA013 OK!",0);
 0152 2224              clr R2
 0154 2C82              std y+4,R2
 0156 80E0              ldi R24,<L32
 0158 90E0              ldi R25,>L32
 015A 9B83              std y+3,R25
 015C 8A83              std y+2,R24
 015E 8AE0              ldi R24,10
 0160 8883              std y+0,R24
 0162 22E0              ldi R18,2
 0164 0027              clr R16
 0166 0E940000          xcall _LCD_write_String
 016A                   .dbline 120
 016A           ;  putstring("STA013 OK!");
 016A 00E0              ldi R16,<L32
 016C 10E0              ldi R17,>L32
 016E 63DF              xcall _putstring
 0170                   .dbline 122
 0170           ;  
 0170           ;  if(FATinit())
 0170 0E940000          xcall _FATinit
 0174 0023              tst R16
 0176 81F0              breq L33
 0178                   .dbline 123
 0178           ;    {
 0178                   .dbline 124
 0178           ;     LCD_write_String(0,3,13,"FAT INIT ERR!",0);
 0178 2224              clr R2
 017A 2C82              std y+4,R2
 017C 80E0              ldi R24,<L35
 017E 90E0              ldi R25,>L35
 0180 9B83              std y+3,R25
 0182 8A83              std y+2,R24
 0184 8DE0              ldi R24,13
 0186 8883              std y+0,R24
 0188 23E0              ldi R18,3
 018A 0027              clr R16
 018C 0E940000          xcall _LCD_write_String
 0190                   .dbline 125
 0190           ;       putstring("FAT INIT ERR!");
 0190 00E0              ldi R16,<L35
 0192 10E0              ldi R17,>L35
 0194 50DF              xcall _putstring
 0196           L36:
 0196                   .dbline 126
 0196           L37:
 0196                   .dbline 126
 0196           ;     while(1);
 0196 FFCF              xjmp L36
 0198           X4:
 0198                   .dbline 127
 0198           ;    }
 0198           L33:
 0198                   .dbline 128
 0198           ;  LCD_write_String(0,3,12,"FAT INIT OK!",0);
 0198 2224              clr R2
 019A 2C82              std y+4,R2
 019C 80E0              ldi R24,<L39
 019E 90E0              ldi R25,>L39
 01A0 9B83              std y+3,R25
 01A2 8A83              std y+2,R24
 01A4 8CE0              ldi R24,12
 01A6 8883              std y+0,R24
 01A8 23E0              ldi R18,3
 01AA 0027              clr R16
 01AC 0E940000          xcall _LCD_write_String
 01B0                   .dbline 129
 01B0           ;  putstring("FAT INIT OK!");
 01B0 00E0              ldi R16,<L39
 01B2 10E0              ldi R17,>L39
 01B4 40DF              xcall _putstring
 01B6                   .dbline 131
 01B6           ;  
 01B6           ;  Mp3_number_Counter();
 01B6 0E940000          xcall _Mp3_number_Counter
 01BA                   .dbline 133
 01BA           ; 
 01BA           ;  if(MP3_all_number==0)
 01BA 20904202          lds R2,_MP3_all_number
 01BE 2220              tst R2
 01C0 81F4              brne L40
 01C2                   .dbline 134
 01C2           ;     {
 01C2                   .dbline 135
 01C2           ;        LCD_write_String(0,4,13,"HAVE NOT MP3!",0);     //启动3310显示没有MP3文件
 01C2 2224              clr R2
 01C4 2C82              std y+4,R2
 01C6 80E0              ldi R24,<L42
 01C8 90E0              ldi R25,>L42
 01CA 9B83              std y+3,R25
 01CC 8A83              std y+2,R24
 01CE 8DE0              ldi R24,13
 01D0 8883              std y+0,R24
 01D2 24E0              ldi R18,4
 01D4 0027              clr R16
 01D6 0E940000          xcall _LCD_write_String
 01DA                   .dbline 136
 01DA           ;        putstring("HAVE NOT MP3!");
 01DA 00E0              ldi R16,<L42
 01DC 10E0              ldi R17,>L42
 01DE 2BDF              xcall _putstring
 01E0           L43:
 01E0                   .dbline 137
 01E0           L44:
 01E0                   .dbline 137
 01E0           ;        while(1);
 01E0 FFCF              xjmp L43
 01E2           X5:
 01E2                   .dbline 138
 01E2           ;       }
 01E2           L40:
 01E2                   .dbline 140
 01E2           ;  
 01E2           ;  Delay_ms(500);
 01E2 04EF              ldi R16,500
 01E4 11E0              ldi R17,1
 01E6 16DF              xcall _Delay_ms
 01E8                   .dbline 141
 01E8           ;  LCD_clear();          
 01E8 0E940000          xcall _LCD_clear
 01EC                   .dbline 143
 01EC           ;                     
 01EC           ;  LCD_set_XY(0,2);
 01EC 22E0              ldi R18,2
 01EE 0027              clr R16
 01F0 0E940000          xcall _LCD_set_XY
 01F4                   .dbline 144
 01F4           ;  LCD_write_byte(0xFF,1);
 01F4 21E0              ldi R18,1
 01F6 0FEF              ldi R16,255
 01F8 0E940000          xcall _LCD_write_byte
 01FC                   .dbline 145
 01FC           ;  LCD_write_byte(0x01,1);
 01FC 21E0              ldi R18,1
 01FE 01E0              ldi R16,1
 0200 0E940000          xcall _LCD_write_byte
 0204                   .dbline 147
 0204           ;  
 0204           ;  LCD_set_XY(82,2);
 0204 22E0              ldi R18,2
 0206 02E5              ldi R16,82
 0208 0E940000          xcall _LCD_set_XY
 020C                   .dbline 148

⌨️ 快捷键说明

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