📄 main.lst
字号:
C51 COMPILER V6.23a MAIN 07/22/2006 09:35:03 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN E:\工作目录\软件编程\录音琴\录音01\MAIN.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE E:\工作目录\软件编程\录音琴\录音01\MAIN.C DB SB OE
stmt level source
1 /*******************************Copyright (c)***************************************
2
3 录音钢琴主程序.
4
5 ************************************************************************************/
6
7 #include "common.h"
8 #include "file.h"
9 #include "midi.h"
10 #include "hpi.h"
11 #include "lcd.h"
12 #include "usb.H"
13
14 /*-----------------------------------------------------------------------------------
15 名称: void SystemInital(void)
16 功能: 系统初始化.
17 -----------------------------------------------------------------------------------*/
18 void SystemInital(void)
19 {
20 1 AUXR = 3;
21 1 SetSystemTimer0();
22 1 SetSystemUart();
23 1 RamAreaSelect(0);
24 1 FileListInital();
25 1 IrqEnable();
26 1 }
27
28 /*-----------------------------------------------------------------------------------
29 名称: void main(void)
30 功能: 主程序.
31 -----------------------------------------------------------------------------------*/
32 void main(void)
33 {
34 1 SystemInital();
35 1 SL811Init();
36 1 LcdInital();
37 1 LcdDisplayLogo();
38 1 PianoSensorModify();
39 1
40 1 LcdDisplayMenu(0);
41 1 while(GetKeyBoard());
42 1 SysWorkStatus = SYS_WORK_MENU_REC;
43 1
44 1 while(1)
45 1 {
46 2 SystemRtcTask();
47 2 CheckUsbDevice();
48 2
49 2 switch(SysWorkStatus)
50 2 {
51 3 case SYS_WORK_MENU_REC: //录音菜单状态
52 3 switch(GetKeyBoard())
53 3 {
54 4 case KEY_ENT:
55 4 LcdClear();
C51 COMPILER V6.23a MAIN 07/22/2006 09:35:03 PAGE 2
56 4 LcdDisplayAscii0816(0,0,0,128);
57 4 LcdDisplayAscii0816String(0,20,0,"Record...");
58 4 LcdDisplayTempo();
59 4 LcdDisplayVolume();
60 4 ResetSystemRtc();
61 4 LcdDisplayClock(2,0,GetSystemRtc());
62 4 SoundTempoChange();
63 4 RecMidiStart();
64 4 SysWorkStatus = SYS_WORK_RUN_REC;
65 4 break;
66 4
67 4 case KEY_UP:
68 4 case KEY_DOWN:
69 4 if(FlagRecEnd)
70 4 {
71 5 LcdClear();
72 5 LcdDisplayAscii0816(0,0,0,128);
73 5 LcdDisplayAscii0816String(0,20,0,"Rec Player...");
74 5 LcdDisplayVolume();
75 5 ResetSystemRtc();
76 5 LcdDisplayClock(2,0,GetSystemRtc());
77 5 PlayerStart();
78 5 SysWorkStatus = SYS_WORK_REC_PLAY;
79 5 }
80 4 break;
81 4
82 4 case KEY_LEFT:
83 4 LcdClear();
84 4 LcdDisplayMenu(3);
85 4 SysWorkStatus = SYS_WORK_MENU_SET;
86 4 break;
87 4
88 4 case KEY_RIGHT:
89 4 LcdClear();
90 4 LcdDisplayMenu(1);
91 4 SysWorkStatus = SYS_WORK_MENU_SAVE;
92 4 break;
93 4 }
94 3 break;
95 3
96 3 case SYS_WORK_MENU_SAVE: //存储菜单状态
97 3 switch(GetKeyBoard())
98 3 {
99 4 case KEY_ENT:
100 4 if(FlagRecEnd)
101 4 {
102 5 LcdClear();
103 5 LcdDisplayInputTextInital();
104 5 SysWorkStatus = SYS_WORK_RUN_SAVE;
105 5 }
106 4 break;
107 4
108 4 case KEY_LEFT:
109 4 LcdClear();
110 4 LcdDisplayMenu(0);
111 4 SysWorkStatus = SYS_WORK_MENU_REC;
112 4 break;
113 4
114 4 case KEY_RIGHT:
115 4 LcdClear();
116 4 LcdDisplayMenu(2);
117 4 SysWorkStatus = SYS_WORK_MENU_PLAY;
C51 COMPILER V6.23a MAIN 07/22/2006 09:35:03 PAGE 3
118 4 break;
119 4 }
120 3 break;
121 3
122 3 case SYS_WORK_MENU_PLAY: //放音菜单状态
123 3 switch(GetKeyBoard())
124 3 {
125 4 case KEY_ENT:
126 4 LcdClear();
127 4 LcdDisplayPlaySelectMenu(0);
128 4 SysWorkStatus = SYS_WORK_SEL_RAM_PLAY;
129 4 break;
130 4
131 4 case KEY_LEFT:
132 4 LcdClear();
133 4 LcdDisplayMenu(1);
134 4 SysWorkStatus = SYS_WORK_MENU_SAVE;
135 4 break;
136 4
137 4 case KEY_RIGHT:
138 4 LcdClear();
139 4 LcdDisplayMenu(3);
140 4 SysWorkStatus = SYS_WORK_MENU_SET;
141 4 break;
142 4 }
143 3 break;
144 3
145 3 case SYS_WORK_MENU_SET: //设定菜单状态
146 3 switch(GetKeyBoard())
147 3 {
148 4 case KEY_ENT:
149 4 LcdClear();
150 4 LcdDisplayParamMenu(0);
151 4 SysWorkStatus = SYS_WORK_SET_MENU_0;
152 4 break;
153 4
154 4 case KEY_LEFT:
155 4 LcdClear();
156 4 LcdDisplayMenu(2);
157 4 SysWorkStatus = SYS_WORK_MENU_PLAY;
158 4 break;
159 4
160 4 case KEY_RIGHT:
161 4 LcdClear();
162 4 LcdDisplayMenu(0);
163 4 SysWorkStatus = SYS_WORK_MENU_REC;
164 4 break;
165 4 }
166 3 break;
167 3
168 3 case SYS_WORK_RUN_REC: //录音工作状态
169 3 if(!RecMidiRun())
170 3 {
171 4 RecMidiEnd();
172 4 LcdClear();
173 4 LcdDisplayMenu(0);
174 4 SysWorkStatus = SYS_WORK_MENU_REC;
175 4 break;
176 4 }
177 3
178 3 SoundTempoRun();
179 3 LcdDisplayClock(2,0,GetSystemRtc());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -