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

📄 mp3.lst

📁 LED条屏显示程序,但是对初学者
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0436)         buffer_l[83]=0x00; 
(0437) 	 }
(0438) else 
(0439)      {
(0440) buffer_h[83]=Hzk[i/12][j];
(0441) buffer_l[83]=Hzk[i/12][j+12];
(0442)      }
(0443) 
(0444) j++;
(0445) 
(0446) if (j==12) j=0;
(0447) 
(0448) for (n=0; n<83; n++)
(0449) 
(0450) { 
(0451) 
(0452) buffer_h[n]=buffer_h[n+1];
(0453) 
(0454) buffer_l[n]=buffer_l[n+1];
(0455) 
(0456) } 
(0457) 
(0458) LCD_set_XY(0,0);
(0459) 
(0460) for (n=0; n<83; n++)
(0461) 
(0462) { 
(0463) 
(0464) LCD_write_byte(buffer_h[n],1);
(0465) 
(0466) } 
(0467) 
(0468) LCD_set_XY(0,1); 
(0469) 
(0470) for (n=0; n<83; n++)
(0471) 
(0472) { 
(0473) 
(0474) LCD_write_byte(buffer_l[n],1);
(0475) 
(0476) } 
(0477) 
(0478) Delay_ms(250);
(0479) 
(0480) }
(0481) }
(0482) */
(0483) 
(0484) //=======================================================================
(0485) void JINGDU(void)
(0486) {       uint8 i;
(0487)         LCD_set_XY(0,4);
    0AAE E024      LDI	R18,4
    0AAF 2700      CLR	R16
    0AB0 DF78      RCALL	_LCD_set_XY
(0488) 		LCD_write_byte(0x7f,1);
    0AB1 E021      LDI	R18,1
    0AB2 E70F      LDI	R16,0x7F
    0AB3 DFCF      RCALL	_LCD_write_byte
(0489)         i=82;
    0AB4 E542      LDI	R20,0x52
    0AB5 C003      RJMP	0x0AB9
(0490)         while(i--)
(0491)         {
(0492) 		 LCD_write_byte(0x41,1);
    0AB6 E021      LDI	R18,1
    0AB7 E401      LDI	R16,0x41
    0AB8 DFCA      RCALL	_LCD_write_byte
    0AB9 2E24      MOV	R2,R20
    0ABA 2433      CLR	R3
    0ABB 5041      SUBI	R20,1
    0ABC 2022      TST	R2
    0ABD F7C1      BNE	0x0AB6
(0493)         }
(0494) 		LCD_write_byte(0x7f,1);
    0ABE E021      LDI	R18,1
    0ABF E70F      LDI	R16,0x7F
    0AC0 DFC2      RCALL	_LCD_write_byte
    0AC1 940E1CD0  CALL	pop_gset1
    0AC3 9508      RET
_GEPAI:
  i                    --> R20
    0AC4 940E1CCD  CALL	push_gset1
(0495) }
(0496) 
(0497) //=======================================================================
(0498) void GEPAI(void)
(0499) {
(0500)  uint8 i;
(0501)  LCD_set_XY(6,2);
    0AC6 E022      LDI	R18,2
    0AC7 E006      LDI	R16,6
    0AC8 DF60      RCALL	_LCD_set_XY
(0502)  for(i=0;i<72;i++)
    0AC9 2744      CLR	R20
    0ACA C004      RJMP	0x0ACF
(0503)     {
(0504) 	 LCD_write_byte(0x00,1);
    0ACB E021      LDI	R18,1
    0ACC 2700      CLR	R16
    0ACD DFB5      RCALL	_LCD_write_byte
    0ACE 9543      INC	R20
    0ACF 3448      CPI	R20,0x48
    0AD0 F3D0      BCS	0x0ACB
(0505) 	}
(0506)   LCD_set_XY(6,3);
    0AD1 E023      LDI	R18,3
    0AD2 E006      LDI	R16,6
    0AD3 DF55      RCALL	_LCD_set_XY
(0507)  for(i=0;i<72;i++)
    0AD4 2744      CLR	R20
    0AD5 C004      RJMP	0x0ADA
(0508)     {
(0509)      LCD_write_byte(0x00,1);
    0AD6 E021      LDI	R18,1
    0AD7 2700      CLR	R16
    0AD8 DFAA      RCALL	_LCD_write_byte
    0AD9 9543      INC	R20
    0ADA 3448      CPI	R20,0x48
    0ADB F3D0      BCS	0x0AD6
    0ADC 940E1CD0  CALL	pop_gset1
    0ADE 9508      RET
_Abtain_code:
  code_buffer          --> R12
  number               --> R10
    0ADF 940E1CC7  CALL	push_gset4
    0AE1 0169      MOVW	R12,R18
    0AE2 2EA0      MOV	R10,R16
    0AE3 9724      SBIW	R28,4
FILE: E:\MYWORK~1\开发设计\AVR-MP3\mp3开发板光盘\驱动程序\MP3BOA~1.8\chinese_code.c
(0001) //ICC-AVR application builder : 2005-11-12 17:11:59
(0002) // Target : M16
(0003) // Crystal: 8.0000Mhz
(0004) // copyright:鲁军波(endylu)
(0005) // www.shop34612283.taobao.com
(0006) // www.adembed.com
(0007) #include <iom16v.h>
(0008) #include <macros.h>
(0009) #include "main.h"
(0010) 
(0011) 
(0012) extern uint32 CHINALIB_point;
(0013) extern MP3_INFO mp3_info;
(0014) 
(0015) //=======================================================================
(0016) void Abtain_code(uint8 number,uint8 *code_buffer)
(0017) { 
(0018)   SD_read_sector2(CHINALIB_point+((long)mp3_info.NAME[number]<<5),code_buffer,24);
    0AE4 E188      LDI	R24,0x18
    0AE5 E090      LDI	R25,0
    0AE6 839B      STD	Y+3,R25
    0AE7 838A      STD	Y+2,R24
    0AE8 82D9      STD	Y+1,R13
    0AE9 82C8      STD	Y+0,R12
    0AEA E082      LDI	R24,2
    0AEB 9D8A      MUL	R24,R10
    0AEC 01F0      MOVW	R30,R0
    0AED ED85      LDI	R24,0xD5
    0AEE E090      LDI	R25,0
    0AEF 0FE8      ADD	R30,R24
    0AF0 1FF9      ADC	R31,R25
    0AF1 8020      LDD	R2,Z+0
    0AF2 8031      LDD	R3,Z+1
    0AF3 2444      CLR	R4
    0AF4 2455      CLR	R5
    0AF5 E085      LDI	R24,5
    0AF6 E090      LDI	R25,0
    0AF7 938A      ST	R24,-Y
    0AF8 0181      MOVW	R16,R2
    0AF9 0192      MOVW	R18,R4
    0AFA 940E1D3E  CALL	lsl32
    0AFC 90400071  LDS	R4,CHINALIB_point+2
    0AFE 90500072  LDS	R5,CHINALIB_point+3
    0B00 9020006F  LDS	R2,CHINALIB_point
    0B02 90300070  LDS	R3,CHINALIB_point+1
    0B04 0E20      ADD	R2,R16
    0B05 1E31      ADC	R3,R17
    0B06 1E42      ADC	R4,R18
    0B07 1E53      ADC	R5,R19
    0B08 0181      MOVW	R16,R2
    0B09 0192      MOVW	R18,R4
    0B0A 940E1567  CALL	_SD_read_sector2
    0B0C 9624      ADIW	R28,4
    0B0D 940E1CBF  CALL	pop_gset4
    0B0F 9508      RET
_FATinit:
  RootDirSectors       --> R10
  BPB_RootEntCnt       --> R10
  BPB_FATsz16          --> R12
  BPB_NumFATs          --> R14
  BPB_BytePerSec       --> Y+4
    0B10 940E1CC5  CALL	push_gset5
    0B12 9726      SBIW	R28,6
FILE: E:\MYWORK~1\开发设计\AVR-MP3\mp3开发板光盘\驱动程序\MP3BOA~1.8\FAT.c
(0001) //ICC-AVR application builder : 2005-11-12 17:11:59
(0002) // Target : M16
(0003) // Crystal: 8.0000Mhz
(0004) // copyright:鲁军波(endylu)
(0005) // www.shop34612283.taobao.com
(0006) // www.adembed.com
(0007) #include <iom16v.h>
(0008) #include <macros.h>
(0009) #include "main.h"
(0010) 
(0011) uint32 CHINALIB_point=0;
(0012) uint32 UNICODE_point=0;
(0013) 
(0014) extern MP3_INFO mp3_info;
(0015) extern FAT_INFO fat_info;
(0016) 
(0017) extern uint8 buffer[512];
(0018) extern uint8 MP3_all_number;
(0019) extern uint8 name_number;
(0020) 
(0021) //=======================================================================
(0022) uint8 FATinit(void)
(0023) {/*SD卡的变量*/
(0024)  
(0025)  uint16 BPB_BytePerSec;          //每扇区的字节数     512
(0026)   
(0027)  uint8  BPB_NumFATs;             //此卷中FAT表的份数;
(0028)  uint16 BPB_RootEntCnt;          //fat12/16根目录的目录项数;
(0029)  uint16 BPB_FATsz16;             //FAT12/FAT16一个FAT表占的扇区数(FAT32此项必须为0);
(0030)  
(0031)  uint16 RootDirSectors;          //根目录所占的扇区数
(0032)  
(0033)  /*变量取值*/
(0034)  
(0035)  if(SD_read_sector2(0,&fat_info.Relative,1))
    0B13 E081      LDI	R24,1
    0B14 E090      LDI	R25,0
    0B15 839B      STD	Y+3,R25
    0B16 838A      STD	Y+2,R24
    0B17 E08E      LDI	R24,0xE
    0B18 E091      LDI	R25,1
    0B19 8399      STD	Y+1,R25
    0B1A 8388      STD	Y+0,R24
    0B1B E000      LDI	R16,0
    0B1C E010      LDI	R17,0
    0B1D E020      LDI	R18,0
    0B1E E030      LDI	R19,0
    0B1F 940E1567  CALL	_SD_read_sector2
    0B21 2300      TST	R16
    0B22 F011      BEQ	0x0B25
(0036)  	{
(0037) 	return 1;
    0B23 E001      LDI	R16,1
    0B24 C0C6      RJMP	0x0BEB
(0038) 	}
(0039)  
(0040)  if(fat_info.Relative==0xEB)                       //判断有没有Relative Sectors
    0B25 9180010E  LDS	R24,fat_info
    0B27 3E8B      CPI	R24,0xEB
    0B28 F421      BNE	0x0B2D
(0041)     fat_info.Relative=0;
    0B29 2422      CLR	R2
    0B2A 9220010E  STS	fat_info,R2
    0B2C C00E      RJMP	0x0B3B
(0042)  else
(0043)     SD_read_sector2(454,&fat_info.Relative,1);        //取Relative Sectors
    0B2D E081      LDI	R24,1
    0B2E E090      LDI	R25,0
    0B2F 839B      STD	Y+3,R25
    0B30 838A      STD	Y+2,R24
    0B31 E08E      LDI	R24,0xE
    0B32 E091      LDI	R25,1
    0B33 8399      STD	Y+1,R25
    0B34 8388      STD	Y+0,R24
    0B35 EC06      LDI	R16,0xC6
    0B36 E011      LDI	R17,1
    0B37 E020      LDI	R18,0
    0B38 E030      LDI	R19,0
    0B39 940E1567  CALL	_SD_read_sector2
(0044)  
(0045)  SD_read_sector2(((long)fat_info.Relative<<9)+11,buffer,13);   //取值
    0B3B E08D      LDI	R24,0xD
    0B3C E090      LDI	R25,0
    0B3D 839B      STD	Y+3,R25
    0B3E 838A      STD	Y+2,R24
    0B3F E185      LDI	R24,0x15
    0B40 E091      LDI	R25,1
    0B41 8399      STD	Y+1,R25
    0B42 8388      STD	Y+0,R24
    0B43 E089      LDI	R24,0x9
    0B44 E090      LDI	R25,0
    0B45 9020010E  LDS	R2,fat_info
    0B47 2433      CLR	R3
    0B48 2444      CLR	R4
    0B49 2455      CLR	R5
    0B4A 938A      ST	R24,-Y
    0B4B 0181      MOVW	R16,R2
    0B4C 0192      MOVW	R18,R4
    0B4D 940E1D3E  CALL	lsl32
    0B4F 0118      MOVW	R2,R16
    0B50 0129      MOVW	R4,R18
    0B51 E04B      LDI	R20,0xB
    0B52 E050      LDI	R21,0
    0B53 E060      LDI	R22,0
    0B54 E070      LDI	R23,0
    0B55 0E24      ADD	R2,R20
    0B56 1E35      ADC	R3,R21
    0B57 1E46      ADC	R4,R22
    0B58 1E57      ADC	R5,R23
    0B59 0181      MOVW	R16,R2
    0B5A 0192      MOVW	R18,R4
    0B5B 940E1567  CALL	_SD_read_sector2
(0046) 
(0047)  
(0048)  BPB_BytePerSec=buffer[0]+((int)buffer[1]<<8);
    0B5D 90200116  LDS	R2,buffer+1
    0B5F 2433      CLR	R3
    0B60 2C32      MOV	R3,R2
    0B61 2422      CLR	R2
    0B62 90400115  LDS	R4,buffer
    0B64 2455      CLR	R5
    0B65 0C42      ADD	R4,R2
    0B66 1C53      ADC	R5,R3
    0B67 825D      STD	Y+5,R5
    0B68 824C      STD	Y+4,R4
(0049)  fat_info.BPB_SecPerClus=buffer[2];
    0B69 90200117  LDS	R2,buffer+2
    0B6B 9220010F  STS	fat_info+1,R2
(0050)  fat_info.BPB_RsvdSecCnt=buffer[3];
    0B6D 90200118  LDS	R2,buffer+3
    0B6F 92200110  STS	fat_info+2,R2
(0051)  BPB_NumFATs=buffer[5];
    0B71 90E0011A  LDS	R14,0x11A
(0052) 
(0053)  BPB_RootEntCnt=buffer[6]+((int)buffer[7]<<8);
    0B73 9020011C  LDS	R2,0x11C
    0B75 2433      CLR	R3
    0B76 2C32      MOV	R3,R2
    0B77 2422      CLR	R2
    0B78 90A0011B  LDS	R10,0x11B
    0B7A 24BB      CLR	R11
    0B7B 0CA2      ADD	R10,R2
    0B7C 1CB3      ADC	R11,R3
(0054)  BPB_FATsz16=buffer[11]+((int)buffer[12]<<8);
    0B7D 90200121  LDS	R2,0x121
    0B7F 2433      CLR	R3
    0B80 2C32      MOV	R3,R2
    0B81 2422      CLR	R2
    0B82 90C00120  LDS	R12,0x120
    0B84 24DD      CLR	R13
    0B85 0CC2      ADD	R12,R2
    0B86 1CD3      ADC	R13,R3
(0055)  
(0056)  /*计算根目录的首扇区号*/
(0057)  fat_info.Firstgengmulu=fat_info.Relative+fat_info.BPB_RsvdSecCnt+BPB_FATsz16*BPB_NumFATs;
    0B87 2D2E      MOV	R18,R14
    0B88 2733      CLR	R19
    0B89 0186      MOVW	R16,R12
    0B8A 940E1C79  CALL	empy16s
    0B8C 90200110  LDS	R2,fat_info+2
    0B8E 2433      CLR	R3
    0B8F 9040010E  LDS	R4,fat_info
    0B91 2455      CLR	R5
    0B92 0C42      ADD	R4,R2
    0B93 1C53      ADC	R5,R3
    0B94 0E40      ADD	R4,R16
    0B95 1E51      ADC	R5,R17
    0B96 92500112  STS	0x112,R5
    0B98 92400111  STS	fat_info+3,R4
(0058)  
(0059)  /*计算FAT16根目录所占的扇区数*/
(0060)  RootDirSectors=(((long)BPB_RootEntCnt<<5)+(BPB_BytePerSec-1) )/BPB_BytePerSec;
    0B9A E085      LDI	R24,5
    0B9B E090      LDI	R25,0
    0B9C 0115      MOVW	R2,R10
    0B9D 2444      CLR	R4
    0B9E 2455      CLR	R5
    0B9F 938A      ST	R24,-Y
    0BA0 0181      MOVW	R16,R2
    0BA1 0192      MOVW	R18,R4
    0BA2 940E1D3E  CALL	lsl32
    0BA4 0118      MOVW	R2,R16
    0BA5 0129      MOVW	R4,R18
    0BA6 818C      LDD	R24,Y+4
    0BA7 819D      LDD	R25,Y+5
    0BA8 9701      SBIW	R24,1
    0BA9 013C      MOVW	R6,R24
    0BAA 2488      CLR	R8
    0BAB 2499      CLR	R9
    0BAC 0C26      ADD	R2,R6
    0BAD 1C37      ADC	R3,R7
    0BAE 1C48      ADC	R4,R8
    0BAF 1C59      ADC	R5,R9
    0BB0 806C      LDD	R6,Y+4
    0BB1 807D      LDD	R7,Y+5
    0BB2 2488      CLR	R8
    0BB3 2499      CLR	R9
    0BB4 929A      ST	R9,-Y
    0BB5 928A      ST	R8,-Y
    0BB6 927A      ST	R7,-Y
    0BB7 926A      ST	R6,-Y
    0BB8 0181      MOVW	R16,R2
    0BB9 0192      MOVW	R18,R4
    0BBA 940E1BF6  CALL	div32s
    0BBC 0158      MOVW	R10,R16
(0061)  /*计算簇2的首扇区*/
(0062)  fat_info.FirstDateSecter=fat_info.Relative+fat_info.BPB_RsvdSecCnt+((long)BPB_FATsz16*BPB_NumFATs)+RootDirSectors;
    0BBD 2C2E      MOV	R2,R14
    0BBE 2433      CLR	R3
    0BBF 2444      CLR	R4
    0BC0 2455      CLR	R5
    0BC1 0136      MOVW	R6,R12
    0BC2 2488      CLR	R8
    0BC3 2499      CLR	R9
    0BC4 925A      ST	R5,-Y
    0BC5 924A      ST	R4,-Y
    0BC6 923A      ST	R3,-Y
    0BC7 922A      ST	R2,-Y
    0BC8 0183      MOVW	R16,R6
    0BC9 0194      MOVW	R18,R8
    0BCA 940E1C89  CALL	empy32s
    0BCC 90200110  LDS	R2,fat_info+2
    0BCE 2433      CLR	R3
    0BCF 9040010E  LDS	R4,fat_info
    0BD1 2455      CLR	R5
    0BD2 0C42      ADD	R4,R2
    0BD3 1C53      ADC	R5,R3
    0BD4 0112      MOVW	R2,R4
    0BD5 2444      CLR	R4
    0BD6 FC37      SBRC	R3,7
    0BD7 9440      COM	R4
    0BD8 2455      CLR	R5
    0BD9 FC47      SBRC	R4,7
    0BDA 9450      COM	R5
    0BDB 0E20      ADD	R2,R16

⌨️ 快捷键说明

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