C51 COMPILER V9.56.0.0 IRIN 04/09/2022 17:31:01 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE IRIN OBJECT MODULE PLACED IN IRIN.OBJ COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE IRIN.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND TABS(2) line level source 1 #include "IRIN.h" 2 #include "i2c.h" 3 4 uint mileage = 0; 5 uint count=0; 6 uchar ms=0; 7 uint speed=0; 8 uint r_s=0; 9 10 extern uchar play; 11 extern uint Seep_model; 12 extern struct UserInfo usr; 13 extern uchar model; 14 15 void delay11(int i) 16 { 17 1 while(i--); 18 1 } 19 20 void IRIN_Init(void) 21 { 22 1 TMOD=0x01 | 0x20; 23 1 TH0=0XFc; 24 1 TL0=0X18; 25 1 ET0=1; 26 1 TR0=1; 27 1 EA=1; 28 1 EX1=1; 29 1 IT1=1; 30 1 } 31 32 void display() 33 { 34 1 // 显示速度 35 1 LcdWriteCom(0x80 + 2); 36 1 LcdWriteData(0x30+speed/100%10); 37 1 LcdWriteData(0x30+speed/10%10); 38 1 LcdWriteData(0x30+speed%10); 39 1 40 1 // 显示里程 41 1 LcdWriteCom(0x80 + 8); 42 1 LcdWriteData(0x30+mileage/1000%10); 43 1 LcdWriteData(0x30+mileage/100%10); 44 1 LcdWriteData(0x30+mileage/10%10); 45 1 LcdWriteData(0x30+mileage%10); 46 1 LcdWriteData('m'); 47 1 48 1 LcdWriteCom(0x80 + 14); 49 1 if(Seep_model == 0) LcdWriteData('N'); 50 1 else if(Seep_model == 1) LcdWriteData('L'); 51 1 else if(Seep_model == 2) LcdWriteData('M'); 52 1 else if(Seep_model == 3) LcdWriteData('H'); 53 1 54 1 // 显示目标里程 55 1 LcdWriteCom(0x80 + 0x40); C51 COMPILER V9.56.0.0 IRIN 04/09/2022 17:31:01 PAGE 2 56 1 LcdWriteData(0x30+usr.target_mileage/1000%10); 57 1 LcdWriteData(0x30+usr.target_mileage/100%10); 58 1 LcdWriteData(0x30+usr.target_mileage/10%10); 59 1 LcdWriteData(0x30+usr.target_mileage%10); 60 1 LcdWriteData('m'); 61 1 62 1 LcdWriteCom(0x80 + 0x40 + 8); 63 1 LcdWriteData(0x30+usr.Remaining_mileage/1000%10); 64 1 LcdWriteData(0x30+usr.Remaining_mileage/100%10); 65 1 LcdWriteData(0x30+usr.Remaining_mileage/10%10); 66 1 LcdWriteData(0x30+usr.Remaining_mileage%10); 67 1 LcdWriteData('m'); 68 1 69 1 LcdWriteCom(0x80 + 0x40 + 14); 70 1 if(model == 0) LcdWriteData('D'); 71 1 else LcdWriteData('S'); 72 1 } 73 74 void Key_scan(){ 75 1 if(k1==0){ 76 2 delay11(1000); 77 2 if(k1==0){ 78 3 Seep_model++; 79 3 if(Seep_model >= 4) Seep_model = 0; 80 3 } 81 2 while(!k1); 82 2 } 83 1 } 84 85 void time0() interrupt 1 86 { 87 1 static int time = 0; 88 1 TH0=0XFc; 89 1 TL0=0X18; 90 1 time++; 91 1 pwm_out_right_moto(); 92 1 if(time >= 500){ 93 2 EX1=0; 94 2 time = 0; 95 2 r_s = count * 3 / 20; // 500ms计算一次 求每秒钟的圈数,珊格数为20 r_s = count * 2 / 2 -0 96 2 speed= (r_s * 6) * 2; 97 2 mileage = mileage + (count / 20 * 3); 98 2 if(mileage > 9999) mileage = 9999; 99 2 count=0; 100 2 EX1 = 1; 101 2 } 102 1 } 103 104 void int1() interrupt 2 105 { 106 1 count++; 107 1 } 108 109 110 111 112 113 114 C51 COMPILER V9.56.0.0 IRIN 04/09/2022 17:31:01 PAGE 3 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 712 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 11 ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)