📄 main.lst
字号:
218 3 case 3:
219 3 Write_DispBuf(0,0x05,0x0d,0,0);
220 3 break;
221 3 default:
222 3 break;
223 3 }
224 2 }
225 1 else
226 1 {
227 2 FunckeyFlag=1;
228 2 Write_DispBuf(0,0x0a,0x01,0,0); //a1功能
229 2 FlightLed3=1; //led3闪烁
230 2 }
231 1 }
232
233 //检索键处理
234 static uchar data SearchCount; //检索计数器
235 void SearchKey(void) //检索键
236 {
237 1 if(FunckeyFlag)
238 1 {
239 2 switch(DispBuf[1])
240 2 {
241 3 case 0x0a:
C51 COMPILER V7.02a MAIN 08/06/2004 10:57:50 PAGE 5
242 3 SearchCount=DispBuf[2]; //检索a功能项
243 3 if(++SearchCount>3)SearchCount=1;
244 3 DispBuf[2]=SearchCount;
245 3 break;
246 3 case 0x0b: //检索b功能项
247 3 SearchCount=DispBuf[2];
248 3 if(++SearchCount>10)SearchCount=1;
249 3 DispBuf[2]=SearchCount;
250 3 break;
251 3 case 0x0c:
252 3
253 3 default:
254 3 break;
255 3 }
256 2 }//if结束
257 1 }
258
259
260 //移位键处理
261 static bit MoveFlag=0; //移位计数
262 void MoveKey(void) //移位键
263 {
264 1 if(FunckeyFlag)
265 1 {
266 2 MoveFlag=~ MoveFlag; //移位
267 2 if(MoveFlag)
268 2 {FlightLed3=0;ClearLed3=0;
269 3 FlightLed4=1;
270 3 }
271 2 else
272 2 {
273 3 FlightLed3=1;
274 3 FlightLed4=0;ClearLed4=0;
275 3 }
276 2 }
277 1 }
278
279 //增加键处理
280 void IncKey(void) //增加键
281 {
282 1 if(FunckeyFlag)
283 1 {
284 2 if(MoveFlag)
285 2 {
286 3 if(++DispBuf[4]>0x0f)DispBuf[4]=0;
287 3 }
288 2 else
289 2 if(++DispBuf[3]>0x0f)DispBuf[3]=0;
290 2 }
291 1 }
292
293 //退出键处理
294 void QuitKey(void) //退出键
295 {
296 1 if(FunckeyFlag)
297 1 {
298 2 FunckeyFlag=0;
299 2 Disp_Can(); //上电显示CAN1
300 2 DispFlag=0x00;
301 2 }
302 1 }
303
C51 COMPILER V7.02a MAIN 08/06/2004 10:57:50 PAGE 6
304 //确认键处理
305 void EnterKey(void) //确认键
306 {
307 1 uchar Tempdata;
308 1 if(FunckeyFlag)
309 1 {
310 2 Tempdata=GetLedData();
311 2 if(DispBuf[1]==0x0a)
312 2 {
313 3 switch(DispBuf[2])
314 3 {
315 4 case 0x01:
316 4 SetSystemBuf[0]=Tempdata;
317 4 EnterNext();
318 4 break;
319 4 case 0x02:
320 4 SetSystemBuf[1]=Tempdata;
321 4 if(!BCAN_ENTER_RETMODEL())
322 4 {
323 5 BCAN_SET_OBJECT(SetSystemBuf[0],SetSystemBuf[1]);
324 5 BCAN_QUIT_RETMODEL();
325 5 }
326 4 else Error_disp(CAN_ENTRESET_ERR );
327 4
328 4 EnterNext();
329 4 break;
330 4 case 0x03:
331 4 BandRateBuf=Tempdata;
332 4 if(Tempdata>12) Error_disp(NO_BANDRATE_SIZE);
333 4 else{
334 5 if(!BCAN_ENTER_RETMODEL())
335 5 {
336 6 BCAN_SET_BANDRATE(Tempdata);
337 6 BCAN_QUIT_RETMODEL();
338 6 }
339 5 DispBuf[2]=1;
340 5 DispBuf[3]=0;DispBuf[4]=0;
341 5 FlightLed3=1;
342 5 FlightLed4=0;ClearLed4=0;
343 5 }
344 4 break;
345 4 default:
346 4 break;
347 4 }
348 3 }
349 2 if(DispBuf[1]==0x0b)
350 2 {
351 3 if(0<DispBuf[2])
352 3 {
353 4 SetSystemBuf[DispBuf[2]-1]=Tempdata;
354 4
355 4 if(DispBuf[2]==0x0a)
356 4 {
357 5 DispBuf[2]=1;
358 5 DispBuf[3]=0;DispBuf[4]=0;
359 5 FlightLed3=1;
360 5 FlightLed4=0;ClearLed4=0;
361 5 }
362 4 else EnterNext();
363 4 }
364 3 }
365 2 if(DispBuf[1]==0x0c)
C51 COMPILER V7.02a MAIN 08/06/2004 10:57:50 PAGE 7
366 2 {
367 3 switch(DispBuf[2])
368 3 {
369 4 case 1:
370 4 EditMsSendCount =Tempdata;
371 4 EditMsSendSave =Tempdata;
372 4 DispBuf[1]=0x05;
373 4 DispBuf[2]=0x0d;
374 4 FunckeyCount++;
375 4 ClearDispAttr();
376 4 MoveFlag=0;
377 4 break;
378 4 default:
379 4 break;
380 4 }
381 3 }
382 2 }
383 1 }
384
385 //按确认键后进入下一小项处理
386 void EnterNext(void) //按确认键后进入下一小项处理
387 {
388 1 DispBuf[3]=0;DispBuf[4]=0;
389 1 FlightLed3=1;
390 1 FlightLed4=0;ClearLed4=0;
391 1 MoveFlag=0;
392 1 DispBuf[2]++;
393 1 }
394
395 //发送键处理
396 void CanSendKey(void) //发送键
397 {
398 1 if(!FunckeyFlag)
399 1 { BCAN_DATA_WRITE(SetSystemBuf); //将编辑的数据发送到can总线
400 2 BCAN_CMD_PRG(TR_CMD);
401 2 }
402 1 }
403
404 //
405 void InitCPU(void)
406 {
407 1 EA =1;
408 1 IT0 =1;
409 1 EX0 =1;
410 1 PX0 =1;
411 1 InitUart(); //初始化串口
412 1 }
413
414 ////
415 uchar Config_SJA(void)
416 {
417 1 uchar data status=0;
418 1 Delay_50us(100) ;
419 1 TimeOut_Start(20);
420 1 BandRateBuf = ByteRate_1000k;
421 1 BCAN_ENTER_RETMODEL();
422 1 if(BCAN_CREATE_COMMUNATION())//
423 1 {
424 2 status = CAN_INTERFACE_ERR;
425 2 return(status);
426 2 }
427 1 if(BCAN_SET_BANDRATE(BandRateBuf))//初始化系统默认值波特率100kbps
C51 COMPILER V7.02a MAIN 08/06/2004 10:57:50 PAGE 8
428 1 {
429 2 status = CAN_INITBTR_ERR ;
430 2 return(status);
431 2 }
432 1 if(BCAN_SET_OBJECT(0xaa,0x00))
433 1 {
434 2 status =CAN_INITOBJECT_ERR;
435 2 return(status);
436 2 }
437 1
438 1 if(BCAN_SET_OUTCLK(0xaa,0x48))
439 1 {
440 2 status =CAN_INITOUTCTL_ERR;
441 2 return(status);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -