diff --git a/IRIN.LST b/IRIN.LST index eb1dc5f..5d82104 100644 --- a/IRIN.LST +++ b/IRIN.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 IRIN 04/06/2022 23:56:38 PAGE 1 +C51 COMPILER V9.56.0.0 IRIN 04/08/2022 03:09:39 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE IRIN @@ -10,223 +10,120 @@ line level source 1 #include "IRIN.h" 2 #include "i2c.h" 3 - 4 uint journey; - 5 uint journey1; - 6 extern uchar pwm_left; - 7 unsigned int b; - 8 unsigned int c; - 9 extern uint time1; - 10 extern uchar pwm_val_left; - 11 unsigned int b2; - 12 unsigned int c2; - 13 - 14 uint money=7; - 15 uint sudu=0; - 16 - 17 uint count=0; //栅格是一圈20个 - 18 - 19 uchar ms=0; - 20 uint speed=0; - 21 uint r_s=0; - 22 - 23 bit state=0; - 24 bit s0=0; - 25 bit flas=0; - 26 - 27 uchar sec=0; - 28 uchar sec1=0; - 29 - 30 /******************************************************************************* - 31 * 函 数 名 : delay - 32 * 函数功能 : 延时函数,i=1时,大约延时10us - 33 *******************************************************************************/ - 34 void delay11(int i) - 35 { - 36 1 while(i--); - 37 1 } - 38 - 39 void IRIN_Init(void) - 40 { - 41 1 TMOD=0x01 | 0x20 ;//定时器1工作方式1 - 42 1 TH0=0x3C; - 43 1 TL0=0xb0; - 44 1 ET0=1; - 45 1 TR0=1; - 46 1 EA=1; - 47 1 EX1=1; - 48 1 IT1=1; - 49 1 } - 50 - 51 void display() - 52 { - 53 1 if(state==0) - 54 1 { - 55 2 sudu=At24c02Read(10); - C51 COMPILER V9.56.0.0 IRIN 04/06/2022 23:56:38 PAGE 2 + 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; + 14 + 15 void delay11(int i) + 16 { + 17 1 while(i--); + 18 1 } + 19 + 20 void IRIN_Init(void) + 21 { + 22 1 TMOD=0x01 | 0x20; + 23 1 TH0=0XFc; + 24 1 TL0=0X18; + 25 1 ET0=1; + 26 1 TR0=1; + 27 1 EA=1; + 28 1 EX1=1; + 29 1 IT1=1; + 30 1 } + 31 + 32 void display() + 33 { + 34 1 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 - 56 2 if(money>7) - 57 2 { - 58 3 money=At24c02Read(5); - 59 3 } - 60 2 LcdSetCursor(0,0); - 61 2 LcdShowStr(0,0,"Speed:"); - 62 2 Lcd1602_Write_Data(0x30+sudu/100%10); - 63 2 Lcd1602_Write_Data(0x30+sudu/10%10); - 64 2 Lcd1602_Write_Data(0x30+sudu%10); - 65 2 LcdShowStr(10,0,"KM/h"); - 66 2 - 67 2 LcdShowStr(0,1,"L:"); - 68 2 Lcd1602_Write_Data(journey/10000%10+0x30); - 69 2 Lcd1602_Write_Data(journey/1000%10+0x30); - 70 2 Lcd1602_Write_Data(journey/100%10+0x30); - 71 2 Lcd1602_Write_Data(journey/10%10+0x30); - 72 2 Lcd1602_Write_Data(journey%10+0x30); - 73 2 LcdShowStr(7,1,"M"); - 74 2 - 75 2 if(journey>1000) - 76 2 { - 77 3 money=(journey-1000)*0.002+7; - 78 3 At24c02Write(5,money); - 79 3 } - 80 2 money=money*10; - 81 2 LcdShowStr(9,1,"Q:"); - 82 2 Lcd1602_Write_Data(money/1000%10+0x30); - 83 2 Lcd1602_Write_Data(money/100%10+0x30); - 84 2 Lcd1602_Write_Data(money/10%10+0x30); - 85 2 LcdShowStr(14,1,"."); - 86 2 Lcd1602_Write_Data(money%10+0x30); - 87 2 - 88 2 money=money/10; - 89 2 - 90 2 } - 91 1 } - 92 - 93 - 94 - 95 void keypros() - 96 { - 97 1 if(k2==0) - 98 1 { - 99 2 delay11(1000); //消抖处理 - 100 2 if(k2==0) - 101 2 { - 102 3 sudu=At24c02Read(10); //读取EEPROM地址1内的数据 - 103 3 - 104 3 b2=At24c02Read(1); - 105 3 c2=At24c02Read(8); - 106 3 journey=(b2<<8) | c2; - 107 3 - 108 3 money=At24c02Read(5); - 109 3 - 110 3 } - 111 2 while(!k2); - 112 2 } - 113 1 - 114 1 if(k1==0) - 115 1 { - 116 2 delay11(1000); //消抖处理 - 117 2 if(k1==0) - C51 COMPILER V9.56.0.0 IRIN 04/06/2022 23:56:38 PAGE 3 - - 118 2 { - 119 3 flas=1; - 120 3 - 121 3 } - 122 2 while(!k1); - 123 2 } - 124 1 if(k4==0) - 125 1 { - 126 2 delay11(1000); //消抖处理 - 127 2 if(k4==0) - 128 2 { - 129 3 if(pwm_left>=20) - 130 3 { - 131 4 pwm_left=1; - 132 4 } - 133 3 else - 134 3 { - 135 4 pwm_left++; - 136 4 } - 137 3 } - 138 2 while(!k4); - 139 2 } - 140 1 - 141 1 } - 142 - 143 void time0() interrupt 1 //定时器 0 - 144 { - 145 1 TH0=0x3C; - 146 1 TL0=0xb0; //50ms定时 - 147 1 ms++; //变量50ms加一 - 148 1 if(ms%5==0) s0=~s0; - 149 1 - 150 1 - 151 1 if(ms%10==0) //500ms定时 - 152 1 { - 153 2 - 154 2 if(sec!=0) sec--; - 155 2 if(sec1!=0) sec1--; - 156 2 ms=0; //清零变量 - 157 2 EX1=0; //关闭外部中断,保证变量在计算的时候不会增加 - 158 2 r_s=count; //因为是500ms检测一次转动数据,所以要想一秒转动的圈数是 speed=count*2 ,但是光栅是一圈2 - -0格,所以还要除以20; - 159 2 //综合一下,一秒转动的圈数就是 speed=count*2/20 ==》 speed=counr/10; - 160 2 count=0; //清零变量 - 161 2 EX1=1; //打开外部中断 - 162 2 speed=speed*0.5+(r_s*6)*0.5; // 这里r_s是一秒走的圈数,然后乘以60得到60秒走的圈数,单位变成了 - - r/min; 总方式 speed=count/10*60; ==>> speed=count*6; - 163 2 - 164 2 if(flas==0) - 165 2 { - 166 3 sudu=(0.15*speed); - 167 3 At24c02Write(10,sudu); - 168 3 - 169 3 journey=journey+(r_s*2.5/20); - 170 3 journey1=journey; - 171 3 c = journey & 0x00FF; - 172 3 At24c02Write(8,c); - 173 3 - 174 3 delay11(1000); - 175 3 b=journey1>>8; - 176 3 At24c02Write(1,b); - 177 3 } - C51 COMPILER V9.56.0.0 IRIN 04/06/2022 23:56:38 PAGE 4 - - 178 2 else - 179 2 { - 180 3 journey=0; - 181 3 money=7; - 182 3 At24c02Write(1,journey); - 183 3 At24c02Write(8,journey); - 184 3 At24c02Write(5,money); - 185 3 flas=0; - 186 3 } - 187 2 } - 188 1 } - 189 - 190 void int1() interrupt 2 //外部中断 1 - 191 { - 192 1 - 193 1 count++; //中断每触发一次,变量加一 - 194 1 - 195 1 } - 196 - 197 - 198 - 199 - 200 - 201 - 202 + 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 + 103 + 104 + 105 MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 1006 ---- - CONSTANT SIZE = 22 ---- + CODE SIZE = 623 ---- + CONSTANT SIZE = 26 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- - DATA SIZE = 25 ---- + DATA SIZE = 11 ---- IDATA SIZE = ---- ---- - BIT SIZE = 3 ---- + BIT SIZE = ---- ---- END OF MODULE INFORMATION. diff --git a/IRIN.OBJ b/IRIN.OBJ index 40129b8..48dee80 100644 Binary files a/IRIN.OBJ and b/IRIN.OBJ differ diff --git a/IRIN.c b/IRIN.c index cbe9c07..ba8e76f 100644 --- a/IRIN.c +++ b/IRIN.c @@ -1,36 +1,17 @@ #include "IRIN.h" #include "i2c.h" -uint journey; -uint journey1; -extern uchar pwm_left; -unsigned int b; -unsigned int c; -extern uint time1; -extern uchar pwm_val_left; -unsigned int b2; -unsigned int c2; +uint mileage = 0; -uint money=7; -uint sudu=0; - -uint count=0; //栅格是一圈20个 +uint count=0; uchar ms=0; uint speed=0; uint r_s=0; -bit state=0; -bit s0=0; -bit flas=0; - -uchar sec=0; -uchar sec1=0; +extern uint model; +extern uchar set; -/******************************************************************************* -* 函 数 名 : delay -* 函数功能 : 延时函数,i=1时,大约延时10us -*******************************************************************************/ void delay11(int i) { while(i--); @@ -38,9 +19,9 @@ void delay11(int i) void IRIN_Init(void) { - TMOD=0x01 | 0x20 ;//定时器1工作方式1 - TH0=0x3C; - TL0=0xb0; + TMOD=0x01 | 0x20; + TH0=0XFc; + TL0=0X18; ET0=1; TR0=1; EA=1; @@ -49,150 +30,72 @@ void IRIN_Init(void) } void display() - { - if(state==0) - { - sudu=At24c02Read(10); - if(money>7) - { - money=At24c02Read(5); - } - LcdSetCursor(0,0); - LcdShowStr(0,0,"Speed:"); - Lcd1602_Write_Data(0x30+sudu/100%10); - Lcd1602_Write_Data(0x30+sudu/10%10); - Lcd1602_Write_Data(0x30+sudu%10); - LcdShowStr(10,0,"KM/h"); - - LcdShowStr(0,1,"L:"); - Lcd1602_Write_Data(journey/10000%10+0x30); - Lcd1602_Write_Data(journey/1000%10+0x30); - Lcd1602_Write_Data(journey/100%10+0x30); - Lcd1602_Write_Data(journey/10%10+0x30); - Lcd1602_Write_Data(journey%10+0x30); - LcdShowStr(7,1,"M"); - - if(journey>1000) - { - money=(journey-1000)*0.002+7; - At24c02Write(5,money); - } - money=money*10; - LcdShowStr(9,1,"Q:"); - Lcd1602_Write_Data(money/1000%10+0x30); - Lcd1602_Write_Data(money/100%10+0x30); - Lcd1602_Write_Data(money/10%10+0x30); - LcdShowStr(14,1,"."); - Lcd1602_Write_Data(money%10+0x30); - - money=money/10; - - } - } - - - - void keypros() - { - if(k2==0) - { - delay11(1000); //消抖处理 - if(k2==0) - { - sudu=At24c02Read(10); //读取EEPROM地址1内的数据 - - b2=At24c02Read(1); - c2=At24c02Read(8); - journey=(b2<<8) | c2; - - money=At24c02Read(5); - - } - while(!k2); - } +{ + 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 "); + + 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 "); + 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"); +} + + +void Key_scan(){ if(k1==0) { delay11(1000); //消抖处理 - if(k1==0) - { - flas=1; - + if(k1==0){ + model++; + if(model >= 4) model = 0; } while(!k1); } - if(k4==0) + + if(k2==0) { delay11(1000); //消抖处理 - if(k4==0) - { - if(pwm_left>=20) - { - pwm_left=1; - } - else - { - pwm_left++; - } + if(k2==0){ + set = 1; } - while(!k4); + while(!k2); } - - } - - void time0() interrupt 1 //定时器 0 - { - TH0=0x3C; - TL0=0xb0; //50ms定时 - ms++; //变量50ms加一 - if(ms%5==0) s0=~s0; - - - if(ms%10==0) //500ms定时 - { - - if(sec!=0) sec--; - if(sec1!=0) sec1--; - ms=0; //清零变量 - EX1=0; //关闭外部中断,保证变量在计算的时候不会增加 - r_s=count; //因为是500ms检测一次转动数据,所以要想一秒转动的圈数是 speed=count*2 ,但是光栅是一圈20格,所以还要除以20; - //综合一下,一秒转动的圈数就是 speed=count*2/20 ==》 speed=counr/10; - count=0; //清零变量 - EX1=1; //打开外部中断 - speed=speed*0.5+(r_s*6)*0.5; // 这里r_s是一秒走的圈数,然后乘以60得到60秒走的圈数,单位变成了 r/min; 总方式 speed=count/10*60; ==>> speed=count*6; - - if(flas==0) - { - sudu=(0.15*speed); - At24c02Write(10,sudu); - - journey=journey+(r_s*2.5/20); - journey1=journey; - c = journey & 0x00FF; - At24c02Write(8,c); - - delay11(1000); - b=journey1>>8; - At24c02Write(1,b); - } - else - { - journey=0; - money=7; - At24c02Write(1,journey); - At24c02Write(8,journey); - At24c02Write(5,money); - flas=0; - } + +} + +void time0() interrupt 1 +{ + static int time = 0; + TH0=0XFc; + TL0=0X18; + time++; + pwm_out_right_moto(); + if(time >= 500){ + EX1=0; + time = 0; + r_s=count; + count=0; + EX1=1; + speed=speed*0.5+(r_s*6)*0.5; + speed=(0.15*speed); + mileage = mileage+(r_s*2.5/20); } } - -void int1() interrupt 2 //外部中断 1 - { - - count++; //中断每触发一次,变量加一 - - } + +void int1() interrupt 2 +{ + count++; +} diff --git a/IRIN.h b/IRIN.h index 63cdba0..6084823 100644 --- a/IRIN.h +++ b/IRIN.h @@ -5,19 +5,13 @@ #include "lcd.h" #include "pwm.h" -sbit k1=P3^5; -sbit k2=P3^4; -sbit k3=P3^3; -sbit k4=P3^2; //定义按键端口 +sbit k1=P3^5; +sbit k2=P3^2; void IRIN_Init(void); void display(); - -void keypros(); - - #endif diff --git a/i2c.LST b/i2c.LST index 4ac1725..c195677 100644 --- a/i2c.LST +++ b/i2c.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 I2C 04/06/2022 22:40:09 PAGE 1 +C51 COMPILER V9.56.0.0 I2C 04/08/2022 02:58:55 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/06/2022 22:40:09 PAGE 2 + C51 COMPILER V9.56.0.0 I2C 04/08/2022 02:58:55 PAGE 2 56 * 输入 : num 57 * 输出 : 0或1。发送成功返回1,发送失败返回0 @@ -126,7 +126,7 @@ line level source 115 1 } 116 117 - C51 COMPILER V9.56.0.0 I2C 04/06/2022 22:40:09 PAGE 3 + C51 COMPILER V9.56.0.0 I2C 04/08/2022 02:58:55 PAGE 3 118 /******************************************************************************* 119 * 函数名 : void At24c02Write(unsigned char addr,unsigned char dat) diff --git a/i2c.OBJ b/i2c.OBJ index 7d34f9d..ea099e0 100644 Binary files a/i2c.OBJ and b/i2c.OBJ differ diff --git a/i2c.__i b/i2c.__i deleted file mode 100644 index 530c89e..0000000 --- a/i2c.__i +++ /dev/null @@ -1 +0,0 @@ -"i2c.c" OPTIMIZE (8,SPEED) BROWSE DEBUG OBJECTEXTEND TABS (2) \ No newline at end of file diff --git a/i2c.h b/i2c.h index 1047ef4..36939e3 100644 --- a/i2c.h +++ b/i2c.h @@ -12,5 +12,6 @@ unsigned char I2cSendByte(unsigned char dat); unsigned char I2cReadByte(); void At24c02Write(unsigned char addr,unsigned char dat); unsigned char At24c02Read(unsigned char addr); +void Delay10us(); #endif diff --git a/lcd.LST b/lcd.LST index 553683e..ec1e623 100644 --- a/lcd.LST +++ b/lcd.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 LCD 04/06/2022 22:23:01 PAGE 1 +C51 COMPILER V9.56.0.0 LCD 04/08/2022 02:58:55 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE LCD @@ -62,7 +62,7 @@ line level source 53 1 X &= 0xF; //限制X不能大于15,Y不能大于1 54 1 if (Y) X |= 0x40; //当要显示第二行时地址码+0x40; 55 1 X |= 0x80; //算出指令码 - C51 COMPILER V9.56.0.0 LCD 04/06/2022 22:23:01 PAGE 2 + C51 COMPILER V9.56.0.0 LCD 04/08/2022 02:58:55 PAGE 2 56 1 Lcd1602_Write_Cmd(X); //发命令字 57 1 Lcd1602_Write_Data(DData); //发数据 diff --git a/lcd.OBJ b/lcd.OBJ index 4bded29..7d32b00 100644 Binary files a/lcd.OBJ and b/lcd.OBJ differ diff --git a/main.LST b/main.LST index 7856a53..e728d25 100644 --- a/main.LST +++ b/main.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 MAIN 04/06/2022 23:54:42 PAGE 1 +C51 COMPILER V9.56.0.0 MAIN 04/08/2022 03:21:37 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE MAIN @@ -13,135 +13,235 @@ line level source 4 #include "pwm.h" 5 #include "i2c.h" 6 #include "IRIN.h" - 7 - 8 unsigned char PuZh[]=" Pechin Science "; - 9 extern uint journey; - 10 extern uint money; - 11 extern uchar sudu; - 12 unsigned int b12; - 13 unsigned int c12; - 14 - 15 - 16 unsigned int b123; - 17 unsigned int c123; - 18 extern unsigned char pwm_left; - 19 unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'}; - 20 - 21 void delayms(unsigned int ms) - 22 { - 23 1 unsigned char i=100,j; - 24 1 for(;ms;ms--) - 25 1 { - 26 2 while(--i) - 27 2 { - 28 3 j=10; - 29 3 while(--j); - 30 3 } - 31 2 } - 32 1 } + 7 #include + 8 #include + 9 # include + 10 + 11 #define uint unsigned int + 12 #define uchar unsigned char + 13 + 14 typedef unsigned char uint8; + 15 typedef unsigned int uint16; + 16 + 17 extern uint mileage; + 18 extern uint speed; + 19 + 20 uint 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; 33 - 34 void Uart_Init() //使用定时器1作为波特率发生器(STC89C52、STC89C51、AT89C51 - -等均可) - 35 { - 36 1 TMOD = 0x20 | 0x01; - 37 1 - 38 1 SCON = 0x50; //设置串行方式 - 39 1 - 40 1 TH1 = 0xFD; //波特率9600 - 41 1 - 42 1 TL1 = TH1; - 43 1 - 44 1 PCON = 0x00; - 45 1 - 46 1 EA = 1; //总中断打开 - 47 1 - 48 1 ES = 1; //开串口中断 - 49 1 - 50 1 TR1 = 1; //启动定时器1 - 51 1 - 52 1 } - 53 - 54 void us_delay(uchar t) - C51 COMPILER V9.56.0.0 MAIN 04/06/2022 23:54:42 PAGE 2 - + 34 struct UserInfo usr; + 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 - 56 { - 57 1 - 58 1 while(t--); - 59 1 - 60 1 } - 61 - 62 void Send_Uart(uchar value) - 63 - 64 { - 65 1 - 66 1 ES=0; //关闭串口中断 - 67 1 - 68 1 TI=0; //清发送完毕中断请求标志位 - 69 1 - 70 1 SBUF=value; //发送 - 71 1 - 72 1 while(TI==0); //等待发送完毕 - 73 1 - 74 1 TI=0; //清发送完毕中断请求标志位 - 75 1 - 76 1 ES=1; //允许串口中断 - 77 1 - 78 1 } - 79 - 80 void ESP8266_Set(uchar *puf) // 数组指针*puf指向字符串数组 - 81 - 82 { - 83 1 - 84 1 while(*puf!='\0') //遇到空格跳出循环 - 85 1 - 86 1 { - 87 2 - 88 2 Send_Uart(*puf); //向WIFI模块发送控制指令。 - 89 2 - 90 2 us_delay(5); - 91 2 - 92 2 puf++; - 93 2 - 94 2 } - 95 1 - 96 1 } - 97 - 98 void main(void) - 99 { - 100 1 int i = 0; - 101 1 InitLcd1602(); - 102 1 IRIN_Init(); - 103 1 Uart_Init(); - 104 1 pwm_left=10; - 105 1 b12=At24c02Read(1); - 106 1 c12=At24c02Read(8); - 107 1 money = 120; - 108 1 money=At24c02Read(5); - 109 1 journey = (b12<<8)|c12; - 110 1 - 111 1 while(1) - 112 1 { - 113 2 run(); - 114 2 ESP8266_Set("1111\r\n"); - 115 2 display(); - 116 2 keypros(); - C51 COMPILER V9.56.0.0 MAIN 04/06/2022 23:54:42 PAGE 3 + C51 COMPILER V9.56.0.0 MAIN 04/08/2022 03:21:37 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 + + 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 - 117 2 Delay10us(); -*** WARNING C206 IN LINE 117 OF main.c: 'Delay10us': missing function-prototype - 118 2 } - 119 1 } + 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; //MCU接收wifi模块反馈回来的数据 + - + 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 } MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 179 ---- - CONSTANT SIZE = 22 ---- + CODE SIZE = 1000 ---- + CONSTANT SIZE = 57 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- - DATA SIZE = 25 2 + DATA SIZE = 53 6 IDATA SIZE = ---- ---- - BIT SIZE = ---- ---- + BIT SIZE = 1 ---- END OF MODULE INFORMATION. diff --git a/main.OBJ b/main.OBJ index 37bddce..1481027 100644 Binary files a/main.OBJ and b/main.OBJ differ diff --git a/main.c b/main.c index 75f8b5e..08863f2 100644 --- a/main.c +++ b/main.c @@ -4,19 +4,41 @@ #include "pwm.h" #include "i2c.h" #include "IRIN.h" +#include +#include +# include -unsigned char PuZh[]=" Pechin Science "; -extern uint journey; -extern uint money; -extern uchar sudu; -unsigned int b12; -unsigned int c12; +#define uint unsigned int +#define uchar unsigned char +typedef unsigned char uint8; +typedef unsigned int uint16; -unsigned int b123; -unsigned int c123; -extern unsigned char pwm_left; -unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'}; +extern uint mileage; +extern uint speed; + +uint model = 0; + +extern unsigned char pwm_value; + + +struct UserInfo{ + int height; + int weight; + int target_mileage; + int target_speed; +}; + +uchar set = 0; + +struct UserInfo usr; + +/*****************相关变量**************/ + +uchar Receive; +uchar Recive_table[40]; //用于接收wifi模块反馈到MCU上的数据 + +bit accept = 0; void delayms(unsigned int ms) { @@ -31,89 +53,164 @@ void delayms(unsigned int ms) } } -void Uart_Init() //使用定时器1作为波特率发生器(STC89C52、STC89C51、AT89C51等均可) +void Uart_Init() { - TMOD = 0x20 | 0x01; - - SCON = 0x50; //设置串行方式 - - TH1 = 0xFD; //波特率9600 - - TL1 = TH1; - - PCON = 0x00; - - EA = 1; //总中断打开 - - ES = 1; //开串口中断 - - TR1 = 1; //启动定时器1 - + TMOD = 0x20 | 0x01; + SCON = 0x50; + TH1 = 0xFD; + TL1 = TH1; + PCON = 0x00; + EA = 1; + ES = 1; + TR1 = 1; } void us_delay(uchar t) - { - - while(t--); - + while(t--); } void Send_Uart(uchar value) - { + ES=0; + TI=0; + SBUF=value; + while(TI==0); + TI=0; + ES=1; +} - ES=0; //关闭串口中断 - - TI=0; //清发送完毕中断请求标志位 - - SBUF=value; //发送 - - while(TI==0); //等待发送完毕 - - TI=0; //清发送完毕中断请求标志位 +void Bluetooth_Set(uchar *puf) +{ + while(*puf!='\0') + { + Send_Uart(*puf); + us_delay(5); + puf++; + } +} - ES=1; //允许串口中断 -} +void saveUserInfo(){ + int target = 0; + target = usr.height >> 8; + At24c02Write(3, target); + delayms(2); + target = (usr.height) & 0x00ff; + At24c02Write(4, target); + delayms(2); + target = (usr.weight) >> 8; + At24c02Write(5, target); + delayms(2); + target = (usr.weight) & 0x00ff; + At24c02Write(6, target); + delayms(2); +} -void ESP8266_Set(uchar *puf) // 数组指针*puf指向字符串数组 -{ +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); + Bluetooth_Set(Recive_table); + }else if(strstr(Recive_table, "set:") != NULL){ + target1 = strstr(Recive_table, "(") - Recive_table; + target2 = strstr(Recive_table, ",") - Recive_table; + usr.height = 0; + for(i = target1 + 1; i < target2; i++){ + usr.height = usr.height * 10 + (*(Recive_table + i) - 0x30); + } + Bluetooth_Set(Recive_table); + target1 = strstr(Recive_table, ",") - Recive_table; + target2 = strstr(Recive_table, ")") - Recive_table; + usr.weight = 0; + for(i = target1 + 1; i < target2; i++){ + usr.weight = usr.weight * 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 ; + saveUserInfo(); + } + memset(Recive_table, 0, sizeof(Recive_table)); + accept = 0; + } +} - while(*puf!='\0') //遇到空格跳出循环 +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); + } +} - { - Send_Uart(*puf); //向WIFI模块发送控制指令。 - - us_delay(5); - puf++; - } +void WriteData(){ + int target = mileage >> 8; + At24c02Write(1, target); + delayms(2); + target = mileage & 0x00ff; + At24c02Write(2, target); + delayms(2); } void main(void) { - int i = 0; InitLcd1602(); IRIN_Init(); Uart_Init(); - pwm_left=10; - b12=At24c02Read(1); - c12=At24c02Read(8); - money = 120; - money=At24c02Read(5); - journey = (b12<<8)|c12; - + ReadData(); while(1) { run(); - ESP8266_Set("1111\r\n"); display(); - keypros(); - Delay10us(); + Key_scan(); + Bluetooth_Accept(); + WriteData(); } +} + +void Uart_Interrupt() interrupt 4 +{ + static uchar i=0; + if( accept) return; + if(RI==1) { + RI=0; + Receive=SBUF; //MCU接收wifi模块反馈回来的数据 + Recive_table[i]=Receive; + if((Recive_table[i]=='\r')){ + i=0; + accept = 1; + } + else i++; //遇到换行 重新装值 + } + else TI=0; } \ No newline at end of file diff --git a/pro b/pro index ff04325..4840167 100644 Binary files a/pro and b/pro differ diff --git a/pro.M51 b/pro.M51 index 3d3f809..e85444d 100644 --- a/pro.M51 +++ b/pro.M51 @@ -1,4 +1,4 @@ -BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 1 +BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY: @@ -19,12 +19,24 @@ INPUT MODULES INCLUDED: 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 (STRSTR) + D:\KEIL_V5\C51\LIB\C51S.LIB (?C?MEMSET) D:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT) @@ -36,15 +48,19 @@ LINK MAP OF MODULE: pro (MAIN) * * * * * * * D A T A M E M O R Y * * * * * * * REG 0000H 0008H ABSOLUTE "REG BANK 0" - DATA 0008H 0007H UNIT ?DT?PWM - DATA 000FH 0005H UNIT _DATA_GROUP_ - 0014H 000CH *** GAP *** - BIT 0020H.0 0000H.3 UNIT ?BI?IRIN - BIT 0020H.3 0000H.2 UNIT ?BI?PWM - 0020H.5 0000H.3 *** GAP *** - DATA 0021H 0019H UNIT ?DT?MAIN - DATA 003AH 0019H UNIT ?DT?IRIN - IDATA 0053H 0001H UNIT ?STACK + DATA 0008H 000BH UNIT ?DT?IRIN + DATA 0013H 0003H UNIT ?DT?PWM + 0016H 000AH *** GAP *** + BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_ + 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 + * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 0003H ABSOLUTE @@ -53,145 +69,159 @@ LINK MAP OF MODULE: pro (MAIN) CODE 000BH 0003H ABSOLUTE 000EH 0005H *** GAP *** CODE 0013H 0003H ABSOLUTE - 0016H 0005H *** GAP *** - CODE 001BH 0003H ABSOLUTE - CODE 001EH 03EBH UNIT ?C?LIB_CODE - CODE 0409H 01EAH UNIT ?PR?DISPLAY?IRIN - CODE 05F3H 016DH UNIT ?PR?TIME0?IRIN - CODE 0760H 008CH UNIT ?C_C51STARTUP - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 2 - - - CODE 07ECH 0067H UNIT ?PR?KEYPROS?IRIN - CODE 0853H 0056H UNIT ?PR?MAIN?MAIN - CODE 08A9H 004EH UNIT ?C_INITSEG - CODE 08F7H 0041H UNIT ?PR?_I2CSENDBYTE?I2C - CODE 0938H 0028H UNIT ?PR?_LCDSHOWSTR?LCD - CODE 0960H 0026H UNIT ?PR?I2CREADBYTE?I2C - CODE 0986H 0022H UNIT ?PR?_AT24C02READ?I2C - CODE 09A8H 0020H UNIT ?PR?_DELAY?PWM - CODE 09C8H 001EH UNIT ?PR?PWM_OUT_LEFT_MOTO?PWM - CODE 09E6H 001EH UNIT ?PR?PWM_OUT_RIGHT_MOTO?PWM - CODE 0A04H 001DH UNIT ?PR?_DISPLAYONECHAR?LCD - CODE 0A21H 001CH UNIT ?PR?TIMER1?PWM - CODE 0A3DH 001AH UNIT ?PR?_DELAYMS?MAIN - CODE 0A57H 0019H UNIT ?PR?_AT24C02WRITE?I2C - CODE 0A70H 0018H UNIT ?PR?_ESP8266_SET?MAIN - CODE 0A88H 0016H UNIT ?PR?UART_INIT?MAIN - CODE 0A9EH 0016H UNIT ?CO?MAIN - CODE 0AB4H 0016H UNIT ?CO?IRIN - CODE 0ACAH 0014H UNIT ?PR?INITLCD1602?LCD - CODE 0ADEH 0014H UNIT ?PR?IRIN_INIT?IRIN - CODE 0AF2H 0012H UNIT ?PR?READ_BUSY?LCD - CODE 0B04H 0012H UNIT ?PR?_LCDSETCURSOR?LCD - CODE 0B16H 0010H UNIT ?PR?_LCD1602_WRITE_CMD?LCD - CODE 0B26H 0010H UNIT ?PR?_LCD1602_WRITE_DATA?LCD - CODE 0B36H 000FH UNIT ?PR?RUN?PWM - CODE 0B45H 000FH UNIT ?PR?BACKRUN?PWM - CODE 0B54H 000FH UNIT ?PR?I2CSTART?I2C - CODE 0B63H 000FH UNIT ?PR?_DELAY11?IRIN - CODE 0B72H 000EH UNIT ?PR?_SEND_UART?MAIN - CODE 0B80H 000EH UNIT ?PR?DELAY10US?I2C - CODE 0B8EH 000DH UNIT ?PR?INT1?IRIN - CODE 0B9BH 000BH UNIT ?PR?LEFTRUN?PWM - CODE 0BA6H 000BH UNIT ?PR?RIGHTRUN?PWM - CODE 0BB1H 000AH UNIT ?PR?I2CSTOP?I2C + 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 OVERLAY MAP OF MODULE: pro (MAIN) -SEGMENT DATA_GROUP - +--> CALLED SEGMENT START LENGTH ---------------------------------------------------- -?PR?TIMER1?PWM ----- ----- - +--> ?PR?PWM_OUT_RIGHT_MOTO?PWM - -*** NEW ROOT *************************************************** - -?PR?TIME0?IRIN ----- ----- - +--> ?PR?_AT24C02WRITE?I2C - +--> ?PR?_DELAY11?IRIN - -?PR?_AT24C02WRITE?I2C ----- ----- - +--> ?PR?I2CSTART?I2C - +--> ?PR?_I2CSENDBYTE?I2C - +--> ?PR?I2CSTOP?I2C - - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 3 +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?I2CSTART?I2C ----- ----- - +--> ?PR?DELAY10US?I2C - -?PR?_I2CSENDBYTE?I2C ----- ----- - +--> ?PR?DELAY10US?I2C - -?PR?I2CSTOP?I2C ----- ----- - +--> ?PR?DELAY10US?I2C +----------------------------------------------------------------------- +?PR?TIME0?IRIN ----- ----- ----- ----- + +--> ?PR?PWM_OUT_RIGHT_MOTO?PWM *** NEW ROOT *************************************************** -?C_C51STARTUP ----- ----- +?C_C51STARTUP ----- ----- ----- ----- +--> ?PR?MAIN?MAIN +--> ?C_INITSEG -?PR?MAIN?MAIN 000FH 0002H +?PR?MAIN?MAIN ----- ----- ----- ----- +--> ?PR?INITLCD1602?LCD +--> ?PR?IRIN_INIT?IRIN +--> ?PR?UART_INIT?MAIN - +--> ?PR?_AT24C02READ?I2C + +--> ?PR?READDATA?MAIN +--> ?PR?RUN?PWM - +--> ?CO?MAIN - +--> ?PR?_ESP8266_SET?MAIN +--> ?PR?DISPLAY?IRIN - +--> ?PR?KEYPROS?IRIN - +--> ?PR?DELAY10US?I2C + +--> ?PR?KEY_SCAN?IRIN + +--> ?PR?BLUETOOTH_ACCEPT?MAIN + +--> ?PR?WRITEDATA?MAIN -?PR?INITLCD1602?LCD ----- ----- +?PR?INITLCD1602?LCD ----- ----- ----- ----- +--> ?PR?_LCD1602_WRITE_CMD?LCD -?PR?_LCD1602_WRITE_CMD?LCD ----- ----- +?PR?_LCD1602_WRITE_CMD?LCD ----- ----- ----- ----- +--> ?PR?READ_BUSY?LCD -?PR?_AT24C02READ?I2C ----- ----- +?PR?READDATA?MAIN ----- ----- ----- ----- + +--> ?PR?_AT24C02READ?I2C + +--> ?PR?_AT24C02WRITE?I2C + +--> ?PR?_DELAYMS?MAIN + +?PR?_AT24C02READ?I2C ----- ----- ----- ----- +--> ?PR?I2CSTART?I2C +--> ?PR?_I2CSENDBYTE?I2C +--> ?PR?I2CREADBYTE?I2C +--> ?PR?I2CSTOP?I2C -?PR?I2CREADBYTE?I2C ----- ----- +?PR?I2CSTART?I2C ----- ----- ----- ----- +--> ?PR?DELAY10US?I2C -?PR?_ESP8266_SET?MAIN ----- ----- - +--> ?PR?_SEND_UART?MAIN - +--> ?PR?_US_DELAY?MAIN +?PR?_I2CSENDBYTE?I2C ----- ----- ----- ----- + +--> ?PR?DELAY10US?I2C -?PR?DISPLAY?IRIN ----- ----- - +--> ?PR?_AT24C02READ?I2C +?PR?I2CREADBYTE?I2C ----- ----- ----- ----- + +--> ?PR?DELAY10US?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 + + +--> ?CO?IRIN +--> ?PR?_LCDSHOWSTR?LCD +--> ?PR?_LCD1602_WRITE_DATA?LCD - +--> ?PR?_AT24C02WRITE?I2C -?PR?_LCDSETCURSOR?LCD ----- ----- +?PR?_LCDSETCURSOR?LCD ----- ----- ----- ----- +--> ?PR?_LCD1602_WRITE_CMD?LCD - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 4 - - -?PR?_LCDSHOWSTR?LCD 0011H 0003H +?PR?_LCDSHOWSTR?LCD ----- ----- 0057H 0003H +--> ?PR?_LCDSETCURSOR?LCD +--> ?PR?_LCD1602_WRITE_DATA?LCD -?PR?_LCD1602_WRITE_DATA?LCD ----- ----- +?PR?_LCD1602_WRITE_DATA?LCD ----- ----- ----- ----- +--> ?PR?READ_BUSY?LCD -?PR?KEYPROS?IRIN ----- ----- +?PR?KEY_SCAN?IRIN ----- ----- ----- ----- +--> ?PR?_DELAY11?IRIN - +--> ?PR?_AT24C02READ?I2C + +?PR?BLUETOOTH_ACCEPT?MAIN ----- ----- 0057H 0006H + +--> ?CO?MAIN + +--> ?PR?_STRSTR?STRSTR + +--> ?PR?PRINTF?PRINTF + +--> ?PR?_BLUETOOTH_SET?MAIN + +--> ?PR?SAVEUSERINFO?MAIN + +?PR?_STRSTR?STRSTR ----- ----- 005DH 000CH + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 005DH 001CH + +--> ?PR?PUTCHAR?PUTCHAR + +?PR?_BLUETOOTH_SET?MAIN ----- ----- ----- ----- + +--> ?PR?_SEND_UART?MAIN + +--> ?PR?_US_DELAY?MAIN + +?PR?SAVEUSERINFO?MAIN ----- ----- ----- ----- + +--> ?PR?_AT24C02WRITE?I2C + +--> ?PR?_DELAYMS?MAIN + +?PR?WRITEDATA?MAIN ----- ----- ----- ----- + +--> ?PR?_AT24C02WRITE?I2C + +--> ?PR?_DELAYMS?MAIN @@ -203,180 +233,305 @@ 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 B:00A8H.7 PUBLIC EA - D:0021H PUBLIC PuZh - C:0B72H PUBLIC _Send_Uart - C:0A88H PUBLIC Uart_Init + 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 B:00A8H.4 PUBLIC ES + B:0098H.0 PUBLIC RI B:0098H.1 PUBLIC TI - C:0853H PUBLIC main + C:139AH PUBLIC main D:0099H PUBLIC SBUF D:0087H PUBLIC PCON D:0098H PUBLIC SCON D:0089H PUBLIC TMOD - D:0032H PUBLIC b12 - D:0034H PUBLIC c12 + D:0025H PUBLIC Receive + C:1382H PUBLIC _Bluetooth_Set + D:0026H PUBLIC Recive_table + D:004EH PUBLIC set D:008DH PUBLIC TH1 - C:0A70H PUBLIC _ESP8266_Set D:008BH PUBLIC TL1 + C:11D1H PUBLIC Uart_Interrupt B:0088H.6 PUBLIC TR1 C:0003H PUBLIC _us_delay - C:0AA5H PUBLIC ASCII - C:0A3DH PUBLIC _delayms - D:0036H PUBLIC b123 - D:0038H PUBLIC c123 + D:004FH PUBLIC usr + C:10DBH PUBLIC saveUserInfo + C:0AF9H PUBLIC Bluetooth_Accept + C:1362H 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 ------- PROC _DELAYMS D:0006H SYMBOL ms ------- DO D:0004H SYMBOL i D:0005H SYMBOL j ------- ENDDO - C:0A3DH LINE# 21 - C:0A3DH LINE# 22 - C:0A3DH LINE# 23 - C:0A3FH LINE# 24 - C:0A43H LINE# 25 - C:0A43H LINE# 26 - C:0A47H LINE# 27 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 5 - - - C:0A47H LINE# 28 - C:0A49H LINE# 29 - C:0A4FH LINE# 31 - C:0A56H LINE# 32 + 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 ------- ENDPROC _DELAYMS ------- PROC UART_INIT - C:0A88H LINE# 34 - C:0A88H LINE# 35 - C:0A88H LINE# 36 - C:0A8BH LINE# 38 - C:0A8EH LINE# 40 - C:0A91H LINE# 42 - C:0A94H LINE# 44 - C:0A97H LINE# 46 - C:0A99H LINE# 48 - C:0A9BH LINE# 50 - C:0A9DH LINE# 52 + 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 ------- ENDPROC UART_INIT ------- PROC _US_DELAY D:0007H SYMBOL t - C:0003H LINE# 54 - C:0003H LINE# 56 - C:0003H LINE# 58 - C:0009H LINE# 60 + C:0003H LINE# 68 + C:0003H LINE# 69 + C:0003H LINE# 70 + C:0009H LINE# 71 ------- ENDPROC _US_DELAY ------- PROC _SEND_UART D:0007H SYMBOL value - C:0B72H LINE# 62 - C:0B72H LINE# 64 - C:0B72H LINE# 66 - C:0B74H LINE# 68 - C:0B76H LINE# 70 - C:0B78H LINE# 72 - C:0B7BH LINE# 74 - C:0B7DH LINE# 76 - C:0B7FH LINE# 78 + 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 ------- ENDPROC _SEND_UART - ------- PROC _ESP8266_SET + C:137CH SYMBOL L?0052 + ------- PROC L?0051 + ------- ENDPROC L?0051 + C:137CH SYMBOL L?0052 + ------- PROC _BLUETOOTH_SET D:0001H SYMBOL puf - C:0A70H LINE# 80 - C:0A70H LINE# 82 - C:0A70H LINE# 84 - C:0A76H LINE# 86 - C:0A76H LINE# 88 - C:0A79H LINE# 90 - C:0A7EH LINE# 92 - C:0A85H LINE# 94 - C:0A87H LINE# 96 - ------- ENDPROC _ESP8266_SET - ------- PROC MAIN + 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 + ------- 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 + ------- 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 + ------- 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 + ------- 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 + ------- ENDPROC READDATA + ------- PROC WRITEDATA ------- DO - D:000FH SYMBOL i + D:0006H SYMBOL target ------- ENDDO - C:0853H LINE# 98 - C:0853H LINE# 99 - C:0853H LINE# 100 - C:0858H LINE# 101 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 6 - - - C:085BH LINE# 102 - C:085EH LINE# 103 - C:0861H LINE# 104 - C:0864H LINE# 105 - C:086EH LINE# 106 - C:0878H LINE# 107 - C:087EH LINE# 108 - C:0888H LINE# 109 - C:0892H LINE# 111 - C:0892H LINE# 112 - C:0892H LINE# 113 - C:0895H LINE# 114 - C:089EH LINE# 115 - C:08A1H LINE# 116 - C:08A4H LINE# 117 - C:08A7H LINE# 118 + 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 + ------- 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 ------- 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 + ------- ENDPROC UART_INTERRUPT ------- ENDMOD MAIN ------- MODULE LCD C:0000H SYMBOL _ICE_DUMMY_ - C:0A04H PUBLIC _DisplayOneChar + C:13B7H PUBLIC _DisplayOneChar + BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 9 + + D:0080H PUBLIC P0 D:00A0H PUBLIC P2 - C:0AF2H PUBLIC Read_Busy + C:1445H PUBLIC Read_Busy B:0080H.5 PUBLIC LCD1602_EN B:0080H.7 PUBLIC LCD1602_RS B:0080H.6 PUBLIC LCD1602_RW - C:0B26H PUBLIC _Lcd1602_Write_Data - C:0B16H PUBLIC _Lcd1602_Write_Cmd - C:0B04H PUBLIC _LcdSetCursor - C:0938H PUBLIC _LcdShowStr - C:0ACAH PUBLIC InitLcd1602 + 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 ------- DO D:0007H SYMBOL sta ------- ENDDO - C:0AF2H LINE# 4 - C:0AF2H LINE# 5 - C:0AF2H LINE# 7 - C:0AF5H LINE# 8 - C:0AF7H LINE# 9 - C:0AF9H LINE# 11 - C:0AF9H LINE# 12 - C:0AFBH LINE# 13 - C:0AFDH LINE# 14 - C:0AFFH LINE# 15 - C:0B03H LINE# 16 + 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:0B16H LINE# 18 - C:0B18H LINE# 19 - C:0B18H LINE# 20 - C:0B1BH LINE# 21 - C:0B1DH LINE# 22 - C:0B1FH LINE# 23 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 7 - - - C:0B21H LINE# 24 - C:0B23H LINE# 25 - C:0B25H LINE# 26 + 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:0B26H LINE# 28 - C:0B28H LINE# 29 - C:0B28H LINE# 30 - C:0B2BH LINE# 31 - C:0B2DH LINE# 32 - C:0B2FH LINE# 33 - C:0B31H LINE# 34 - C:0B33H LINE# 35 - C:0B35H LINE# 36 + 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 @@ -384,234 +539,165 @@ SYMBOL TABLE OF MODULE: pro (MAIN) ------- DO D:0004H SYMBOL addr ------- ENDDO - C:0B04H LINE# 38 - C:0B04H LINE# 39 - C:0B04H LINE# 41 - C:0B07H LINE# 42 - C:0B0BH LINE# 44 - C:0B0FH LINE# 46 + 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:0A04H LINE# 50 - C:0A08H LINE# 51 - C:0A08H LINE# 52 - C:0A0BH LINE# 53 - C:0A0EH LINE# 54 - C:0A14H LINE# 55 - C:0A17H LINE# 56 - C:0A1CH LINE# 57 + 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:0011H SYMBOL str - C:0938H LINE# 61 - C:093EH LINE# 62 - C:093EH LINE# 63 - C:0941H LINE# 64 - C:094CH LINE# 65 - C:094CH LINE# 66 - C:095DH LINE# 67 - C:095FH LINE# 68 + 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:0ACAH LINE# 70 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 8 - - - C:0ACAH LINE# 71 - C:0ACAH LINE# 72 - C:0ACFH LINE# 73 - C:0AD4H LINE# 74 - C:0AD9H LINE# 75 + 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 ------- ENDMOD LCD ------- MODULE PWM C:0000H SYMBOL _ICE_DUMMY_ D:0080H PUBLIC P0 + D:0090H PUBLIC P1 D:00B0H PUBLIC P3 - C:0B9BH PUBLIC leftrun - D:0008H PUBLIC pwm_val_left - C:09A8H PUBLIC _delay - C:09E6H PUBLIC pwm_out_right_moto - C:09C8H PUBLIC pwm_out_left_moto - B:0080H.4 PUBLIC IN1 - B:0080H.5 PUBLIC IN2 - B:0080H.6 PUBLIC IN3 - B:0080H.7 PUBLIC IN4 - B:0020H.3 PUBLIC Right_moto_stop - D:008DH PUBLIC TH1 - D:008BH PUBLIC TL1 - C:0A21H PUBLIC timer1 - C:0B36H PUBLIC run - B:0020H.4 PUBLIC Left_moto_stop + C:131FH PUBLIC _delay + C:12FEH PUBLIC pwm_out_right_moto + B:0090H.0 PUBLIC IN1 + B:0090H.1 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 - D:0009H PUBLIC time1 - D:000BH PUBLIC pwm_left - B:00B0H.5 PUBLIC Left_moto_pwm - D:000CH PUBLIC push_val_right - C:0B45H PUBLIC backrun - D:000DH PUBLIC push_val_left - C:0BA6H PUBLIC rightrun - D:000EH PUBLIC pwm_val_right + 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 ------- DO D:0004H SYMBOL x D:0002H SYMBOL y ------- ENDDO - C:09A8H LINE# 18 - C:09A8H LINE# 19 - C:09A8H LINE# 21 - C:09B2H LINE# 22 - C:09C7H LINE# 23 + C:131FH LINE# 12 + C:131FH LINE# 13 + C:131FH LINE# 15 + C:1329H LINE# 16 + C:133EH LINE# 17 ------- ENDPROC _DELAY ------- PROC RUN - C:0B36H LINE# 26 - C:0B36H LINE# 27 - C:0B36H LINE# 28 - C:0B39H LINE# 29 - C:0B3CH LINE# 30 - C:0B40H LINE# 31 - C:0B44H LINE# 32 + 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 ------- ENDPROC RUN - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 9 - - - ------- PROC BACKRUN - C:0B45H LINE# 34 - C:0B45H LINE# 35 - C:0B45H LINE# 36 - C:0B48H LINE# 37 - C:0B4BH LINE# 38 - C:0B4FH LINE# 39 - C:0B53H LINE# 40 - ------- ENDPROC BACKRUN - ------- PROC LEFTRUN - C:0B9BH LINE# 44 - C:0B9BH LINE# 45 - C:0B9BH LINE# 46 - C:0B9EH LINE# 47 - C:0BA1H LINE# 48 - C:0BA5H LINE# 49 - ------- ENDPROC LEFTRUN - ------- PROC RIGHTRUN - C:0BA6H LINE# 53 - C:0BA6H LINE# 54 - C:0BA6H LINE# 55 - C:0BA9H LINE# 56 - C:0BACH LINE# 57 - C:0BB0H LINE# 58 - ------- ENDPROC RIGHTRUN - ------- PROC PWM_OUT_LEFT_MOTO - C:09C8H LINE# 61 - C:09C8H LINE# 62 - C:09C8H LINE# 63 - C:09CBH LINE# 64 - C:09CBH LINE# 65 - C:09D2H LINE# 66 - C:09D2H LINE# 67 - C:09D4H LINE# 68 - C:09D6H LINE# 70 - C:09D6H LINE# 71 - C:09D8H LINE# 72 - C:09D8H LINE# 73 - C:09DFH LINE# 74 - C:09E2H LINE# 75 - C:09E3H LINE# 77 - C:09E3H LINE# 78 - C:09E5H LINE# 79 - C:09E5H LINE# 80 - ------- ENDPROC PWM_OUT_LEFT_MOTO ------- PROC PWM_OUT_RIGHT_MOTO - C:09E6H LINE# 83 - C:09E6H LINE# 84 - C:09E6H LINE# 85 - C:09E9H LINE# 86 - C:09E9H LINE# 87 - C:09F0H LINE# 88 - C:09F0H LINE# 89 - C:09F2H LINE# 90 - C:09F4H LINE# 92 - C:09F4H LINE# 93 - C:09F6H LINE# 94 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 10 - - - C:09F6H LINE# 95 - C:09FDH LINE# 96 - C:0A00H LINE# 97 - C:0A01H LINE# 99 - C:0A01H LINE# 100 - C:0A03H LINE# 101 - C:0A03H LINE# 102 + 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 ------- ENDPROC PWM_OUT_RIGHT_MOTO - ------- PROC TIMER1 - C:0A21H LINE# 104 - C:0A25H LINE# 106 - C:0A28H LINE# 107 - C:0A2BH LINE# 108 - C:0A33H LINE# 110 - C:0A35H LINE# 112 - C:0A38H LINE# 113 - ------- ENDPROC TIMER1 ------- ENDMOD PWM ------- MODULE I2C C:0000H SYMBOL _ICE_DUMMY_ D:0080H PUBLIC P0 - C:08F7H PUBLIC _I2cSendByte - C:0BB1H PUBLIC I2cStop - C:0B85H PUBLIC Delay10us + C:111DH PUBLIC _I2cSendByte + C:14BFH PUBLIC I2cStop + C:14ABH PUBLIC Delay10us B:0080H.0 PUBLIC SDA - C:0986H PUBLIC _At24c02Read + C:12DCH PUBLIC _At24c02Read B:0080H.1 PUBLIC SCL - C:0B54H PUBLIC I2cStart - C:0A57H PUBLIC _At24c02Write - C:0960H PUBLIC I2cReadByte - C:0B80H SYMBOL L?0024 + 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 ------- PROC L?0023 ------- ENDPROC L?0023 - C:0B80H SYMBOL L?0024 + C:14A6H SYMBOL L?0024 ------- PROC DELAY10US ------- DO D:0006H SYMBOL a D:0007H SYMBOL b ------- ENDDO - C:0B85H LINE# 10 - C:0B85H LINE# 11 - C:0B85H LINE# 13 - C:0B87H LINE# 14 - C:0B8DH LINE# 16 + C:14ABH LINE# 10 + C:14ABH LINE# 11 + C:14ABH LINE# 13 + C:14ADH LINE# 14 + C:14B3H LINE# 16 ------- ENDPROC DELAY10US ------- PROC I2CSTART - C:0B54H LINE# 25 - C:0B54H LINE# 26 - C:0B54H LINE# 27 - C:0B56H LINE# 28 - C:0B56H LINE# 29 - C:0B56H LINE# 30 - C:0B59H LINE# 31 - C:0B5BH LINE# 32 - C:0B5EH LINE# 33 - C:0B60H LINE# 34 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 11 - - + 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 ------- ENDPROC I2CSTART ------- PROC I2CSTOP - C:0BB1H LINE# 44 - C:0BB1H LINE# 45 - C:0BB1H LINE# 46 - C:0BB3H LINE# 47 - C:0BB3H LINE# 48 - C:0BB3H LINE# 49 - C:0BB6H LINE# 50 - C:0BB8H LINE# 51 + 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 ------- ENDPROC I2CSTOP ------- PROC _I2CSENDBYTE D:0005H SYMBOL dat @@ -619,332 +705,310 @@ SYMBOL TABLE OF MODULE: pro (MAIN) D:0003H SYMBOL a D:0002H SYMBOL b ------- ENDDO - C:08F7H LINE# 61 - C:08F9H LINE# 62 - C:08F9H LINE# 63 - C:08FCH LINE# 64 - C:08FCH LINE# 65 - C:08FCH LINE# 66 - C:0907H LINE# 67 - C:090BH LINE# 68 - C:090BH LINE# 69 - C:090BH LINE# 70 - C:090EH LINE# 71 - C:0910H LINE# 72 - C:0913H LINE# 73 - C:0917H LINE# 74 - C:0919H LINE# 75 - C:091CH LINE# 76 - C:091EH LINE# 77 - C:0921H LINE# 78 - C:0921H LINE# 79 - C:0922H LINE# 80 - C:0928H LINE# 81 - C:0928H LINE# 82 - C:092AH LINE# 83 - C:092DH LINE# 84 - C:0930H LINE# 85 - C:0930H LINE# 86 - C:0930H LINE# 87 - C:0932H LINE# 88 - C:0935H LINE# 89 - C:0937H LINE# 90 + 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 ------- ENDPROC _I2CSENDBYTE ------- PROC I2CREADBYTE ------- DO D:0005H SYMBOL a D:0004H SYMBOL dat ------- ENDDO - C:0960H LINE# 99 - C:0960H LINE# 100 - C:0960H LINE# 101 - C:0963H LINE# 102 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 12 - - - C:0965H LINE# 103 - C:0968H LINE# 104 - C:0968H LINE# 105 - C:0968H LINE# 106 - C:096AH LINE# 107 - C:096DH LINE# 108 - C:0971H LINE# 109 - C:0977H LINE# 110 - C:097AH LINE# 111 - C:097CH LINE# 112 - C:097FH LINE# 113 - C:0983H LINE# 114 - C:0985H LINE# 115 + 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 ------- ENDPROC I2CREADBYTE ------- PROC _AT24C02WRITE D:0001H SYMBOL addr D:0004H SYMBOL dat - C:0A57H LINE# 125 - C:0A5BH LINE# 126 - C:0A5BH LINE# 127 - C:0A5EH LINE# 128 - C:0A63H LINE# 129 - C:0A68H LINE# 130 - C:0A6DH LINE# 131 + 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 ------- ENDPROC _AT24C02WRITE ------- PROC _AT24C02READ D:0004H SYMBOL addr ------- DO D:0005H SYMBOL num ------- ENDDO - C:0986H LINE# 140 - C:0988H LINE# 141 - C:0988H LINE# 143 - C:098BH LINE# 144 - C:0990H LINE# 145 - C:0995H LINE# 146 - C:0998H LINE# 147 - C:099DH LINE# 148 - C:09A2H LINE# 149 - C:09A5H LINE# 150 - C:09A7H LINE# 151 + 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 ------- 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:003AH PUBLIC journey - C:07ECH PUBLIC keypros - D:003CH PUBLIC speed - D:003EH PUBLIC b2 - D:0040H PUBLIC c2 + D:000AH PUBLIC speed B:00B0H.5 PUBLIC k1 - B:00B0H.4 PUBLIC k2 - B:00B0H.2 PUBLIC k4 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 13 - - - B:0020H.0 PUBLIC s0 - B:0020H.1 PUBLIC state - B:0020H.2 PUBLIC flas - C:0ADEH PUBLIC IRIN_Init - D:0042H PUBLIC money - D:0044H PUBLIC count + B:00B0H.2 PUBLIC k2 + C:1431H PUBLIC IRIN_Init + D:000CH PUBLIC count + C:115EH PUBLIC Key_scan D:0089H PUBLIC TMOD - D:0046H PUBLIC sec - D:0047H PUBLIC journey1 - D:0049H PUBLIC sudu - D:004BH PUBLIC r_s + D:000EH PUBLIC r_s B:00A8H.1 PUBLIC ET0 D:008CH PUBLIC TH0 B:00A8H.2 PUBLIC EX1 B:0088H.2 PUBLIC IT1 D:008AH PUBLIC TL0 B:0088H.4 PUBLIC TR0 - D:004DH PUBLIC ms - C:05F3H PUBLIC time0 - D:004EH PUBLIC b - D:0050H PUBLIC c - D:0052H PUBLIC sec1 - C:0B67H PUBLIC _delay11 - C:0409H PUBLIC display - C:0B8EH PUBLIC int1 - C:0B63H SYMBOL L?0035 - ------- PROC L?0034 - ------- ENDPROC L?0034 - C:0B63H SYMBOL L?0035 + D:0010H PUBLIC mileage + D:0012H PUBLIC ms + C:0D0EH PUBLIC time0 + C:14B4H PUBLIC _delay11 + C:0E1CH PUBLIC display + C:0016H PUBLIC int1 ------- PROC _DELAY11 D:0006H SYMBOL i - C:0B67H LINE# 34 - C:0B67H LINE# 35 - C:0B67H LINE# 36 - C:0B71H LINE# 37 + C:14B4H LINE# 15 + C:14B4H LINE# 16 + C:14B4H LINE# 17 + C:14BEH LINE# 18 ------- ENDPROC _DELAY11 ------- PROC IRIN_INIT - C:0ADEH LINE# 39 - C:0ADEH LINE# 40 - C:0ADEH LINE# 41 - C:0AE1H LINE# 42 - C:0AE4H LINE# 43 - C:0AE7H LINE# 44 - C:0AE9H LINE# 45 - C:0AEBH LINE# 46 - C:0AEDH LINE# 47 - C:0AEFH LINE# 48 - C:0AF1H LINE# 49 + 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 ------- ENDPROC IRIN_INIT ------- PROC DISPLAY - C:0409H LINE# 51 - C:0409H LINE# 52 - C:0409H LINE# 53 - C:040FH LINE# 54 - C:040FH LINE# 55 - C:0419H LINE# 56 - C:0424H LINE# 57 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 14 - - - C:0424H LINE# 58 - C:042EH LINE# 59 - C:042EH LINE# 60 - C:0434H LINE# 61 - C:0440H LINE# 62 - C:0459H LINE# 63 - C:0472H LINE# 64 - C:0484H LINE# 65 - C:0491H LINE# 67 - C:049EH LINE# 68 - C:04B7H LINE# 69 - C:04D0H LINE# 70 - C:04E9H LINE# 71 - C:0502H LINE# 72 - C:0514H LINE# 73 - C:0521H LINE# 75 - C:052CH LINE# 76 - C:052CH LINE# 77 - C:0556H LINE# 78 - C:055DH LINE# 79 - C:055DH LINE# 80 - C:056CH LINE# 81 - C:0579H LINE# 82 - C:0592H LINE# 83 - C:05ABH LINE# 84 - C:05C4H LINE# 85 - C:05D1H LINE# 86 - C:05E3H LINE# 88 - C:05F2H LINE# 90 - C:05F2H LINE# 91 + 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 ------- ENDPROC DISPLAY - ------- PROC KEYPROS - C:07ECH LINE# 95 - C:07ECH LINE# 96 - C:07ECH LINE# 97 - C:07EFH LINE# 98 - C:07EFH LINE# 99 - C:07F2H LINE# 100 - C:07F5H LINE# 101 - C:07F5H LINE# 102 - C:07FFH LINE# 104 - C:0809H LINE# 105 - C:0813H LINE# 106 - C:081DH LINE# 108 - C:0827H LINE# 110 - C:0827H LINE# 111 - C:082AH LINE# 112 - C:082AH LINE# 114 - C:082DH LINE# 115 - C:082DH LINE# 116 - C:0830H LINE# 117 - C:0833H LINE# 118 - C:0833H LINE# 119 - C:0835H LINE# 121 - C:0835H LINE# 122 - C:0838H LINE# 123 - C:0838H LINE# 124 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 15 - - - C:083BH LINE# 125 - C:083BH LINE# 126 - C:083EH LINE# 127 - C:0841H LINE# 128 - C:0841H LINE# 129 - C:0848H LINE# 130 - C:0848H LINE# 131 - C:084BH LINE# 132 - C:084DH LINE# 134 - C:084DH LINE# 135 - C:084FH LINE# 136 - C:084FH LINE# 137 - C:084FH LINE# 138 - C:0852H LINE# 139 - C:0852H LINE# 141 - ------- ENDPROC KEYPROS + ------- 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 + ------- ENDPROC KEY_SCAN ------- PROC TIME0 - C:05F3H LINE# 143 - C:0610H LINE# 145 - C:0613H LINE# 146 - C:0616H LINE# 147 - C:0618H LINE# 148 - C:0624H LINE# 151 - C:0631H LINE# 152 - C:0631H LINE# 154 - C:0637H LINE# 155 - C:063DH LINE# 156 - C:0640H LINE# 157 - C:0642H LINE# 158 - C:0648H LINE# 160 - C:064EH LINE# 161 - C:0650H LINE# 162 - C:0697H LINE# 164 - C:069DH LINE# 165 - C:069DH LINE# 166 - C:06B7H LINE# 167 - C:06BEH LINE# 169 - C:06FCH LINE# 170 - C:0702H LINE# 171 - C:0708H LINE# 172 - C:070FH LINE# 174 - C:0712H LINE# 175 - C:0719H LINE# 176 - C:0720H LINE# 177 - C:0722H LINE# 179 - C:0722H LINE# 180 - C:0728H LINE# 181 - C:072EH LINE# 182 - C:0735H LINE# 183 - C:073CH LINE# 184 - C:0743H LINE# 185 - C:0745H LINE# 186 - C:0745H LINE# 187 - C:0745H LINE# 188 + ------- 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 ------- ENDPROC TIME0 ------- PROC INT1 - C:0B8EH LINE# 190 - BL51 BANKED LINKER/LOCATER V6.22 04/06/2022 23:56:38 PAGE 16 - - - C:0B90H LINE# 193 - C:0B98H LINE# 195 + C:0016H LINE# 95 + C:0018H LINE# 97 + C:0020H LINE# 98 ------- ENDPROC INT1 ------- ENDMOD IRIN ------- MODULE ?C?FPADD - C:0025H PUBLIC ?C?FPADD - C:0021H PUBLIC ?C?FPSUB + C:002DH PUBLIC ?C?FPADD + C:0029H PUBLIC ?C?FPSUB ------- ENDMOD ?C?FPADD ------- MODULE ?C?FPMUL - C:0116H PUBLIC ?C?FPMUL + C:011EH PUBLIC ?C?FPMUL ------- ENDMOD ?C?FPMUL ------- MODULE ?C?FPDIV - C:021FH PUBLIC ?C?FPDIV + C:0227H PUBLIC ?C?FPDIV ------- ENDMOD ?C?FPDIV ------- MODULE ?C?FCAST - C:02C6H PUBLIC ?C?FCASTC - C:02C1H PUBLIC ?C?FCASTI - C:02BCH PUBLIC ?C?FCASTL + C:02CEH PUBLIC ?C?FCASTC + C:02C9H PUBLIC ?C?FCASTI + C:02C4H PUBLIC ?C?FCASTL ------- ENDMOD ?C?FCAST ------- MODULE ?C?CASTF - C:02FAH PUBLIC ?C?CASTF + C:0302H PUBLIC ?C?CASTF ------- ENDMOD ?C?CASTF + ------- MODULE PRINTF + D:005DH PUBLIC ?_PRINTF?BYTE + D:005DH PUBLIC ?_SPRINTF?BYTE + C:06ECH PUBLIC _PRINTF + C:06E6H PUBLIC _SPRINTF + ------- 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 - C:037BH PUBLIC ?C?CLDPTR + BL51 BANKED LINKER/LOCATER V6.22 04/08/2022 03:21:38 PAGE 17 + + + C:0525H PUBLIC ?C?CLDPTR ------- ENDMOD ?C?CLDPTR + ------- MODULE ?C?CLDOPTR + C:053EH PUBLIC ?C?CLDOPTR + ------- ENDMOD ?C?CLDOPTR + + ------- MODULE ?C?CSTPTR + C:056BH PUBLIC ?C?CSTPTR + ------- ENDMOD ?C?CSTPTR + ------- MODULE ?C?IMUL - C:0394H PUBLIC ?C?IMUL + C:057DH PUBLIC ?C?IMUL ------- ENDMOD ?C?IMUL ------- MODULE ?C?UIDIV - C:03A6H PUBLIC ?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:03FBH PUBLIC ?C?LNEG + C:061AH PUBLIC ?C?LNEG ------- ENDMOD ?C?LNEG -Program Size: data=71.5 xdata=0 code=2992 + ------- MODULE ?C?PLDIIDATA + C:0628H PUBLIC ?C?PLDIIDATA + ------- ENDMOD ?C?PLDIIDATA + + ------- MODULE ?C?CCASE + C:0638H PUBLIC ?C?CCASE + ------- ENDMOD ?C?CCASE + + ------- MODULE PUTCHAR + C:128FH 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 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/pro.build_log.htm b/pro.build_log.htm index 531353f..e561794 100644 --- a/pro.build_log.htm +++ b/pro.build_log.htm @@ -23,11 +23,12 @@ Project File Date: 05/31/2019

Output:

Build target 'Target 1' -compiling IRIN.c... +compiling main.c... +main.c(195): warning C206: 'Key_scan': missing function-prototype linking... -Program Size: data=71.5 xdata=0 code=2992 +Program Size: data=111.3 xdata=0 code=5315 creating hex file from "pro"... -"pro" - 0 Error(s), 0 Warning(s). +"pro" - 0 Error(s), 1 Warning(s). Build Time Elapsed: 00:00:01 diff --git a/pro.hex b/pro.hex index 5f3b1c3..648f32a 100644 --- a/pro.hex +++ b/pro.hex @@ -1,223 +1,378 @@ -:100A9E00313131310D0A0030313233343536373899 -:060AAE00392E2D4D000061 -:1008A90011212050656368696E20536369656E6321 -:0308B900652000B7 -:100A3D007C64EF4E60131CEC60087D0A1DED60F6C2 -:090A4D0080FAEF1F70EC1E80E935 -:010A5600227D -:100A8800758921759850758DFD858D8BE4F587D214 -:060A9800AFD2ACD28E22A9 +:10119800696E71756972650073706565643A256476 +:1011A800206B6D2F68206D696C656167653A2564F1 +:1011B800206D0D0A007365743A0028002C00290080 +:0911C800534554204F4B0D0A0061 +:0C12090002230000014E00C10901220078 +:04135E007F027E008C +:101362007C64EF4E60131CEC60087D0A1DED60F694 +:0913720080FAEF1F70EC1E80E907 +:01137B00224F +:10140700758921759850758DFD858D8BE4F587D28B +:06141700AFD2ACD28E2220 :07000300AE071FEE70FA22A8 -:0E0B7200C2ACC2998F993099FDC299D2AC22C3 -:100A700012037BFF6011120B727F051200037401D9 -:080A800029F9E43AFA80E922A9 -:10085300E4F50FF510120ACA120ADE120A88750BA4 -:100863000A7F011209867532008F337F08120986C9 -:100873007534008F357542007543787F05120986FC -:100883007542008F43E5334534F53AE535F53B12C0 -:100893000B367BFF7A0A799E120A7012040912073B -:0608A300EC120B8580E958 -:100AF20075A0FFC287D286D285AFA0C285EF20E75C -:010B0200F6FC -:010B030022CF -:100B1600AE07120AF2C287C2868EA0D285C285228D -:100B2600AE07120AF2D287C2868EA0D285C285226D -:100B0400ED7004AC078004EF2440FCEC4480FF0249 -:020B14000B16BE -:100A0400AE07AC0353050153060FED6003430640E4 -:0D0A1400430680AF06120B16AF04020B263E -:100938008B118A128913120B04AB11AA12A9131274 -:10094800037B60130513E5137002051214F91203F3 -:080958007BFF120B2680E22256 -:100ACA007F38120B167F0C120B167F06120B167F3D -:040ADA0001020B16F4 -:1008BC00010800010D00010E00010C00010B00C12C -:0708CC0083C1840209000052 -:1009A800E4FDFCC3ED9FEC9E5015E4FBFA0BBB0085 -:0F09B800010ABA07F8BBD0F50DBD00010C80E4B1 -:0109C700220D -:0F0B3600750D03850B0CC286D287D284C285222F -:0F0B4500750D03750C04D286C287C284D2852237 -:0B0B9B00E4F50D750C04D284C2852225 -:0B0BA600E4F50C750D04C286D2872216 -:1009C800300418E508D3950D5004D2B58002C2B59D -:0E09D800E508C394144006E4F50822C2B522D7 -:1009E600300318E50ED3950C5004D2B48002C2B47D -:0E09F600E50EC394144006E4F50E22C2B422AE -:03001B00020A21B5 -:100A2100C0E0C0D0758DFC758B18050AE50A70020F -:0C0A31000509050E1209E6D0D0D0E03215 -:050B8000120B85D2817B -:080B85007F017E02DEFEDFFAB3 -:010B8D002245 -:0F0B5400D280120B80C280120B85C281020B85EA -:0A0BB100C280120B80D280020B8577 -:0208F700AD074B -:1008F900E4FBFAEDC4131313540124FF9280ED2590 -:10090900E0FD120B80C281120B850BBB08E5D2807A -:10091900120B85D28130800F0AEAD394C840F6C2FF -:0E09290081120B857F0022C281120B857F0197 -:01093700229D -:10096000E4FDFCD280120B85D281120B85EC25E0D0 -:10097000FCA280E4334204120B85C281120B850D68 -:05098000BD08E5AF0415 -:01098500224F -:100A5700AC05A907120B547FA01208F7AF011208C3 -:090A6700F7AF041208F7020BB10D -:02098600AC07BC -:10098800120B547FA01208F7AF041208F7120B5489 -:0F0998007FA11208F7120960AD07120BB1AF056E -:0109A700222D -:100AB40053706565643A004B4D2F68004C3A004D05 -:060AC40000513A002E0073 -:1008D300024200070249000002440000014D0002E9 -:1008E3003C0000024B0000C101C100C102014600EF -:0308F300015200AF -:040B63007FE87E03A6 -:0B0B6700EF1FAC0670011E4C70F62260 -:100ADE00758921758C3C758AB0D2A9D28CD2AFD2D1 -:040AEE00AAD28A22DC -:100409003001030205F27F0A1209867549008F4AF5 -:10041900D3E5439407E5429400400A7F0512098613 -:100429007542008F43E4FDFF120B047BFF7A0A79C2 -:10043900B4E4FDFF120938AE49AF4A7C007D64126D -:1004490003A67C007D0A1203A6ED2430FF120B26B9 -:10045900AE49AF4A7C007D0A1203A67C007D0A12D0 -:1004690003A6ED2430FF120B26AE49AF4A7C007D6E -:100479000A1203A6ED2430FF120B267BFF7A0A79B4 -:10048900BBE4FD7F0A1209387BFF7A0A79C07D0136 -:10049900E4FF120938AE3AAF3B7C277D101203A660 -:1004A9007C007D0A1203A6ED2430FF120B26AE3A1A -:1004B900AF3B7C037DE81203A67C007D0A1203A6EC -:1004C900ED2430FF120B26AE3AAF3B7C007D64125F -:1004D90003A67C007D0A1203A6ED2430FF120B2629 -:1004E900AE3AAF3B7C007D0A1203A67C007D0A125E -:1004F90003A6ED2430FF120B26AE3AAF3B7C007DFC -:100509000A1203A6ED2430FF120B267BFF7A0A7923 -:10051900C37D017F07120938D3E53B94E8E53A9496 -:10052900034031E53B2418FDE53A34FCFCE41202B2 -:10053900C17B6F7A127903783B120116E4FBFA79D1 -:10054900E078401200251202FA8E428F43AD437FB4 -:1005590005120A57AE42AF437C007D0A1203948EFE -:10056900428F437BFF7A0A79C57D017F09120938D9 -:10057900AE42AF437C037DE81203A67C007D0A12DC -:1005890003A6ED2430FF120B26AE42AF437C007D5B -:10059900641203A67C007D0A1203A6ED2430FF1223 -:1005A9000B26AE42AF437C007D0A1203A67C007D78 -:1005B9000A1203A6ED2430FF120B267BFF7A0A7973 -:1005C900C87D017F0E120938AE42AF437C007D0A17 -:1005D9001203A6ED2430FF120B26AE42AF437C0076 -:0A05E9007D0A1203A68E428F432202 -:1007EC0020B43B120B6320B4327F0A120986754980 -:1007FC00008F4A7F01120986753E008F3F7F0812D9 -:10080C0009867540008F41E53F4540F53AE541F5D5 -:10081C003B7F051209867542008F4330B4FD20B52D -:10082C000B120B6320B502D20230B5FD20B21712A9 -:10083C000B6320B20EE50BC394144005750B0180BD -:07084C0002050B30B2FD2292 -:03000B000205F3F8 -:1005F300C0E0C0F0C083C082C0D075D000C000C0CE -:1006030001C002C003C004C005C006C007758C3C0E -:10061300758AB0054DE54D75F00584E5F07002B2BD -:1006230000E54D75F00A84E5F06003020745E546F1 -:1006330060021546E55260021552754D00C2AA8547 -:10064300444B85454C754400754500D2AAAE4BAF6B -:100653004C7C007D06120394AC06AD07E41202C184 -:10066300E4FBFAF9783F120116C004C005C006C0C6 -:1006730007AC3CAD3DE41202C1E4FBFAF9783F124A -:100683000116D003D002D001D0001200251202FAC5 -:100693008E3C8F3D300203020722AC3CAD3DE41299 -:1006A30002C17B9A7A997919783E1201161202FADD -:1006B3008E498F4AAD4A7F0A120A57AC4BAD4CE4C0 -:1006C3001202C1E4FBFA79207840120116E4FBFA26 -:1006D30079A0784112021FC004C005C006C007AC50 -:1006E3003AAD3BE41202C1D003D002D001D00012D4 -:1006F30000251202FA8E3A8F3B853A47853B4875AF -:100703005000853B51AD517F08120A57120B63E528 -:1007130047F54F754E00AD4F7F01120A5780237581 -:100723003A00753B00754200754307AD3B7F0112EC -:100733000A57AD3B7F08120A57AD437F05120A578C -:10074300C202D007D006D005D004D003D002D00116 -:0D075300D000D0D0D082D083D0F0D0E032E2 -:03001300020B8E4F -:0D0B8E00C0E00545E54570020544D0E032A9 -:10001E00020366E86480F8E933E83360110460F0A7 -:10002E00ED33EC337009E8FCE9FDEAFEEBFF220448 -:10003E0060DED3EB9FEA9EE99DE8C2E78CF0C2F743 -:10004E0095F0400CE8CCF8E9CDF9EACEFAEBCFFB0F -:10005E0012033185D0F05804700320D5B3E8047034 -:10006E00075002B2D502037092D5EC0460F7E4CCCF -:10007E00C0E0C398F8603B94186008400DD0E0FBD8 -:10008E00020348E4FBFAC9FC8028E830E406E4C920 -:10009E00FBE4CAFCE830E305E4C9CACBFCE854072C -:1000AE006010F8C3E913F9EA13FAEB13FBEC13FC37 -:1000BE00D8F130F52FC3E49CFCEF9BFFEE9AFEEDDA -:1000CE0099FDD0E0FBEF4E4D4C701222DB03020384 -:1000DE006DEC2CFCEF33FFEE33FEED33FDED30E730 -:1000EE00EB020348EF2BFFEE3AFEED39FDD0E0FBBD -:1000FE0050130BBB0003020370ED13FDEE13FEEF66 -:08010E0013FFEC13FC0203488F -:10011600EC4D6011E8497017ED33EC3304600DE4E3 -:10012600FCFFFEFD22E933E8330470F80203661291 -:10013600033158046009E4CC248150062850090292 -:10014600037028400302036DC0E0EB4A7044B98097 -:1001560006D0E0FB02035CEF4E701CBD8008EBFF8F -:10016600EAFEE9FD80EBE98DF0A4FEE5F00201FF71 -:10017600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89C4 -:10018600F0A42EFFE435F0CD89F0A42DFEE435F081 -:100196008067EF4E7005BD80D780C3EF8BF0A4ACAF -:1001A600F0EE8BF0A42CFCE435F0F8EF8AF0A42CEA -:1001B600E5F038FCE433CB8DF0A42CFCE5F03BF8FD -:1001C600EE8AF0A42CFCE5F038F8E433CF89F0A4ED -:1001D6002CFCE5F038CF3400CE89F0A42FFFE5F0F3 -:1001E6003EFEE433C98DF0A42EFEE5F039CD8AF04B -:1001F600A42FFFE5F03EFEE43DFD33D0E0FB5007C3 -:100206000BBB000F020370EC2CFCEF33FFEE33FE4A -:06021600ED33FD02034878 -:10021C00020370EC5D046005E85904700302036688 -:10022C00120331580460F6EC4860F2EC7004FDFEE9 -:10023C00FF22C860DB2481C85009C39860025006B5 -:10024C0002036D9850CAF582E9294B4A7005AB82BE -:10025C0002035C75F0007C1A7880C3EF9BEE9AED7C -:10026C0099400DC3EF9BFFEE9AFEED99FDE842F02D -:10027C00DC23ACF0D0E0FFD0E0FED0E0FDAB822080 -:10028C00E7101BEB60BAEC2CFCEF33FFEE33FEED0A -:10029C0033FD020348E803F830E705C0F075F000C1 -:1002AC00EF2FFFEE33FEED33FD40B830E7C280AAEE -:1002BC0075F020800E75F010800575F0087D007EBD -:1002CC00007F003392D530D5031203FBEC33401082 -:1002DC00EF33FFEE33FEED33FDEC33FCD5F0ED22C6 -:0E02EC00E5F0247EA2D513CC92E7CDCEFF2202 -:1002FA00EDD2E7CD33EC3392D524814006E4FFFEFC -:10030A00FDFC22FCE4CFCECDCC24E0501174FF805A -:10031A00EDC3CC13CCCD13CDCE13CECF13CF0470F7 -:07032A00F030D5DE0203FBF9 -:10033100E9D2E7C933E833F892D5EDD2E7CD33EC12 -:0703410033FC5002B2D5228B -:10034800EC30E7100FBF000C0EBE00080DBD000416 -:100358000BEB6014A2D5EB13FCED92E7FD2274FFC2 -:10036800FCFDFEFF22E480F8A2D574FF13FC7D801B -:03037800E480EF2F -:0300000002076094 -:0C076000787FE4F6D8FD7581520207A7EF -:10037B00BB010689828A83E0225002E722BBFE0280 -:09038B00E32289828A83E49322B3 -:10039400EF8DF0A4A8F0CF8CF0A428CE8DF0A42E7D -:0203A400FE2237 -:1003A600BC000BBE0029EF8DF084FFADF022E4CC3B -:1003B600F875F008EF2FFFEE33FEEC33FCEE9DEC04 -:1003C600984005FCEE9DFE0FD5F0E9E4CEFD22ED4A -:1003D600F8F5F0EE8420D21CFEADF075F008EF2F94 -:1003E600FFED33FD4007985006D5F0F222C398FD85 -:0503F6000FD5F0EA2222 -:0E03FB00C3E49FFFE49EFEE49DFDE49CFC2213 -:10076C00020853E493A3F8E493A34003F68001F248 -:10077C0008DFF48029E493A3F85407240CC8C3338E -:10078C00C4540F4420C8834004F456800146F6DF5D -:10079C00E4800B01020408102040809008A9E47E3C -:1007AC00019360BCA3FF543F30E509541FFEE49352 -:1007BC00A360010ECF54C025E060A840B8E493A319 -:1007CC00FAE493A3F8E493A3C8C582C8CAC583CA44 -:1007DC00F0A3C8C582C8CAC583CADFE9DEE780BEFC -:0108F6000001 +: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 +: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 :00000001FF diff --git a/pro.uvgui.QY b/pro.uvgui.QY index ba24900..8233d2d 100644 --- a/pro.uvgui.QY +++ b/pro.uvgui.QY @@ -81,7 +81,7 @@ 44 2 - 3 + 1 -32000 -32000 @@ -91,17 +91,17 @@ -1 - 260 - 241 - 2161 - 1319 + 302 + 539 + 2459 + 1305 0 - 690 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000800000000000000010000002A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6300000000056C63642E6300000000BECEA100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6800000000056C63642E6800000000F0A0A100FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6300000000064952494E2E6300000000BCA8E100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6300000000056932632E63000000009CC1B600FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6800000000056932632E6800000000F7B88600FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E63000000000570776D2E6300000000D9ADC200FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6800000000064952494E2E6800000000A5C2D700FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A00009B040000 + 754 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000900000000000000010000002A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6300000000064952494E2E6300000000F0A0A100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E63000000000570776D2E6300000000BCA8E100FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C70776D2E68000000000570776D2E68000000009CC1B600FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6C63642E6300000000056C63642E6300000000F7B88600FFFFFFFF2A453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C4952494E2E6800000000064952494E2E6800000000D9ADC200FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6300000000056932632E6300000000A5C2D700FFFFFFFF29453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303430362D536D61727442696B655C6932632E6800000000056932632E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000450100006E000000FF0400009A040000 @@ -124,7 +124,7 @@ 16 - B902000023010000E5080000E9010000 + C20100000C020000EE070000D2020000 @@ -140,7 +140,7 @@ 0 16 - 03000000660000003D0100006B040000 + 03000000660000003D01000062040000 16 @@ -160,7 +160,7 @@ 0 16 - 03000000660000003D0100006B040000 + 03000000660000003D01000062040000 16 @@ -440,7 +440,7 @@ 0 16 - 03000000660000003D0100006B040000 + 03000000660000003D01000062040000 16 @@ -460,7 +460,7 @@ 0 16 - 03000000660000003D0100006B040000 + 03000000660000003D01000062040000 16 @@ -480,7 +480,7 @@ 0 16 - 000000009C040000000A00004E050000 + 0000000093040000FE04000045050000 16 @@ -520,7 +520,7 @@ 0 16 - 030000009F0400006D07000035050000 + 03000000960400006D0700002C050000 16 @@ -1160,7 +1160,7 @@ 0 16 - 030000009F0400006D07000035050000 + 03000000960400006D0700002C050000 16 @@ -1180,7 +1180,7 @@ 0 16 - 030000009F0400006D07000035050000 + 03000000960400006D0700002C050000 16 @@ -1240,7 +1240,7 @@ 0 16 - 030000009F0400006D07000035050000 + 03000000960400006D0700002C050000 16 @@ -1260,7 +1260,7 @@ 0 16 - 030000009F0400006D07000035050000 + 03000000960400006D0700002C050000 16 @@ -1720,7 +1720,7 @@ 0 16 - 000000004E050000000A000061050000 + 0000000045050000FE04000058050000 16 @@ -1789,14 +1789,14 @@ 3317 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000150100007007000019010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000B902000023010000E5080000E9010000440100004F00000070070000150100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000001030000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A507000023010000E5080000D5030000300600004F000000700700000103000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F0000004401000084040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007501000023010000B5020000BB030000000000004F00000040010000840400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000ED02000070070000F102000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000075010000C5030000E50800009F04000000000000F102000070070000CB03000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000F1020000BC030000CB03000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000084040000000A000088040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000075010000BF030000E5080000850400000000000088040000000A00004E0500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF1346696E6420416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000150100007007000019010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C20100000C020000EE070000D2020000440100004F00000070070000150100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000001030000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000AE0600000C020000EE070000BE040000300600004F000000700700000103000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100007B040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000007E0000000C020000BE010000A4040000000000004F000000400100007B0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000ED02000070070000F102000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007E000000AE040000EE0700008805000000000000F102000070070000CB03000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000F1020000BC030000CB03000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007B040000FE0400007F040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000007E000000A8040000EE0700006E050000000000007F040000FE040000450500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF1346696E6420416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2374 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000363757496000000000000000C00036375740A73656E64546F576966690B676574546F74616C4461790C74696D696E67735B695D2D3E0630783030663006307830303066054750494F4106307866303030054750494F42124775695F44726177466F6E745F4E756D3332066C6162656C320A4750494F5F50696E5F37000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000 + 2493 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000574696D65319600000000000000140003736574084B65795F7363616E076D696C656167650A75696E742073706565640E446973706C61794F6E65436861720541534349490E4163636570745F7375636365737307526563656976650474696D650574696D65310F52696768745F6D6F746F5F73746F700E707573685F76616C5F72696768741170776D5F6F75745F6C6566745F6D6F746F0273300875735F64656C6179036375740A73656E64546F576966690B676574546F74616C4461790C74696D696E67735B695D2D3E063078303066300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000 1423 @@ -1855,72 +1855,81 @@ 0 .\main.c - 0 - 69 - 71 + 28 + 115 + 138 1 0 - .\lcd.c - 0 + lcd.h + 13 + 1 + 50 + 1 + + 0 + + + .\IRIN.c + 9 44 - 70 + 69 1 0 - lcd.h - 13 - 19 - 50 + .\pwm.c + 1 + 1 + 27 1 0 - .\IRIN.c - 0 - 35 - 50 + pwm.h + 19 + 1 + 21 1 0 - .\i2c.c - 0 - 40 - 10 + .\lcd.c + 4 + 1 + 75 1 0 - i2c.h - 6 + IRIN.h + 7 1 - 16 + 10 1 0 - .\pwm.c - 3 - 25 - 14 + .\i2c.c + 0 + 1 + 10 1 0 - IRIN.h - 14 + i2c.h + 6 1 - 14 + 17 1 0 diff --git a/pro.uvopt b/pro.uvopt index a2756c7..a4432e8 100644 --- a/pro.uvopt +++ b/pro.uvopt @@ -191,7 +191,7 @@ 1 1 1 - 1 + 0 0 0 .\main.c @@ -203,7 +203,7 @@ 1 2 1 - 1 + 0 0 0 .\lcd.c @@ -215,7 +215,7 @@ 1 3 1 - 1 + 0 0 0 .\pwm.c diff --git a/pwm.LST b/pwm.LST index 4a5634e..76a3d12 100644 --- a/pwm.LST +++ b/pwm.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 PWM 04/06/2022 22:23:01 PAGE 1 +C51 COMPILER V9.56.0.0 PWM 04/08/2022 03:07:52 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE PWM @@ -9,135 +9,67 @@ line level source 1 #include "pwm.h" 2 - 3 unsigned char pwm_val_left =0;//变量定义 - 4 unsigned char push_val_left =0;// 左电机占空比N/20 - 5 unsigned char pwm_val_right =0; - 6 unsigned char push_val_right=0;// 右电机占空比N/20 - 7 unsigned char pwm_left=0; - 8 - 9 bit Right_moto_stop=1; - 10 bit Left_moto_stop =1; + 3 unsigned char pwm_val_right =0; + 4 unsigned char push_val_right=0; + 5 + 6 unsigned char pwm_value=0; + 7 + 8 extern uint model; + 9 + 10 bit Right_moto_stop = 0; 11 - 12 unsigned int time1=0; - 13 - 14 - 15 - 16 /************************************************************************/ - 17 //延时函数 - 18 void delay(unsigned int k) - 19 { - 20 1 unsigned int x,y; - 21 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 - 52 //右转 - 53 void rightrun(void) - 54 { - 55 1 push_val_right=0; - C51 COMPILER V9.56.0.0 PWM 04/06/2022 22:23:01 PAGE 2 - - 56 1 push_val_left=4; - 57 1 Left_moto_go ; //左电机往前走 - 58 1 } - 59 - 60 - 61 void pwm_out_left_moto(void) - 62 { - 63 1 if(Left_moto_stop) - 64 1 { - 65 2 if(pwm_val_left<=push_val_left) - 66 2 { - 67 3 Left_moto_pwm=1; - 68 3 } - 69 2 else - 70 2 { - 71 3 Left_moto_pwm=0; - 72 3 } - 73 2 if(pwm_val_left>=20) - 74 2 pwm_val_left=0; - 75 2 } - 76 1 else - 77 1 { - 78 2 Left_moto_pwm=0; - 79 2 } - 80 1 } - 81 /******************************************************************/ - 82 /* 右电机调速 */ - 83 void pwm_out_right_moto(void) - 84 { - 85 1 if(Right_moto_stop) - 86 1 { - 87 2 if(pwm_val_right<=push_val_right) - 88 2 { - 89 3 Right_moto_pwm=1; - 90 3 } - 91 2 else - 92 2 { - 93 3 Right_moto_pwm=0; - 94 3 } - 95 2 if(pwm_val_right>=20) - 96 2 pwm_val_right=0; - 97 2 } - 98 1 else - 99 1 { - 100 2 Right_moto_pwm=0; - 101 2 } - 102 1 } - 103 - 104 void timer1()interrupt 3 - 105 { - 106 1 TH1=0XFc; //1Ms定时 - 107 1 TL1=0X18; - 108 1 time1++; - 109 1 // pwm_val_left++; - 110 1 pwm_val_right++; - 111 1 // pwm_out_left_moto(); - 112 1 pwm_out_right_moto(); - 113 1 } - 114 - 115 - 116 - 117 - C51 COMPILER V9.56.0.0 PWM 04/06/2022 22:23:01 PAGE 3 - MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 172 ---- + CODE SIZE = 112 ---- + C51 COMPILER V9.56.0.0 PWM 04/08/2022 03:07:52 PAGE 2 + CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- - DATA SIZE = 7 ---- + DATA SIZE = 3 ---- IDATA SIZE = ---- ---- - BIT SIZE = 2 ---- + BIT SIZE = 1 ---- END OF MODULE INFORMATION. diff --git a/pwm.OBJ b/pwm.OBJ index 2f62303..46d4453 100644 Binary files a/pwm.OBJ and b/pwm.OBJ differ diff --git a/pwm.c b/pwm.c index cad7114..8b6729f 100644 --- a/pwm.c +++ b/pwm.c @@ -1,116 +1,50 @@ #include "pwm.h" -unsigned char pwm_val_left =0;//变量定义 -unsigned char push_val_left =0;// 左电机占空比N/20 unsigned char pwm_val_right =0; -unsigned char push_val_right=0;// 右电机占空比N/20 -unsigned char pwm_left=0; +unsigned char push_val_right=0; -bit Right_moto_stop=1; -bit Left_moto_stop =1; +unsigned char pwm_value=0; -unsigned int time1=0; - - - -/************************************************************************/ -//延时函数 - void delay(unsigned int k) +extern uint model; + +bit Right_moto_stop = 0; + +void delay(unsigned int k) { - unsigned int x,y; + unsigned int x,y; for(x=0;x=20) - pwm_val_left=0; - } - else - { - Left_moto_pwm=0; - } -} -/******************************************************************/ -/* 右电机调速 */ - void pwm_out_right_moto(void) -{ - if(Right_moto_stop) - { - if(pwm_val_right<=push_val_right) - { - Right_moto_pwm=1; - } - else - { - Right_moto_pwm=0; - } - if(pwm_val_right>=20) - pwm_val_right=0; - } - else - { - Right_moto_pwm=0; - } + pwm_val_right++; + if(~Right_moto_stop){ + if(pwm_val_right <= push_val_right) + { + Right_moto_pwm=1; + } + else + { + Right_moto_pwm=0; + } + if(pwm_val_right>=20) pwm_val_right=0; + } + else{ + Right_moto_pwm=0; + } } -void timer1()interrupt 3 -{ - TH1=0XFc; //1Ms定时 - TL1=0X18; - time1++; -// pwm_val_left++; - pwm_val_right++; -// pwm_out_left_moto(); - pwm_out_right_moto(); -} diff --git a/pwm.h b/pwm.h index 55781cf..ed59d07 100644 --- a/pwm.h +++ b/pwm.h @@ -15,26 +15,15 @@ void pwm_out_right_moto(void); //定义小车驱动模块输入IO口 -sbit IN1=P0^4; -sbit IN2=P0^5; -sbit IN3=P0^6; -sbit IN4=P0^7; - +sbit IN1=P1^0; +sbit IN2=P1^1; sbit EN1=P3^4; -sbit EN2=P3^5; - - - -sbit Left_moto_pwm=P3^5; //PWM信号端 - sbit Right_moto_pwm=P3^4; //PWM信号端 - -#define Left_moto_go {IN3=0,IN4=1;} //左电机向前走 -#define Left_moto_back {IN3=1,IN4=0;} //左边电机向后转 -#define Left_moto_Stop {EN1=0;} //左边电机停转 + #define Right_moto_go {IN1=1,IN2=0;} //右边电机向前走 #define Right_moto_back {IN1=0,IN2=1;} //右边电机向后走 -#define Right_moto_Stop {EN2=0;} //右边电机停转 +#define Right_moto_Stop {EN1=0;} //右边电机停转 + #endif \ No newline at end of file