📄 7455.lst
字号:
275 1 }
276
277 void led_xposizhi() //函数功能:获取x正方向显示数据
278 {
279 1 if(xposilightnum<8)
280 1 {
281 2 if(xposilightnum==0)xposilightnum=1;
282 2 xposiupstate =led_ma[0];
283 2 xposidownstate=led_ma[xposilightnum];
284 2 }
285 1 else
286 1 {
287 2 if(xposilightnum>16)xposilightnum=16;
288 2 xposiupstate =led_ma[xposilightnum-8];
289 2 xposidownstate=led_ma[8];
290 2 }
291 1 }
292 void led_xnegazhi() //函数功能:获取x负方向显示数据
293 {
294 1 if(xnegalightnum<8)
295 1 {
296 2 if(xnegalightnum==0)xnegalightnum=1;
297 2 xnegaupstate =led_ma[0];
298 2 xnegadownstate=led_ma[xnegalightnum];
299 2 }
300 1 else
301 1 {
302 2 if(xnegalightnum>16)xnegalightnum=16;
303 2 xnegaupstate =led_ma[xnegalightnum-8];
C51 COMPILER V8.08 7455 01/22/2011 09:43:35 PAGE 6
304 2 xnegadownstate=led_ma[8];
305 2 }
306 1 }
307 void led_yposizhi() //函数功能:获取y正方向显示数据
308 {
309 1 if(yposilightnum<8)
310 1 {
311 2 if(yposilightnum==0)yposilightnum=1;
312 2 yupstate =led_ma[yposilightnum];
313 2 }
314 1 else yupstate=led_ma[8];
315 1
316 1 }
317 void led_ynegazhi() //函数功能:获取y反方向显示数据
318 {
319 1 switch(ynegalightnum)
320 1 {
321 2 case 0:ydownstate=0xff;break;
322 2 case 1:ydownstate=0x7f;break;
323 2 case 2:ydownstate=0x3f;break;
324 2 case 3:ydownstate=0x1f;break;
325 2 case 4:ydownstate=0x0f;break;
326 2 case 5:ydownstate=0x07;break;
327 2 case 6:ydownstate=0x03;break;
328 2 case 7:ydownstate=0x01;break;
329 2 case 8:ydownstate=0x00;break;
330 2 default:ydownstate=0x00;break;
331 2 }
332 1 }
333
334
335 void self_test7455() //函数功能:检测7455有没有插好
336 { // 如果没有插好,1602将会显示
337 1 uchar j; // “No acceleration!"
338 1 char t;
339 1
340 1 delay_50us(10);
341 1 iic_write(0x16,0x05);
342 1 delay_50us(20);
343 1 t=iic_read(0x16);
344 1
345 1 if(t!=0x05)
346 1 {
347 2 write_com(0x80);
348 2 for(j=0;j<16;j++)
349 2 {
350 3 write_date(table3[j]);
351 3 delay_50us(10);
352 3 }
353 2 while(1);
354 2 }
355 1 else
356 1 {
357 2 write_com(0x80);
358 2 for(j=0;j<16;j++)
359 2 {
360 3 write_date(table1[j]);
361 3 delay_50us(10);
362 3 }
363 2 write_com(0x80+0x40);
364 2 for(j=0;j<16;j++)
365 2 {
C51 COMPILER V8.08 7455 01/22/2011 09:43:35 PAGE 7
366 3 write_date(table2[j]);
367 3 delay_50us(10);
368 3 }
369 2 }
370 1
371 1 }
372 void change_topvalue(uchar x) //函数功能:修改LED面板显示对应的最大g值
373 {
374 1 uchar x1,x2,x3;
375 1
376 1 x1=(x/100);
377 1 x2=(x%100)/10;
378 1 x3=(x%100)%10;
379 1
380 1 write_com(0xcb);
381 1 write_date(table4[x1]);
382 1 delay_50us(10);
383 1 write_com(0xcd);
384 1 write_date(table4[x2]);
385 1 delay_50us(10);
386 1 write_date(table4[x3]);
387 1 delay_50us(10);
388 1 }
389
390 void sendx() //函数功能:向1602发送x轴测量数据
391 {
392 1 uchar x1,x2,x3,xsign;
393 1 char x;
394 1
395 1 x=iic_read(0x06);
396 1 if((x&0x80)==0x00)
397 1 {
398 2 xsign=0x2b; //+
399 2 if(x>64)
400 2 {
401 3 x=(((int)(x*200)/127)-100); //转变为加速度值
402 3 x1=(x/100);
403 3 x2=(x%100)/10;
404 3 x3=(x%100)%10;
405 3 delaysign=1;
406 3 xposilightnum=x/(xposivalue/16);
407 3 }
408 2 else
409 2 {
410 3 x1=0;x2=0;x3=0;
411 3 delaysign=0;
412 3 }
413 2 }
414 1 else
415 1 {
416 2 xsign=0x2d; //-
417 2 x=x-0x01;
418 2 x=~x;
419 2 if(x>64)
420 2 {
421 3 x=(((int)(x*200)/127)-100);
422 3 x1=(x/100);
423 3 x2=(x%100)/10;
424 3 x3=(x%100)%10;
425 3 delaysign=1;
426 3 xnegalightnum=x/(xnegavalue/16);
427 3
C51 COMPILER V8.08 7455 01/22/2011 09:43:35 PAGE 8
428 3 }
429 2 else
430 2 {
431 3 x1=0;x2=0;x3=0;
432 3 delaysign=0;
433 3 }
434 2 }
435 1
436 1 write_com(0x8B);
437 1 write_date(xsign);
438 1 delay_50us(10);
439 1 write_com(0x8C);
440 1 write_date(table4[x1]);
441 1 delay_50us(10);
442 1 write_com(0x8E);
443 1 write_date(table4[x2]);
444 1 delay_50us(10);
445 1 write_com(0x8F);
446 1 write_date(table4[x3]);
447 1 delay_50us(20);
448 1 }
449 void sendy() //函数功能:向1602发送y轴测量数据
450 {
451 1 uchar y1,y2,y3,ysign;
452 1 char y;
453 1
454 1 y=iic_read(0x07);
455 1 if((y&0x80)==0x00)
456 1 {
457 2 ysign=0x2b; //+
458 2 if(y>66)
459 2 {
460 3 y=(((int)(y*200)/127)-100); //转变为加速度值
461 3 y1=(y/100);
462 3 y2=(y%100)/10;
463 3 y3=(y%100)%10;
464 3 delaysign=1;
465 3 yposilightnum=y/(yposivalue/8);
466 3 }
467 2 else
468 2 {
469 3 y1=0;y2=0;y3=0;
470 3 delaysign=0;
471 3 }
472 2 }
473 1 else
474 1 {
475 2 ysign=0x2d; //-
476 2 y=y-0x01;
477 2 y=~y;
478 2 if(y>66)
479 2 {
480 3 y=(((int)(y*200)/127)-100); //转变为加速度值
481 3 y1=(y/100);
482 3 y2=(y%100)/10;
483 3 y3=(y%100)%10;
484 3 delaysign=1;
485 3 ynegalightnum=y/(ynegavalue/8);
486 3 }
487 2 else
488 2 {
489 3 y1=0;y2=0;y3=0;
C51 COMPILER V8.08 7455 01/22/2011 09:43:35 PAGE 9
490 3 delaysign=0;
491 3 }
492 2 }
493 1
494 1 write_com(0xC3);
495 1 write_date(ysign);
496 1 delay_50us(10);
497 1 write_com(0xC4);
498 1 write_date(table4[y1]);
499 1 delay_50us(10);
500 1 write_com(0xC6);
501 1 write_date(table4[y2]);
502 1 delay_50us(10);
503 1 write_com(0xC7);
504 1 write_date(table4[y3]);
505 1 delay_50us(20);
506 1 }
507 void sendz() //函数功能:向1602发送z轴测量数据
508 {
509 1 uchar z1,z2,z3,zsign;
510 1 char z;
511 1
512 1 z=iic_read(0x08);
513 1 if((z&0x80)==0x00)
514 1 {
515 2 zsign=0x2b; //+
516 2 if(z>68)
517 2 {
518 3 z=(((int)((z-3)*200)/127)-100); //转变为加速度值
519 3 z1=(z/100);
520 3 z2=(z%100)/10;
521 3 z3=(z%100)%10;
522 3 delaysign=1;
523 3 }
524 2 else
525 2 {
526 3 z1=0;z2=0;z3=0;
527 3 delaysign=0;
528 3 }
529 2 }
530 1 else
531 1 {
532 2 zsign=0x2d; //-
533 2 z=z-0x01;
534 2 z=~z;
535 2 if(z>62)
536 2 {
537 3 z=(((int)(z*200)/127)-100); //转变为加速度值
538 3 z1=(z/100);
539 3 z2=(z%100)/10;
540 3 z3=(z%100)%10;
541 3 delaysign=1;
542 3 }
543 2 else
544 2 {
545 3 z1=0;z2=0;z3=0;
546 3 delaysign=0;
547 3 }
548 2 }
549 1
550 1 write_com(0xCB);
551 1 write_date(zsign);
C51 COMPILER V8.08 7455 01/22/2011 09:43:35 PAGE 10
552 1 delay_50us(10);
553 1 write_com(0xCC);
554 1 write_date(table4[z1]);
555 1 delay_50us(10);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -