📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 11/27/2005 23:13:38 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /************************************************************************************
2 本程序仅供广大电子爱好者制作MP3学习和参考使用,不得用于其它用途,否则后果自负
3
4 AT89C51SND1C 解码芯片做的硬盘MP3,软件还在完善中,现在只支持一块硬盘,一个分区,
5 至少可支持15层目录。只支持FAT32文件系统。支持USB1.1下载文件,速度300KB/S左右。
6 7.5*2个汉字液晶显示。可显示歌曲名,当前曲号等。可进行前后选曲。部分MP3文件不能解码。
7 本人联系方法:QQ: 156872359 E_mail: Computer-lov@163.com 愿与大家共同学习。
8 *************************************************************************************/
9
10
11 /* MAIN.C File
12 The MP3 main file
13 Created by Computer-lov. Date: 2005.3.19
14 Last edited date: 2005.5.31
15 Copyright (c) 2005 Computer-lov
16 version 1.1
17 */
18
19 #include "AT89C51SND1C.H"
20 #include "ide.h"
21 #include "hardware.h"
22 #include "file_system.h"
23 #include "Initial.h"
24 #include "keyboard.h"
25 #include "MP3.H"
26 #include "LCD.H"
27
28 void usb(void);
29
30 //////////////////////////////////////////// 主函数 ///////////////////////////////
31 void main(void)
32 {
33 1 unsigned char i;
34 1 unsigned char key_press_time;
35 1 unsigned char hard_disk_sleep=0;
36 1
37 1 system_initial(); //初始化
38 1 status=START;
39 1 driver_number=0; //选择第一个分区
40 1 key=0;
41 1 function=FUN_SEL; //歌曲选择状态
42 1 while(1)
43 1 {
44 2 switch (status)
45 2 {
46 3 case START: //开机
47 3 {
48 4 vol=10;
49 4 bas=10;
50 4 med=2;
51 4 tre=10;
52 4 set_vol(vol);
53 4 set_vor(vol);
54 4 set_bas(bas);
55 4 set_med(med);
C51 COMPILER V7.50 MAIN 11/27/2005 23:13:38 PAGE 2
56 4 set_tre(tre); //音量等初始化
57 4 LCD_go_home();
58 4 for(i=0;i<14;i++)write_LCD_data(((unsigned char *)dir_name)[i]);
59 4 LCD_line_feed();
60 4 prints("停止 ");
61 4 item_count=0;
62 4 while(!key);
63 4 if(key==KEY_FUN){status=USB;break;}
64 4 status=STOP;
65 4 break;
66 4
67 4 }
68 3 case STOP:{ //停止
69 4 LCD_go_home();
70 4 for(i=0;i<14;i++)write_LCD_data(((unsigned char *)dir_name)[i]);
71 4 while(!key);
72 4 switch (key)
73 4 {
74 5 case KEY_OK:
75 5 {
76 6 key_press_time=0;
77 6 while(!(P1_3))
78 6 {
79 7 delayXms(10);
80 7 key_press_time++;
81 7 if(key_press_time==130)break;
82 7 }
83 6 if(key_press_time==130)
84 6 {
85 7 write_IDE_command(IDE_Sleep);
86 7 LCD_line_feed();
87 7 prints("现在可以关机了");
88 7 hard_disk_sleep=0xFF;
89 7 break;
90 7 }
91 6 if(hard_disk_sleep)
92 6 {
93 7 reset_IDE();
94 7 hard_disk_sleep=0;
95 7 LCD_line_feed();
96 7 prints(" ");
97 7 }
98 6 if(file_or_folder==IS_MP3FILE)
99 6 {
100 7 get_nst_file();
101 7 status=PLAY;
102 7 }
103 6 if(file_or_folder==IS_FOLDER)
104 6 {
105 7 enter_dir();
106 7 get_next_item();
107 7 LCD_line_feed();
108 7 for(i=0;i<14;i++)write_LCD_data(((unsigned char *)item_name)[i]);
109 7 }
110 6 break;
111 6 }
112 5 case KEY_UP:
113 5 {
114 6 get_pre_item();
115 6 LCD_line_feed();
116 6 for(i=0;i<14;i++)write_LCD_data(((unsigned char *)item_name)[i]);
117 6 break;
C51 COMPILER V7.50 MAIN 11/27/2005 23:13:38 PAGE 3
118 6 }
119 5 case KEY_DOWN:
120 5 {
121 6 get_next_item();
122 6 LCD_line_feed();
123 6 for(i=0;i<14;i++)write_LCD_data(((unsigned char *)item_name)[i]);
124 6 break;
125 6 }
126 5 case KEY_FUN:
127 5 {
128 6 exit_dir();
129 6 get_next_item();
130 6 LCD_line_feed();
131 6 for(i=0;i<14;i++)write_LCD_data(((unsigned char *)item_name)[i]);
132 6 break;
133 6 }
134 5 }key=0;break;
135 4 }
136 3
137 3 case PLAY:{play();break;} //播放
138 3 case USB: {usb();break;} //USB下载
139 3 key=0;
140 3 }
141 2 }
142 1 }
143 /////////////////////////////////////////////////////////////////////////////////////////
144
145
146
147
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 455 ----
CONSTANT SIZE = 46 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -