📄 main.lst
字号:
175 // The location of Screen
176 unsigned char xdata SCREEN=0;
177 unsigned char xdata vertical,horizontal;
178
C51 COMPILER V7.20 MAIN 11/15/2005 18:46:56 PAGE 4
179 //unsigned char xdata test1,test2; // Just for test
180
181 // The operation of key
182 bit confirm_down,up,down;
183 bit modifying;
184
185 // Key
186 unsigned char xdata keycode;
187 unsigned char xdata k1_count,k2_count,k3_count,k4_count,k5_count,k6_count,k7_count;
188
189 //-------------------------------------------------------------------------------------------------
190 // Time Setting
191 unsigned char xdata time_buf[7],setup_time[7];
192 unsigned char xdata delay_time,time_now,time_old,time_old1;
193
194 bit time_modify;
195
196 unsigned char xdata second_count,halfsecond_count;
197 bit flag_s;
198
199 //-------------------------------------------------------------------------------------------------
200 // Temperature of Chip
201 unsigned int xdata TEMPER;
202
203 //-------------------------------------------------------------------------------------------------
204 // ADC
205 unsigned int xdata Voltage,DriverVoltage;
206
207 //-------------------------------------------------------------------------------------------------
208 // DAC
209 int xdata DAC0datum,DAC1datum;
210
211 bit DAC0_modify,DAC1_modify;
212 bit DAC0Enable,DAC1Enable;
213
214 //-------------------------------------------------------------------------------------------------
215 // Alarm Setting
216 char xdata alarm_range;
217
218 bit alarm_modify;
219
220 bit LED_Glitter_Enable, LED_Glitter_Disable;
221
222 //-------------------------------------------------------------------------------------------------
223 //-------------------------------------------------------------------------------------------------
224 // The global temporary variable
225 unsigned char temp;
226 unsigned int tempshort;
227
228 bit flag;
229
230 //-------------------------------------------------------------------------------------------------
231 //-------------------------------------------------------------------------------------------------
232 // USB 模块
233 unsigned char GUAGE; // 进度指示
234
235
236 //=================================================================================================
237 // Function PROTOTYPES
238 //=================================================================================================
239 //
240 //=================================================================================================
C51 COMPILER V7.20 MAIN 11/15/2005 18:46:56 PAGE 5
241 // Delay Procedure
242 //=================================================================================================
243 // 1 ms 延时子程序, Fosc =12MHz
244 void mDelaymS( unsigned int msecond )
245 {
246 1 unsigned char i,j;
247 1
248 1 while( msecond-- )
249 1 {
250 2 for( j=0; j<8; j++ )
251 2 for( i=0; i<125; i++) {;}
252 2 }
253 1 }
254
255 //=================================================================================================
256 // KeyBoard Procedure
257 //=================================================================================================
258
259 // KEY7
260 // KEY6 KEY5 KEY4 KEY3 KEY1
261 // KEY2
262
263 // up
264 // left confirm right modify
265 // down
266
267 void KeyProcess( void )
268 {
269 1 unsigned char KeyValue;
270 1
271 1 KeyValue = KEY_PORT&0x7F; // 查询按键
272 1
273 1 switch( KeyValue )
274 1 {
275 2 case KEY1: if(k1_count==qudou){keycode=1;k1_count=0;}
276 2 k1_count++;
277 2 k2_count=k3_count=k4_count=k5_count=k6_count=k7_count=0;
278 2 break;
279 2 case KEY2: if(k2_count==qudou){keycode=2;k2_count=0;}
280 2 k2_count++;
281 2 k1_count=k3_count=k4_count=k5_count=k6_count=k7_count=0;
282 2 break;
283 2 case KEY3: if(k3_count==qudou){keycode=3;k3_count=0;}
284 2 k3_count++;
285 2 k1_count=k2_count=k4_count=k5_count=k6_count=k7_count=0;
286 2 break;
287 2 case KEY4: if(k4_count==qudou){keycode=4;k4_count=0;}
288 2 k4_count++;
289 2 k1_count=k2_count=k3_count=k5_count=k6_count=k7_count=0;
290 2 break;
291 2 case KEY5: if(k5_count==qudou){keycode=5;k5_count=0;}
292 2 k5_count++;
293 2 k1_count=k2_count=k3_count=k4_count=k6_count=k7_count=0;
294 2 break;
295 2 case KEY6: if(k6_count==qudou){keycode=6;k6_count=0;}
296 2 k6_count++;
297 2 k1_count=k2_count=k3_count=k4_count=k5_count=k7_count=0;
298 2 break;
299 2 case KEY7: if(k7_count==qudou){keycode=7;k7_count=0;}
300 2 k7_count++;
301 2 k1_count=k2_count=k3_count=k4_count=k5_count=k6_count=0;
302 2 break;
C51 COMPILER V7.20 MAIN 11/15/2005 18:46:56 PAGE 6
303 2 default: k1_count=k2_count=k3_count=k4_count=k5_count=k6_count=k7_count=0;
304 2 break;
305 2 }
306 1
307 1 switch( keycode )
308 1 {
309 2 case 4: // 按键:确认
310 2 delay_time=0;
311 2 switch( SCREEN )
312 2 {
313 3 case 0: Forward ( SPEED ); Start = 1; Stop = 1; // Start the car
314 3 break;
315 3 case 1: // 第一屏(选择菜单)时确认键的功能
316 3 switch(vertical)
317 3 {
318 4 case 0: SCREEN=0 ; break; //未选择任何菜单
319 4 case 1: SCREEN=10; Read12C887( setup_time ); break;//选择菜单1(时间设置)
320 4 case 2: SCREEN=20; //选择菜单2(报警设置)
321 4 alarm_range = Read12C887RAM( ALARM_RANGE );
322 4 LED_GLITTER_ACT( );
323 4 break;
324 4 case 3: SCREEN=30; DAC0datum =DAC0; DAC1datum =DAC1; break; //选择菜单3(DAC)
325 4 case 4: SCREEN=40; //选择菜单4(SPEED)
326 4 SPEED = Read12C887RAM( SPEED_RANGE ); // 取得行驶速度
327 4 SPEED1 = Read12C887RAM( SPEED1_RANGE ); // 取得转弯速度
328 4
329 4 FREQUENCY = Read12C887RAM( FREQUENCY_RANGE ); // 取得 PWM 频率
330 4
331 4 temp = Read12C887RAM ( SECTION_B_RANGE_H ); // 取得B 道区的起始位置
332 4 SECTION_BPoint = ( unsigned int )_irol_( ( unsigned int )temp , 8 );
333 4 temp = Read12C887RAM ( SECTION_B_RANGE_L );
334 4 SECTION_BPoint += temp;
335 4
336 4 temp = Read12C887RAM ( SECTION_BC_RANGE_H ); // 取得BC 中道区的起始位置
337 4 SECTION_BCPoint = ( unsigned int )_irol_( ( unsigned int )temp , 8 );
338 4 temp = Read12C887RAM ( SECTION_BC_RANGE_L );
339 4 SECTION_BCPoint += temp;
340 4
341 4 INTENSITY = Read12C887RAM( INTENSITY_RANGE ); // 取得光强度参数
342 4
343 4 break;
344 4 case 5: SCREEN=50; //选择菜单5(USB)
345 4
346 4 break;
347 4 case 6: SCREEN=60;
348 4 break; //选择菜单6(温度)
349 4 default:break;
350 4 }
351 3 confirm_down=1;
352 3 break;
353 3 //--------------------------------------------------------------------------
354 3 case 10: // 主菜单第一屏(时间设置)确认键的功能
355 3 if( time_modify ) Setup12C887(setup_time);
356 3 SCREEN=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -