📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 11/18/2005 21:31:22 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE MAIN.C LARGE BROWSE
line level source
1 /* Copyright (C) 1996-2005 Brilliant Ideal Electronics. All rights reserved.
2 MP3_Player+USB_Disk V3.0 Edit by JMBIE STUDIO 2005.07
3 */
4
5
6 #include "AT89C51SND1_REG.H"
7 #include "MCU_UART.H"
8 #include "MCU_KEYPAD.H"
9 #include "UDISK_DEF.H"
10 #include "MP3_PLAYER.H"
11 #include "FILE_SYS.H"
12 #include "LCD.H"
13
14 /*JMBIE USB-DISK MP3 PLAYER MAIN FUNCTION*/
15 void main()
16 {
17 1 char i;
18 1 AUXR|=0x10;
19 1 PCM_PD = 0;
20 1 init_uart(1200);
21 1 printu("JMBIE U-DISK+MP3-Player Ver 3.0\n");
22 1 CKCON|=X2; //X2 Mode
23 1 Flash_Reset();
24 1
25 1 if(USB_INS) //USB Cable Insert Sensor
26 1 { //USB Disk
27 2 printu("Entering USB-DISK Mode...\n");
28 2 LCD_init(0);
29 2 DisplayBMP(8,0,JMBIE_BMP);
30 2 LCD_printen(60,0,"MP3@JMBIE");
31 2 LCD_printen(8,3,"in USB-DISK Mode...");
32 2 AtmelUSBInit();
33 2 EpEnable();
34 2 while(1)
35 2 {
36 3 if (UEPINT & EP0) Ep0();
37 3 if (UEPINT & EP1) main_txdone(); //UEPINT地址0xF8却不能位寻址
38 3 if (UEPINT & EP2) main_rxdone(); //所以这里不能用位定义EPxINT
39 3 }
40 2 }
41 1 else
42 1 { //MP3 Player
43 2
44 2 printu("Entering MP3-PLAY Mode...\n");
45 2 MP3_Init();
46 2 Mute(1);
47 2 KeyBoardInit();
48 2 MP3InitFlag = 1;
49 2 NowPlaying=0;
50 2 EA = 1;
51 2 LED = 0; //LED Light on
52 2 LCD_init(1);
53 2 Init_FAT_Info();
54 2 NumofSong = GetMP3List();
55 2
C51 COMPILER V7.50 MAIN 11/18/2005 21:31:22 PAGE 2
56 2 if(NumofSong == 0)
57 2 {
58 3 printu("There is no MP3 file in the USB Disk!\n");
59 3 while(1);
60 3 }
61 2 else printuf("Song Number: %x\n", NumofSong);
62 2
63 2 printu("PlayState: STOP Hit PLAY key\n\n");
64 2
65 2 DisplayBMP(4,0,JMBIE_BMP);
66 2 LCD_printen(50,0,"JMBIE STUDIO");
67 2 LCD_printen(50,1,"MP3 + U-DISK");
68 2 LCD_printen(72,3,"STOP..");
69 2
70 2
71 2 while(1)
72 2 {
73 3 printuf("Now play the song No.%x ",NowPlaying+1);
74 3 for(i=0;i<11;i++)
75 3 printuf("%c",SONG[11 * NowPlaying + i]);
76 3 printu("\n");
77 3 //LCD display
78 3 for(i=0;i<8;i++)
79 3 LCD_chstr[i]=SONG[11 * NowPlaying + i];
80 3 LCD_chstr[8]=0;
81 3 LCD_printch(0,2,LCD_chstr); //only can used with out of a playing of a song
82 3
83 3 LCD_chstr[0]=NowPlaying+1+0x30;//from number to ascii code
84 3 LCD_chstr[1]=' ';
85 3 LCD_chstr[2]='o';
86 3 LCD_chstr[3]='f';
87 3 LCD_chstr[4]=' ';
88 3 LCD_chstr[5]=NumofSong+0x30;
89 3 LCD_chstr[6]=0;
90 3 LCD_printen(72,2,LCD_chstr);
91 3
92 3
93 3 if(NumofSong != 0)
94 3 {
95 4 if(MP3InitFlag)
96 4 {
97 5 if ( !PlayInit(&SONG[11 * NowPlaying]) )
98 5 {
99 6 printu("Bad MP3 file or error!\n");
100 6 while(1);
101 6 }
102 5 MP3InitFlag = 0;
103 5 }
104 4 Mute(0);
105 4 PlayMP3(&SONG[11 * NowPlaying]);
106 4 Mute(1);
107 4 }
108 3 if(NowPlaying == NumofSong)
109 3 {
110 4 NowPlaying= 0;
111 4 //PlayState = STOP; //Bypass this line to repeat playing circularly
112 4 }
113 3 LED =~LED;
114 3 }
115 2
116 2 }
117 1
C51 COMPILER V7.50 MAIN 11/18/2005 21:31:22 PAGE 3
118 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 553 ----
CONSTANT SIZE = 296 ----
XDATA SIZE = ---- 1
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -