diff --git a/IRIN.LST b/IRIN.LST index 5d82104..5614865 100644 --- a/IRIN.LST +++ b/IRIN.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 IRIN 04/08/2022 03:09:39 PAGE 1 +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 @@ -11,15 +11,15 @@ line level source 2 #include "i2c.h" 3 4 uint mileage = 0; - 5 - 6 uint count=0; - 7 - 8 uchar ms=0; - 9 uint speed=0; - 10 uint r_s=0; - 11 - 12 extern uint model; - 13 extern uchar set; + 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 { @@ -40,85 +40,97 @@ line level source 31 32 void display() 33 { - 34 1 LcdSetCursor(0,0); - 35 1 LcdShowStr(0,0,""); - 36 1 Lcd1602_Write_Data(0x30+speed/100%10); - 37 1 Lcd1602_Write_Data(0x30+speed/10%10); - 38 1 Lcd1602_Write_Data(0x30+speed%10); - 39 1 LcdShowStr(3,0,"KM/h "); - 40 1 - 41 1 LcdShowStr(8,0,""); - 42 1 Lcd1602_Write_Data(0x30+mileage/100%10); - 43 1 Lcd1602_Write_Data(0x30+mileage/10%10); - 44 1 Lcd1602_Write_Data(0x30+mileage%10); - 45 1 LcdShowStr(11,0,"m "); - 46 1 - 47 1 if(model == 0) LcdShowStr(13,0," "); - 48 1 else if(model == 1) LcdShowStr(13, 0, "L"); - 49 1 else if(model == 2) LcdShowStr(13, 0, "M"); - 50 1 else LcdShowStr(13, 0, "H"); - 51 1 } - 52 - 53 - 54 void Key_scan(){ - 55 1 if(k1==0) - C51 COMPILER V9.56.0.0 IRIN 04/08/2022 03:09:39 PAGE 2 + 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 { - 57 2 delay11(1000); // - 58 2 if(k1==0){ - 59 3 model++; - 60 3 if(model >= 4) model = 0; - 61 3 } - 62 2 while(!k1); - 63 2 } - 64 1 - 65 1 if(k2==0) - 66 1 { - 67 2 delay11(1000); // - 68 2 if(k2==0){ - 69 3 set = 1; - 70 3 } - 71 2 while(!k2); - 72 2 } - 73 1 - 74 1 } - 75 - 76 void time0() interrupt 1 - 77 { - 78 1 static int time = 0; - 79 1 TH0=0XFc; - 80 1 TL0=0X18; - 81 1 time++; - 82 1 pwm_out_right_moto(); - 83 1 if(time >= 500){ - 84 2 EX1=0; - 85 2 time = 0; - 86 2 r_s=count; - 87 2 count=0; - 88 2 EX1=1; - 89 2 speed=speed*0.5+(r_s*6)*0.5; - 90 2 speed=(0.15*speed); - 91 2 mileage = mileage+(r_s*2.5/20); - 92 2 } - 93 1 } - 94 - 95 void int1() interrupt 2 - 96 { - 97 1 count++; - 98 1 } - 99 - 100 - 101 - 102 + 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 - 105 + 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 = 623 ---- - CONSTANT SIZE = 26 ---- + CODE SIZE = 712 ---- + CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 11 ---- diff --git a/IRIN.OBJ b/IRIN.OBJ index 48dee80..9729f8c 100644 Binary files a/IRIN.OBJ and b/IRIN.OBJ differ diff --git a/IRIN.c b/IRIN.c index ba8e76f..3abc030 100644 --- a/IRIN.c +++ b/IRIN.c @@ -2,15 +2,15 @@ #include "i2c.h" uint mileage = 0; - uint count=0; - uchar ms=0; uint speed=0; uint r_s=0; -extern uint model; -extern uchar set; +extern uchar play; +extern uint Seep_model; +extern struct UserInfo usr; +extern uchar model; void delay11(int i) { @@ -31,46 +31,55 @@ void IRIN_Init(void) void display() { - LcdSetCursor(0,0); - LcdShowStr(0,0,""); - Lcd1602_Write_Data(0x30+speed/100%10); - Lcd1602_Write_Data(0x30+speed/10%10); - Lcd1602_Write_Data(0x30+speed%10); - LcdShowStr(3,0,"KM/h "); + // 显示速度 + LcdWriteCom(0x80 + 2); + LcdWriteData(0x30+speed/100%10); + LcdWriteData(0x30+speed/10%10); + LcdWriteData(0x30+speed%10); + + // 显示里程 + LcdWriteCom(0x80 + 8); + LcdWriteData(0x30+mileage/1000%10); + LcdWriteData(0x30+mileage/100%10); + LcdWriteData(0x30+mileage/10%10); + LcdWriteData(0x30+mileage%10); + LcdWriteData('m'); + + LcdWriteCom(0x80 + 14); + if(Seep_model == 0) LcdWriteData('N'); + else if(Seep_model == 1) LcdWriteData('L'); + else if(Seep_model == 2) LcdWriteData('M'); + else if(Seep_model == 3) LcdWriteData('H'); - LcdShowStr(8,0,""); - Lcd1602_Write_Data(0x30+mileage/100%10); - Lcd1602_Write_Data(0x30+mileage/10%10); - Lcd1602_Write_Data(0x30+mileage%10); - LcdShowStr(11,0,"m "); + // 显示目标里程 + LcdWriteCom(0x80 + 0x40); + LcdWriteData(0x30+usr.target_mileage/1000%10); + LcdWriteData(0x30+usr.target_mileage/100%10); + LcdWriteData(0x30+usr.target_mileage/10%10); + LcdWriteData(0x30+usr.target_mileage%10); + LcdWriteData('m'); - if(model == 0) LcdShowStr(13,0," "); - else if(model == 1) LcdShowStr(13, 0, "L"); - else if(model == 2) LcdShowStr(13, 0, "M"); - else LcdShowStr(13, 0, "H"); + LcdWriteCom(0x80 + 0x40 + 8); + LcdWriteData(0x30+usr.Remaining_mileage/1000%10); + LcdWriteData(0x30+usr.Remaining_mileage/100%10); + LcdWriteData(0x30+usr.Remaining_mileage/10%10); + LcdWriteData(0x30+usr.Remaining_mileage%10); + LcdWriteData('m'); + + LcdWriteCom(0x80 + 0x40 + 14); + if(model == 0) LcdWriteData('D'); + else LcdWriteData('S'); } - void Key_scan(){ - if(k1==0) - { - delay11(1000); // + if(k1==0){ + delay11(1000); if(k1==0){ - model++; - if(model >= 4) model = 0; + Seep_model++; + if(Seep_model >= 4) Seep_model = 0; } while(!k1); } - - if(k2==0) - { - delay11(1000); // - if(k2==0){ - set = 1; - } - while(!k2); - } - } void time0() interrupt 1 @@ -83,12 +92,12 @@ void time0() interrupt 1 if(time >= 500){ EX1=0; time = 0; - r_s=count; + r_s = count * 3 / 20; // 500ms计算一次 求每秒钟的圈数,珊格数为20 r_s = count * 2 / 20 + speed= (r_s * 6) * 2; + mileage = mileage + (count / 20 * 3); + if(mileage > 9999) mileage = 9999; count=0; - EX1=1; - speed=speed*0.5+(r_s*6)*0.5; - speed=(0.15*speed); - mileage = mileage+(r_s*2.5/20); + EX1 = 1; } } diff --git a/i2c.LST b/i2c.LST index c195677..a84b9ce 100644 --- a/i2c.LST +++ b/i2c.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 I2C 04/08/2022 02:58:55 PAGE 1 +C51 COMPILER V9.56.0.0 I2C 04/09/2022 14:48:34 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE I2C @@ -62,7 +62,7 @@ line level source 53 /******************************************************************************* 54 * : I2cSendByte(unsigned char dat) 55 * : ͨI2CһֽڡSCLʱźŸߵƽڼ䣬ַźSDAȶ - C51 COMPILER V9.56.0.0 I2C 04/08/2022 02:58:55 PAGE 2 + C51 COMPILER V9.56.0.0 I2C 04/09/2022 14:48:34 PAGE 2 56 * : num 57 * : 01ͳɹ1ʧܷ0 @@ -126,7 +126,7 @@ line level source 115 1 } 116 117 - C51 COMPILER V9.56.0.0 I2C 04/08/2022 02:58:55 PAGE 3 + C51 COMPILER V9.56.0.0 I2C 04/09/2022 14:48:34 PAGE 3 118 /******************************************************************************* 119 * : void At24c02Write(unsigned char addr,unsigned char dat) diff --git a/i2c.OBJ b/i2c.OBJ index ea099e0..6e25b3e 100644 Binary files a/i2c.OBJ and b/i2c.OBJ differ diff --git a/i2c.h b/i2c.h index 36939e3..09c7392 100644 --- a/i2c.h +++ b/i2c.h @@ -3,8 +3,8 @@ #include -sbit SCL=P0^1; -sbit SDA=P0^0; +sbit SCL=P1^1; +sbit SDA=P1^0; void I2cStart(); void I2cStop(); diff --git a/lcd.LST b/lcd.LST index ec1e623..4851607 100644 --- a/lcd.LST +++ b/lcd.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 LCD 04/08/2022 02:58:55 PAGE 1 +C51 COMPILER V9.56.0.0 LCD 04/09/2022 15:45:29 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE LCD @@ -7,92 +7,152 @@ COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE lcd.c OPTIMIZE(8,SPEED) BROWSE D line level source - 1 #include "lcd.h" + 1 #include"lcd.h" 2 - 3 - 4 void Read_Busy() //æ⺯жbit70ִУ1ֹ - 5 { - 6 1 unsigned char sta; // - 7 1 LCD1602_DB = 0xff; - 8 1 LCD1602_RS = 0; - 9 1 LCD1602_RW = 1; - 10 1 do - 11 1 { - 12 2 LCD1602_EN = 1; - 13 2 sta = LCD1602_DB; - 14 2 LCD1602_EN = 0; //ʹܣͣͷ - 15 2 }while(sta & 0x80); - 16 1 } - 17 - 18 void Lcd1602_Write_Cmd(unsigned char cmd) //д - 19 { - 20 1 Read_Busy(); - 21 1 LCD1602_RS = 0; - 22 1 LCD1602_RW = 0; - 23 1 LCD1602_DB = cmd; - 24 1 LCD1602_EN = 1; - 25 1 LCD1602_EN = 0; - 26 1 } - 27 - 28 void Lcd1602_Write_Data(unsigned char dat) //д - 29 { - 30 1 Read_Busy(); - 31 1 LCD1602_RS = 1; - 32 1 LCD1602_RW = 0; - 33 1 LCD1602_DB = dat; - 34 1 LCD1602_EN = 1; - 35 1 LCD1602_EN = 0; - 36 1 } - 37 - 38 void LcdSetCursor(unsigned char x,unsigned char y) //ʾ - 39 { - 40 1 unsigned char addr; - 41 1 if(y == 0) - 42 1 addr = 0x00 + x; - 43 1 else - 44 1 addr = 0x40 + x; - 45 1 - 46 1 Lcd1602_Write_Cmd(addr|0x80); - 47 1 } - 48 - 49 //ָλʾһַ - 50 void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) - 51 { - 52 1 Y &= 0x1; - 53 1 X &= 0xF; //Xܴ15Yܴ1 - 54 1 if (Y) X |= 0x40; //Ҫʾڶʱַ+0x40; - 55 1 X |= 0x80; //ָ - C51 COMPILER V9.56.0.0 LCD 04/08/2022 02:58:55 PAGE 2 + 3 /******************************************************************************* + 4 * : Lcd1602_Delay1ms + 5 * : ʱʱ1ms + 6 * : c + 7 * : + 8 * ˵ : ú12MHZ£12ƵƬʱ + 9 *******************************************************************************/ + 10 + 11 void Lcd1602_Delay1ms(uint c) // 0us + 12 { + 13 1 uchar a,b; + 14 1 for (; c>0; c--) + 15 1 { + 16 2 for (b=199;b>0;b--) + 17 2 { + 18 3 for(a=1;a>0;a--); + 19 3 } + 20 2 } + 21 1 + 22 1 } + 23 + 24 /******************************************************************************* + 25 * : LcdWriteCom + 26 * : LCDдһֽڵ + 27 * : com + 28 * : + 29 *******************************************************************************/ + 30 #ifndef LCD1602_4PINS //ûжLCD1602_4PINSʱ + 31 void LcdWriteCom(uchar com) //д + 32 { + 33 1 LCD1602_E = 0; //ʹ + 34 1 LCD1602_RS = 0; //ѡ + 35 1 LCD1602_RW = 0; //ѡд + 36 1 + 37 1 LCD1602_DATAPINS = com; // + 38 1 Lcd1602_Delay1ms(1); //ȴȶ + 39 1 + 40 1 LCD1602_E = 1; //дʱ + 41 1 Lcd1602_Delay1ms(5); //ʱ + 42 1 LCD1602_E = 0; + 43 1 } + 44 #else + void LcdWriteCom(uchar com) //д + { + LCD1602_E = 0; //ʹ + LCD1602_RS = 0; //ѡд + LCD1602_RW = 0; //ѡд + + LCD1602_DATAPINS = com; //4λĽǽӵP0ڵĸλԴ͸λø + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + C51 COMPILER V9.56.0.0 LCD 04/09/2022 15:45:29 PAGE 2 - 56 1 Lcd1602_Write_Cmd(X); // - 57 1 Lcd1602_Write_Data(DData); // - 58 1 } - 59 - 60 - 61 void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str) //ʾַ - 62 { - 63 1 LcdSetCursor(x,y); //ǰַ - 64 1 while(*str != '\0') - 65 1 { - 66 2 Lcd1602_Write_Data(*str++); - 67 2 } - 68 1 } - 69 - 70 void InitLcd1602() //1602ʼ - 71 { - 72 1 Lcd1602_Write_Cmd(0x38); //򿪣5*8,8λ - 73 1 Lcd1602_Write_Cmd(0x0c); - 74 1 Lcd1602_Write_Cmd(0x06); - 75 1 Lcd1602_Write_Cmd(0x01); // - 76 1 } + LCD1602_E = 0; + + // Lcd1602_Delay1ms(1); + LCD1602_DATAPINS = com << 4; //͵λ + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; + } + #endif + 67 /******************************************************************************* + 68 * : LcdWriteData + 69 * : LCDдһֽڵ + 70 * : dat + 71 * : + 72 *******************************************************************************/ + 73 #ifndef LCD1602_4PINS + 74 void LcdWriteData(uchar dat) //д + 75 { + 76 1 LCD1602_E = 0; //ʹ + 77 1 LCD1602_RS = 1; //ѡ + 78 1 LCD1602_RW = 0; //ѡд + 79 1 + 80 1 LCD1602_DATAPINS = dat; //д + 81 1 Lcd1602_Delay1ms(1); + 82 1 + 83 1 LCD1602_E = 1; //дʱ + 84 1 Lcd1602_Delay1ms(5); //ʱ + 85 1 LCD1602_E = 0; + 86 1 } + 87 #else + void LcdWriteData(uchar dat) //д + { + LCD1602_E = 0; //ʹ + LCD1602_RS = 1; //ѡд + LCD1602_RW = 0; //ѡд + + LCD1602_DATAPINS = dat; //4λĽǽӵP0ڵĸλԴ͸λø + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; + + LCD1602_DATAPINS = dat << 4; //дλ + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; + } + #endif + 109 /******************************************************************************* + 110 * : LcdInit() + 111 * : ʼLCD + 112 * : + 113 * : + 114 *******************************************************************************/ + 115 #ifndef LCD1602_4PINS + 116 void LcdInit() //LCDʼӳ + 117 { + C51 COMPILER V9.56.0.0 LCD 04/09/2022 15:45:29 PAGE 3 + + 118 1 LcdWriteCom(0x38); //ʾ + 119 1 LcdWriteCom(0x0c); //ʾʾ + 120 1 LcdWriteCom(0x06); //дһָ1 + 121 1 LcdWriteCom(0x01); // + 122 1 LcdWriteCom(0x80); //ָ + 123 1 } + 124 #else + void LcdInit() //LCDʼӳ + { + LcdWriteCom(0x32); //8λתΪ4λ + LcdWriteCom(0x28); //λµijʼ + LcdWriteCom(0x0c); //ʾʾ + LcdWriteCom(0x06); //дһָ1 + LcdWriteCom(0x01); // + LcdWriteCom(0x80); //ָ + } + #endif MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 157 ---- + CODE SIZE = 87 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- - DATA SIZE = ---- 3 + DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. diff --git a/lcd.OBJ b/lcd.OBJ index 7d32b00..033ddcd 100644 Binary files a/lcd.OBJ and b/lcd.OBJ differ diff --git a/lcd.c b/lcd.c index 69fa40f..b32b713 100644 --- a/lcd.c +++ b/lcd.c @@ -1,76 +1,134 @@ -#include "lcd.h" +#include"lcd.h" +/******************************************************************************* +* : Lcd1602_Delay1ms +* : ʱʱ1ms +* : c +* : +* ˵ : ú12MHZ£12ƵƬʱ +*******************************************************************************/ -void Read_Busy() //æ⺯жbit70ִУ1ֹ +void Lcd1602_Delay1ms(uint c) // 0us { - unsigned char sta; // - LCD1602_DB = 0xff; - LCD1602_RS = 0; - LCD1602_RW = 1; - do - { - LCD1602_EN = 1; - sta = LCD1602_DB; - LCD1602_EN = 0; //ʹܣͣͷ - }while(sta & 0x80); + uchar a,b; + for (; c>0; c--) + { + for (b=199;b>0;b--) + { + for(a=1;a>0;a--); + } + } + } -void Lcd1602_Write_Cmd(unsigned char cmd) //д +/******************************************************************************* +* : LcdWriteCom +* : LCDдһֽڵ +* : com +* : +*******************************************************************************/ +#ifndef LCD1602_4PINS //ûжLCD1602_4PINSʱ +void LcdWriteCom(uchar com) //д { - Read_Busy(); - LCD1602_RS = 0; - LCD1602_RW = 0; - LCD1602_DB = cmd; - LCD1602_EN = 1; - LCD1602_EN = 0; -} + LCD1602_E = 0; //ʹ + LCD1602_RS = 0; //ѡ + LCD1602_RW = 0; //ѡд + + LCD1602_DATAPINS = com; // + Lcd1602_Delay1ms(1); //ȴȶ -void Lcd1602_Write_Data(unsigned char dat) //д -{ - Read_Busy(); - LCD1602_RS = 1; - LCD1602_RW = 0; - LCD1602_DB = dat; - LCD1602_EN = 1; - LCD1602_EN = 0; + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); //ʱ + LCD1602_E = 0; } - -void LcdSetCursor(unsigned char x,unsigned char y) //ʾ +#else +void LcdWriteCom(uchar com) //д { - unsigned char addr; - if(y == 0) - addr = 0x00 + x; - else - addr = 0x40 + x; - - Lcd1602_Write_Cmd(addr|0x80); -} + LCD1602_E = 0; //ʹ + LCD1602_RS = 0; //ѡд + LCD1602_RW = 0; //ѡд -//ָλʾһַ -void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) + LCD1602_DATAPINS = com; //4λĽǽӵP0ڵĸλԴ͸λø + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; + +// Lcd1602_Delay1ms(1); + LCD1602_DATAPINS = com << 4; //͵λ + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; +} +#endif +/******************************************************************************* +* : LcdWriteData +* : LCDдһֽڵ +* : dat +* : +*******************************************************************************/ +#ifndef LCD1602_4PINS +void LcdWriteData(uchar dat) //д { - Y &= 0x1; - X &= 0xF; //Xܴ15Yܴ1 - if (Y) X |= 0x40; //Ҫʾڶʱַ+0x40; - X |= 0x80; //ָ - Lcd1602_Write_Cmd(X); // - Lcd1602_Write_Data(DData); // + LCD1602_E = 0; //ʹ + LCD1602_RS = 1; //ѡ + LCD1602_RW = 0; //ѡд + + LCD1602_DATAPINS = dat; //д + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); //ʱ + LCD1602_E = 0; } +#else +void LcdWriteData(uchar dat) //д +{ + LCD1602_E = 0; //ʹ + LCD1602_RS = 1; //ѡд + LCD1602_RW = 0; //ѡд + + LCD1602_DATAPINS = dat; //4λĽǽӵP0ڵĸλԴ͸λø + Lcd1602_Delay1ms(1); + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; -void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str) //ʾַ + LCD1602_DATAPINS = dat << 4; //дλ + Lcd1602_Delay1ms(1); + + LCD1602_E = 1; //дʱ + Lcd1602_Delay1ms(5); + LCD1602_E = 0; +} +#endif +/******************************************************************************* +* : LcdInit() +* : ʼLCD +* : +* : +*******************************************************************************/ +#ifndef LCD1602_4PINS +void LcdInit() //LCDʼӳ { - LcdSetCursor(x,y); //ǰַ - while(*str != '\0') - { - Lcd1602_Write_Data(*str++); - } + LcdWriteCom(0x38); //ʾ + LcdWriteCom(0x0c); //ʾʾ + LcdWriteCom(0x06); //дһָ1 + LcdWriteCom(0x01); // + LcdWriteCom(0x80); //ָ } - -void InitLcd1602() //1602ʼ +#else +void LcdInit() //LCDʼӳ { - Lcd1602_Write_Cmd(0x38); //򿪣5*8,8λ - Lcd1602_Write_Cmd(0x0c); - Lcd1602_Write_Cmd(0x06); - Lcd1602_Write_Cmd(0x01); // + LcdWriteCom(0x32); //8λתΪ4λ + LcdWriteCom(0x28); //λµijʼ + LcdWriteCom(0x0c); //ʾʾ + LcdWriteCom(0x06); //дһָ1 + LcdWriteCom(0x01); // + LcdWriteCom(0x80); //ָ } +#endif diff --git a/lcd.h b/lcd.h index acb4ad2..7855d23 100644 --- a/lcd.h +++ b/lcd.h @@ -1,17 +1,17 @@ -#ifndef __LCD_H_ -#define __LCD_H_ +#ifndef __LCD_H_ +#define __LCD_H_ /********************************** -ʹõ4λݴʱ壬 -ʹ8λȡ +当使用的是4位数据传输的时候定义, +使用8位取消这个定义 **********************************/ //#define LCD1602_4PINS /********************************** -ͷļ +包含头文件 **********************************/ -#include +#include -//---ضؼ---// +//---重定义关键词---// #ifndef uchar #define uchar unsigned char #endif @@ -21,33 +21,23 @@ #endif /********************************** -PINڶ +PIN口定义 **********************************/ -//#define LCD1602_DB P0 //data bus -//sbit LCD1602_RS = P2^6; -//sbit LCD1602_RW = P2^5; -//sbit LCD1602_EN = P2^7; - - -#define LCD1602_DB P2 //data bus - -sbit LCD1602_RS=P0^7; -sbit LCD1602_RW=P0^6; -sbit LCD1602_EN=P0^5; +#define LCD1602_DATAPINS P2 +sbit LCD1602_E=P1^4; +sbit LCD1602_RW=P1^5; +sbit LCD1602_RS=P1^6; /********************************** - +函数声明 **********************************/ -/*51Ƭ12MHZʱµʱ*/ -void Lcd1602_Delay1ms(uint c); // 0us - -void Read_Busy(); //æ⺯жbit70ִУ1ֹ -void Lcd1602_Write_Cmd(unsigned char cmd); //д -void Lcd1602_Write_Data(unsigned char dat); //д -void LcdSetCursor(unsigned char x,unsigned char y); //ʾ -void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str); //ʾַ -void InitLcd1602(); //1602ʼ -void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); - +/*在51单片机12MHZ时钟下的延时函数*/ +void Lcd1602_Delay1ms(uint c); //误差 0us +/*LCD1602写入8位命令子函数*/ +void LcdWriteCom(uchar com); +/*LCD1602写入8位数据子函数*/ +void LcdWriteData(uchar dat) ; +/*LCD1602初始化子程序*/ +void LcdInit(); #endif diff --git a/main.LST b/main.LST index e728d25..aa70b01 100644 --- a/main.LST +++ b/main.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 MAIN 04/08/2022 03:21:37 PAGE 1 +C51 COMPILER V9.56.0.0 MAIN 04/09/2022 18:14:52 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE MAIN @@ -26,220 +26,206 @@ line level source 17 extern uint mileage; 18 extern uint speed; 19 - 20 uint model = 0; + 20 uint Seep_model = 0; 21 22 extern unsigned char pwm_value; 23 - 24 - 25 struct UserInfo{ - 26 int height; - 27 int weight; - 28 int target_mileage; - 29 int target_speed; - 30 }; - 31 - 32 uchar set = 0; + 24 uchar play = 0; + 25 + 26 // model + 27 uchar model = 0; + 28 + 29 struct UserInfo usr; + 30 + 31 uchar Receive; + 32 uchar Recive_table[40]; 33 - 34 struct UserInfo usr; + 34 bit accept = 0; 35 - 36 /*****************ر**************/ - 37 - 38 uchar Receive; - 39 uchar Recive_table[40]; //ڽwifiģ鷴MCUϵ - 40 - 41 bit accept = 0; - 42 - 43 void delayms(unsigned int ms) - 44 { - 45 1 unsigned char i=100,j; - 46 1 for(;ms;ms--) - 47 1 { - 48 2 while(--i) - 49 2 { - 50 3 j=10; - 51 3 while(--j); - 52 3 } - 53 2 } - 54 1 } - 55 - C51 COMPILER V9.56.0.0 MAIN 04/08/2022 03:21:37 PAGE 2 + 36 void delayms(unsigned int ms) + 37 { + 38 1 unsigned char i=100,j; + 39 1 for(;ms;ms--) + 40 1 { + 41 2 while(--i) + 42 2 { + 43 3 j=10; + 44 3 while(--j); + 45 3 } + 46 2 } + 47 1 } + 48 + 49 void Uart_Init() + 50 { + 51 1 TMOD = 0x20 | 0x01; + 52 1 SCON = 0x50; + 53 1 TH1 = 0xFD; + 54 1 TL1 = TH1; + 55 1 PCON = 0x00; + C51 COMPILER V9.56.0.0 MAIN 04/09/2022 18:14:52 PAGE 2 - 56 void Uart_Init() - 57 { - 58 1 TMOD = 0x20 | 0x01; - 59 1 SCON = 0x50; - 60 1 TH1 = 0xFD; - 61 1 TL1 = TH1; - 62 1 PCON = 0x00; - 63 1 EA = 1; - 64 1 ES = 1; - 65 1 TR1 = 1; - 66 1 } - 67 - 68 void us_delay(uchar t) - 69 { - 70 1 while(t--); - 71 1 } - 72 - 73 void Send_Uart(uchar value) - 74 { - 75 1 ES=0; - 76 1 TI=0; - 77 1 SBUF=value; - 78 1 while(TI==0); - 79 1 TI=0; - 80 1 ES=1; - 81 1 } - 82 - 83 void Bluetooth_Set(uchar *puf) - 84 { - 85 1 while(*puf!='\0') - 86 1 { - 87 2 Send_Uart(*puf); - 88 2 us_delay(5); - 89 2 puf++; - 90 2 } - 91 1 } - 92 - 93 - 94 void saveUserInfo(){ - 95 1 int target = 0; - 96 1 target = usr.height >> 8; - 97 1 At24c02Write(3, target); - 98 1 delayms(2); - 99 1 target = (usr.height) & 0x00ff; - 100 1 At24c02Write(4, target); - 101 1 delayms(2); - 102 1 target = (usr.weight) >> 8; - 103 1 At24c02Write(5, target); - 104 1 delayms(2); - 105 1 target = (usr.weight) & 0x00ff; - 106 1 At24c02Write(6, target); - 107 1 delayms(2); - 108 1 } - 109 - 110 - 111 void Bluetooth_Accept(){ - 112 1 int target1 = 0, target2 = 0, i = 0; - 113 1 if(accept){ - 114 2 if(strstr(Recive_table, "inquire") != NULL){ - 115 3 memset(Recive_table, 0, sizeof(Recive_table)); - 116 3 sprintf(Recive_table, "speed:%d km/h mileage:%d m\r\n",speed, mileage); - 117 3 Bluetooth_Set(Recive_table); - C51 COMPILER V9.56.0.0 MAIN 04/08/2022 03:21:37 PAGE 3 + 56 1 EA = 1; + 57 1 ES = 1; + 58 1 TR1 = 1; + 59 1 } + 60 + 61 void us_delay(uchar t) + 62 { + 63 1 while(t--); + 64 1 } + 65 + 66 void Send_Uart(uchar value) + 67 { + 68 1 ES=0; + 69 1 TI=0; + 70 1 SBUF=value; + 71 1 while(TI==0); + 72 1 TI=0; + 73 1 ES=1; + 74 1 } + 75 + 76 void Bluetooth_Set(uchar *puf) + 77 { + 78 1 while(*puf!='\0') + 79 1 { + 80 2 Send_Uart(*puf); + 81 2 us_delay(5); + 82 2 puf++; + 83 2 } + 84 1 } + 85 + 86 // 保存用户的数据 + 87 void saveUserInfo(){ + 88 1 int target = 0; + 89 1 At24c02Write(3, usr.Seep_model); + 90 1 delayms(2); + 91 1 target = (usr.target_mileage) >> 8; + 92 1 At24c02Write(5, target); + 93 1 delayms(2); + 94 1 target = (usr.target_mileage) & 0x00ff; + 95 1 At24c02Write(6, target); + 96 1 delayms(2); + 97 1 } + 98 + 99 void Bluetooth_Accept(){ + 100 1 int target1 = 0, target2 = 0, i = 0; + 101 1 if(accept){ + 102 2 if(strstr(Recive_table, "inquire") != NULL){ + 103 3 memset(Recive_table, 0, sizeof(Recive_table)); + 104 3 sprintf(Recive_table, "speed:%d m/min mileage:%d m\r\n",speed, mileage); + 105 3 Bluetooth_Set(Recive_table); + 106 3 }else if(strstr(Recive_table, "model") != NULL){ + 107 3 if(model == 0) model = 1; + 108 3 else model = 0; + 109 3 if(model == 0) Seep_model = 0; + 110 3 memset(Recive_table, 0, sizeof(Recive_table)); + 111 3 sprintf(Recive_table, "Model SET OK\r\n"); + 112 3 Bluetooth_Set(Recive_table); + 113 3 At24c02Write(4, model); + 114 3 }else if(strstr(Recive_table, "clear") != NULL){ + 115 3 // 清空里程 + 116 3 mileage = 0; + 117 3 Bluetooth_Set("reset mileage OK!\r\n"); + C51 COMPILER V9.56.0.0 MAIN 04/09/2022 18:14:52 PAGE 3 - 118 3 }else if(strstr(Recive_table, "set:") != NULL){ - 119 3 target1 = strstr(Recive_table, "(") - Recive_table; - 120 3 target2 = strstr(Recive_table, ",") - Recive_table; - 121 3 usr.height = 0; - 122 3 for(i = target1 + 1; i < target2; i++){ - 123 4 usr.height = usr.height * 10 + (*(Recive_table + i) - 0x30); - 124 4 } - 125 3 Bluetooth_Set(Recive_table); - 126 3 target1 = strstr(Recive_table, ",") - Recive_table; - 127 3 target2 = strstr(Recive_table, ")") - Recive_table; - 128 3 usr.weight = 0; - 129 3 for(i = target1 + 1; i < target2; i++){ - 130 4 usr.weight = usr.weight * 10 + (*(Recive_table + i) - 0x30); - 131 4 } - 132 3 memset(Recive_table, 0, sizeof(Recive_table)); - 133 3 sprintf(Recive_table, "SET OK\r\n",usr.height, usr.weight); - 134 3 Bluetooth_Set(Recive_table); - 135 3 - 136 3 // - 137 3 usr.target_mileage = (usr.weight / usr.height) * (usr.weight / usr.height) / 22 * 3000; - 138 3 usr.target_speed = 10 - (usr.weight / usr.height) * (usr.weight / usr.height) / 22 ; - 139 3 saveUserInfo(); - 140 3 } - 141 2 memset(Recive_table, 0, sizeof(Recive_table)); - 142 2 accept = 0; - 143 2 } - 144 1 } - 145 - 146 void ReadData(){ - 147 1 mileage = At24c02Read(1) * 255 + At24c02Read(2); - 148 1 set = At24c02Read(7); - 149 1 if(set){ - 150 2 usr.height = 0; - 151 2 usr.weight = 0; - 152 2 - 153 2 At24c02Write(1, 0); - 154 2 delayms(2); - 155 2 At24c02Write(2, 0); - 156 2 delayms(2); - 157 2 - 158 2 At24c02Write(3, 0); - 159 2 delayms(2); - 160 2 At24c02Write(4, 0); - 161 2 delayms(2); - 162 2 At24c02Write(5, 0); - 163 2 delayms(2); - 164 2 At24c02Write(6, 0); - 165 2 - 166 2 }else{ - 167 2 usr.height = At24c02Read(3) * 255 + At24c02Read(4); - 168 2 usr.weight = At24c02Read(5) * 255 + At24c02Read(6); - 169 2 } - 170 1 } - 171 - 172 - 173 - 174 - 175 - 176 void WriteData(){ - 177 1 int target = mileage >> 8; - 178 1 At24c02Write(1, target); - 179 1 delayms(2); - C51 COMPILER V9.56.0.0 MAIN 04/08/2022 03:21:37 PAGE 4 + 118 3 } + 119 2 else if(strstr(Recive_table, "speed") != NULL){ + 120 3 Seep_model++; + 121 3 if(Seep_model >= 4) Seep_model = 0; + 122 3 usr.Seep_model = Seep_model; + 123 3 } + 124 2 else if(strstr(Recive_table, "set:") != NULL){ + 125 3 target1 = strstr(Recive_table, "(") - Recive_table; + 126 3 target2 = strstr(Recive_table, ",") - Recive_table; + 127 3 usr.Seep_model = 0; + 128 3 for(i = target1 + 1; i < target2; i++){ + 129 4 usr.Seep_model = usr.Seep_model * 10 + (*(Recive_table + i) - 0x30); + 130 4 } + 131 3 if(usr.Seep_model > 1) usr.Seep_model = 1; + 132 3 target1 = strstr(Recive_table, ",") - Recive_table; + 133 3 target2 = strstr(Recive_table, ")") - Recive_table; + 134 3 usr.target_mileage = 0; + 135 3 for(i = target1 + 1; i < target2; i++){ + 136 4 usr.target_mileage = usr.target_mileage * 10 + (*(Recive_table + i) - 0x30); + 137 4 } + 138 3 + 139 3 if(usr.Seep_model > 9999) usr.Seep_model = 9999; + 140 3 Bluetooth_Set("User SET OK!\r\n"); + 141 3 saveUserInfo(); + 142 3 } + 143 2 memset(Recive_table, 0, sizeof(Recive_table)); + 144 2 accept = 0; + 145 2 } + 146 1 } + 147 + 148 // 读取数据 + 149 void ReadData(){ + 150 1 // 里程 + 151 1 mileage = At24c02Read(1) * 255 + At24c02Read(2); + 152 1 + 153 1 // 用户的模式 + 154 1 usr.Seep_model = At24c02Read(3); + 155 1 + 156 1 model = At24c02Read(4); + 157 1 // 用户的目标里程 + 158 1 usr.target_mileage = At24c02Read(5) * 255 + At24c02Read(6); + 159 1 } + 160 + 161 // 写入数据 + 162 void WriteData(){ + 163 1 int target = mileage >> 8; + 164 1 At24c02Write(1, target); + 165 1 us_delay(200); + 166 1 target = mileage & 0x00ff; + 167 1 At24c02Write(2, target); + 168 1 us_delay(200); + 169 1 } + 170 + 171 // main 函数 + 172 void main(void) + 173 { + 174 1 LcdInit(); + 175 1 IRIN_Init(); + 176 1 Uart_Init(); + 177 1 ReadData(); + 178 1 while(1) + 179 1 { + C51 COMPILER V9.56.0.0 MAIN 04/09/2022 18:14:52 PAGE 4 - 180 1 target = mileage & 0x00ff; - 181 1 At24c02Write(2, target); - 182 1 delayms(2); - 183 1 } - 184 - 185 void main(void) - 186 { - 187 1 InitLcd1602(); - 188 1 IRIN_Init(); - 189 1 Uart_Init(); - 190 1 ReadData(); - 191 1 while(1) - 192 1 { - 193 2 run(); - 194 2 display(); - 195 2 Key_scan(); -*** WARNING C206 IN LINE 195 OF main.c: 'Key_scan': missing function-prototype - 196 2 Bluetooth_Accept(); - 197 2 WriteData(); - 198 2 } - 199 1 } - 200 - 201 void Uart_Interrupt() interrupt 4 - 202 { - 203 1 static uchar i=0; - 204 1 if( accept) return; - 205 1 if(RI==1) { - 206 2 RI=0; - 207 2 Receive=SBUF; //MCUwifiģ鷴 - - - 208 2 Recive_table[i]=Receive; - 209 2 if((Recive_table[i]=='\r')){ - 210 3 i=0; - 211 3 accept = 1; - 212 3 } - 213 2 else i++; // - -װֵ - 214 2 } - 215 1 else TI=0; - 216 1 } + 180 2 run(); + 181 2 display(); + 182 2 Key_scan(); +*** WARNING C206 IN LINE 182 OF main.c: 'Key_scan': missing function-prototype + 183 2 Bluetooth_Accept(); + 184 2 WriteData(); + 185 2 } + 186 1 } + 187 + 188 // 串口中断 + 189 void Uart_Interrupt() interrupt 4 + 190 { + 191 1 static uchar i=0; + 192 1 if(accept) return; + 193 1 if(RI==1) { + 194 2 RI=0; + 195 2 Receive=SBUF; + 196 2 Recive_table[i]=Receive; + 197 2 if((Recive_table[i]=='\r')){ + 198 3 i=0; + 199 3 accept = 1; + 200 3 } + 201 2 else i++; + 202 2 } + 203 1 else TI=0; + 204 1 } MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 1000 ---- - CONSTANT SIZE = 57 ---- + CODE SIZE = 1004 ---- + CONSTANT SIZE = 117 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- - DATA SIZE = 53 6 + DATA SIZE = 52 6 IDATA SIZE = ---- ---- BIT SIZE = 1 ---- END OF MODULE INFORMATION. diff --git a/main.OBJ b/main.OBJ index 1481027..9395c6f 100644 Binary files a/main.OBJ and b/main.OBJ differ diff --git a/main.c b/main.c index 08863f2..1c0e91f 100644 --- a/main.c +++ b/main.c @@ -17,26 +17,19 @@ typedef unsigned int uint16; extern uint mileage; extern uint speed; -uint model = 0; +uint Seep_model = 0; extern unsigned char pwm_value; +uchar play = 0; -struct UserInfo{ - int height; - int weight; - int target_mileage; - int target_speed; -}; - -uchar set = 0; +// model +uchar model = 0; struct UserInfo usr; -/*****************ر**************/ - uchar Receive; -uchar Recive_table[40]; //ڽwifiģ鷴MCUϵ +uchar Recive_table[40]; bit accept = 0; @@ -90,52 +83,61 @@ void Bluetooth_Set(uchar *puf) } } - +// 保存用户的数据 void saveUserInfo(){ int target = 0; - target = usr.height >> 8; - At24c02Write(3, target); + At24c02Write(3, usr.Seep_model); delayms(2); - target = (usr.height) & 0x00ff; - At24c02Write(4, target); - delayms(2); - target = (usr.weight) >> 8; + target = (usr.target_mileage) >> 8; At24c02Write(5, target); delayms(2); - target = (usr.weight) & 0x00ff; + target = (usr.target_mileage) & 0x00ff; At24c02Write(6, target); delayms(2); } - void Bluetooth_Accept(){ int target1 = 0, target2 = 0, i = 0; if(accept){ if(strstr(Recive_table, "inquire") != NULL){ memset(Recive_table, 0, sizeof(Recive_table)); - sprintf(Recive_table, "speed:%d km/h mileage:%d m\r\n",speed, mileage); + sprintf(Recive_table, "speed:%d m/min mileage:%d m\r\n",speed, mileage); Bluetooth_Set(Recive_table); - }else if(strstr(Recive_table, "set:") != NULL){ + }else if(strstr(Recive_table, "model") != NULL){ + if(model == 0) model = 1; + else model = 0; + if(model == 0) Seep_model = 0; + memset(Recive_table, 0, sizeof(Recive_table)); + sprintf(Recive_table, "Model SET OK\r\n"); + Bluetooth_Set(Recive_table); + At24c02Write(4, model); + }else if(strstr(Recive_table, "clear") != NULL){ + // 清空里程 + mileage = 0; + Bluetooth_Set("reset mileage OK!\r\n"); + } + else if(strstr(Recive_table, "speed") != NULL){ + Seep_model++; + if(Seep_model >= 4) Seep_model = 0; + usr.Seep_model = Seep_model; + } + else if(strstr(Recive_table, "set:") != NULL){ target1 = strstr(Recive_table, "(") - Recive_table; target2 = strstr(Recive_table, ",") - Recive_table; - usr.height = 0; + usr.Seep_model = 0; for(i = target1 + 1; i < target2; i++){ - usr.height = usr.height * 10 + (*(Recive_table + i) - 0x30); + usr.Seep_model = usr.Seep_model * 10 + (*(Recive_table + i) - 0x30); } - Bluetooth_Set(Recive_table); + if(usr.Seep_model > 1) usr.Seep_model = 1; target1 = strstr(Recive_table, ",") - Recive_table; target2 = strstr(Recive_table, ")") - Recive_table; - usr.weight = 0; + usr.target_mileage = 0; for(i = target1 + 1; i < target2; i++){ - usr.weight = usr.weight * 10 + (*(Recive_table + i) - 0x30); + usr.target_mileage = usr.target_mileage * 10 + (*(Recive_table + i) - 0x30); } - memset(Recive_table, 0, sizeof(Recive_table)); - sprintf(Recive_table, "SET OK\r\n",usr.height, usr.weight); - Bluetooth_Set(Recive_table); - - // - usr.target_mileage = (usr.weight / usr.height) * (usr.weight / usr.height) / 22 * 3000; - usr.target_speed = 10 - (usr.weight / usr.height) * (usr.weight / usr.height) / 22 ; + + if(usr.Seep_model > 9999) usr.Seep_model = 9999; + Bluetooth_Set("User SET OK!\r\n"); saveUserInfo(); } memset(Recive_table, 0, sizeof(Recive_table)); @@ -143,48 +145,33 @@ void Bluetooth_Accept(){ } } +// 读取数据 void ReadData(){ + // 里程 mileage = At24c02Read(1) * 255 + At24c02Read(2); - set = At24c02Read(7); - if(set){ - usr.height = 0; - usr.weight = 0; - - At24c02Write(1, 0); - delayms(2); - At24c02Write(2, 0); - delayms(2); - - At24c02Write(3, 0); - delayms(2); - At24c02Write(4, 0); - delayms(2); - At24c02Write(5, 0); - delayms(2); - At24c02Write(6, 0); - - }else{ - usr.height = At24c02Read(3) * 255 + At24c02Read(4); - usr.weight = At24c02Read(5) * 255 + At24c02Read(6); - } -} - - - + + // 用户的模式 + usr.Seep_model = At24c02Read(3); + model = At24c02Read(4); + // 用户的目标里程 + usr.target_mileage = At24c02Read(5) * 255 + At24c02Read(6); +} +// 写入数据 void WriteData(){ int target = mileage >> 8; At24c02Write(1, target); - delayms(2); + us_delay(200); target = mileage & 0x00ff; At24c02Write(2, target); - delayms(2); + us_delay(200); } +// main 函数 void main(void) { - InitLcd1602(); + LcdInit(); IRIN_Init(); Uart_Init(); ReadData(); @@ -198,19 +185,20 @@ void main(void) } } +// 串口中断 void Uart_Interrupt() interrupt 4 { static uchar i=0; - if( accept) return; + if(accept) return; if(RI==1) { RI=0; - Receive=SBUF; //MCUwifiģ鷴 + Receive=SBUF; Recive_table[i]=Receive; if((Recive_table[i]=='\r')){ i=0; accept = 1; } - else i++; // װֵ + else i++; } else TI=0; } \ No newline at end of file diff --git a/pro b/pro index 4840167..e292801 100644 Binary files a/pro and b/pro differ diff --git a/pro.M51 b/pro.M51 index e85444d..5b7ca79 100644 --- a/pro.M51 +++ b/pro.M51 @@ -1,11 +1,11 @@ -BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 1 +BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY: D:\KEIL_V5\C51\BIN\BL51.EXE main.obj, lcd.obj, pwm.obj, i2c.obj, IRIN.obj TO pro DISABLEWARNING (15, 16) -MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC +MEMORY MODEL: SMALL INPUT MODULES INCLUDED: @@ -14,30 +14,20 @@ INPUT MODULES INCLUDED: pwm.obj (PWM) i2c.obj (I2C) IRIN.obj (IRIN) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?CASTF) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (PRINTF) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPROUND) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCONVERT) - D:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FTNPWR) D:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP) D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR) - D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) - D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) D:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL) D:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV) D:\KEIL_V5\C51\LIB\C51S.LIB (?C?SIDIV) - D:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG) - D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) - D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) - D:\KEIL_V5\C51\LIB\C51S.LIB (PUTCHAR) + D:\KEIL_V5\C51\LIB\C51S.LIB (PRINTF) D:\KEIL_V5\C51\LIB\C51S.LIB (STRSTR) D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE) + D:\KEIL_V5\C51\LIB\C51S.LIB (PUTCHAR) LINK MAP OF MODULE: pro (MAIN) @@ -55,12 +45,9 @@ LINK MAP OF MODULE: pro (MAIN) BIT 0021H.1 0000H.1 UNIT ?BI?MAIN BIT 0021H.2 0000H.1 UNIT ?BI?PWM 0021H.3 0000H.5 *** GAP *** - DATA 0022H 0035H UNIT ?DT?MAIN - DATA 0057H 0022H UNIT _DATA_GROUP_ - IDATA 0079H 0001H UNIT ?STACK - - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 2 - + DATA 0022H 0034H UNIT ?DT?MAIN + DATA 0056H 001AH UNIT _DATA_GROUP_ + IDATA 0070H 0001H UNIT ?STACK * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 0003H ABSOLUTE @@ -71,71 +58,70 @@ LINK MAP OF MODULE: pro (MAIN) CODE 0013H 0003H ABSOLUTE CODE 0016H 000DH UNIT ?PR?INT1?IRIN CODE 0023H 0003H ABSOLUTE - CODE 0026H 0664H UNIT ?C?LIB_CODE - CODE 068AH 046FH UNIT ?PR?PRINTF?PRINTF - CODE 0AF9H 0215H UNIT ?PR?BLUETOOTH_ACCEPT?MAIN - CODE 0D0EH 010EH UNIT ?PR?TIME0?IRIN - CODE 0E1CH 00FBH UNIT ?PR?DISPLAY?IRIN - CODE 0F17H 00B6H UNIT ?PR?READDATA?MAIN - CODE 0FCDH 008CH UNIT ?C_C51STARTUP - CODE 1059H 0082H UNIT ?PR?_STRSTR?STRSTR - CODE 10DBH 0042H UNIT ?PR?SAVEUSERINFO?MAIN - CODE 111DH 0041H UNIT ?PR?_I2CSENDBYTE?I2C - CODE 115EH 003AH UNIT ?PR?KEY_SCAN?IRIN - CODE 1198H 0039H UNIT ?CO?MAIN - CODE 11D1H 0038H UNIT ?PR?UART_INTERRUPT?MAIN - CODE 1209H 002FH UNIT ?C_INITSEG - CODE 1238H 002FH UNIT ?PR?RUN?PWM - CODE 1267H 0028H UNIT ?PR?_LCDSHOWSTR?LCD - CODE 128FH 0027H UNIT ?PR?PUTCHAR?PUTCHAR - CODE 12B6H 0026H UNIT ?PR?I2CREADBYTE?I2C - CODE 12DCH 0022H UNIT ?PR?_AT24C02READ?I2C - CODE 12FEH 0021H UNIT ?PR?PWM_OUT_RIGHT_MOTO?PWM - CODE 131FH 0020H UNIT ?PR?_DELAY?PWM - CODE 133FH 001FH UNIT ?PR?WRITEDATA?MAIN - CODE 135EH 001EH UNIT ?PR?_DELAYMS?MAIN - CODE 137CH 001EH UNIT ?PR?_BLUETOOTH_SET?MAIN - CODE 139AH 001DH UNIT ?PR?MAIN?MAIN - CODE 13B7H 001DH UNIT ?PR?_DISPLAYONECHAR?LCD - CODE 13D4H 001AH UNIT ?CO?IRIN - CODE 13EEH 0019H UNIT ?PR?_AT24C02WRITE?I2C - CODE 1407H 0016H UNIT ?PR?UART_INIT?MAIN - CODE 141DH 0014H UNIT ?PR?INITLCD1602?LCD - CODE 1431H 0014H UNIT ?PR?IRIN_INIT?IRIN - CODE 1445H 0012H UNIT ?PR?READ_BUSY?LCD - CODE 1457H 0012H UNIT ?PR?_LCDSETCURSOR?LCD - CODE 1469H 0010H UNIT ?PR?_LCD1602_WRITE_CMD?LCD - CODE 1479H 0010H UNIT ?PR?_LCD1602_WRITE_DATA?LCD - CODE 1489H 000FH UNIT ?PR?I2CSTART?I2C - CODE 1498H 000EH UNIT ?PR?_SEND_UART?MAIN - CODE 14A6H 000EH UNIT ?PR?DELAY10US?I2C - CODE 14B4H 000BH UNIT ?PR?_DELAY11?IRIN - CODE 14BFH 000AH UNIT ?PR?I2CSTOP?I2C + CODE 0026H 035CH UNIT ?PR?PRINTF?PRINTF + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 2 + + + CODE 0382H 028CH UNIT ?PR?BLUETOOTH_ACCEPT?MAIN + CODE 060EH 01C5H UNIT ?PR?DISPLAY?IRIN + CODE 07D3H 0157H UNIT ?C?LIB_CODE + CODE 092AH 00B0H UNIT ?PR?TIME0?IRIN + CODE 09DAH 008CH UNIT ?C_C51STARTUP + CODE 0A66H 0082H UNIT ?PR?_STRSTR?STRSTR + CODE 0AE8H 0075H UNIT ?CO?MAIN + CODE 0B5DH 0063H UNIT ?PR?RUN?PWM + CODE 0BC0H 0058H UNIT ?PR?READDATA?MAIN + CODE 0C18H 0041H UNIT ?PR?_I2CSENDBYTE?I2C + CODE 0C59H 0038H UNIT ?PR?UART_INTERRUPT?MAIN + CODE 0C91H 0037H UNIT ?PR?SAVEUSERINFO?MAIN + CODE 0CC8H 0032H UNIT ?C_INITSEG + CODE 0CFAH 002AH UNIT ?PR?_LCD1602_DELAY1MS?LCD + CODE 0D24H 0027H UNIT ?PR?KEY_SCAN?IRIN + CODE 0D4BH 0027H UNIT ?PR?PUTCHAR?PUTCHAR + CODE 0D72H 0026H UNIT ?PR?I2CREADBYTE?I2C + CODE 0D98H 0022H UNIT ?PR?_AT24C02READ?I2C + CODE 0DBAH 0021H UNIT ?PR?PWM_OUT_RIGHT_MOTO?PWM + CODE 0DDBH 0020H UNIT ?PR?_DELAY?PWM + CODE 0DFBH 001FH UNIT ?PR?WRITEDATA?MAIN + CODE 0E1AH 001DH UNIT ?PR?MAIN?MAIN + CODE 0E37H 001AH UNIT ?PR?_DELAYMS?MAIN + CODE 0E51H 0019H UNIT ?PR?LCDINIT?LCD + CODE 0E6AH 0019H UNIT ?PR?_AT24C02WRITE?I2C + CODE 0E83H 0018H UNIT ?PR?_BLUETOOTH_SET?MAIN + CODE 0E9BH 0016H UNIT ?PR?UART_INIT?MAIN + CODE 0EB1H 0014H UNIT ?PR?IRIN_INIT?IRIN + CODE 0EC5H 000FH UNIT ?PR?I2CSTART?I2C + CODE 0ED4H 000EH UNIT ?PR?_SEND_UART?MAIN + CODE 0EE2H 000EH UNIT ?PR?DELAY10US?I2C + CODE 0EF0H 000BH UNIT ?PR?_DELAY11?IRIN + CODE 0EFBH 000AH UNIT ?PR?_LCDWRITECOM?LCD + CODE 0F05H 000AH UNIT ?PR?_LCDWRITEDATA?LCD + CODE 0F0FH 000AH UNIT ?PR?I2CSTOP?I2C OVERLAY MAP OF MODULE: pro (MAIN) -SEGMENT BIT_GROUP DATA_GROUP - +--> CALLED SEGMENT START LENGTH START LENGTH - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 3 - - ------------------------------------------------------------------------ -?PR?TIME0?IRIN ----- ----- ----- ----- +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +---------------------------------------------------------------------- +?PR?TIME0?IRIN ----- ----- ----- ----- +--> ?PR?PWM_OUT_RIGHT_MOTO?PWM *** NEW ROOT *************************************************** -?C_C51STARTUP ----- ----- ----- ----- +?C_C51STARTUP ----- ----- ----- ----- +--> ?PR?MAIN?MAIN +--> ?C_INITSEG -?PR?MAIN?MAIN ----- ----- ----- ----- - +--> ?PR?INITLCD1602?LCD +?PR?MAIN?MAIN ----- ----- ----- ----- + +--> ?PR?LCDINIT?LCD +--> ?PR?IRIN_INIT?IRIN +--> ?PR?UART_INIT?MAIN + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 3 + + +--> ?PR?READDATA?MAIN +--> ?PR?RUN?PWM +--> ?PR?DISPLAY?IRIN @@ -143,85 +129,75 @@ SEGMENT BIT_GROUP DATA_GROUP +--> ?PR?BLUETOOTH_ACCEPT?MAIN +--> ?PR?WRITEDATA?MAIN -?PR?INITLCD1602?LCD ----- ----- ----- ----- - +--> ?PR?_LCD1602_WRITE_CMD?LCD +?PR?LCDINIT?LCD ----- ----- ----- ----- + +--> ?PR?_LCDWRITECOM?LCD -?PR?_LCD1602_WRITE_CMD?LCD ----- ----- ----- ----- - +--> ?PR?READ_BUSY?LCD +?PR?_LCDWRITECOM?LCD ----- ----- ----- ----- + +--> ?PR?_LCD1602_DELAY1MS?LCD -?PR?READDATA?MAIN ----- ----- ----- ----- +?PR?READDATA?MAIN ----- ----- ----- ----- +--> ?PR?_AT24C02READ?I2C - +--> ?PR?_AT24C02WRITE?I2C - +--> ?PR?_DELAYMS?MAIN -?PR?_AT24C02READ?I2C ----- ----- ----- ----- +?PR?_AT24C02READ?I2C ----- ----- ----- ----- +--> ?PR?I2CSTART?I2C +--> ?PR?_I2CSENDBYTE?I2C +--> ?PR?I2CREADBYTE?I2C +--> ?PR?I2CSTOP?I2C -?PR?I2CSTART?I2C ----- ----- ----- ----- +?PR?I2CSTART?I2C ----- ----- ----- ----- +--> ?PR?DELAY10US?I2C -?PR?_I2CSENDBYTE?I2C ----- ----- ----- ----- +?PR?_I2CSENDBYTE?I2C ----- ----- ----- ----- +--> ?PR?DELAY10US?I2C -?PR?I2CREADBYTE?I2C ----- ----- ----- ----- +?PR?I2CREADBYTE?I2C ----- ----- ----- ----- +--> ?PR?DELAY10US?I2C -?PR?I2CSTOP?I2C ----- ----- ----- ----- +?PR?I2CSTOP?I2C ----- ----- ----- ----- +--> ?PR?DELAY10US?I2C -?PR?_AT24C02WRITE?I2C ----- ----- ----- ----- - +--> ?PR?I2CSTART?I2C - +--> ?PR?_I2CSENDBYTE?I2C - +--> ?PR?I2CSTOP?I2C - -?PR?DISPLAY?IRIN ----- ----- ----- ----- - +--> ?PR?_LCDSETCURSOR?LCD - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 4 - +?PR?DISPLAY?IRIN ----- ----- ----- ----- + +--> ?PR?_LCDWRITECOM?LCD + +--> ?PR?_LCDWRITEDATA?LCD - +--> ?CO?IRIN - +--> ?PR?_LCDSHOWSTR?LCD - +--> ?PR?_LCD1602_WRITE_DATA?LCD +?PR?_LCDWRITEDATA?LCD ----- ----- ----- ----- + +--> ?PR?_LCD1602_DELAY1MS?LCD -?PR?_LCDSETCURSOR?LCD ----- ----- ----- ----- - +--> ?PR?_LCD1602_WRITE_CMD?LCD - -?PR?_LCDSHOWSTR?LCD ----- ----- 0057H 0003H - +--> ?PR?_LCDSETCURSOR?LCD - +--> ?PR?_LCD1602_WRITE_DATA?LCD - -?PR?_LCD1602_WRITE_DATA?LCD ----- ----- ----- ----- - +--> ?PR?READ_BUSY?LCD - -?PR?KEY_SCAN?IRIN ----- ----- ----- ----- +?PR?KEY_SCAN?IRIN ----- ----- ----- ----- +--> ?PR?_DELAY11?IRIN -?PR?BLUETOOTH_ACCEPT?MAIN ----- ----- 0057H 0006H +?PR?BLUETOOTH_ACCEPT?MAIN ----- ----- 0056H 0006H +--> ?CO?MAIN +--> ?PR?_STRSTR?STRSTR +--> ?PR?PRINTF?PRINTF +--> ?PR?_BLUETOOTH_SET?MAIN + +--> ?PR?_AT24C02WRITE?I2C +--> ?PR?SAVEUSERINFO?MAIN -?PR?_STRSTR?STRSTR ----- ----- 005DH 000CH +?PR?_STRSTR?STRSTR ----- ----- 005CH 000CH -?PR?PRINTF?PRINTF 0020H.0 0001H.1 005DH 001CH +?PR?PRINTF?PRINTF 0020H.0 0001H.1 005CH 0014H +--> ?PR?PUTCHAR?PUTCHAR -?PR?_BLUETOOTH_SET?MAIN ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 4 + + +?PR?_BLUETOOTH_SET?MAIN ----- ----- ----- ----- +--> ?PR?_SEND_UART?MAIN +--> ?PR?_US_DELAY?MAIN -?PR?SAVEUSERINFO?MAIN ----- ----- ----- ----- +?PR?_AT24C02WRITE?I2C ----- ----- ----- ----- + +--> ?PR?I2CSTART?I2C + +--> ?PR?_I2CSENDBYTE?I2C + +--> ?PR?I2CSTOP?I2C + +?PR?SAVEUSERINFO?MAIN ----- ----- ----- ----- +--> ?PR?_AT24C02WRITE?I2C +--> ?PR?_DELAYMS?MAIN -?PR?WRITEDATA?MAIN ----- ----- ----- ----- +?PR?WRITEDATA?MAIN ----- ----- ----- ----- +--> ?PR?_AT24C02WRITE?I2C - +--> ?PR?_DELAYMS?MAIN + +--> ?PR?_US_DELAY?MAIN @@ -232,376 +208,321 @@ SYMBOL TABLE OF MODULE: pro (MAIN) ------- MODULE MAIN C:0000H SYMBOL _ICE_DUMMY_ - D:0080H PUBLIC P0 D:0090H PUBLIC P1 D:00B0H PUBLIC P3 + D:0023H PUBLIC Seep_model B:00A8H.7 PUBLIC EA - C:133FH PUBLIC WriteData - C:1498H PUBLIC _Send_Uart - D:0023H PUBLIC model - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 5 - - - C:1407H PUBLIC Uart_Init + C:0DFBH PUBLIC WriteData + C:0ED4H PUBLIC _Send_Uart + D:0025H PUBLIC model + C:0E9BH PUBLIC Uart_Init B:00A8H.4 PUBLIC ES B:0098H.0 PUBLIC RI B:0098H.1 PUBLIC TI - C:139AH PUBLIC main + C:0E1AH PUBLIC main D:0099H PUBLIC SBUF D:0087H PUBLIC PCON D:0098H PUBLIC SCON D:0089H PUBLIC TMOD - D:0025H PUBLIC Receive - C:1382H PUBLIC _Bluetooth_Set - D:0026H PUBLIC Recive_table - D:004EH PUBLIC set + D:0026H PUBLIC play + D:0027H PUBLIC Receive + C:0E83H PUBLIC _Bluetooth_Set + D:0028H PUBLIC Recive_table D:008DH PUBLIC TH1 D:008BH PUBLIC TL1 - C:11D1H PUBLIC Uart_Interrupt + C:0C59H PUBLIC Uart_Interrupt B:0088H.6 PUBLIC TR1 C:0003H PUBLIC _us_delay - D:004FH PUBLIC usr - C:10DBH PUBLIC saveUserInfo - C:0AF9H PUBLIC Bluetooth_Accept - C:1362H PUBLIC _delayms + D:0050H PUBLIC usr + C:0C91H PUBLIC saveUserInfo + C:0382H PUBLIC Bluetooth_Accept + C:0E37H PUBLIC _delayms B:0021H.1 PUBLIC accept - C:0F17H PUBLIC ReadData - C:135EH SYMBOL L?0050 - ------- PROC L?0049 - ------- ENDPROC L?0049 - C:135EH SYMBOL L?0050 + C:0BC0H PUBLIC ReadData + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 5 + + ------- PROC _DELAYMS D:0006H SYMBOL ms ------- DO D:0004H SYMBOL i D:0005H SYMBOL j ------- ENDDO - C:1362H LINE# 43 - C:1362H LINE# 44 - C:1362H LINE# 45 - C:1364H LINE# 46 - C:1368H LINE# 47 - C:1368H LINE# 48 - C:136CH LINE# 49 - C:136CH LINE# 50 - C:136EH LINE# 51 - C:1374H LINE# 53 - C:137BH LINE# 54 + C:0E37H LINE# 36 + C:0E37H LINE# 37 + C:0E37H LINE# 38 + C:0E39H LINE# 39 + C:0E3DH LINE# 40 + C:0E3DH LINE# 41 + C:0E41H LINE# 42 + C:0E41H LINE# 43 + C:0E43H LINE# 44 + C:0E49H LINE# 46 + C:0E50H LINE# 47 ------- ENDPROC _DELAYMS ------- PROC UART_INIT - C:1407H LINE# 56 - C:1407H LINE# 57 - C:1407H LINE# 58 - C:140AH LINE# 59 - C:140DH LINE# 60 - C:1410H LINE# 61 - C:1413H LINE# 62 - C:1416H LINE# 63 - C:1418H LINE# 64 - C:141AH LINE# 65 - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 6 - - - C:141CH LINE# 66 + C:0E9BH LINE# 49 + C:0E9BH LINE# 50 + C:0E9BH LINE# 51 + C:0E9EH LINE# 52 + C:0EA1H LINE# 53 + C:0EA4H LINE# 54 + C:0EA7H LINE# 55 + C:0EAAH LINE# 56 + C:0EACH LINE# 57 + C:0EAEH LINE# 58 + C:0EB0H LINE# 59 ------- ENDPROC UART_INIT ------- PROC _US_DELAY D:0007H SYMBOL t - C:0003H LINE# 68 - C:0003H LINE# 69 - C:0003H LINE# 70 - C:0009H LINE# 71 + C:0003H LINE# 61 + C:0003H LINE# 62 + C:0003H LINE# 63 + C:0009H LINE# 64 ------- ENDPROC _US_DELAY ------- PROC _SEND_UART D:0007H SYMBOL value - C:1498H LINE# 73 - C:1498H LINE# 74 - C:1498H LINE# 75 - C:149AH LINE# 76 - C:149CH LINE# 77 - C:149EH LINE# 78 - C:14A1H LINE# 79 - C:14A3H LINE# 80 - C:14A5H LINE# 81 + C:0ED4H LINE# 66 + C:0ED4H LINE# 67 + C:0ED4H LINE# 68 + C:0ED6H LINE# 69 + C:0ED8H LINE# 70 + C:0EDAH LINE# 71 + C:0EDDH LINE# 72 + C:0EDFH LINE# 73 + C:0EE1H LINE# 74 ------- ENDPROC _SEND_UART - C:137CH SYMBOL L?0052 - ------- PROC L?0051 - ------- ENDPROC L?0051 - C:137CH SYMBOL L?0052 ------- PROC _BLUETOOTH_SET D:0001H SYMBOL puf - C:1382H LINE# 83 - C:1382H LINE# 84 - C:1382H LINE# 85 - C:1388H LINE# 86 - C:1388H LINE# 87 - C:138BH LINE# 88 - C:1390H LINE# 89 - C:1397H LINE# 90 - C:1399H LINE# 91 + C:0E83H LINE# 76 + C:0E83H LINE# 77 + C:0E83H LINE# 78 + C:0E89H LINE# 79 + C:0E89H LINE# 80 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 6 + + + C:0E8CH LINE# 81 + C:0E91H LINE# 82 + C:0E98H LINE# 83 + C:0E9AH LINE# 84 ------- ENDPROC _BLUETOOTH_SET ------- PROC SAVEUSERINFO ------- DO D:0006H SYMBOL target ------- ENDDO - C:10DBH LINE# 94 - C:10DBH LINE# 95 - C:10DBH LINE# 96 - C:10E2H LINE# 97 - C:10E9H LINE# 98 - C:10ECH LINE# 99 - C:10F0H LINE# 100 - C:10F7H LINE# 101 - C:10FAH LINE# 102 - C:1101H LINE# 103 - C:1108H LINE# 104 - C:110BH LINE# 105 - C:110FH LINE# 106 - C:1116H LINE# 107 + C:0C91H LINE# 87 + C:0C91H LINE# 88 + C:0C93H LINE# 89 + C:0C9AH LINE# 90 + C:0CA1H LINE# 91 + C:0CA8H LINE# 92 + C:0CAFH LINE# 93 + C:0CB6H LINE# 94 + C:0CBAH LINE# 95 + C:0CC1H LINE# 96 ------- ENDPROC SAVEUSERINFO ------- PROC BLUETOOTH_ACCEPT - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 7 - - ------- DO - D:0057H SYMBOL target1 - D:0059H SYMBOL target2 - D:005BH SYMBOL i + D:0056H SYMBOL target1 + D:0058H SYMBOL target2 + D:005AH SYMBOL i ------- ENDDO - C:0AF9H LINE# 111 - C:0AF9H LINE# 112 - C:0B06H LINE# 113 - C:0B0CH LINE# 114 - C:0B22H LINE# 115 - C:0B31H LINE# 116 - C:0B4FH LINE# 117 - C:0B52H LINE# 118 - C:0B6FH LINE# 119 - C:0B8EH LINE# 120 - C:0BADH LINE# 121 - C:0BB2H LINE# 122 - C:0BCEH LINE# 123 - C:0BEEH LINE# 124 - C:0BF8H LINE# 125 - C:0BFBH LINE# 126 - C:0C18H LINE# 127 - C:0C37H LINE# 128 - C:0C3CH LINE# 129 - C:0C58H LINE# 130 - C:0C78H LINE# 131 - C:0C82H LINE# 132 - C:0C91H LINE# 133 - C:0CAFH LINE# 134 - C:0CB2H LINE# 137 - C:0CD6H LINE# 138 - C:0CF9H LINE# 139 - C:0CFCH LINE# 140 - C:0CFCH LINE# 141 - C:0D0BH LINE# 142 - C:0D0DH LINE# 143 - C:0D0DH LINE# 144 + C:0382H LINE# 99 + C:0382H LINE# 100 + C:038FH LINE# 101 + C:0395H LINE# 102 + C:03ABH LINE# 103 + C:03BAH LINE# 104 + C:03D8H LINE# 105 + C:03DEH LINE# 106 + C:03F8H LINE# 107 + C:0401H LINE# 108 + C:0404H LINE# 109 + C:040CH LINE# 110 + C:041BH LINE# 111 + C:042DH LINE# 112 + C:0436H LINE# 113 + C:043DH LINE# 114 + C:0457H LINE# 116 + C:045CH LINE# 117 + C:0465H LINE# 118 + C:0468H LINE# 119 + C:047FH LINE# 120 + C:0487H LINE# 121 + C:0495H LINE# 122 + C:049BH LINE# 123 + C:049EH LINE# 124 + C:04B8H LINE# 125 + C:04D7H LINE# 126 + C:04F6H LINE# 127 + C:04FBH LINE# 128 + C:0517H LINE# 129 + C:0537H LINE# 130 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 7 + + + C:0541H LINE# 131 + C:0554H LINE# 132 + C:0573H LINE# 133 + C:0592H LINE# 134 + C:0597H LINE# 135 + C:05B3H LINE# 136 + C:05D3H LINE# 137 + C:05DDH LINE# 139 + C:05F0H LINE# 140 + C:05F9H LINE# 141 + C:05FCH LINE# 142 + C:05FCH LINE# 143 + C:060BH LINE# 144 + C:060DH LINE# 145 + C:060DH LINE# 146 ------- ENDPROC BLUETOOTH_ACCEPT ------- PROC READDATA - C:0F17H LINE# 146 - C:0F17H LINE# 147 - C:0F3AH LINE# 148 - C:0F41H LINE# 149 - C:0F45H LINE# 150 - C:0F4AH LINE# 151 - C:0F4EH LINE# 153 - C:0F54H LINE# 154 - C:0F57H LINE# 155 - C:0F5EH LINE# 156 - C:0F61H LINE# 158 - C:0F68H LINE# 159 - C:0F6BH LINE# 160 - C:0F72H LINE# 161 - C:0F75H LINE# 162 - C:0F7CH LINE# 163 - C:0F7FH LINE# 164 - C:0F86H LINE# 166 - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 8 - - - C:0F86H LINE# 167 - C:0FA9H LINE# 168 - C:0FCCH LINE# 169 - C:0FCCH LINE# 170 + C:0BC0H LINE# 149 + C:0BC0H LINE# 151 + C:0BE3H LINE# 154 + C:0BEDH LINE# 156 + C:0BF4H LINE# 158 + C:0C17H LINE# 159 ------- ENDPROC READDATA ------- PROC WRITEDATA ------- DO D:0006H SYMBOL target ------- ENDDO - C:133FH LINE# 176 - C:133FH LINE# 177 - C:1343H LINE# 178 - C:1349H LINE# 179 - C:134CH LINE# 180 - C:1350H LINE# 181 - C:1357H LINE# 182 + C:0DFBH LINE# 162 + C:0DFBH LINE# 163 + C:0DFFH LINE# 164 + C:0E05H LINE# 165 + C:0E0AH LINE# 166 + C:0E0EH LINE# 167 + C:0E15H LINE# 168 ------- ENDPROC WRITEDATA ------- PROC MAIN - C:139AH LINE# 185 - C:139AH LINE# 186 - C:139AH LINE# 187 - C:139DH LINE# 188 - C:13A0H LINE# 189 - C:13A3H LINE# 190 - C:13A6H LINE# 191 - C:13A6H LINE# 192 - C:13A6H LINE# 193 - C:13A9H LINE# 194 - C:13ACH LINE# 195 - C:13AFH LINE# 196 - C:13B2H LINE# 197 - C:13B5H LINE# 198 + C:0E1AH LINE# 172 + C:0E1AH LINE# 173 + C:0E1AH LINE# 174 + C:0E1DH LINE# 175 + C:0E20H LINE# 176 + C:0E23H LINE# 177 + C:0E26H LINE# 178 + C:0E26H LINE# 179 + C:0E26H LINE# 180 + C:0E29H LINE# 181 + C:0E2CH LINE# 182 + C:0E2FH LINE# 183 + C:0E32H LINE# 184 + C:0E35H LINE# 185 ------- ENDPROC MAIN ------- PROC UART_INTERRUPT ------- DO D:0022H SYMBOL i ------- ENDDO - C:11D1H LINE# 201 - C:11DAH LINE# 204 - C:11DDH LINE# 205 - C:11E0H LINE# 206 - C:11E2H LINE# 207 - C:11E5H LINE# 208 - C:11ECH LINE# 209 - C:11F5H LINE# 210 - C:11F8H LINE# 211 - C:11FAH LINE# 212 - C:11FCH LINE# 213 - C:11FEH LINE# 214 - C:1200H LINE# 215 - C:1202H LINE# 216 + C:0C59H LINE# 189 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 8 + + + C:0C62H LINE# 192 + C:0C65H LINE# 193 + C:0C68H LINE# 194 + C:0C6AH LINE# 195 + C:0C6DH LINE# 196 + C:0C74H LINE# 197 + C:0C7DH LINE# 198 + C:0C80H LINE# 199 + C:0C82H LINE# 200 + C:0C84H LINE# 201 + C:0C86H LINE# 202 + C:0C88H LINE# 203 + C:0C8AH LINE# 204 ------- ENDPROC UART_INTERRUPT ------- ENDMOD MAIN ------- MODULE LCD C:0000H SYMBOL _ICE_DUMMY_ - C:13B7H PUBLIC _DisplayOneChar - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 9 - - - D:0080H PUBLIC P0 + D:0090H PUBLIC P1 D:00A0H PUBLIC P2 - C:1445H PUBLIC Read_Busy - B:0080H.5 PUBLIC LCD1602_EN - B:0080H.7 PUBLIC LCD1602_RS - B:0080H.6 PUBLIC LCD1602_RW - C:1479H PUBLIC _Lcd1602_Write_Data - C:1469H PUBLIC _Lcd1602_Write_Cmd - C:1457H PUBLIC _LcdSetCursor - C:1267H PUBLIC _LcdShowStr - C:141DH PUBLIC InitLcd1602 - ------- PROC READ_BUSY + C:0F05H PUBLIC _LcdWriteData + B:0090H.6 PUBLIC LCD1602_RS + B:0090H.5 PUBLIC LCD1602_RW + C:0E51H PUBLIC LcdInit + B:0090H.4 PUBLIC LCD1602_E + C:0EFBH PUBLIC _LcdWriteCom + C:0D0BH PUBLIC _Lcd1602_Delay1ms + ------- PROC L?0015 + ------- ENDPROC L?0015 + ------- PROC _LCD1602_DELAY1MS + D:0006H SYMBOL c ------- DO - D:0007H SYMBOL sta + D:0004H SYMBOL a + D:0005H SYMBOL b ------- ENDDO - C:1445H LINE# 4 - C:1445H LINE# 5 - C:1445H LINE# 7 - C:1448H LINE# 8 - C:144AH LINE# 9 - C:144CH LINE# 11 - C:144CH LINE# 12 - C:144EH LINE# 13 - C:1450H LINE# 14 - C:1452H LINE# 15 - C:1456H LINE# 16 - ------- ENDPROC READ_BUSY - ------- PROC _LCD1602_WRITE_CMD - D:0006H SYMBOL cmd - C:1469H LINE# 18 - C:146BH LINE# 19 - C:146BH LINE# 20 - C:146EH LINE# 21 - C:1470H LINE# 22 - C:1472H LINE# 23 - C:1474H LINE# 24 - C:1476H LINE# 25 - C:1478H LINE# 26 - ------- ENDPROC _LCD1602_WRITE_CMD - ------- PROC _LCD1602_WRITE_DATA - D:0006H SYMBOL dat - C:1479H LINE# 28 - C:147BH LINE# 29 - C:147BH LINE# 30 - C:147EH LINE# 31 - C:1480H LINE# 32 - C:1482H LINE# 33 - C:1484H LINE# 34 - C:1486H LINE# 35 - C:1488H LINE# 36 - ------- ENDPROC _LCD1602_WRITE_DATA - ------- PROC _LCDSETCURSOR - D:0007H SYMBOL x - D:0005H SYMBOL y - ------- DO - D:0004H SYMBOL addr - ------- ENDDO - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 10 - - - C:1457H LINE# 38 - C:1457H LINE# 39 - C:1457H LINE# 41 - C:145AH LINE# 42 - C:145EH LINE# 44 - C:1462H LINE# 46 - ------- ENDPROC _LCDSETCURSOR - ------- PROC _DISPLAYONECHAR - D:0006H SYMBOL X - D:0005H SYMBOL Y - D:0004H SYMBOL DData - C:13B7H LINE# 50 - C:13BBH LINE# 51 - C:13BBH LINE# 52 - C:13BEH LINE# 53 - C:13C1H LINE# 54 - C:13C7H LINE# 55 - C:13CAH LINE# 56 - C:13CFH LINE# 57 - ------- ENDPROC _DISPLAYONECHAR - ------- PROC _LCDSHOWSTR - D:0007H SYMBOL x - D:0005H SYMBOL y - D:0057H SYMBOL str - C:1267H LINE# 61 - C:126DH LINE# 62 - C:126DH LINE# 63 - C:1270H LINE# 64 - C:127BH LINE# 65 - C:127BH LINE# 66 - C:128CH LINE# 67 - C:128EH LINE# 68 - ------- ENDPROC _LCDSHOWSTR - ------- PROC INITLCD1602 - C:141DH LINE# 70 - C:141DH LINE# 71 - C:141DH LINE# 72 - C:1422H LINE# 73 - C:1427H LINE# 74 - C:142CH LINE# 75 - ------- ENDPROC INITLCD1602 + C:0D0BH LINE# 11 + C:0D0BH LINE# 12 + C:0D0BH LINE# 14 + C:0D14H LINE# 15 + C:0D14H LINE# 16 + C:0D16H LINE# 17 + C:0D16H LINE# 18 + C:0D1AH LINE# 19 + C:0D1CH LINE# 20 + C:0D23H LINE# 22 + ------- ENDPROC _LCD1602_DELAY1MS + ------- PROC _LCDWRITECOM + D:0007H SYMBOL com + C:0EFBH LINE# 31 + C:0EFBH LINE# 32 + C:0EFBH LINE# 33 + C:0EFDH LINE# 34 + C:0EFFH LINE# 35 + C:0EFFH LINE# 37 + C:0EFFH LINE# 38 + C:0EFFH LINE# 40 + C:0EFFH LINE# 41 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 9 + + + C:0F02H LINE# 42 + C:0F04H LINE# 43 + ------- ENDPROC _LCDWRITECOM + ------- PROC _LCDWRITEDATA + D:0007H SYMBOL dat + C:0F05H LINE# 74 + C:0F05H LINE# 75 + C:0F05H LINE# 76 + C:0F07H LINE# 77 + C:0F09H LINE# 78 + C:0F09H LINE# 80 + C:0F09H LINE# 81 + C:0F09H LINE# 83 + C:0F09H LINE# 84 + C:0F0CH LINE# 85 + C:0F0EH LINE# 86 + ------- ENDPROC _LCDWRITEDATA + ------- PROC LCDINIT + C:0E51H LINE# 116 + C:0E51H LINE# 117 + C:0E51H LINE# 118 + C:0E56H LINE# 119 + C:0E5BH LINE# 120 + C:0E60H LINE# 121 + C:0E65H LINE# 122 + ------- ENDPROC LCDINIT ------- ENDMOD LCD ------- MODULE PWM C:0000H SYMBOL _ICE_DUMMY_ - D:0080H PUBLIC P0 D:0090H PUBLIC P1 D:00B0H PUBLIC P3 - C:131FH PUBLIC _delay - C:12FEH PUBLIC pwm_out_right_moto - B:0090H.0 PUBLIC IN1 - B:0090H.1 PUBLIC IN2 + C:0DDBH PUBLIC _delay + C:0DBAH PUBLIC pwm_out_right_moto + B:0090H.2 PUBLIC IN1 + B:0090H.3 PUBLIC IN2 B:0021H.2 PUBLIC Right_moto_stop D:0013H PUBLIC pwm_value - C:1238H PUBLIC run - B:00B0H.4 PUBLIC Right_moto_pwm + C:0B5DH PUBLIC run + B:0090H.7 PUBLIC Right_moto_pwm D:0014H PUBLIC push_val_right - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 11 - - D:0015H PUBLIC pwm_val_right ------- PROC _DELAY D:0006H SYMBOL k @@ -609,95 +530,106 @@ SYMBOL TABLE OF MODULE: pro (MAIN) D:0004H SYMBOL x D:0002H SYMBOL y ------- ENDDO - C:131FH LINE# 12 - C:131FH LINE# 13 - C:131FH LINE# 15 - C:1329H LINE# 16 - C:133EH LINE# 17 + C:0DDBH LINE# 15 + C:0DDBH LINE# 16 + C:0DDBH LINE# 18 + C:0DE5H LINE# 19 + C:0DFAH LINE# 20 ------- ENDPROC _DELAY ------- PROC RUN - C:1238H LINE# 19 - C:1238H LINE# 20 - C:1238H LINE# 21 - C:1242H LINE# 22 - C:124FH LINE# 23 - C:125CH LINE# 24 - C:125FH LINE# 25 - C:1262H LINE# 26 - C:1266H LINE# 27 + C:0B5DH LINE# 22 + C:0B5DH LINE# 23 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 10 + + + C:0B5DH LINE# 24 + C:0B61H LINE# 25 + C:0B67H LINE# 26 + C:0B74H LINE# 27 + C:0B80H LINE# 28 + C:0B8AH LINE# 29 + C:0B8CH LINE# 30 + C:0B91H LINE# 31 + C:0B91H LINE# 34 + C:0B9BH LINE# 35 + C:0BA8H LINE# 36 + C:0BB5H LINE# 37 + C:0BB8H LINE# 38 + C:0BBBH LINE# 39 + C:0BBFH LINE# 40 ------- ENDPROC RUN ------- PROC PWM_OUT_RIGHT_MOTO - C:12FEH LINE# 29 - C:12FEH LINE# 30 - C:12FEH LINE# 31 - C:1300H LINE# 32 - C:1305H LINE# 33 - C:130BH LINE# 34 - C:130BH LINE# 35 - C:130DH LINE# 36 - C:130FH LINE# 38 - C:130FH LINE# 39 - C:1311H LINE# 40 - C:1311H LINE# 41 - C:131BH LINE# 42 - C:131CH LINE# 43 - C:131CH LINE# 44 - C:131EH LINE# 45 - C:131EH LINE# 46 + C:0DBAH LINE# 42 + C:0DBAH LINE# 43 + C:0DBAH LINE# 44 + C:0DBCH LINE# 45 + C:0DC1H LINE# 46 + C:0DC7H LINE# 47 + C:0DC7H LINE# 48 + C:0DC9H LINE# 49 + C:0DCBH LINE# 50 + C:0DCBH LINE# 51 + C:0DCDH LINE# 52 + C:0DCDH LINE# 53 + C:0DD7H LINE# 54 + C:0DD8H LINE# 55 + C:0DD8H LINE# 56 + C:0DDAH LINE# 57 + C:0DDAH LINE# 58 ------- ENDPROC PWM_OUT_RIGHT_MOTO ------- ENDMOD PWM ------- MODULE I2C C:0000H SYMBOL _ICE_DUMMY_ - D:0080H PUBLIC P0 - C:111DH PUBLIC _I2cSendByte - C:14BFH PUBLIC I2cStop - C:14ABH PUBLIC Delay10us - B:0080H.0 PUBLIC SDA - C:12DCH PUBLIC _At24c02Read - B:0080H.1 PUBLIC SCL - C:1489H PUBLIC I2cStart - C:13EEH PUBLIC _At24c02Write - C:12B6H PUBLIC I2cReadByte - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 12 - - - C:14A6H SYMBOL L?0024 + D:0090H PUBLIC P1 + C:0C18H PUBLIC _I2cSendByte + C:0F0FH PUBLIC I2cStop + C:0EE7H PUBLIC Delay10us + B:0090H.0 PUBLIC SDA + C:0D98H PUBLIC _At24c02Read + B:0090H.1 PUBLIC SCL + C:0EC5H PUBLIC I2cStart + C:0E6AH PUBLIC _At24c02Write + C:0D72H PUBLIC I2cReadByte + C:0EE2H SYMBOL L?0024 ------- PROC L?0023 ------- ENDPROC L?0023 - C:14A6H SYMBOL L?0024 + C:0EE2H SYMBOL L?0024 ------- PROC DELAY10US ------- DO D:0006H SYMBOL a D:0007H SYMBOL b + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 11 + + ------- ENDDO - C:14ABH LINE# 10 - C:14ABH LINE# 11 - C:14ABH LINE# 13 - C:14ADH LINE# 14 - C:14B3H LINE# 16 + C:0EE7H LINE# 10 + C:0EE7H LINE# 11 + C:0EE7H LINE# 13 + C:0EE9H LINE# 14 + C:0EEFH LINE# 16 ------- ENDPROC DELAY10US ------- PROC I2CSTART - C:1489H LINE# 25 - C:1489H LINE# 26 - C:1489H LINE# 27 - C:148BH LINE# 28 - C:148BH LINE# 29 - C:148BH LINE# 30 - C:148EH LINE# 31 - C:1490H LINE# 32 - C:1493H LINE# 33 - C:1495H LINE# 34 + C:0EC5H LINE# 25 + C:0EC5H LINE# 26 + C:0EC5H LINE# 27 + C:0EC7H LINE# 28 + C:0EC7H LINE# 29 + C:0EC7H LINE# 30 + C:0ECAH LINE# 31 + C:0ECCH LINE# 32 + C:0ECFH LINE# 33 + C:0ED1H LINE# 34 ------- ENDPROC I2CSTART ------- PROC I2CSTOP - C:14BFH LINE# 44 - C:14BFH LINE# 45 - C:14BFH LINE# 46 - C:14C1H LINE# 47 - C:14C1H LINE# 48 - C:14C1H LINE# 49 - C:14C4H LINE# 50 - C:14C6H LINE# 51 + C:0F0FH LINE# 44 + C:0F0FH LINE# 45 + C:0F0FH LINE# 46 + C:0F11H LINE# 47 + C:0F11H LINE# 48 + C:0F11H LINE# 49 + C:0F14H LINE# 50 + C:0F16H LINE# 51 ------- ENDPROC I2CSTOP ------- PROC _I2CSENDBYTE D:0005H SYMBOL dat @@ -705,108 +637,106 @@ SYMBOL TABLE OF MODULE: pro (MAIN) D:0003H SYMBOL a D:0002H SYMBOL b ------- ENDDO - C:111DH LINE# 61 - C:111FH LINE# 62 - C:111FH LINE# 63 - C:1122H LINE# 64 - C:1122H LINE# 65 - C:1122H LINE# 66 - C:112DH LINE# 67 - C:1131H LINE# 68 - C:1131H LINE# 69 - C:1131H LINE# 70 - C:1134H LINE# 71 - C:1136H LINE# 72 - C:1139H LINE# 73 - C:113DH LINE# 74 - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 13 - - - C:113FH LINE# 75 - C:1142H LINE# 76 - C:1144H LINE# 77 - C:1147H LINE# 78 - C:1147H LINE# 79 - C:1148H LINE# 80 - C:114EH LINE# 81 - C:114EH LINE# 82 - C:1150H LINE# 83 - C:1153H LINE# 84 - C:1156H LINE# 85 - C:1156H LINE# 86 - C:1156H LINE# 87 - C:1158H LINE# 88 - C:115BH LINE# 89 - C:115DH LINE# 90 + C:0C18H LINE# 61 + C:0C1AH LINE# 62 + C:0C1AH LINE# 63 + C:0C1DH LINE# 64 + C:0C1DH LINE# 65 + C:0C1DH LINE# 66 + C:0C28H LINE# 67 + C:0C2CH LINE# 68 + C:0C2CH LINE# 69 + C:0C2CH LINE# 70 + C:0C2FH LINE# 71 + C:0C31H LINE# 72 + C:0C34H LINE# 73 + C:0C38H LINE# 74 + C:0C3AH LINE# 75 + C:0C3DH LINE# 76 + C:0C3FH LINE# 77 + C:0C42H LINE# 78 + C:0C42H LINE# 79 + C:0C43H LINE# 80 + C:0C49H LINE# 81 + C:0C49H LINE# 82 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 12 + + + C:0C4BH LINE# 83 + C:0C4EH LINE# 84 + C:0C51H LINE# 85 + C:0C51H LINE# 86 + C:0C51H LINE# 87 + C:0C53H LINE# 88 + C:0C56H LINE# 89 + C:0C58H LINE# 90 ------- ENDPROC _I2CSENDBYTE ------- PROC I2CREADBYTE ------- DO D:0005H SYMBOL a D:0004H SYMBOL dat ------- ENDDO - C:12B6H LINE# 99 - C:12B6H LINE# 100 - C:12B6H LINE# 101 - C:12B9H LINE# 102 - C:12BBH LINE# 103 - C:12BEH LINE# 104 - C:12BEH LINE# 105 - C:12BEH LINE# 106 - C:12C0H LINE# 107 - C:12C3H LINE# 108 - C:12C7H LINE# 109 - C:12CDH LINE# 110 - C:12D0H LINE# 111 - C:12D2H LINE# 112 - C:12D5H LINE# 113 - C:12D9H LINE# 114 - C:12DBH LINE# 115 + C:0D72H LINE# 99 + C:0D72H LINE# 100 + C:0D72H LINE# 101 + C:0D75H LINE# 102 + C:0D77H LINE# 103 + C:0D7AH LINE# 104 + C:0D7AH LINE# 105 + C:0D7AH LINE# 106 + C:0D7CH LINE# 107 + C:0D7FH LINE# 108 + C:0D83H LINE# 109 + C:0D89H LINE# 110 + C:0D8CH LINE# 111 + C:0D8EH LINE# 112 + C:0D91H LINE# 113 + C:0D95H LINE# 114 + C:0D97H LINE# 115 ------- ENDPROC I2CREADBYTE ------- PROC _AT24C02WRITE D:0001H SYMBOL addr D:0004H SYMBOL dat - C:13EEH LINE# 125 - C:13F2H LINE# 126 - C:13F2H LINE# 127 - C:13F5H LINE# 128 - C:13FAH LINE# 129 - C:13FFH LINE# 130 - C:1404H LINE# 131 + C:0E6AH LINE# 125 + C:0E6EH LINE# 126 + C:0E6EH LINE# 127 + C:0E71H LINE# 128 + C:0E76H LINE# 129 + C:0E7BH LINE# 130 + C:0E80H LINE# 131 ------- ENDPROC _AT24C02WRITE ------- PROC _AT24C02READ D:0004H SYMBOL addr ------- DO D:0005H SYMBOL num ------- ENDDO - C:12DCH LINE# 140 - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 14 - - - C:12DEH LINE# 141 - C:12DEH LINE# 143 - C:12E1H LINE# 144 - C:12E6H LINE# 145 - C:12EBH LINE# 146 - C:12EEH LINE# 147 - C:12F3H LINE# 148 - C:12F8H LINE# 149 - C:12FBH LINE# 150 - C:12FDH LINE# 151 + C:0D98H LINE# 140 + C:0D9AH LINE# 141 + C:0D9AH LINE# 143 + C:0D9DH LINE# 144 + C:0DA2H LINE# 145 + C:0DA7H LINE# 146 + C:0DAAH LINE# 147 + C:0DAFH LINE# 148 + C:0DB4H LINE# 149 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 13 + + + C:0DB7H LINE# 150 + C:0DB9H LINE# 151 ------- ENDPROC _AT24C02READ ------- ENDMOD I2C ------- MODULE IRIN C:0000H SYMBOL _ICE_DUMMY_ - D:0080H PUBLIC P0 D:0090H PUBLIC P1 D:00B0H PUBLIC P3 B:00A8H.7 PUBLIC EA D:000AH PUBLIC speed B:00B0H.5 PUBLIC k1 - B:00B0H.2 PUBLIC k2 - C:1431H PUBLIC IRIN_Init + C:0EB1H PUBLIC IRIN_Init D:000CH PUBLIC count - C:115EH PUBLIC Key_scan + C:0D24H PUBLIC Key_scan D:0089H PUBLIC TMOD D:000EH PUBLIC r_s B:00A8H.1 PUBLIC ET0 @@ -817,198 +747,169 @@ SYMBOL TABLE OF MODULE: pro (MAIN) B:0088H.4 PUBLIC TR0 D:0010H PUBLIC mileage D:0012H PUBLIC ms - C:0D0EH PUBLIC time0 - C:14B4H PUBLIC _delay11 - C:0E1CH PUBLIC display + C:092AH PUBLIC time0 + C:0EF0H PUBLIC _delay11 + C:060EH PUBLIC display C:0016H PUBLIC int1 ------- PROC _DELAY11 D:0006H SYMBOL i - C:14B4H LINE# 15 - C:14B4H LINE# 16 - C:14B4H LINE# 17 - C:14BEH LINE# 18 + C:0EF0H LINE# 15 + C:0EF0H LINE# 16 + C:0EF0H LINE# 17 + C:0EFAH LINE# 18 ------- ENDPROC _DELAY11 ------- PROC IRIN_INIT - C:1431H LINE# 20 - C:1431H LINE# 21 - C:1431H LINE# 22 - C:1434H LINE# 23 - C:1437H LINE# 24 - C:143AH LINE# 25 - C:143CH LINE# 26 - C:143EH LINE# 27 - C:1440H LINE# 28 - C:1442H LINE# 29 - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 15 - - - C:1444H LINE# 30 + C:0EB1H LINE# 20 + C:0EB1H LINE# 21 + C:0EB1H LINE# 22 + C:0EB4H LINE# 23 + C:0EB7H LINE# 24 + C:0EBAH LINE# 25 + C:0EBCH LINE# 26 + C:0EBEH LINE# 27 + C:0EC0H LINE# 28 + C:0EC2H LINE# 29 + C:0EC4H LINE# 30 ------- ENDPROC IRIN_INIT ------- PROC DISPLAY - C:0E1CH LINE# 32 - C:0E1CH LINE# 33 - C:0E1CH LINE# 34 - C:0E22H LINE# 35 - C:0E2EH LINE# 36 - C:0E47H LINE# 37 - C:0E60H LINE# 38 - C:0E72H LINE# 39 - C:0E7FH LINE# 41 - C:0E8CH LINE# 42 - C:0EA5H LINE# 43 - C:0EBEH LINE# 44 - C:0ED0H LINE# 45 - C:0EDDH LINE# 47 - C:0EEBH LINE# 48 - C:0EFBH LINE# 49 - C:0F0BH LINE# 50 - C:0F16H LINE# 51 + C:060EH LINE# 32 + C:060EH LINE# 33 + C:060EH LINE# 35 + C:0613H LINE# 36 + C:062CH LINE# 37 + C:0645H LINE# 38 + C:0657H LINE# 41 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 14 + + + C:065CH LINE# 42 + C:0675H LINE# 43 + C:068EH LINE# 44 + C:06A7H LINE# 45 + C:06B9H LINE# 46 + C:06BEH LINE# 48 + C:06C3H LINE# 49 + C:06CDH LINE# 50 + C:06D9H LINE# 51 + C:06E5H LINE# 52 + C:06F2H LINE# 55 + C:06F7H LINE# 56 + C:0710H LINE# 57 + C:0729H LINE# 58 + C:0742H LINE# 59 + C:0754H LINE# 60 + C:0759H LINE# 62 + C:075EH LINE# 63 + C:0777H LINE# 64 + C:0790H LINE# 65 + C:07A9H LINE# 66 + C:07BBH LINE# 67 + C:07C0H LINE# 69 + C:07C5H LINE# 70 + C:07CDH LINE# 71 + C:07D2H LINE# 72 ------- ENDPROC DISPLAY ------- PROC KEY_SCAN - C:115EH LINE# 54 - C:115EH LINE# 55 - C:1161H LINE# 56 - C:1161H LINE# 57 - C:1168H LINE# 58 - C:116BH LINE# 59 - C:1173H LINE# 60 - C:1181H LINE# 61 - C:1181H LINE# 62 - C:1184H LINE# 63 - C:1184H LINE# 65 - C:1187H LINE# 66 - C:1187H LINE# 67 - C:118EH LINE# 68 - C:1191H LINE# 69 - C:1194H LINE# 70 - C:1194H LINE# 71 - C:1197H LINE# 72 - C:1197H LINE# 74 + C:0D24H LINE# 74 + C:0D24H LINE# 75 + C:0D27H LINE# 76 + C:0D2EH LINE# 77 + C:0D31H LINE# 78 + C:0D39H LINE# 79 + C:0D47H LINE# 80 + C:0D47H LINE# 81 + C:0D4AH LINE# 82 + C:0D4AH LINE# 83 ------- ENDPROC KEY_SCAN ------- PROC TIME0 ------- DO D:0008H SYMBOL time ------- ENDDO - C:0D0EH LINE# 76 - C:0D2BH LINE# 79 - C:0D2EH LINE# 80 - C:0D31H LINE# 81 - C:0D39H LINE# 82 - C:0D3CH LINE# 83 - C:0D4CH LINE# 84 - C:0D4EH LINE# 85 - C:0D54H LINE# 86 - C:0D5AH LINE# 87 - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 16 - - - C:0D60H LINE# 88 - C:0D62H LINE# 89 - C:0DA9H LINE# 90 - C:0DC3H LINE# 91 - C:0E01H LINE# 92 - C:0E01H LINE# 93 + C:092AH LINE# 85 + C:0947H LINE# 88 + C:094AH LINE# 89 + C:094DH LINE# 90 + C:0955H LINE# 91 + C:0958H LINE# 92 + C:0965H LINE# 93 + C:0967H LINE# 94 + C:096DH LINE# 95 + C:0981H LINE# 96 + C:098CH LINE# 97 + C:09A6H LINE# 98 + C:09B7H LINE# 99 + C:09BDH LINE# 100 + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 15 + + + C:09BFH LINE# 101 + C:09BFH LINE# 102 ------- ENDPROC TIME0 ------- PROC INT1 - C:0016H LINE# 95 - C:0018H LINE# 97 - C:0020H LINE# 98 + C:0016H LINE# 104 + C:0018H LINE# 106 + C:0020H LINE# 107 ------- ENDPROC INT1 ------- ENDMOD IRIN - ------- MODULE ?C?FPADD - C:002DH PUBLIC ?C?FPADD - C:0029H PUBLIC ?C?FPSUB - ------- ENDMOD ?C?FPADD - - ------- MODULE ?C?FPMUL - C:011EH PUBLIC ?C?FPMUL - ------- ENDMOD ?C?FPMUL + ------- MODULE ?C?CLDPTR + C:07D3H PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR - ------- MODULE ?C?FPDIV - C:0227H PUBLIC ?C?FPDIV - ------- ENDMOD ?C?FPDIV + ------- MODULE ?C?IMUL + C:07ECH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL - ------- MODULE ?C?FCAST - C:02CEH PUBLIC ?C?FCASTC - C:02C9H PUBLIC ?C?FCASTI - C:02C4H PUBLIC ?C?FCASTL - ------- ENDMOD ?C?FCAST + ------- MODULE ?C?UIDIV + C:07FEH PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV - ------- MODULE ?C?CASTF - C:0302H PUBLIC ?C?CASTF - ------- ENDMOD ?C?CASTF + ------- MODULE ?C?SIDIV + C:0853H PUBLIC ?C?SIDIV + ------- ENDMOD ?C?SIDIV ------- MODULE PRINTF - D:005DH PUBLIC ?_PRINTF?BYTE - D:005DH PUBLIC ?_SPRINTF?BYTE - C:06ECH PUBLIC _PRINTF - C:06E6H PUBLIC _SPRINTF + D:005CH PUBLIC ?_PRINTF517?BYTE + D:005CH PUBLIC ?_PRINTF?BYTE + D:005CH PUBLIC ?_SPRINTF517?BYTE + D:005CH PUBLIC ?_SPRINTF?BYTE + C:0088H PUBLIC _PRINTF + C:0088H PUBLIC _PRINTF517 + C:0082H PUBLIC _SPRINTF + C:0082H PUBLIC _SPRINTF517 ------- ENDMOD PRINTF - ------- MODULE ?C?FPROUND - C:0383H PUBLIC ?C?FPROUND - ------- ENDMOD ?C?FPROUND - - ------- MODULE ?C?FPCONVERT - C:03B2H PUBLIC ?C?FPCONVERT - ------- ENDMOD ?C?FPCONVERT - - ------- MODULE ?C?FTNPWR - C:04E5H PUBLIC ?C?FTNPWR - ------- ENDMOD ?C?FTNPWR - - ------- MODULE ?C?CLDPTR - BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 17 - + ------- MODULE STRSTR + D:005CH PUBLIC ?_strstr?BYTE + C:0A66H PUBLIC _strstr + ------- ENDMOD STRSTR - C:0525H PUBLIC ?C?CLDPTR - ------- ENDMOD ?C?CLDPTR + ------- MODULE ?C?MEMSET + C:0889H PUBLIC ?C?MEMSET + ------- ENDMOD ?C?MEMSET ------- MODULE ?C?CLDOPTR - C:053EH PUBLIC ?C?CLDOPTR + C:08B5H PUBLIC ?C?CLDOPTR ------- ENDMOD ?C?CLDOPTR ------- MODULE ?C?CSTPTR - C:056BH PUBLIC ?C?CSTPTR + C:08E2H PUBLIC ?C?CSTPTR ------- ENDMOD ?C?CSTPTR - ------- MODULE ?C?IMUL - C:057DH PUBLIC ?C?IMUL - ------- ENDMOD ?C?IMUL - - ------- MODULE ?C?UIDIV - C:058FH PUBLIC ?C?UIDIV - ------- ENDMOD ?C?UIDIV - - ------- MODULE ?C?SIDIV - C:05E4H PUBLIC ?C?SIDIV - ------- ENDMOD ?C?SIDIV - - ------- MODULE ?C?LNEG - C:061AH PUBLIC ?C?LNEG - ------- ENDMOD ?C?LNEG - ------- MODULE ?C?PLDIIDATA - C:0628H PUBLIC ?C?PLDIIDATA + C:08F4H PUBLIC ?C?PLDIIDATA ------- ENDMOD ?C?PLDIIDATA + BL51 BANKED LINKER/LOCATER V6.22 04/09/2022 18:14:52 PAGE 16 + + ------- MODULE ?C?CCASE - C:0638H PUBLIC ?C?CCASE + C:0904H PUBLIC ?C?CCASE ------- ENDMOD ?C?CCASE ------- MODULE PUTCHAR - C:128FH PUBLIC _PUTCHAR + C:0D4BH PUBLIC _PUTCHAR ------- ENDMOD PUTCHAR - ------- MODULE STRSTR - D:005DH PUBLIC ?_strstr?BYTE - C:1059H PUBLIC _strstr - ------- ENDMOD STRSTR - - ------- MODULE ?C?MEMSET - C:065EH PUBLIC ?C?MEMSET - ------- ENDMOD ?C?MEMSET - -Program Size: data=111.3 xdata=0 code=5315 +Program Size: data=102.3 xdata=0 code=3859 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/pro.build_log.htm b/pro.build_log.htm index e561794..8b88c6c 100644 --- a/pro.build_log.htm +++ b/pro.build_log.htm @@ -24,9 +24,9 @@ Project File Date: 05/31/2019

Output:

Build target 'Target 1' compiling main.c... -main.c(195): warning C206: 'Key_scan': missing function-prototype +main.c(182): warning C206: 'Key_scan': missing function-prototype linking... -Program Size: data=111.3 xdata=0 code=5315 +Program Size: data=102.3 xdata=0 code=3859 creating hex file from "pro"... "pro" - 0 Error(s), 1 Warning(s). Build Time Elapsed: 00:00:01 diff --git a/pro.hex b/pro.hex index 648f32a..695066d 100644 --- a/pro.hex +++ b/pro.hex @@ -1,378 +1,280 @@ -:10119800696E71756972650073706565643A256476 -:1011A800206B6D2F68206D696C656167653A2564F1 -:1011B800206D0D0A007365743A0028002C00290080 -:0911C800534554204F4B0D0A0061 -:0C12090002230000014E00C10901220078 -:04135E007F027E008C -:101362007C64EF4E60131CEC60087D0A1DED60F694 -:0913720080FAEF1F70EC1E80E907 -:01137B00224F -:10140700758921759850758DFD858D8BE4F587D28B -:06141700AFD2ACD28E2220 +:100AE800696E71756972650073706565643A25642D +:100AF800206D2F6D696E206D696C656167653A259B +:100B080064206D0D0A006D6F64656C004D6F64653F +:100B18006C20534554204F4B0D0A00636C6561727D +:100B2800007265736574206D696C65616765204F37 +:100B38004B210D0A007370656564007365743A0093 +:100B480028002C0029005573657220534554204F06 +:050B58004B210D0A0015 +:0F0CC80002230000012600012500C109012200BE +:100E37007C64EF4E60131CEC60087D0A1DED60F6C4 +:090E470080FAEF1F70EC1E80E937 +:010E5000227F +:100E9B00758921759850758DFD858D8BE4F587D2FD +:060EAB00AFD2ACD28E2292 :07000300AE071FEE70FA22A8 -:0E149800C2ACC2998F993099FDC299D2AC2294 -:06137C007B007A007926D7 -:10138200120525FF60111214987F051200037401E3 -:0813920029F9E43AFA80E9228E -:1010DB00E54FFF3395E0FEAD077F031213EE1213BE -:1010EB005E7E00AF50AD077F041213EE12135EE568 -:1010FB0051FF3395E0FEAD077F051213EE12135E21 -:10110B007E00AF52AD077F061213EE7F027E000208 -:02111B0013625D -:100AF900E4F557F558F559F55AF55BF55C20090306 -:100B0900020D0D7560FF756111756298FB7A0079A8 -:100B190026121059E94A4B60337E007F287D007BFD -:100B2900007A00792612065E7560FF75611175629B -:100B3900A0850A63850B648510658511667B007A3B -:100B49000079261206E612137C020CFC7560FF750B -:100B590061117562BD7B007A007926121059E94A44 -:100B69004B7003020CFC7560FF7561117562C27BE5 -:100B7900007A007926121059AE02C3E99426F55875 -:100B8900EE9400F5577560FF7561117562C47B00BD -:100B99007A007926121059AE02C3E99426F55AEE65 -:100BA9009400F559E4F54FF550E5582401F55CE456 -:100BB9003557F55BC3E55C955AE5596480F8E55B03 -:100BC900648098502A7426255CF8E624D0FBE43426 -:100BD900FFFAAE4FAF507C007D0A12057DEF2BF571 -:100BE90050EE3AF54F055CE55C7002055B80C51275 -:100BF900137C7560FF7561117562C47A00792612DC -:100C09001059AE02C3E99426F558EE9400F55775CC -:100C190060FF7561117562C67B007A007926121032 -:100C290059AE02C3E99426F55AEE9400F559E4F554 -:100C390051F552E5582401F55CE43557F55BC3E5F8 -:100C49005C955AE5596480F8E55B648098502A748C -:100C590026255CF8E624D0FBE434FFFAAE51AF5206 -:100C69007C007D0A12057DEF2BF552EE3AF5510510 -:100C79005CE55C7002055B80C57E007F287D007B9A -:100C8900007A00792612065E7560FF75611175623A -:100C9900C8854F638550648551658552667B007AA6 -:100CA9000079261206E612137CAC4FAD50AE51AF57 -:100CB900521205E4AC06AD0712057D7C007D1612C3 -:100CC90005E47C0B7DB812057D8E538F54AC4FAD76 -:100CD90050AE51AF521205E4AC06AD0712057D7C4A -:100CE900007D161205E4C3740A9FF556E49EF55576 -:100CF9001210DB7E007F287D007B007A00792612A6 -:040D0900065EC209B7 -:010D0D0022C3 -:100F17007F011212DCEF75F0FFA4FFAEF0C006C030 -:100F2700077F021212DCEFFDD0E02DF511D0E0347F -:100F370000F5107F071212DC8F4EE54E6041E4F595 -:100F47004FF550F551F552FD7F011213EE12135E66 -:100F5700E4FD7F021213EE12135EE4FD7F0312130A -:100F6700EE12135EE4FD7F041213EE12135EE4FD2E -:100F77007F051213EE12135EE4FD7F060213EE7F68 -:100F8700031212DCEF75F0FFA4FFAEF0C006C00736 -:100F97007F041212DCEFFDD0E02DF550D0E03400D5 -:100FA700F54F7F051212DCEF75F0FFA4FFAEF0C01E -:100FB70006C0077F061212DCEFFDD0E02DF552D0F8 -:060FC700E03400F55122A8 -:10133F00E5107E00FD7F011213EE12135E7E00AFEB -:0F134F0011AD077F021213EE7F027E00021362C0 -:10139A0012141D121431121407120F1712123812D6 -:0D13AA000E1C12115E120AF912133F80EFA3 -:030023000211D1F6 -:0911D100C0E0C0D075D000C000E0 -:1011DA00200925309820C29885992574262522F859 -:1011EA00A62574262522F8E6B40D07752200D20931 -:0811FA00800605228002C29963 -:07120200D000D0D0D0E03293 -:1014450075A0FFC287D286D285AFA0C285EF20E7FF -:01145500F6A0 -:011456002273 -:10146900AE07121445C287C2868EA0D285C28522D4 -:10147900AE07121445D287C2868EA0D285C28522B4 -:10145700ED7004AC078004EF2440FCEC4480FF02ED -:02146700146906 -:1013B700AE07AC0353050153060FED600343064028 -:0D13C700430680AF06121469AF04021479CA -:101267008B578A588959121457AB57AA58A959123C -:10127700052560130559E5597002055814F912053B -:0812870025FF12147980E22218 -:10141D007F381214697F0C1214697F061214697FCC -:04142D00010214693B -:0B121500011500011400011300C10AC4 -:10131F00E4FDFCC3ED9FEC9E5015E4FBFA0BBB0004 -:0F132F00010ABA07F8BBD0F50DBD00010C80E430 -:01133E00228C -:10123800E52445237004F513801DE5246401452346 -:1012480070057513028010E5246402452370057546 -:0F1258001305800375130A851314C290D29122D7 -:1012FE000515A20AB35017E51595145004D2B48003 -:10130E0002C2B4E515C394144006E4F51522C2B426 -:01131E0022AC -:0514A6001214ABD2811D -:0814AB007F017E02DEFEDFFA84 -:0114B3002216 -:0F148900D2801214A6C2801214ABC2810214AB1F -:0A14BF00C2801214A6D2800214AB02 -:02111D00AD071C -:10111F00E4FBFAEDC4131313540124FF9280ED2561 -:10112F00E0FD1214A6C2811214AB0BBB08E5D280EE -:10113F001214ABD28130800F0AEAD394C840F6C2A2 -:0E114F00811214AB7F0022C2811214AB7F010B -:01115D00226F -:1012B600E4FDFCD2801214ABD2811214ABEC25E013 -:1012C600FCA280E43342041214ABC2811214AB0DAB -:0512D600BD08E5AF04B6 -:0112DB0022F0 -:1013EE00AC05A9071214897FA012111DAF011211AD -:0913FE001DAF0412111D0214BF01 -:0212DC00AC075D -:1012DE001214897FA012111DAF0412111D12148950 -:0F12EE007FA112111D1212B6AD071214BFAF056A -:0112FD0022CE -:1013D400004B4D2F6820006D20202020202020204D -:0A13E400200020004C004D004800DE -:1012200002100000020C0000011200020A0000027D -:071230000E0000020800009F -:0B14B400EF1FAC0670011E4C70F6220A -:10143100758921758CFC758A18D2A9D28CD2AFD24C -:04144100AAD28A227F -:100E1C00E4FDFF1214577BFF7A1379D4E4FDFF1223 -:100E2C001267AE0AAF0B7C007D6412058F7C007DCF -:100E3C000A12058FED2430FF121479AE0AAF0B7C29 -:100E4C00007D0A12058F7C007D0A12058FED24307F -:100E5C00FF121479AE0AAF0B7C007D0A12058FEDE0 -:100E6C002430FF1214797BFF7A1379D5E4FD7F03CC -:100E7C001212677BFF7A1379D4E4FD7F0812126794 -:100E8C00AE10AF117C007D6412058F7C007D0A12C0 -:100E9C00058FED2430FF121479AE10AF117C007D5C -:100EAC000A12058F7C007D0A12058FED2430FF128B -:100EBC001479AE10AF117C007D0A12058FED243031 -:100ECC00FF1214797BFF7A1379DBE4FD7F0B12128E -:100EDC0067E524452370087BFF7A1379E68025E5C6 -:100EEC00246401452370087BFF7A1379E88015E5AB -:100EFC0024640245237BFF70067A1379EA80057A15 -:0B0F0C001379ECE4FD7F0D1212672248 -:10115E0020B5237FE87E031214B420B5160524E5CE -:10116E002470020523C39404E52394004005E4F59E -:10117E0023F52430B5FD20B2107FE87E031214B49F -:0A118E0020B203754E0130B2FD22BD -:03000B00020D0ED5 -:100D0E00C0E0C0F0C083C082C0D075D000C000C0AB -:0D0D1E0001C002C003C004C005C006C0072C -:100D2B00758CFC758A180509E50970020508121205 -:100D3B00FEC3E50994F4E508648094815003020E28 -:100D4B0001C2AA750800750900850C0E850D0F757B -:100D5B000C00750D00D2AAAE0EAF0F7C007D0612F3 -:100D6B00057DAC06AD07E41202C9E4FBFAF9783F46 -:100D7B0012011EC004C005C006C007AC0AAD0BE4CF -:100D8B001202C9E4FBFAF9783F12011ED003D0021C -:100D9B00D001D00012002D1203028E0A8F0BAC0A69 -:100DAB00AD0BE41202C97B9A7A997919783E12013C -:100DBB001E1203028E0A8F0BAC0EAD0FE41202C98A -:100DCB00E4FBFA7920784012011EE4FBFA79A07853 -:100DDB0041120227C004C005C006C007AC10AD11FC -:100DEB00E41202C9D003D002D001D00012002D12A0 -:060DFB0003028E108F11AF -:100E0100D007D006D005D004D003D002D001D00045 -:0B0E1100D0D0D082D083D0F0D0E032EF +:0E0ED400C2ACC2998F993099FDC299D2AC225E +:100E83001207D3FF6011120ED47F05120003740101 +:080E930029F9E43AFA80E92292 +:100C9100E4FEAD517F03120E6A7F027E00120E3711 +:100CA100E552FF3395E0FEAD077F05120E6A7F0224 +:100CB1007E00120E377E00AF53AD077F06120E6A1B +:070CC1007F027E00020E37E6 +:10038200E4F556F557F558F559F55AF55B2009038A +:1003920002060D755FFF75600A7561E8FB7A0079E8 +:1003A20028120A66E94A4B60367E007F287D007B70 +:1003B200007A007928120889755FFF75600A7561F5 +:1003C200F0850A62850B638510648511657B007A6E +:1003D2000079281200827B007A0079280204627573 +:1003E2005FFF75600B75610E7B007A007928120A37 +:1003F20066E94A4B6048E52570057525018003E4EE +:10040200F525E5257004F523F5247E007F287D007F +:100412007B007A007928120889755FFF75600B7579 +:1004220061147B007A0079281200827B007A0079BD +:1004320028120E83AD257F04120E6A0205FC755F39 +:10044200FF75600B7561237B007A007928120A66BA +:10045200E94A4B6011E4F510F5117BFF7A0B79291B +:10046200120E830205FC755FFF75600B75613D7BA3 +:10047200007A007928120A66E94A4B601F0524E5D2 +:100482002470020523C39404E52394004005E4F597 +:1004920023F5248523508524510205FC755FFF75E1 +:1004A200600B7561437B007A007928120A66E94A7B +:1004B2004B70030205FC755FFF75600B7561487B2D +:1004C200007A007928120A66AE02C3E99428F55729 +:1004D200EE9400F556755FFF75600B75614A7B00FF +:1004E2007A007928120A66AE02C3E99428F559EE19 +:1004F2009400F558E4F550F551E5572401F55BE415 +:100502003556F55AC3E55B9559E5586480F8E55AC6 +:10051200648098502A7428255BF8E624D0FBE434E2 +:10052200FFFAAE50AF517C007D0A1207ECEF2BF5BB +:1005320051EE3AF550055BE55B70C9055A80C5D3AB +:10054200E5519401E5506480948040067550007531 +:100552005101755FFF75600B75614A7B007A007906 +:1005620028120A66AE02C3E99428F557EE9400F504 +:1005720056755FFF75600B75614C7B007A007928B8 +:10058200120A66AE02C3E99428F559EE9400F558B2 +:10059200E4F552F553E5572401F55BE43556F55A77 +:1005A200C3E55B9559E5586480F8E55A6480985034 +:1005B2002A7428255BF8E624D0FBE434FFFAAE5215 +:1005C200AF537C007D0A1207ECEF2BF553EE3AF5A0 +:1005D20052055BE55B70C9055A80C5D3E551940F9E +:1005E200E550648094A7400675502775510F7BFF34 +:1005F2007A0B794E120E83120C917E007F287D00B9 +:0B0602007B007A007928120889C209E9 +:01060D0022CA +:100BC0007F01120D98EF75F0FFA4FFAEF0C006C0D4 +:100BD000077F02120D98EFFDD0E02DF511D0E03423 +:100BE00000F5107F03120D987550008F517F04128D +:100BF0000D988F257F05120D98EF75F0FFA4FFAEBD +:100C0000F0C006C0077F06120D98EFFDD0E02DF56D +:080C100053D0E03400F552223C +:100DFB00E5107E00FD7F01120E6A7FC81200037E94 +:0F0E0B0000AF11AD077F02120E6A7FC80200030D +:100E1A00120E51120EB1120E9B120BC0120B5D1262 +:0D0E2A00060E120D24120382120DFB80EF44 +:03002300020C5973 +:090C5900C0E0C0D075D000C0005D +:100C6200200925309820C29885992774282522F8D2 +:100C7200A62774282522F8E6B40D07752200D209AA +:080C8200800605228002C299E0 +:070C8A00D000D0D0D0E03211 +:100CFA00C2958FA07F017E00120D0BD2947F057ED4 +:010D0A0000E8 +:100D0B00D3EF9400EE9400400F7DC77C01DCFEDD39 +:080D1B00FAEF1F70EB1E80E8E7 +:010D230022AD +:0A0EFB00C294C296120CFAC29422AF +:0A0F0500C294D296120CFAC2942294 +:100E51007F38120EFB7F0C120EFB7F06120EFB7FFA +:090E610001120EFB7F80020EFB62 +:0B0CD700011500011400011300C10A08 +:100DDB00E4FDFCC3ED9FEC9E5015E4FBFA0BBB004E +:0F0DEB00010ABA07F8BBD0F50DBD00010C80E47A +:010DFA0022D6 +:100B5D00E525602B855023855124C3E5539511F56B +:100B6D0055E5529510F554C3648094805005E4F515 +:100B7D0054F555E5554554700BF523F5248005E4E2 +:100B8D00F554F555E52445237004F513801DE52432 +:100B9D006401452370057513028010E52464024538 +:100BAD002370057513058003751307851314C29201 +:030BBD00D29322AE +:100DBA000515A20AB35017E51595145004D2978069 +:100DCA0002C297E515C394144006E4F51522C297AA +:010DDA0022F6 +:050EE200120EE7D291A1 +:080EE7007F017E02DEFEDFFA4E +:010EEF0022E0 +:0F0EC500D290120EE2C290120EE7C291020EE717 +:0A0F0F00C290120EE2D290020EE72B +:020C1800AD0726 +:100C1A00E4FBFAEDC4131313540124FF9290ED255B +:100C2A00E0FD120EE2C291120EE70BBB08E5D2906C +:100C3A00120EE7D29130900F0AEAD394C840F6C256 +:0E0C4A0091120EE77F0022C291120EE77F0189 +:010C58002279 +:100D7200E4FDFCD290120EE7D291120EE7EC25E0D0 +:100D8200FCA290E4334204120EE7C291120EE70D68 +:050D9200BD08E5AF04FF +:010D97002239 +:100E6A00AC05A907120EC57FA0120C18AF01120C0F +:090E7A0018AF04120C18020F0F4E +:020D9800AC07A6 +:100D9A00120EC57FA0120C18AF04120C18120EC541 +:0F0DAA007FA1120C18120D72AD07120F0FAF05BB +:010DB9002217 +:100CE20002100000020C0000011200020A000002C1 +:070CF2000E000002080000E3 +:0B0EF000EF1FAC0670011E4C70F622D4 +:100EB100758921758CFC758A18D2A9D28CD2AFD2D2 +:040EC100AAD28A2205 +:10060E007F82120EFBAE0AAF0B7C007D641207FEDA +:10061E007C007D0A1207FEED2430FF120F05AE0A94 +:10062E00AF0B7C007D0A1207FE7C007D0A1207FECE +:10063E00ED2430FF120F05AE0AAF0B7C007D0A12BF +:10064E0007FEED2430FF120F057F88120EFBAE1051 +:10065E00AF117C037DE81207FE7C007D0A1207FEB7 +:10066E00ED2430FF120F05AE10AF117C007D641229 +:10067E0007FE7C007D0A1207FEED2430FF120F05E7 +:10068E00AE10AF117C007D0A1207FE7C007D0A12AF +:10069E0007FEED2430FF120F05AE10AF117C007D6A +:1006AE000A1207FEED2430FF120F057F6D120F05A3 +:1006BE007F8E120EFBE524452370047F4E8022E5CB +:1006CE00246401452370047F4C8016E524640245A2 +:1006DE002370047F4D800AE5246403452370057F53 +:1006EE0048120F057FC0120EFBAE52AF537C037D36 +:1006FE00E81208537C007D0A120853ED2430FF12D5 +:10070E000F05AE52AF537C007D641208537C007D02 +:10071E000A120853ED2430FF120F05AE52AF537C70 +:10072E00007D0A1208537C007D0A120853ED243016 +:10073E00FF120F05AE52AF537C007D0A120853ED27 +:10074E002430FF120F057F6D120F057FC8120EFBAE +:10075E00AE54AF557C037DE81208537C007D0A121F +:10076E000853ED2430FF120F05AE54AF557C007DBB +:10077E00641208537C007D0A120853ED2430FF12D8 +:10078E000F05AE54AF557C007D0A1208537C007DD8 +:10079E000A120853ED2430FF120F05AE54AF557CEC +:1007AE00007D0A120853ED2430FF120F057F6D12E3 +:1007BE000F057FCE120EFBE52570047F4480027F6D +:0507CE0053120F05228B +:100D240020B5237FE87E03120EF020B5160524E5D6 +:100D34002470020523C39404E52394004005E4F5DC +:070D440023F52430B5FD2268 +:03000B0002092ABD +:10092A00C0E0C0F0C083C082C0D075D000C000C093 +:0D093A0001C002C003C004C005C006C00714 +:10094700758CFC758A180509E50970020508120DF2 +:10095700BAC3E50994F4E50864809481405AC2AAB1 +:10096700750800750900AE0CAF0D7C007D031207FA +:10097700EC7D141207FE8E0E8F0F7C007D0C120784 +:10098700EC8E0A8F0BAE0CAF0D7D141207FE7C00A8 +:100997007D031207ECEF2511F511EE3510F510D395 +:1009A700E511940FE5109427400675102775110F70 +:0809B700750C00750D00D2AAB9 +:1009BF00D007D006D005D004D003D002D001D0008C +:0B09CF00D0D0D082D083D0F0D0E03236 :03001300020016D2 :0D001600C0E0050DE50D7002050CD0E032D4 -:1000260002036EE86480F8E933E83360110460F097 -:10003600ED33EC337009E8FCE9FDEAFEEBFF220440 -:1000460060DED3EB9FEA9EE99DE8C2E78CF0C2F73B -:1000560095F0400CE8CCF8E9CDF9EACEFAEBCFFB07 -:1000660012033985D0F05804700320D5B3E8047024 -:10007600075002B2D502037892D5EC0460F7E4CCBF -:10008600C0E0C398F8603B94186008400DD0E0FBD0 -:10009600020350E4FBFAC9FC8028E830E406E4C910 -:1000A600FBE4CAFCE830E305E4C9CACBFCE8540724 -:1000B6006010F8C3E913F9EA13FAEB13FBEC13FC2F -:1000C600D8F130F52FC3E49CFCEF9BFFEE9AFEEDD2 -:1000D60099FDD0E0FBEF4E4D4C701222DB0302037C -:1000E60075EC2CFCEF33FFEE33FEED33FDED30E720 -:1000F600EB020350EF2BFFEE3AFEED39FDD0E0FBAD -:1001060050130BBB0003020378ED13FDEE13FEEF55 -:0801160013FFEC13FC0203507F -:10011E00EC4D6011E8497017ED33EC3304600DE4DB -:10012E00FCFFFEFD22E933E8330470F802036E1281 -:10013E00033958046009E4CC248150062850090282 -:10014E000378284003020375C0E0EB4A7044B9807F -:10015E0006D0E0FB020364EF4E701CBD8008EBFF7F -:10016E00EAFEE9FD80EBE98DF0A4FEE5F002020760 -:10017E00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89BC -:10018E00F0A42EFFE435F0CD89F0A42DFEE435F079 -:10019E008067EF4E7005BD80D780C3EF8BF0A4ACA7 -:1001AE00F0EE8BF0A42CFCE435F0F8EF8AF0A42CE2 -:1001BE00E5F038FCE433CB8DF0A42CFCE5F03BF8F5 -:1001CE00EE8AF0A42CFCE5F038F8E433CF89F0A4E5 -:1001DE002CFCE5F038CF3400CE89F0A42FFFE5F0EB -:1001EE003EFEE433C98DF0A42EFEE5F039CD8AF043 -:1001FE00A42FFFE5F03EFEE43DFD33D0E0FB5007BB -:10020E000BBB000F020378EC2CFCEF33FFEE33FE3A -:06021E00ED33FD02035068 -:10022400020378EC5D046005E85904700302036E70 -:10023400120339580460F6EC4860F2EC7004FDFED9 -:10024400FF22C860DB2481C85009C39860025006AD -:100254000203759850CAF582E9294B4A7005AB82AE -:1002640002036475F0007C1A7880C3EF9BEE9AED6C -:1002740099400DC3EF9BFFEE9AFEED99FDE842F025 -:10028400DC23ACF0D0E0FFD0E0FED0E0FDAB822078 -:10029400E7101BEB60BAEC2CFCEF33FFEE33FEED02 -:1002A40033FD020350E803F830E705C0F075F000B1 -:1002B400EF2FFFEE33FEED33FD40B830E7C280AAE6 -:1002C40075F020800E75F010800575F0087D007EB5 -:1002D400007F003392D530D50312061AEC33401058 -:1002E400EF33FFEE33FEED33FDEC33FCD5F0ED22BE -:0E02F400E5F0247EA2D513CC92E7CDCEFF22FA -:10030200EDD2E7CD33EC3392D524814006E4FFFEF3 -:10031200FDFC22FCE4CFCECDCC24E0501174FF8052 -:10032200EDC3CC13CCCD13CDCE13CECF13CF0470EF -:07033200F030D5DE02061ACF -:10068A00E5742460F8E6057422785D300702786024 -:10069A00E475F0011206280205252000EB7F2ED210 -:1006AA00008018EF540F2490D43440D4FF30040B48 -:1006BA00EF24BFB41A0050032461FFE575600215E8 -:1006CA00750578E5787002057730070D785DE47571 -:1006DA00F001120628EF02056B02128F7403D2078B -:1006EA008003E4C207F5748B5D8A5E895FE4F57561 -:1006FA00F577F578E57560077F201206C580F575F0 -:10070A0076FFC201C200C202C203C205C206C20803 -:10071A00120693FF700D3007057F001206D6AF78D8 -:10072A00AE7722B4255FC2D5C204120693FF24D045 -:10073A00B40A00501A75F00A787530D50508B6FF64 -:10074A000106C6A426F620D5047002D20380D92455 -:10075A00CFB41A00EF5004C2E5D2040209C3D20191 -:10076A0080C6D20080C0D20280BCD2D580BAD2055F -:10077A0080B47F201206C52002077401B5750040B7 -:10078A00F112068AFF1206C50206FED208D20680B8 -:10079A009512068AFB12068AFA12068AF94A4B70E1 -:1007AA000679BA7A0A7BFF20022EE575602A7E0056 -:1007BA008E8275830012053E60060EEE657670F035 -:1007CA00C2D5EBC0E0EAC0E0E9C0E0EE120A23D0ED -:1007DA00E0F9D0E0FAD0E0FB120525FF60AAEBC0F1 -:1007EA00E0EAC0E0E9C0E01206C5D0E02401F9D091 -:1007FA00E03400FAD0E0FBE5760460DCD576D980F7 -:10080A0087D20280A2120A0660F7E5767001041206 -:10081A000383A976600DE576600914F576120AADB0 -:10082A00EF60F3EA30E702F404C3995077EAF4255B -:10083A00760430E701E404F576800D120A0660C1F9 -:10084A00EA05762576120383EA7873F630E701E43F -:10085A00257604D5760420050114120A23E4C0E0A3 -:10086A00120AAD7873E6601320E70714F61206AD94 -:10087A00802204F6D0E014C0E07F001206ADE576CF -:10088A0060071206A41576800B3005031206A4D061 -:10089A00E00206FED0E00480C5120A0660A0E576F2 -:1008AA00041203837873EAF6E576200502600104F0 -:0508BA002404120A23D2 -:1008BF0074FF04C0E0120AAD1206ADE57620050202 -:1008CF0060031206A4D0E0B576E87F451206B7782C -:1008DF0073E67F2B30E7047F2DF404C0E01206C5CA -:1008EF00D0E075F00A84C0F01206AED0E01206AE6A -:1008FF000206FE791080027908C206C2088008D26B -:10090F00D5790A8004790AC2D5E576047002F576A6 -:10091F00E4FAFDFEFF12068AFC7B08200113120683 -:10092F008AFD7B1030000A12068AFE12068AFF7BB0 -:10093F0020EC3382D592D55013C3E43000069FFFCD -:10094F00E49EFEE42001039DFDE49CFCE4CBF8C291 -:10095F0001EC700CCFCECDCCE824F8F870F38017F3 -:10096F00C3EF33FFEE33FEED33FDEC33FCEB33FB24 -:10097F00994002FB0FD8E9EB300105F8D0E0C448ED -:10098F00B201C0E00AEC4D4E4F78207B0070C2EAF6 -:10099F00B5760040BCC0E0120A25D0F0D0E02001AF -:1009AF0004C4C0E0C4B201C0F01206AED0F0D5F05E -:1009BF00EB0206FE120638079B53090258076C4CD0 -:1009CF0007684209064F090E44090E49078143097A -:1009DF00145508454608A345080F470ADA50077013 -:1009EF002D07742E07972B0778230795200AC32A04 -:1009FF000730480000078FE576B4FF0375760612BF -:100A0F00068AFC12068AFD12068AFE12068AFF78F3 -:100A1F006C0203B2790AA2D5200314300509B9106C -:100A2F00020404B9080104A2D520060250010420D3 -:100A3F0002689202B575005034C0E07F2030031970 -:100A4F007F30A20272067205500F120A7CC202C2D8 -:100A5F0006C205C2087F30800F300503E9C0E012DF -:100A6F0006C5300503D0E0F9D0E0B575CC300517D9 -:100A7F007F30B9100C1206C57F583004077F78807D -:100A8F0003B908031206C53002057F2D0206C57F84 -:100A9F00202008F87F2B2006F322920280CF7F00C0 -:100AAF00B407005005246CF8E6FF22286E756C6CB5 -:100ABF002900D20112068A3001F8C201787530D5AB -:100ACF000108F60207302D5043495812068A2403B5 -:100ADF00B405004001E4900AD5931206B6743A1299 -:0A0AEF0006B6D20375750402090271 -:10033900E9D2E7C933E833F892D5EDD2E7CD33EC0A -:0703490033FC5002B2D52283 -:10035000EC30E7100FBF000C0EBE00080DBD00040E -:100360000BEB6014A2D5EB13FCED92E7FD2274FFBA -:10037000FCFDFEFF22E480F8A2D574FF13FC7D8013 -:03038000E480EF27 -:10038300F920E72824F950037907E4F42402FB1841 -:10039300DBFDE624FB5014E9600DE4F618E604F6F1 -:0F03A300B40A08E4F6D9F57401F60A22C2D5228D -:1003B200ED33EC3392D5FA602AB4FF33EDC2E77B1A -:1003C200FF60067A0379D7E4227A0379E020D50424 -:1003D2007A0379DB224E614E002B494E46002D49AD -:1003E2004E4600E47A08F608DAFC7B00740722E83D -:1003F200C0E0ECC0E0EDC0E0EEC0E0EFC0E0EA75C6 -:10040200F010A4CAABF075F04DA42BFBE435F0FC60 -:10041200EA2410FAEB34C5FBEC34D9FCEDC2E7FF59 -:1004220075F056A4F42411C5F0F434C58FF0A42A53 -:10043200E5F03BE43CF620E7141204E5D0E0FFD0FF -:10044200E0FED0E0FDD0E0FC1202278014F404129A -:1004520004E5D0E0FFD0E0FED0E0FDD0E0FC1201E8 -:100462001ED0E0F8E6FAEDD2E7CD33EC332482FB7E -:10047200E4C3CF33CFCE33CECD33CD33DBF37B07E3 -:1004820075F00A846004F6081B0AE5F0F6088FF09E -:10049200740AA4FFACF08EF0740AA42CFEACF050E7 -:1004A200010C8DF0740AA42CFDE435F0F608DBDEB5 -:0304B200740722AA -:1004B5003F8000004120000042C80000447A00004F -:1004C500461C400047C35000497424004B189680D1 -:1004D5004CBEBC205A0E1BCA6753C21C749DC5AEC8 -:1004E500FB60065407601C2323120513EB54386088 -:1004F500091204FF12050E12011EECF8EDF9EEFAD1 -:10050500EFCB22EB12050E80F1543803241C900426 -:10051500B5FE93FC0EEE93FD0EEE930ECE93FF22E9 -:03000000020FCD1F -:0C0FCD00787FE4F6D8FD758178021014DE -:10052500BB010689828A83E0225002E722BBFE02D4 -:09053500E32289828A83E4932207 -:10053E00BB010CE58229F582E5833AF583E0225072 -:10054E0006E92582F8E622BBFE06E92582F8E222BC -:0D055E00E58229F582E5833AF583E49322D6 -:10056B00BB010689828A83F0225002F722BBFE016F -:02057B00F32269 -:10057D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42E92 -:02058D00FE224C -:10058F00BC000BBE0029EF8DF084FFADF022E4CC50 -:10059F00F875F008EF2FFFEE33FEEC33FCEE9DEC19 -:1005AF00984005FCEE9DFE0FD5F0E9E4CEFD22ED5F -:1005BF00F8F5F0EE8420D21CFEADF075F008EF2FA9 -:1005CF00FFED33FD4007985006D5F0F222C398FD9A -:0505DF000FD5F0EA2237 -:1005E400C2D5EC30E709B2D5E4C39DFDE49CFCEE32 -:1005F40030E715B2D5E4C39FFFE49EFE12058FC316 -:10060400E49DFDE49CFC800312058F30D507C3E410 -:060614009FFFE49EFE22A0 -:0E061A00C3E49FFFE49EFEE49DFDE49CFC22F1 -:10062800FAE6FB0808E6F925F0F618E6CA3AF622D3 -:10063800D083D082F8E4937012740193700DA3A351 -:1006480093F8740193F5828883E473740293686065 -:06065800EFA3A3A380DF65 -:10128F00EFB40A07740D12129A740A309811A899C4 -:10129F00B8130CC2983098FDA899C298B811F630BF -:0712AF0099FDC299F5992297 -:101059008B5D8A5E895FAB60AA61A9621205256012 -:1010690063AB5DAA5EA95F120525605F8560638534 -:1010790061648562658B668A678968AB63AA64A9BE -:1010890065120525FF6023AB66AA67A968120525C5 -:101099006F7017042565F565E43564F564740125F9 -:1010A90068F568E43567F56780D1AB63AA64A9651B -:1010B9001205257002800D7401255FF55FE4355E28 -:1010C900F55E809DAB5DAA5EA95F227B007A0079FF -:0210D9000022F3 -:10065E00EF4E6012EF60010EEDBB010B89828A83B3 -:10066E00F0A3DFFCDEFA2289F05007F709DFFCA9C0 -:0C067E00F022BBFEFCF309DFFCA9F02217 -:100FD90002139AE493A3F8E493A34003F68001F281 -:100FE90008DFF48029E493A3F85407240CC8C33319 -:100FF900C4540F4420C8834004F456800146F6DFE8 -:10100900E4800B0102040810204080901209E47E5C -:10101900019360BCA3FF543F30E509541FFEE493DC -:10102900A360010ECF54C025E060A840B8E493A3A3 -:10103900FAE493A3F8E493A3C8C582C8CAC583CACE -:10104900F0A3C8C582C8CAC583CADFE9DEE780BE86 -:0112370000B6 +:030000000209DA18 +:0C09DA00787FE4F6D8FD75816F020A21D9 +:1007D300BB010689828A83E0225002E722BBFE0224 +:0907E300E32289828A83E4932257 +:1007EC00EF8DF0A4A8F0CF8CF0A428CE8DF0A42E21 +:0207FC00FE22DB +:1007FE00BC000BBE0029EF8DF084FFADF022E4CCDF +:10080E00F875F008EF2FFFEE33FEEC33FCEE9DECA7 +:10081E00984005FCEE9DFE0FD5F0E9E4CEFD22EDED +:10082E00F8F5F0EE8420D21CFEADF075F008EF2F37 +:10083E00FFED33FD4007985006D5F0F222C398FD28 +:05084E000FD5F0EA22C5 +:10085300C2D5EC30E709B2D5E4C39DFDE49CFCEEC0 +:1008630030E715B2D5E4C39FFFE49EFE1207FEC333 +:10087300E49DFDE49CFC80031207FE30D507C3E42E +:060883009FFFE49EFE222F +:10002600E56B245FF8E6056B22785C300702785FA3 +:10003600E475F0011208F40207D32000EB7F2ED2FC +:10004600008018EF540F2490D43440D4FF30040BB2 +:10005600EF24BFB41A0050032461FFE56C6002155B +:100066006C056FE56F7002056E30070D785CE47500 +:10007600F0011208F4EF0208E2020D4B7403D207F6 +:100086008003E4C207F56B8B5C8A5D895EE4F56CE0 +:10009600F56EF56FE56C60077F2012006180F575DF +:1000A6006DFFC201C200C202C203C205C206C20877 +:1000B60012002FFF700D3007057F00120072AF6F20 +:1000C600AE6E22B4255FC2D5C20412002FFF24D023 +:1000D600B40A00501A75F00A786C30D50508B6FFD8 +:1000E6000106C6A426F620D5047002D20380D924C0 +:1000F600CFB41A00EF5004C2E5D204020272D20154 +:1001060080C6D20080C0D20280BCD2D580BAD205C9 +:1001160080B47F201200612002077401B56C004094 +:10012600F1120026FF12006102009AD208D2068060 +:1001360095120026FB120026FA120026F94A4B7089 +:100146000679437A037BFF20022EE56C602A7E0047 +:100156008E827583001208B560060EEE656D70F02E +:10016600C2D5EBC0E0EAC0E0E9C0E0EE1202B9D0C9 +:10017600E0F9D0E0FAD0E0FB1207D3FF60AAEBC0AB +:10018600E0EAC0E0E9C0E0120061D0E02401F9D065 +:10019600E03400FAD0E0FBE56D0460DCD56DD98073 +:1001A600877BFF7A0279B5D202809C79108002792A +:1001B60008C206C2088008D2D5790A8004790AC224 +:1001C600D5E56D047002F56DE4FAFDFEFF1200261A +:1001D600FC7B08200113120026FD7B1030000A125A +:1001E6000026FE120026FF7B20EC3382D592D550E6 +:1001F60013C3E43000069FFFE49EFEE42001039D46 +:10020600FDE49CFCE4CBF8C201EC700CCFCECDCC67 +:10021600E824F8F870F38017C3EF33FFEE33FEEDF2 +:1002260033FDEC33FCEB33FB994002FB0FD8E9EBD3 +:10023600300105F8D0E0C448B201C0E00AEC4D4EEA +:100246004F78207B0070C2EAB56D0040BCC0E0125A +:1002560002BBD0F0D0E0200104C4C0E0C4B201C0AB +:10026600F012004AD0F0D5F0EB02009A1209040110 +:10027600375301B15801084C01044201B54F01BD85 +:0F0286004401BD49011D4301C35501A74601A70E +:100295004501A747036350010C2D01102E01332B97 +:1002A500011423013120034C2A00CC480000012B06 +:1002B5003F3F3F00790AA2D5200314300509B91044 +:1002C500020404B9080104A2D52006025001042045 +:1002D50002689202B56C005034C0E07F20300319EB +:1002E5007F30A20272067205500F120312C202C2BB +:1002F50006C205C2087F30800F300503E9C0E01251 +:100305000061300503D0E0F9D0E0B56CCC300517BD +:100315007F30B9100C1200617F583004077F788058 +:1003250003B908031200613002057F2D0200617FC9 +:10033500202008F87F2B2006F322920280CF286E1A +:10034500756C6C2900D2011200263001F8C20178C3 +:100355006C30D50108F60200CC2D504349581200E7 +:10036500262403B405004001E490035E9312005275 +:0D037500743A120052D203756C040201B1FB +:100A66008B5C8A5D895EAB5FAA60A9611207D36061 +:100A760063AB5CAA5DA95E1207D3605F855F628582 +:100A860060638561648B658A668967AB62AA63A9C0 +:100A9600641207D3FF6023AB65AA66A9671207D362 +:100AA6006F7017042564F564E43563F563740125F6 +:100AB60067F567E43566F56680D1AB62AA63A9641B +:100AC6001207D37002800D7401255EF55EE4355D74 +:100AD600F55D809DAB5CAA5DA95E227B007A0079FC +:020AE6000022EC +:10088900EF4E6012EF60010EEDBB010B89828A8386 +:10089900F0A3DFFCDEFA2289F05007F709DFFCA993 +:0C08A900F022BBFEFCF309DFFCA9F022EA +:1009E600020E1AE493A3F8E493A34003F68001F2FF +:1009F60008DFF48029E493A3F85407240CC8C33312 +:100A0600C4540F4420C8834004F456800146F6DFE0 +:100A1600E4800B0102040810204080900CC8E47E9C +:100A2600019360BCA3FF543F30E509541FFEE493D5 +:100A3600A360010ECF54C025E060A840B8E493A39C +:100A4600FAE493A3F8E493A3C8C582C8CAC583CAC7 +:100A5600F0A3C8C582C8CAC583CADFE9DEE780BE7F +:010CF90000FA +:1008B500BB010CE58229F582E5833AF583E02250F8 +:1008C50006E92582F8E622BBFE06E92582F8E22242 +:0D08D500E58229F582E5833AF583E493225C +:1008E200BB010689828A83F0225002F722BBFE01F5 +:0208F200F322EF +:1008F400FAE6FB0808E6F925F0F618E6CA3AF62205 +:10090400D083D082F8E4937012740193700DA3A382 +:1009140093F8740193F5828883E473740293686096 +:06092400EFA3A3A380DF96 +:100D4B00EFB40A07740D120D56740A309811A89956 +:100D5B00B8130CC2983098FDA899C298B811F63008 +:070D6B0099FDC299F59922E0 :00000001FF diff --git a/pro.uvgui.QY b/pro.uvgui.QY index 8233d2d..e6b94f0 100644 --- a/pro.uvgui.QY +++ b/pro.uvgui.QY @@ -91,17 +91,17 @@ -1 - 302 - 539 - 2459 - 1305 + 0 + 646 + 2566 + 1003 0 754 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000900000000000000010000002A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6300000000064952494E2E6300000000F0A0A100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E63000000000570776D2E6300000000BCA8E100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E68000000000570776D2E68000000009CC1B600FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6300000000056C63642E6300000000F7B88600FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6800000000064952494E2E6800000000D9ADC200FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6300000000056932632E6300000000A5C2D700FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6800000000056932632E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000450100006E000000FF0400009A040000 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000900000000000000010000002A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6300000000064952494E2E6300000000F0A0A100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E63000000000570776D2E6300000000BCA8E100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E68000000000570776D2E68000000009CC1B600FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6300000000056C63642E6300000000F7B88600FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6800000000064952494E2E6800000000D9ADC200FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6300000000056932632E6300000000A5C2D700FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6800000000056932632E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000D20300006E000000FE09000006030000 @@ -124,7 +124,7 @@ 16 - C20100000C020000EE070000D2020000 + 4401000066000000700700002C010000 @@ -140,11 +140,11 @@ 0 16 - 03000000660000003D01000062040000 + 03000000660000003D010000CE020000 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -160,11 +160,11 @@ 0 16 - 03000000660000003D01000062040000 + 03000000660000003D010000CE020000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -184,7 +184,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -204,7 +204,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -224,7 +224,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -244,7 +244,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -264,7 +264,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -284,7 +284,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -304,7 +304,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -324,7 +324,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -344,7 +344,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -364,7 +364,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -384,7 +384,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -404,7 +404,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -424,7 +424,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -440,11 +440,11 @@ 0 16 - 03000000660000003D01000062040000 + 03000000660000003D010000CE020000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -460,11 +460,11 @@ 0 16 - 03000000660000003D01000062040000 + 03000000660000003D010000CE020000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -480,11 +480,11 @@ 0 16 - 0000000093040000FE04000045050000 + 00000000FF02000070070000B1030000 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -504,7 +504,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -520,11 +520,11 @@ 0 16 - 03000000960400006D0700002C050000 + 0300000002030000FD09000098030000 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -544,7 +544,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -564,7 +564,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -604,7 +604,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -624,7 +624,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -644,7 +644,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -664,7 +664,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -684,7 +684,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -704,7 +704,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -724,7 +724,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -744,7 +744,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -764,7 +764,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -784,7 +784,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -804,7 +804,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -824,7 +824,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -844,7 +844,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -864,7 +864,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -884,7 +884,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -904,7 +904,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -924,7 +924,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -944,7 +944,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -964,7 +964,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -984,7 +984,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1004,7 +1004,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1024,7 +1024,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1044,7 +1044,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1064,7 +1064,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1084,7 +1084,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1104,7 +1104,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1124,7 +1124,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1140,11 +1140,11 @@ 0 16 - 03000000660000003D010000CE020000 + 03000000660000003D0100006B040000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -1160,11 +1160,11 @@ 0 16 - 03000000960400006D0700002C050000 + 0300000002030000FD09000098030000 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -1180,11 +1180,11 @@ 0 16 - 03000000960400006D0700002C050000 + 0300000002030000FD09000098030000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -1204,7 +1204,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1224,7 +1224,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1240,11 +1240,11 @@ 0 16 - 03000000960400006D0700002C050000 + 0300000002030000FD09000098030000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -1260,11 +1260,11 @@ 0 16 - 03000000960400006D0700002C050000 + 0300000002030000FD09000098030000 16 - 0C01000023010000880200003B040000 + 3C00000053000000B80100006B030000 @@ -1284,7 +1284,7 @@ 16 - 0C01000023010000C4040000E9010000 + 3C00000053000000F403000019010000 @@ -1304,7 +1304,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1324,7 +1324,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1344,7 +1344,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1364,7 +1364,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1384,7 +1384,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1404,7 +1404,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1424,7 +1424,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1444,7 +1444,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1464,7 +1464,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1484,7 +1484,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1504,7 +1504,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1524,7 +1524,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1544,7 +1544,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1564,7 +1564,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1584,7 +1584,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1604,7 +1604,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1624,7 +1624,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1644,7 +1644,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1664,7 +1664,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1684,7 +1684,7 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 @@ -1720,7 +1720,7 @@ 0 16 - 0000000045050000FE04000058050000 + 00000000B103000070070000C4030000 16 @@ -1784,19 +1784,19 @@ 16 - 0C010000230100004C02000036020000 + 3C000000530000007C01000066010000 3317 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000150100007007000019010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C20100000C020000EE070000D2020000440100004F00000070070000150100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000001030000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000AE0600000C020000EE070000BE040000300600004F000000700700000103000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100007B040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007E0000000C020000BE010000A4040000000000004F000000400100007B0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000ED02000070070000F102000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007E000000AE040000EE0700008805000000000000F102000070070000CB03000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000F1020000BC030000CB03000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007B040000FE0400007F040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000007E000000A8040000EE0700006E050000000000007F040000FE040000450500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF1346696E6420416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000150100007007000019010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000004401000066000000700700002C010000440100004F00000070070000150100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000001030000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000018030000300600004F000000700700000103000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000E7020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000400100009B040000000000004F00000040010000E70200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000ED02000070070000F102000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000000803000070070000E203000000000000F102000070070000CB03000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000F1020000BC030000CB03000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000E702000070070000EB020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000009F040000000A00006505000000000000EB02000070070000B10300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF1346696E6420416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2493 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000574696D65319600000000000000140003736574084B65795F7363616E076D696C656167650A75696E742073706565640E446973706C61794F6E65436861720541534349490E4163636570745F7375636365737307526563656976650474696D650574696D65310F52696768745F6D6F746F5F73746F700E707573685F76616C5F72696768741170776D5F6F75745F6C6566745F6D6F746F0273300875735F64656C6179036375740A73656E64546F576966690B676574546F74616C4461790C74696D696E67735B695D2D3E063078303066300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000 + 2500 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000C5265636976655F7461626C65960000000000000014000C5265636976655F7461626C650474696D650574696D65310F52696768745F6D6F746F5F73746F700E707573685F76616C5F72696768741170776D5F6F75745F6C6566745F6D6F746F0273300875735F64656C6179036375740A73656E64546F576966690B676574546F74616C4461790C74696D696E67735B695D2D3E0630783030663006307830303066054750494F4106307866303030054750494F42124775695F44726177466F6E745F4E756D3332066C6162656C320A4750494F5F50696E5F370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000 1423 @@ -1828,7 +1828,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1855,54 +1855,54 @@ 0 .\main.c - 28 - 115 - 138 + 38 + 87 + 124 1 0 lcd.h - 13 + 9 1 - 50 + 1 1 0 .\IRIN.c - 9 - 44 - 69 + 0 + 50 + 108 1 0 .\pwm.c - 1 + 0 1 - 27 + 41 1 0 pwm.h - 19 + 0 1 - 21 + 19 1 0 .\lcd.c - 4 + 0 1 - 75 + 74 1 0 diff --git a/pro.uvopt b/pro.uvopt index a4432e8..916a4d8 100644 --- a/pro.uvopt +++ b/pro.uvopt @@ -203,7 +203,7 @@ 1 2 1 - 0 + 1 0 0 .\lcd.c @@ -227,7 +227,7 @@ 1 4 1 - 1 + 0 0 0 .\i2c.c diff --git a/pwm.LST b/pwm.LST index 76a3d12..b71755c 100644 --- a/pwm.LST +++ b/pwm.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 PWM 04/08/2022 03:07:52 PAGE 1 +C51 COMPILER V9.56.0.0 PWM 04/09/2022 17:15:06 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE PWM @@ -8,62 +8,74 @@ COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE pwm.c OPTIMIZE(8,SPEED) BROWSE D line level source 1 #include "pwm.h" - 2 - 3 unsigned char pwm_val_right =0; - 4 unsigned char push_val_right=0; - 5 + 2 #include + 3 + 4 unsigned char pwm_val_right =0; + 5 unsigned char push_val_right=0; 6 unsigned char pwm_value=0; 7 - 8 extern uint model; - 9 - 10 bit Right_moto_stop = 0; - 11 - 12 void delay(unsigned int k) - 13 { - 14 1 unsigned int x,y; - 15 1 for(x=0;x=20) pwm_val_right=0; - 42 2 } - 43 1 else{ - 44 2 Right_moto_pwm=0; - 45 2 } - 46 1 } - 47 - 48 - 49 - 50 - 51 + 8 extern uint Seep_model; + 9 extern struct UserInfo usr; + 10 extern uchar model; + 11 extern uint mileage; + 12 + 13 bit Right_moto_stop = 0; + 14 + 15 void delay(unsigned int k) + 16 { + 17 1 unsigned int x,y; + 18 1 for(x=0;x=20) pwm_val_right=0; + 54 2 } + 55 1 else{ + C51 COMPILER V9.56.0.0 PWM 04/09/2022 17:15:06 PAGE 2 + 56 2 Right_moto_pwm=0; + 57 2 } + 58 1 } + 59 + 60 + 61 + 62 + 63 -MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 112 ---- - C51 COMPILER V9.56.0.0 PWM 04/08/2022 03:07:52 PAGE 2 +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 164 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- diff --git a/pwm.OBJ b/pwm.OBJ index 46d4453..ff57272 100644 Binary files a/pwm.OBJ and b/pwm.OBJ differ diff --git a/pwm.c b/pwm.c index 8b6729f..169b333 100644 --- a/pwm.c +++ b/pwm.c @@ -1,11 +1,14 @@ #include "pwm.h" +#include unsigned char pwm_val_right =0; unsigned char push_val_right=0; - unsigned char pwm_value=0; -extern uint model; +extern uint Seep_model; +extern struct UserInfo usr; +extern uchar model; +extern uint mileage; bit Right_moto_stop = 0; @@ -18,10 +21,20 @@ void delay(unsigned int k) void run(void) { - if(model == 0) pwm_value = 0; - else if(model == 1) pwm_value = 2; - else if(model == 2) pwm_value = 5; - else pwm_value = 10; + if(model){ + Seep_model = usr.Seep_model; + usr.Remaining_mileage = usr.target_mileage - mileage; + if(usr.Remaining_mileage < 0) usr.Remaining_mileage = 0; + if(usr.Remaining_mileage == 0) Seep_model = 0; + }else{ + usr.Remaining_mileage = 0; + } + + + if(Seep_model == 0) pwm_value = 0; + else if(Seep_model == 1) pwm_value = 2; + else if(Seep_model == 2) pwm_value = 5; + else pwm_value = 7; push_val_right=pwm_value; Right_moto_back; } @@ -32,19 +45,18 @@ void pwm_out_right_moto(void) if(~Right_moto_stop){ if(pwm_val_right <= push_val_right) { - Right_moto_pwm=1; + Right_moto_pwm=1; } - else - { + else{ Right_moto_pwm=0; } if(pwm_val_right>=20) pwm_val_right=0; } else{ - Right_moto_pwm=0; + Right_moto_pwm=0; } } - + diff --git a/pwm.h b/pwm.h index ed59d07..2cb931a 100644 --- a/pwm.h +++ b/pwm.h @@ -1,29 +1,32 @@ #ifndef _PWM_H #define _PWM_H - #include #include "IRIN.h" void delay(unsigned int k); -void run(void); -void backrun(void); -void leftrun(void); -void rightrun(void); +void run(void); +void backrun(void); +void leftrun(void); +void rightrun(void); void pwm_out_left_moto(void); void pwm_out_right_moto(void); +sbit IN1=P1^2; +sbit IN2=P1^3; - //СģIO -sbit IN1=P1^0; -sbit IN2=P1^1; sbit EN1=P3^4; -sbit Right_moto_pwm=P3^4; //PWMźŶ +sbit Right_moto_pwm=P1^7; +#define Right_moto_go {IN1=1,IN2=0;} +#define Right_moto_back {IN1=0,IN2=1;} +#define Right_moto_Stop {EN1=0; } -#define Right_moto_go {IN1=1,IN2=0;} //ұߵǰ -#define Right_moto_back {IN1=0,IN2=1;} //ұߵ -#define Right_moto_Stop {EN1=0;} //ұߵͣת +struct UserInfo{ + int Seep_model; + int target_mileage; + int Remaining_mileage; +}; #endif \ No newline at end of file