📄 main.lst
字号:
C51 COMPILER V7.20 MAIN 04/28/2005 16:17:11 PAGE 1
C51 COMPILER V7.20, 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 #include <at89x52.h>
2 #include <string.h>
3 #include "lcd.h"
4
5 #define address 0x0aa
6 #define power 0x0ff
7 #define menu 0x0fa
8 #define up 0x0fd
9 #define enter 0x0fb
10 #define down 0x0fc
11
12 void clsconnect_key(void);
13 void power_key(void);
14 void manu_key(void);
15 void up_key(void);
16 void down_key(void);
17 void enter_key(void);
18
19 void init(void);
20
21 bit interruptFlag,onoroff_symbol;
22 bit osd, subosd;
23
24 unsigned char i = 1;
25 unsigned char dat[8]={50,50,50,50,50,50,50,50,};
26
27 unsigned char command,recommand;
28 unsigned char s[16];
29 unsigned char *chardat;
30 unsigned char *submenu[]={"voice","channel","bright","contrast","red","green","blue"};
31 extern void num2string(unsigned char number);
32 extern void lcd_string16(unsigned char position,unsigned char *str);
33
34 void main(void)
35 {
36 1 lcd_init();
37 1 lcd_string16(0,"STONESONIC");
38 1 init();
39 1
40 1 while(1)
41 1 {
42 2 if(interruptFlag==1)
43 2 {
44 3 interruptFlag=0;
45 3 if(SM2)
46 3 {
47 4 if(command==address)
48 4 {
49 5 SM2=0;
50 5 recommand = address;
51 5 lcd_cls();
52 5 lcd_string16(0,"485 connect");
53 5
54 5 SBUF = recommand;
55 5 while(~TI){}
C51 COMPILER V7.20 MAIN 04/28/2005 16:17:11 PAGE 2
56 5 TI = 0;
57 5 RI = 0;
58 5
59 5 EA = 1;
60 5 REN = 1;
61 5 }
62 4 else
63 4 {
64 5 lcd_cls();
65 5 lcd_string16(0,"485 disconnect");
66 5 TI = 0;
67 5 RI = 0;
68 5
69 5 EA = 1;
70 5 REN = 1;
71 5 }
72 4 }
73 3 else
74 3 {
75 4 if(RB8)
76 4 {
77 5 if(command == address)
78 5 {
79 6 clsconnect_key();
80 6 SBUF = recommand;
81 6 while(~TI){}
82 6 }
83 5 REN= 1;
84 5 TI = 0;
85 5 RI = 0;
86 5 EA = 1;
87 5
88 5 }
89 4 else
90 4 {
91 5 switch(command)
92 5 {
93 6 case power :
94 6 power_key() ;break;
95 6 case menu :
96 6 manu_key() ;break;
97 6 case up :
98 6 up_key() ;break;
99 6 case down :
100 6 down_key() ;break;
101 6 case enter :
102 6 enter_key() ;break;
103 6 }
104 5 SBUF = recommand;
105 5 while(~TI){}
106 5 TI = 0;
107 5 RI = 0;
108 5
109 5 EA = 1;
110 5 REN = 1;
111 5 }
112 4
113 4 }
114 3 }
115 2 }
116 1 }
117
C51 COMPILER V7.20 MAIN 04/28/2005 16:17:11 PAGE 3
118 void serial(void) interrupt 4 using 1
119 {
120 1 EA=0;
121 1
122 1 REN=0;
123 1
124 1 command = SBUF;
125 1 interruptFlag = 1;
126 1 RI=0;
127 1 }
128
129 void clsconnect_key()
130 {
131 1 SM2 = 1;
132 1 lcd_cls();
133 1 lcd_string16(0,"485 disconnect");
134 1 recommand = address;
135 1
136 1 }
137
138 void power_key()
139 {
140 1 onoroff_symbol = ~onoroff_symbol;
141 1 lcd_cls();
142 1 if(onoroff_symbol)lcd_string16(0,"POWER_ON");
143 1 else
144 1 {
145 2 lcd_string16(0,"POWER_OFF");
146 2 }
147 1 recommand = onoroff_symbol | 0x80;
148 1 }
149
150 void manu_key()
151 {
152 1 subosd=0;
153 1 osd=~osd;
154 1 lcd_cls();
155 1 if(osd)lcd_string16(0,"OSD_ON");
156 1 else
157 1 {
158 2 lcd_string16(0,"OSD_OFF");
159 2 }
160 1 recommand = osd | 0x0c0;
161 1 }
162
163 void up_key()
164 {
165 1 if(osd==1)
166 1 {
167 2
168 2 if(subosd==0)
169 2 {
170 3 i++;
171 3 lcd_cls();
172 3
173 3 if(i>7)i=0;
174 3 recommand = dat[i];
175 3
176 3 num2string(dat[i]);
177 3 strcat(s,submenu[i]);
178 3
179 3 if(i==7)
C51 COMPILER V7.20 MAIN 04/28/2005 16:17:11 PAGE 4
180 3 {
181 4 lcd_string16(0,"OSD_ON");
182 4 subosd=0;
183 4 }
184 3 else
185 3 {
186 4 lcd_string16(0,s);
187 4 }
188 3 }
189 2
190 2
191 2
192 2 else if(subosd==1)
193 2 {
194 3 dat[i]++;
195 3
196 3 if(dat[i]>100)dat[i]=0;
197 3 recommand = dat[i];
198 3
199 3
200 3 num2string(dat[i]);
201 3 lcd_string16(0,s);
202 3 }
203 2 }
204 1 }
205
206 void down_key()
207 {
208 1 if(osd==1)
209 1 {
210 2
211 2 if(subosd==0)
212 2 {
213 3 i--;
214 3 lcd_cls();
215 3
216 3 if(i<0) i = 0;
217 3 recommand = dat[i];
218 3
219 3 num2string(dat[i]);
220 3 strcat(s,submenu[i]);
221 3
222 3 if(i==7)
223 3 {
224 4 lcd_string16(0,"OSD_ON");
225 4 subosd=0;
226 4 }
227 3 else
228 3 {
229 4 lcd_string16(0,s);
230 4 }
231 3 }
232 2
233 2 else if(subosd==1)
234 2 {
235 3 dat[i]--;
236 3
237 3 if(dat[i]<0)dat[i]=100;
238 3 recommand = dat[i];
239 3 EA=1;
240 3
241 3 num2string(dat[i]);
C51 COMPILER V7.20 MAIN 04/28/2005 16:17:11 PAGE 5
242 3 lcd_string16(0,s);
243 3 }
244 2 }
245 1 }
246
247 void enter_key()
248 {
249 1 if(osd==1)
250 1 {
251 2 subosd=~subosd;
252 2 recommand=0x0e0|subosd ;
253 2 }
254 1 }
255
256 void init()
257 {
258 1 interruptFlag=0;
259 1 TI = 0;
260 1 osd = 0;
261 1 subosd = 0;
262 1
263 1 SCON = 0x0f0; /* mode 1: 8-bit UART, enable receiver */
264 1 TMOD = 0x20; /* timer 1 mode 2: 8-Bit reload */
265 1 TH1 = 0x0f3; /* reload value 2400 baud */
266 1 TL1 = 0x0f3;
267 1 PCON = 0x00;
268 1 TR1 = 1; /* timer 1 run */
269 1 TB8 = 1;
270 1 ES = 1;
271 1 EA = 1;
272 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 592 ----
CONSTANT SIZE = 117 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 51 ----
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -