//Designs/Tools/reflow2/SW/process.h
3,9 → 3,9
#define PREHEAT_SLOPE 1.0 // preheat ramp up time
#define SOAK_TEMP 150 // soak temperature
 
#define SOAK_TIME 110 // time to soak
#define SOAK_TIME 100 // time to soak
 
#define SOLDER_SLOPE 2.0
#define SOLDER_SLOPE 2.5
#define SOLDER_TEMP 210
#define SOLDER_TIME 5
 
//Designs/Tools/reflow2/SW/reflow.c
35,9 → 35,9
// globalni promenne
struct time
{
volatile unsigned int8 hod;
volatile unsigned int8 min;
volatile unsigned int8 sec;
volatile signed int8 hod;
volatile signed int8 min;
volatile signed int8 sec;
}cas;
 
unsigned int top_heat_power=0; // range 0-200% nad 100% je ale teleso jiz pretizene
57,7 → 57,7
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); //nepouzit
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64); //nepouzit
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); // rizeni
setup_timer_2(T2_DIV_BY_16,249,10); //rtc 40ms
66,7 → 66,7
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER2);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER0);
setup_adc_ports(AN0_AN1_VSS_VREF); //A0 vstup cidla, A1 nepozit, A3 - ref. 2.5V
setup_adc(ADC_CLOCK_DIV_8);
125,10 → 125,9
else{
output_high(POWER_T3);
}
 
}
 
#int_TIMER1
#int_TIMER0
void heating_control() //rizeni topnych teles pri preteceni casovace
{
float temp;
136,11 → 135,14
top_heating();
bottom_heating();
temp=teplota();
temp_slope=(temp - temp_last)*100.0; ///(4000000.0/65536.0); // vypocet strmosti narustu teploty ve stupnich/s
temp_last = temp;
 
if (period == 200)
{
temp=teplota();
temp_slope=(temp - temp_last) /(2*100.0*256.0/62500.0); // vypocet strmosti narustu teploty ve stupnich/s
temp_last = temp;
}
if (period < 200) period++;
else period=0;
}
174,8 → 176,8
 
if(slope_deviation < 0)
{
top_heat_power= 80 + balance;
bottom_heat_power= 90;
top_heat_power= 67 + balance;
bottom_heat_power= 100;
}
else{
top_heat_power=0;
214,7 → 216,7
 
struct time process_time;
 
// preheat
// ------------------- PREHEAT ---------------------
 
nullcas(&cas);
lcd_gotoxy(1,2);
232,16 → 234,17
lcd_gotoxy(10,2);
printf(lcd_putc,"%1.1f\21C/s ",temp_slope);
 
delay_ms(1000);
delay_ms(200);
if (cas.min>3) heat_failure();
}
while (teplota() < SOAK_TEMP);
 
// soak
// ----------- SOAK ---------------
nullcas(&cas);
process_time.min = SOAK_TIME/60;
process_time.sec = SOAK_TIME - process_time.min*60;
 
lcd_clr();
lcd_gotoxy(1,2);
printf(lcd_putc,"SOAK ");
 
258,15 → 261,77
process_time.sec = (SOAK_TIME - cas.min*60 - cas.sec) - process_time.min*60;
 
lcd_gotoxy(9,1);
printf(lcd_putc,"%2u:%02u:%02u",cas.hod, process_time.min, process_time.sec);
delay_ms(1000);
printf(lcd_putc,"%02u:%02u", process_time.min, process_time.sec);
delay_ms(200);
}
// solder
//----------------- solder ----------------------------
 
nullcas(&cas);
lcd_clr();
lcd_gotoxy(1,2);
printf(lcd_putc,"SOLDER");
 
do {
slope_control(SOLDER_SLOPE, 10); // hlida strmost predehrevu
 
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
lcd_gotoxy(12,1);
printf(lcd_putc,"%02u:%02u",cas.min,cas.sec);
 
lcd_gotoxy(10,2);
printf(lcd_putc,"%1.1f\21C/s ",temp_slope);
 
delay_ms(200);
if (cas.min>3) heat_failure();
}
while (teplota() < SOLDER_TEMP);
 
// ---------------- TAO ------------------------
 
 
while (process_time.sec!=0 || process_time.min!=0)
{
level_control(SOLDER_TEMP);
 
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
if ((process_time.sec = process_time.sec - cas.sec)<0) process_time.sec=59;
 
process_time.min = (SOLDER_TIME - cas.min*60 - cas.sec)/60;
process_time.sec = (SOLDER_TIME - cas.min*60 - cas.sec) - process_time.min*60;
 
lcd_gotoxy(9,1);
printf(lcd_putc,"%02u:%02u", process_time.min, process_time.sec);
delay_ms(200);
}
 
// ---------------- COOLING ------------------------
 
top_heat_power=0;
bottom_heat_power=0;
 
lcd_clr();
 
lcd_gotoxy(1,2);
printf(lcd_putc,"REFLOW COMPLETE");
while(true)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"%3.1f\21C ",teplota());
 
lcd_gotoxy(10,1);
printf(lcd_putc,"%1.1f\21C/s ",temp_slope);
 
}
}
 
 
void main() // main loop
{
GeneralCpuInit();
//Designs/Tools/reflow2/SW/reflow.hex
1,309 → 1,398
:1000000008308A0000280000FF00030E8301A100D1
:1000000008308A00C8280000FF00030E8301A10009
:100010000A08A0008A010408A2007708A300780853
:10002000A4007908A5007A08A600831383128C30F7
:100030008400001C1D280C1834288C308400801C7F
:1000400023288C183728220884002308F700240866
:10005000F8002508F9002608FA0020088A00210E79
:100060008300FF0E7F0E09008A110A12892A8A1165
:100070000A12042B0A108A100A11820728340C3441
:1000800001340634C822412A49274710C620492690
:100090005529C5100000DE01DD01DF015F081F3CAE
:1000A000031C64281F151F19532883161E0883126A
:1000B000DD071E0803181E0FDE071030F700F70BD0
:1000C0005F280000DF0A4E285E0CFA005D0CF90084
:1000D000FA0CF90CFA0CF90CFA0CF90CFA0CF90CF4
:1000E0000730FA057908F8007A08F90008008E3020
:1000F000F7005E08F8005D08F900FA01F808031D32
:100100008B287908F800F9010830F702F808031D78
:100110008B28F70193280310F81B9228F90DF80D8E
:10012000F7038B28F8130800610803190429E90074
:10013000650803190429E9070318A5287F30E90297
:10014000031C042903190429A9288130E90703188D
:1001500004296908F700F801F901FA016208ED00C5
:10016000ED176308EC006408EB001830E900EA01C1
:100170006B1CD2286808FA07031CC428F90A031D5F
:10018000C428F80A0319EA176708F907031CCB28E3
:10019000F80A0319EA176608E300E3176308F8078B
:1001A0000318EA17EA0DF80CF90CFA0CED0CEC0C3C
:1001B000EB0C0310E90BB7280130F70703180429EB
:1001C000F81BE928ED0DFA0DF90DF80DF7030319E9
:1001D0000429ED1FFA28FA0A031DFA28F90A031D5B
:1001E000FA28F80A031DFA28F80CF90CFA0CF70A99
:1001F000031904296208EA006608EA06EA1F0229D0
:10020000F8170829F8130829F701F801F901FA018C
:10021000080080308318E806ED01EE016408EC0068
:100220006808EC0663080319F929EB00F700670872
:100230000319022AEB0203199E29031C5C29680892
:10024000F100F1176908F0006A08EF00EE010310F1
:10025000F10CF00CEF0CEE0CEB0B2629EC1F332904
:100260006D14162A6D106B106D16663084008313A2
:100270002B2A6D12EC1B46296B1C5129F10CF00C3A
:10028000EF0CEE0CF70A0319112A5129F11B54291E
:100290000310EE0DEF0DF00DF10DF7030319112A08
:1002A00046296D17BE296D136408EC00EC1F5A290E
:1002B000F1170A2AF1130A2A6708EB00F70063080E
:1002C000EB026408F100F1176508F0006608EF0022
:1002D000EE010310F10CF00CEF0CEE0CEB0B6829A7
:1002E000EC1F7529ED14162AED106B10ED166A300F
:1002F000840083132B2AED12EC1B88296B1C932995
:10030000F10CF00CEF0CEE0CF70A0319112A9329EB
:10031000F11B96290310EE0DEF0DF00DF10DF70313
:100320000319112A8829ED17BE29ED136808EC007E
:10033000EC1F9C29F1170A2AF1130A2A6808F10018
:10034000F1176908F0006A08EF00EC1FAB29F11300
:100350006D15162A6D11EE016B1066308400831343
:100360002B2AEC1BD4296408EC006B1CBE29F10C71
:10037000F00CEF0CEE0CF70A0319112AEE1FCF292F
:10038000EF0A031DCF29F00A031DCF29F10A031D2F
:10039000CF29F10CF00CEF0CF70A0319112A6D1B91
:1003A0005329ED1B9529F3298030F106F11FDC2933
:1003B000162A6808EC00E9296408EC00F108031D1E
:1003C000E929F008031DE929EF08031DE929F701D0
:1003D0000A2AF11BF3290310EE0DEF0DF00DF10DBC
:1003E000F70BE929112AEC1FF729F1170A2AF11353
:1003F0000A2A6708F7006808F1006908F0006A082F
:10040000EF000A2A6308F7006408F1006508F000AD
:100410006608EF007108F8007008F9006F08FA002C
:10042000492AF701F801F901FA01492AEE01EF0919
:10043000F009F109EE09EE0A031D242AEF0A031D53
:10044000242AF00A0319F10A6D183229ED187429CB
:100450006D19AA29D9290008EF07031C352AF00ACB
:10046000031D352AF10A03196B1484030008F007F1
:10047000031C3D2AF10A03196B1484030008801F32
:10048000803AF10703186B146D1A3929ED1A7B298C
:10049000B12908004B207908FA007808DD007908B6
:1004A000DE0077207030E4009830E3002C30E2006A
:1004B0007E30E1007A08E8007908E7007808E60075
:1004C0007708E50094207708DD007808DE007908D9
:1004D000DF007A08E000E2010408E1006210831BFB
:1004E000621483147A08E6007908E5007808E400CD
:1004F0007708E300CD30EA002C30E9001330E80043
:100500008730E7000921610884008313621883178C
:1005100008002C082E0203189A2AA812280883160D
:1005200087008312871228132808831687008312F6
:100530000713A62AA8122808831687008312871695
:1005400028132808831687008312071703102D0D20
:100550002E020318B22A2812280883168700831255
:100560000712B82A28122808831687008312071654
:100570004A227A08DC007908DB007808DA0077087C
:10058000D90083145C08E6005B08E5005A08E40023
:100590005908E3003208EA003108E9003008E800B1
:1005A0002F08E70009217708DD007808DE007908C8
:1005B000DF007A08E000E4007908E3007808E20050
:1005C0007708E100E801E7014830E6008530E50002
:1005D00094207A08B6007908B5007808B400770846
:1005E000B3005C08B2005B08B1005A08B0005908BB
:1005F000AF002E08C73C031CFF2AAE0A002BAE0139
:100600000C108A110A122328DA012930D900B70AFE
:100610003708183C0318372BB701023059078400FC
:1006200083135A188317800A00083B3C0318372BA2
:1006300002305907840083135A1883178001013050
:100640005907840083135A188317800A00083B3C1B
:100650000318372B01305907840083135A18831766
:1006600080015908840083135A188317800A8C105C
:100670008A110A12232850294524C5205400A5199F
:10068000AE18E60843102000A518AE18E608C317F8
:1006900073102000D327C125201020100001A519B8
:1006A000AE18E60843102000063409340934063435
:1006B00080348034803480340034A81228088316B3
:1006C0008700831287162813280883168700831251
:1006D000071783168113091283129412A81228088F
:1006E0008316870083122816280883168700831232
:1006F000A811280883168700013083129400003067
:10070000831694000108C7390838810085308312A8
:1007100090004830F80006389200F93083169200B5
:1007200007309C00050885000330F700F70B962B77
:100730001C0883120D1383169D01C03083128B0495
:1007400083168C140C141F149F101F159F111F1358
:1007500083121F179F1383169F1783121F140030D5
:10076000F8001F08C73978049F008A150A121F284D
:100770004D308400831300080319CC2B0130F8009E
:10078000F701F70BC12BF80BC02B4A30F700F70B22
:10079000C72BCA2B800BBE2B08000808F039D500E8
:1007A00053080F39550488000715281128088316A7
:1007B000870000008312071128112808831687007C
:1007C00083120800D108031DE72B8710E82B87143C
:1007D000A8102808831687008312D20E5208D3006F
:1007E000CD23D20E5208D300CD230D30F700F70BE6
:1007F000F72B0800C830CD00B823F03083168805E9
:1008000083128710A8102808831687008312071107
:1008100028112808831687008312B8013808023C83
:10082000031C1A2C0230CD00B8230330D300CD2393
:10083000B80A0E2C0D30F700F70B1C2C0230D30039
:10084000CD230D30F700F70B232CB8013808023CFC
:10085000031C362C38083A20B900D1013908D200DF
:10086000E2230230CD00B823B80A262C8A150A12DA
:100870002E28831603178C170C1400000000831217
:100880008C080319602C0D080313B80003170F0818
:100890000313B90003170C080313BA000130D10089
:1008A0003A08D200E223380803178D0003133908F1
:1008B00003178F008D0A03198F0A0313392C0317AE
:1008C00003138A150A12422883168C1002308312F1
:1008D0003B07840083133C18831780013B08840086
:1008E00083133C188317800101303B078400831376
:1008F0003C188317800183168C1483120800013082
:100900004D02CF004E08023C031D882C4030CF071B
:100910004F088038D000D1015008D200E2230800EF
:100920004C080C3A03199B2C063A0319A32C073ADE
:100930000319A92CAE2CD1010130D200E2230230E0
:10094000CD00B823BA2C0130CD000230CE007F2478
:10095000BA2C0130CD00CE007F24BA2C4C081F3CAD
:10096000031CB42C0730CC050130D1004C08D20058
:10097000E223BA2C0800831603178C170C1400000E
:10098000000083120C087F390319FF2C0313BB00EE
:1009900003170D080313BC0003170F080313BD0052
:1009A0003B08CC0090243C0803178D0003133D083E
:1009B00003178F0083168C170C140000000083129D
:1009C0000C0D0E0D7F390319FF2C0313BB00031709
:1009D0000D080313BC0003170F080313BD003B08E9
:1009E000CC0090243C0803178D0003133D08031727
:1009F0008F008D0A03198F0A0313BB2C03170313EF
:100A000008004508CC004908CC06CC1F0C2D03116A
:100A10000310C51B03143F2D4508CC004808CD002A
:100A20004408CD0203191A2DCC1F3F2D0308013AAB
:100A300083003F2D4908CD004508CD020319262D1E
:100A4000CC1F3F2D0308013A83003F2D4A08CD00FB
:100A50004608CD020319322DCC1F3F2D0308013A61
:100A600083003F2D4B08CD004708CD0203193E2DD2
:100A7000CC1F3F2D0308013A83003F2D03100800CF
:100A8000F701F801F901FA01D401D501D601D70126
:100A9000530852045104500403197E2D2030D8000D
:100AA0000310CC0DCD0DCE0DCF0DD40DD50DD60D23
:100AB000D70D53085702031D672D52085602031D18
:100AC000672D51085502031D672D50085402031C61
:100AD000782D5008D4025108031C510FD50252083A
:100AE000031C520FD6025308031C530FD7020314E2
:100AF000F70DF80DF90DFA0DD80B502D5430840078
:100B0000831308000408C4004308C6000319A72D76
:100B1000A7018B1BA7178B134208E4004108E300D1
:100B20004008E2003F08E100E801E7012030E6006C
:100B30008230E5009420A71B8B177A08C200790841
:100B4000C1007808C0007708BF00C60B882D420896
:100B5000CF004108CE004008CD003F08CC004C0833
:100B6000B63CCC00FA014D08D000CD170310CD0CD7
:100B7000CE0CCF0CFA0CF90CF80CF70CCC0BB62DF4
:100B8000D01FCD2DF709F809F909FA09F70A031959
:100B9000F80A0319F90A0319FA0A7A08C20079084F
:100BA000C1007808C0007708BF00C21FE42DC4034D
:100BB000C416BF09C009C109C209BF0A0319C00A86
:100BC0000319C10A0319C20A3B30CB009A30CA008C
:100BD000CA30C900C8010A30C60043080319C40A54
:100BE0004208CF004108CE004008CD003F08CC00AD
:100BF0004B08D3004A08D2004908D1004808D00069
:100C000040250008BF00840A0008C000840A0008CC
:100C1000C100840A0008C200FD308407F708031DE4
:100C2000242E430A46020319242E44080319262EB3
:100C30000F39460203191E2E0318562EC41B562EBA
:100C4000441B262E2030522E2030C405C41E342EC4
:100C5000C4124308031DC4037708C4002D30CC0020
:100C600090244408F700C40143084602031D422EA5
:100C70007708C4002E30CC0090244408F7002030C0
:100C8000C40500303030C41E522EC4124308031D68
:100C9000C4037708C4002D30CC0090244408F7002A
:100CA000C4013030F7077708CC0090244B08CF0000
:100CB0004A08CE004908CD004808CC00D301D20133
:100CC000D1010A30D00040257A08CB007908CA004B
:100CD0007808C9007708C800C60BF02D08008316F5
:100CE00003178C170C140000000003189E2E8312AB
:100CF0000C087F390313C00003170D080313C1004C
:100D000003170F080313C2004008CC0090244108C9
:100D100003178D000313420803178F0083168C17E7
:100D20000C140000000083120313BF0B982E9B2E9F
:100D3000831603179E2EBD2E8316031783120C0DE8
:100D40000E0D7F390313C00003170D080313C100F4
:100D500003170F080313C2004008CC009024410879
:100D600003178D000313420803178F008D0A031920
:100D70008F0A03100313BF0B6F2E08003E08F80103
:100D80003D020318C62E3D08F700D22EF7010830A9
:100D9000BF00BD0DF70D3E0877020318F700F80DF0
:100DA000BF0BC92E080078083B08BD006430BE00A8
:100DB000BE267708BB0078083030031DE62EBC1C29
:100DC000ED2EBC19ED2E3C1A2030E92EBC113C1240
:100DD0003C14F8077808CC0090243B08BD000A308A
:100DE000BE00BE267708BB0078083030031DFE2EFB
:100DF000BC19022F3C1C022F3C1A2030F80778083F
:100E0000CC0090243030BB073B08CC009024080075
:100E1000F701F8013C0803103D18F707F70CF80C30
:100E2000BD18F707F70CF80C3D19F707F70CF80C8D
:100E3000BD19F707F70CF80C3D1AF707F70CF80C7B
:100E4000BD1AF707F70CF80C3D1BF707F70CF80C69
:0A0E5000BD1BF707F70CF80C0800B3
:10100000840183131F30830583168613831286178A
:10101000AC01AD01B201B101B001AF01B601B50142
:10102000B401B301B70183161F149F141F159F113C
:1010300007309C00FF308312A8008A115D2B8A15AF
:10104000A8122808831687008312871628132808F9
:1010500083168700831207178A11FA2B8A15D1018C
:101060004830D2008A11E2238A150230CD008A115D
:10107000B8238A15543003178D0003308F008A116E
:101080000313392C8A15D1010330D2008A11E223CF
:101090008A150230CD008A11B8238A15BC01293087
:1010A000BB008A1164248A150230B8009630CD0046
:1010B0008A11B8238A15B80B5628BC012930BB0009
:1010C0008A1164248A150130CD000230CE008A11C5
:1010D0007F248A153B3003178D0003308F008A115F
:1010E0000313BB248A15BE01BD01BC017F30BB00C8
:1010F000BF018314A7018B1BA7178B133608E600CB
:101100003508E5003408E4003308E3003E08EA004F
:101110003D08E9003C08E8003B08E7008A11092186
:101120008A15A71B8B177A08C3007908C2007808B4
:10113000C1007708C0004308C7004208C600410844
:10114000C5004008C400CB01CA01C901C8018A1109
:1011500001258A15031CB22850303F07AC005A30D5
:10116000AD00B428AC01AD010130CD00CE008A1134
:101170007F248A15A7018B1BA7178B138A114A227C
:101180008A15A71B8B177708BB007808BC00790865
:10119000BD007A08BE00023084007A08C2007908D7
:1011A000C1007808C0007708BF000130C3008A1171
:1011B00082258A15413003178D0003308F000314F8
:1011C00004300313BF008A116F268A150C30CD003E
:1011D0000130CE008A117F248A152A08BB00013015
:1011E000BC008A11D3268A153A30CC008A1190248B
:1011F0008A152B08BB000130BC008A11D3268A1542
:101200000A30CD000230CE008A117F248A15893041
:1012100084003608C2003508C1003408C000330815
:10122000BF000130C3008A1182258A15463003179A
:101230008D0003308F00031406300313BF008A11A2
:101240006F268A150430BB00FA30CD008A11B8230E
:101250008A15BB0B24292A08033C03184229AC0138
:10126000AD010130CD000230CE008A117F248A15F5
:10127000423003178D0000308F008A110313BB2406
:101280008A154129A7018B1BA7178B138A114A22A4
:101290008A15A71B8B177708BB007808BC00790854
:1012A000BD007A08BE00C7003D08C6003C08C50066
:1012B0003B08C400CB01CA011630C9008630C80003
:1012C0008A1101258A1503187328BC012930BB0037
:1012D0008A1164248A150130B9003908BC003C30F9
:1012E000BD008A1108278A1578086E3CBA000130C3
:1012F000CD000230CE008A117F248A154A300317B0
:101300008D0003308F008A110313BB248A15BA089D
:10131000031D8D29B9080319502ABE01BD011630DD
:10132000BC008630BB00A7018B1BA7178B138A114B
:101330004A228A15A71B8B177708BF007808C000C0
:101340007908C1007A08C2003E08C7003D08C600FF
:101350003C08C5003B08C4004208CB004108CA0055
:101360004008C9003F08C8008A1101258A15031CDE
:10137000BC29AC01AD01C0294630AC005030AD00F5
:101380000130CD00CE008A117F248A15A7018B1B66
:10139000A7178B138A114A228A15A71B8B17770868
:1013A000BB007808BC007908BD007A08BE00023096
:1013B00084007A08C2007908C1007808C000770864
:1013C000BF000130C3008A1182258A1551300317EE
:1013D0008D0003308F00031404300313BF008A1103
:1013E0006F268A152B08BA022A08BC003C30BD00C3
:1013F0008A1108278A1578086E3CF8002B087802B5
:10140000BC00BD003C30BE008A11BE268A1578089B
:10141000B9002A08BC003C30BD008A1108278A1593
:1014200078086E3CF8002B087802BB003908BC0035
:101430003C30BD008A1108278A1578083B02BA00A3
:101440000930CD000130CE008A117F248A15290889
:10145000BB001130BC008A11D3268A153A30CC006B
:101460008A1190248A153908BB000130BC008A110A
:10147000D3268A153A30CC008A1190248A153A086E
:10148000BB000130BC008A11D3268A150430BB0092
:10149000FA30CD008A11B8238A15BB0B482A872958
:0414A0005428630069
:100030008400801C1D288C1832288B1E21280B1947
:100040003528220884002308F7002408F800250832
:10005000F9002608FA0020088A00210E8300FF0E0E
:100060007F0E09008A110A12D12B8A110A12872ADF
:100070000A108A100A11820728340C34013406341D
:10008000C822412A49274710C62049265529C510AC
:100090000000DE01DD01DF015F081F3C031C622858
:1000A0001F151F19512883161E088312DD071E080D
:1000B00003181E0FDE071030F700F70B5D28000055
:1000C000DF0A4C285E0CFA005D0CF900FA0CF90C02
:1000D000FA0CF90CFA0CF90CFA0CF90C0730FA05C9
:1000E0007908F8007A08F90008008E30F7005E08F9
:1000F000F8005D08F900FA01F808031D892879085D
:10010000F800F9010830F702F808031D8928F70103
:1001100091280310F81B9028F90DF80DF703892892
:10012000F81308005D0803190229E50061080319A6
:100130000229E5070318A3287F30E502031C0229E2
:1001400003190229A7288130E50703180229650849
:10015000F700F801F901FA015E08E900E9175F0804
:10016000E8006008E7001830E500E601671CD028C9
:100170006408FA07031CC228F90A031DC228F80AFA
:100180000319E6176308F907031CC928F80A0319BD
:10019000E6176208DF00DF175F08F8070318E617A5
:1001A000E60DF80CF90CFA0CE90CE80CE70C03105E
:1001B000E50BB5280130F70703180229F81BE728DB
:1001C000E90DFA0DF90DF80DF70303190229E91FDE
:1001D000F828FA0A031DF828F90A031DF828F80A76
:1001E000031DF828F80CF90CFA0CF70A0319022978
:1001F0005E08E6006208E606E61F0029F8170629F1
:10020000F8130629F701F801F901FA010800803016
:100210008318E806ED01EE016408EC006808EC06BE
:1002200063080319F729EB00F70067080319002A90
:10023000EB0203199C29031C5A296808F100F117E5
:100240006908F0006A08EF00EE010310F10CF00CF1
:10025000EF0CEE0CEB0B2429EC1F31296D14142A42
:100260006D106B106D16663084008313292A6D1291
:10027000EC1B44296B1C4F29F10CF00CEF0CEE0C1D
:10028000F70A03190F2A4F29F11B52290310EE0D0B
:10029000EF0DF00DF10DF70303190F2A44296D1727
:1002A000BC296D136408EC00EC1F5829F117082ACB
:1002B000F113082A6708EB00F7006308EB026408F3
:1002C000F100F1176508F0006608EF00EE01031079
:1002D000F10CF00CEF0CEE0CEB0B6629EC1F732904
:1002E000ED14142AED106B10ED166A3084008313A0
:1002F000292AED12EC1B86296B1C9129F10CF00CBC
:10030000EF0CEE0CF70A03190F2A9129F11B94291F
:100310000310EE0DEF0DF00DF10DF70303190F2A89
:100320008629ED17BC29ED136808EC00EC1F9A290B
:10033000F117082AF113082A6808F100F117690873
:10034000F0006A08EF00EC1FA929F1136D15142ABB
:100350006D11EE016B10663084008313292AEC1BAB
:10036000D2296408EC006B1CBC29F10CF00CEF0CDA
:10037000EE0CF70A03190F2AEE1FCD29EF0A031D11
:10038000CD29F00A031DCD29F10A031DCD29F10C59
:10039000F00CEF0CF70A03190F2A6D1B5129ED1B06
:1003A0009329F1298030F106F11FDA29142A68080F
:1003B000EC00E7296408EC00F108031DE729F008C8
:1003C000031DE729EF08031DE729F701082AF11BA0
:1003D000F1290310EE0DEF0DF00DF10DF70BE729EC
:1003E0000F2AEC1FF529F117082AF113082A6708CC
:1003F000F7006808F1006908F0006A08EF00082AB1
:100400006308F7006408F1006508F0006608EF0073
:100410007108F8007008F9006F08FA00472AF70120
:10042000F801F901FA01472AEE01EF09F009F10993
:10043000EE09EE0A031D222AEF0A031D222AF00A02
:100440000319F10A6D183029ED1872296D19A829C0
:10045000D7290008EF07031C332AF00A031D332AAB
:10046000F10A03196B1484030008F007031C3B2AEC
:10047000F10A03196B1484030008801F803AF10706
:1004800003186B146D1A3729ED1A7929AF29080062
:1004900049207908FA007808DD007908DE00752027
:1004A0007030E0009830DF002C30DE007E30DD0060
:1004B0007A08E4007908E3007808E2007708E100B0
:1004C00092207708DD007808DE007908DF007A08DE
:1004D000E000E2010408E1006210831B621483144F
:1004E0007A08E6007908E5007808E4007708E30078
:1004F000CD30EA002C30E9001330E8008730E70007
:1005000007216108840083136218831708002C08F0
:100510002E020318982AA81228088316870083122F
:100520008712281328088316870083120713A42A2A
:10053000A812280883168700831287162813280814
:10054000831687008312071703102D0D2E02031840
:10055000B02A281228088316870083120712B62AA9
:100560002812280883168700831207162E08C83C15
:10057000031DC62B48227A08DC007908DB007808C6
:10058000DA007708D90083145C08E6005B08E50010
:100590005A08E4005908E3003208EA003108E9008B
:1005A0003008E8002F08E70007217708DD00780809
:1005B000DE007908DF007A08E0006008E4005F08E8
:1005C000E3005E08E2005D08E1001730E800B730A4
:1005D000E7005130E6007E30E50061080319B22BD8
:1005E000ED0065080319B22BED02031CFC2A7F30D5
:1005F000ED070318B22B022B8130ED02031CB22B46
:100600000319B22B6D08F700F801F901FA01EC01AA
:100610006208EB00EB176308EA006408E900193090
:10062000ED006808E9020318252B0130EA020318DF
:10063000252BEB020318252BEC020318252BEC0AC3
:10064000EB0AEA0A6808E907572B6708EA02031869
:10065000402B0130EB020318402BEC020318402B17
:10066000EC0AEB0A6708EA076808E907031C572B3E
:10067000EA0A031D572BEB0A031D572BEC0A572BD5
:1006800066088038EB020318562B0130EC02031881
:10069000562BEC0A66088038EB076708EA07031C4C
:1006A000342BEB0A031D342BEC0A342B7A14ED0B9C
:1006B0005A2B652B0310E90DEA0DEB0DEC0D031021
:1006C000FA0DF90DF80DEE0D112B6E1C6D2B0310AC
:1006D000F80CF90CFA0CEE0C702BF7030319B22B83
:1006E000EE1B992B0310E90DEA0DEB0DEC0D6808DC
:1006F000E9020318852B0130EA020318852BEB026F
:100700000318852BEC02031CA82B6708EA020318C8
:10071000902B0130EB020318902BEC02031CA82B4A
:1007200066088038EB020318992B0130EC02031C99
:10073000A82BFA0A031DA82BF90A031DA82BF80AF7
:10074000031DA82BF70A0319B22BF80CF90CFA0CAD
:100750006208ED006608ED06ED1FB02BF817B62B0A
:10076000F813B62BF701F801F901FA017A08B6007F
:100770007908B5007808B4007708B3005C08B200C7
:100780005B08B1005A08B0005908AF002E08C73CFA
:10079000031CCC2BAE0ACD2BAE010B118A110A1211
:1007A0002128DA012930D900B70A3708183C031884
:1007B000082CB70102305907840083135A18831795
:1007C000800A801B082C00083B3C0318082C0230D0
:1007D0005907840083135A18831780010130590781
:1007E000840083135A188317800A801B082C000882
:1007F0003B3C0318082C01305907840083135A1816
:10080000831780015908840083135A188317800ABC
:100810008C108A110A12212850294524C520540021
:10082000A519AE18E60843102000A518AE18E60872
:10083000C31773102000D327C125201020100001FA
:10084000A519AE18E60843102000D3274C224529ED
:100850000001A519AE18E60843102000A518AE182F
:10086000E608C31773102000A519AE18E608431058
:100870002000D2224626CF2BA021CF265026452A63
:100880004500A519AE18E60843102000A518AE18BB
:10089000E608C317731020000634093409340634FF
:1008A00080348034803480340034A81228088316C1
:1008B000870083128716281328088316870083125F
:1008C000071783168113091283129412A81228089D
:1008D0008316870083122816280883168700831240
:1008E000A811280883168700013083129400003075
:1008F000831694000108C0390538810085308312C1
:1009000090004830F80006389200F93083169200C3
:1009100007309C00050885000330F700F70B8E2C8C
:100920001C0883120D1383169D01C03083128B04A3
:1009300083168C1483128B1683161F149F101F1599
:100940009F111F1383121F179F1383169F17831264
:100950001F140030F8001F08C73978049F008A155B
:100960000A12E7284D308400831300080319C62CAF
:100970000130F800F701F70BBB2CF80BBA2C4A300A
:10098000F700F70BC12CC42C800BB82C080008080A
:10099000F039D50053080F39550488000715281180
:1009A00028088316870000008312071128112808E1
:1009B0008316870083120800D108031DE12C8710DD
:1009C000E22C8714A8102808831687008312D20E01
:1009D0005208D300C724D20E5208D300C7240D30CA
:1009E000F700F70BF12C0800C830CD00B224F0302E
:1009F0008316880583128710A8102808831687009D
:100A00008312071128112808831687008312B80162
:100A10003808023C031C142D0230CD00B2240330F0
:100A2000D300C724B80A082D0D30F700F70B162D98
:100A30000230D300C7240D30F700F70B1D2DB8018D
:100A40003808023C031C302D38083820B900D10189
:100A50003908D200DC240230CD00B224B80A202D9F
:100A60008A150A12F628831603178C170C14000037
:100A7000000083128C0803195A2D0D080313B800C7
:100A800003170F080313B90003170C080313BA0068
:100A90000130D1003A08D200DC24380803178D0059
:100AA0000313390803178F008D0A03198F0A0313E4
:100AB000332D031703138A150A120A2983168C1083
:100AC000023083123B07840083133C188317800194
:100AD0003B08840083133C188317800101303B07D7
:100AE000840083133C188317800183168C148312AF
:100AF000080001304D02CF004E08023C031D822D3C
:100B00004030CF074F088038D000D1015008D200C4
:100B1000DC2408004C080C3A0319952D063A0319F9
:100B20009D2D073A0319A32DA82DD1010130D20024
:100B3000DC240230CD00B224B42D0130CD000230CF
:100B4000CE007925B42D0130CD00CE007925B42D0D
:100B50004C081F3C031CAE2D0730CC050130D100E2
:100B60004C08D200DC24B42D0800831603178C1720
:100B70000C140000000083120C087F390319F92DB2
:100B80000313BB0003170D080313BC0003170F0862
:100B90000313BD003B08CC008A253C0803178D00D9
:100BA00003133D0803178F0083168C170C140000E5
:100BB000000083120C0D0E0D7F390319F92D03135C
:100BC000BB0003170D080313BC0003170F08031322
:100BD000BD003B08CC008A253C0803178D00031399
:100BE0003D0803178F008D0A03198F0A0313B52DD3
:100BF0000317031308004508CC004908CC06CC1F96
:100C0000062E03110310C51B0314392E4508CC0012
:100C10004808CD004408CD020319142ECC1F392EEC
:100C20000308013A8300392E4908CD004508CD025A
:100C30000319202ECC1F392E0308013A8300392EC8
:100C40004A08CD004608CD0203192C2ECC1F392EA0
:100C50000308013A8300392E4B08CD004708CD0226
:100C60000319382ECC1F392E0308013A8300392E80
:100C7000031008008314A7018B1BA7178B133608DA
:100C8000E6003508E5003408E4003308E3003E08D8
:100C9000EA003D08E9003C08E8003B08E7000721BE
:100CA000A71B8B177A08C3007908C2007808C10017
:100CB0007708C0004308C7004208C6004108C500C5
:100CC0004008C400CB01CA01C901C801FB25031CAF
:100CD0006F2E43303F07AC006430AD00712EAC0185
:100CE000AD010800F701F801F901FA01D401D501BD
:100CF000D601D70153085204510450040319B02EF1
:100D00002030D8000310CC0DCD0DCE0DCF0DD40D5D
:100D1000D50DD60DD70D53085702031D992E520835
:100D20005602031D992E51085502031D992E500895
:100D30005402031CAA2E5008D4025108031C510F60
:100D4000D5025208031C520FD6025308031C530F3E
:100D5000D7020314F70DF80DF90DFA0DD80B822EFA
:100D600054308400831308000408C4004308C600FC
:100D70000319D92EA7018B1BA7178B134208E0007C
:100D80004108DF004008DE003F08DD00E401E30128
:100D90002030E2008230E1009220A71B8B177A08F6
:100DA000C2007908C1007808C0007708BF00C60BF0
:100DB000BA2E4208CF004108CE004008CD003F08BF
:100DC000CC004C08B63CCC00FA014D08D000CD1741
:100DD0000310CD0CCE0CCF0CFA0CF90CF80CF70C60
:100DE000CC0BE82ED01FFF2EF709F809F909FA09F4
:100DF000F70A0319F80A0319F90A0319FA0A7A0813
:100E0000C2007908C1007808C0007708BF00C21F7F
:100E1000162FC403C416BF09C009C109C209BF0AFD
:100E20000319C00A0319C10A0319C20A3B30CB00D7
:100E30009A30CA00CA30C900C8010A30C600430847
:100E40000319C40A4208CF004108CE004008CD0073
:100E50003F08CC004B08D3004A08D2004908D10013
:100E60004808D00072260008BF00840A0008C000AD
:100E7000840A0008C100840A0008C200FD3084070B
:100E8000F708031D562F430A46020319562F44083C
:100E90000319582F0F3946020319502F0318882FB2
:100EA000C41B882F441B582F2030842F2030C405AA
:100EB000C41E662FC4124308031DC4037708C40070
:100EC0002D30CC008A254408F700C40143084602AF
:100ED000031D742F7708C4002E30CC008A254408E7
:100EE000F7002030C40500303030C41E842FC412F7
:100EF0004308031DC4037708C4002D30CC008A25A5
:100F00004408F700C4013030F7077708CC008A2581
:100F10004B08CF004A08CE004908CD004808CC0055
:100F2000D301D201D1010A30D00072267A08CB0059
:100F30007908CA007808C9007708C800C60B222FB4
:100F40000800831603178C170C1400000000031808
:100F5000D02F83120C087F390313C00003170D082C
:100F60000313C10003170F080313C2004008CC008D
:100F70008A25410803178D000313420803178F00C9
:100F800083168C170C140000000083120313BF0B90
:100F9000CA2FCD2F83160317D02FEF2F83160317D9
:100FA00083120C0D0E0D7F390313C00003170D08BB
:100FB0000313C10003170F080313C2004008CC003D
:100FC0008A25410803178D000313420803178F0079
:100FD0008D0A03198F0A03100313BF0BA12F0800FA
:101000003E08F8013D02031808283D08F70014289F
:10101000F7010830BF00BD0DF70D3E087702031839
:10102000F700F80DBF0B0B28080078083B08BD003F
:101030006430BE0000207708BB0078083030031D04
:101040002828BC1C3128BC1931283C1A20302B28F8
:10105000BC113C123C14F8077808CC008A118A2590
:101060008A153B08BD000A30BE0000207708BB008F
:1010700078083030031D4228BC1948283C1C4828F9
:101080003C1A2030F8077808CC008A118A258A1586
:101090003030BB073B08CC008A118A258A1508002E
:1010A000F701F8013C0803103D18F707F70CF80C9E
:1010B000BD18F707F70CF80C3D19F707F70CF80CFB
:1010C000BD19F707F70CF80C3D1AF707F70CF80CE9
:1010D000BD1AF707F70CF80C3D1BF707F70CF80CD7
:1010E000BD1BF707F70CF80C0800A7018B1BA7170F
:1010F0008B138A1148228A15A71B8B177708BF000C
:101100007808C0007908C1007A08C2003E08C7000C
:101110003D08C6003C08C5003B08C4004208CB009F
:101120004108CA004008C9003F08C8008A11FB25D1
:101130008A15031C9E28AC01AD01A2284630AC00E4
:101140005030AD0008003D083E068039C000BD1F8C
:10115000AB28BD09BD0ABE1FAF28BE09BE0A3E08A6
:10116000F8013D020318B7283D08F700C328F7012E
:101170000830BF00BD0DF70D3E0877020318F700D9
:10118000F80DBF0BBA28C01FC728F809F80A0800D5
:10119000840183131F3083058316861383128617F9
:1011A000AC01AD01B201B101B001AF01B601B501B1
:1011B000B401B301B70183161F149F141F159F11AB
:1011C00007309C00FF308312A8008A11552C8A1525
:1011D000A812280883168700831287162813280868
:1011E00083168700831207178A11F42C8A15D10100
:1011F0004830D2008A11DC248A150230CD008A11D1
:10120000B2248A154C3003178D0004308F008A11E8
:101210000313332D8A15D1010330D2008A11DC2447
:101220008A150230CD008A11B2248A15BC012930FA
:10123000BB008A115E258A150230B8009630CD00B9
:101240008A11B2248A15B80B1E29BC012930BB00B3
:101250008A115E258A150130CD000230CE008A1138
:1012600079258A150C3003178D0004308F008A1100
:101270000313B5258A15BE01BD01BC017F30BB003B
:10128000BF018A113A268A150130CD00CE008A119D
:1012900079258A15A7018B1BA7178B138A11482262
:1012A0008A15A71B8B177708BB007808BC00790844
:1012B000BD007A08BE00023084007A08C2007908B6
:1012C000C1007808C0007708BF000130C3008A1150
:1012D000B4268A15123003178D0004308F000314D2
:1012E00004300313BF008A11A1278A150C30CD00EA
:1012F0000130CE008A1179258A152A08BB000130F9
:10130000BC0015203A30CC008A118A258A152B089A
:10131000BB000130BC0015200A30CD000230CE00E9
:101320008A1179258A15893084003608C20035086B
:10133000C1003408C0003308BF000130C3008A1167
:10134000B4268A15173003178D0004308F0003145C
:1013500006300313BF008A11A1278A15C830CD00BB
:101360008A11B2248A15AA1BCC292A08033C031827
:10137000CC29AC01AD010130CD000230CE008A1184
:1013800079258A15403003178D0000308F008A11AF
:101390000313B5258A15CB29A7018B1BA7178B1320
:1013A0008A1148228A15A71B8B177708BB0078087B
:1013B000BC007908BD007A08BE00C7003D08C60021
:1013C0003C08C5003B08C400CB01CA011630C90067
:1013D0008630C8008A11FB258A1503183B29BC01F9
:1013E0002930BB008A115E258A150130B900390801
:1013F000BC003C30BD0050207808643CBA000C3082
:10140000CC008A118A258A150130CD000230CE0029
:101410008A1179258A151B3003178D0004308F003F
:101420008A110313B5258A15BA08031D1A2AB908AB
:101430000319992ABE01BD011630BC008630BB00DD
:1014400075200130CD00CE008A1179258A15A701BB
:101450008B1BA7178B138A1148228A15A71B8B1782
:101460007708BB007808BC007908BD007A08BE0088
:10147000023084007A08C2007908C1007808C000F0
:101480007708BF000130C3008A11B4268A152230C4
:1014900003178D0004308F00031404300313BF00C2
:1014A0008A11A1278A152B08BA02BA1F592A3B3084
:1014B000BA002A08BC003C30BD0050207808643CCB
:1014C000F8002B087802BC00BD003C30BE00A32011
:1014D0007808B9002A08BC003C30BD0050207808CC
:1014E000643CF8002B087802BB003908BC003C3093
:1014F000BD00502078083B02BA000930CD00013011
:10150000CE008A1179258A153908BB000130BC004C
:1015100015203A30CC008A118A258A153A08BB007A
:101520000130BC001520C830CD008A11B2248A15C4
:10153000142ABC012930BB008A115E258A150C30A3
:10154000CC008A118A258A150130CD000230CE00E8
:101550008A1179258A15253003178D0004308F00F4
:101560008A110313B5258A15BE01BD012030BC00C8
:101570008030BB000A30BF008A113A268A1501303C
:10158000CD00CE008A1179258A15A7018B1BA717DC
:101590008B138A1148228A15A71B8B177708BB006B
:1015A0007808BC007908BD007A08BE0002308400CB
:1015B0007A08C2007908C1007808C0007708BF0027
:1015C0000130C3008A11B4268A152B3003178D0011
:1015D00004308F00031404300313BF008A11A127C5
:1015E0008A150C30CD000130CE008A1179258A157C
:1015F0002A08BB000130BC0015203A30CC008A110B
:101600008A258A152B08BB000130BC0015200A3042
:10161000CD000230CE008A1179258A1589308400E8
:101620003608C2003508C1003408C0003308BF00C6
:101630000130C3008A11B4268A15303003178D009B
:1016400004308F00031406300313BF008A11A12752
:101650008A15C830CD008A11B2248A15AA1B472BDF
:101660002A08033C0318472BAC01AD010130CD0023
:101670000230CE008A1179258A15403003178D007B
:1016800000308F008A110313B5258A15462BA70158
:101690008B1BA7178B138A1148228A15A71B8B1740
:1016A0007708BB007808BC007908BD007A08BE0046
:1016B000C7003D08C6003C08C5003B08C400CB017C
:1016C000CA015230C9008630C8008A11FB258A152C
:1016D0000318B42ABA08031D702BB9080319EF2B9D
:1016E000BE01BD015230BC008630BB007520013008
:1016F000CD00CE008A1179258A15A7018B1BA7176B
:101700008B138A1148228A15A71B8B177708BB00F9
:101710007808BC007908BD007A08BE000230840059
:101720007A08C2007908C1007808C0007708BF00B5
:101730000130C3008A11B4268A15363003178D0094
:1017400004308F00031404300313BF008A11A12753
:101750008A152B08BA02BA1FAF2B3B30BA002A08F1
:10176000BC003C30BD0050207808053CF8002B0838
:101770007802BC00BD003C30BE00A3207808B90050
:101780002A08BC003C30BD0050207808053CF80019
:101790002B087802BB003908BC003C30BD0050204B
:1017A00078083B02BA000930CD000130CE008A1122
:1017B00079258A153908BB000130BC0015203A3064
:1017C000CC008A118A258A153A08BB000130BC007A
:1017D0001520C830CD008A11B2248A156A2BAC01BD
:1017E000AD010C30CC008A118A258A150130CD005C
:1017F0000230CE008A1179258A15393003178D0001
:1018000004308F008A110313B5258A150130CD00ED
:10181000CE008A1179258A15A7018B1BA7178B1378
:101820008A1148228A15A71B8B177708BB007808F6
:10183000BC007908BD007A08BE00023084007A0836
:10184000C2007908C1007808C0007708BF000130E5
:10185000C3008A11B4268A15433003178D00043063
:101860008F00031404300313BF008A11A1278A15C7
:101870000A30CD000130CE008A1179258A158930D1
:1018800084003608C2003508C1003408C00033089F
:10189000BF000130C3008A11B4268A1548300317EF
:1018A0008D0004308F00031406300313BF008A112B
:0A18B000A1278A15062C1C296300ED
:02400E003A3F37
:00000001FF
;PIC16F877A
;CRC=47D4 CREATED="28-V-11 17:06"
;CRC=4340 CREATED="28-V-11 21:54"