DIY lödning Reflow ugn (4 / 5 steg)
Steg 4: Programmet:
********************************Teknisk konst ***
********************************
Projekt: Reflow brödrost
För: MC9S12DP512 | MAX6675 | K-typ termoelement | NHD-0420DZ-NSW-BBW
> stift (måste utses genom att skriva "pins < uttalande >").
heartbeat pp7
safemode * pa6
k typ termoelement gul/grön tråd = + ve, röd tråd = - ve
rem //LCD - se sidan 94 i grundläggande användare guide
lcd_rs pa0
lcd_en pa1
lcd_d4 pa2
lcd_d5 pa3
lcd_d6 pa4
lcd_d7 pa5
rem / / 5 knapp joystick används för användarindata
Vänster pp0
rätt pp1
ned pp2
upp pp3
Välj pp4
värmaren pp5
fläkt pt0
summern pp6
analoga 5000
rem---Program startar här---
10 dim nrsti som pin pm5 för digital utgång
20 dim ncs som pin pm3 för digital utgång
30 dim termoelement som kort, F så kort
40 dim cnt, setpoint, temp, status
50 dim vänster som pin pp0 för digital ingång debounced
60 dim välja som pin pp4 för digital ingång debounced
70 dim upp som pin pp3 för digital ingång debounced
80 dim ner som pin pp2 för digital ingång debounced
dim 90 höger som pin pp1 för digital ingång debounced
100 dim värmare som pin pp5 för analog utgång
110 dim fan som pin pt0 för digital utgång
120 dim Summer som pin pp6 för analog utgång
130 dim SPICTL som byte på adress 0x000000d8
140 låt SPICTL = SPICTL & 0xfe
150 konfigurera timer 0 för 750 ms
160 konfigurera timer 1 för 500 ms
170 konfigurera timer 2 för 1 s
180 konfigurera timer 3 för 500 ms
190 på timer 0 göra gosub qspi
200 på timer 1 göra gosub exit
210 på timer 2 göra gosub greve
220 mask timer 2
230 på timer 3 gosub justera
240 mask timer 3
250 låt setpoint = 5000
260 sub main
270 lcd 0, "Tech Arts"
280 lcd 1, "flöda brödrost"
290 sömn 1 s
300 rem
310 rem---huvudmenyn---
320 rem gosub lcdclear
330 låt cnt = 300, värmare = 0, fan = 0, Summer = 0
340 lcd 1, "ROHS || Lead"
350 lcd 2, "upp || Ner"
360 medan 1 göra
370 om! sedan upp
380 låt temp = 473
390 gosub main2
400 rem-sömn 100 ms
410 elseif! sedan ner
420 låt temp = 428
430 rem-sömn 100 ms
440 gosub main2
450 annat
460 endif
470 endwhile
480 endsub
490 sub main2
500 gosub lcdclear
510 medan 1 göra
520 lcd 1, "Start", "| <> - |", "Sluta"
530 om! kvar sedan
540 lcd 3, "Tryck -> | till avfart"
550 gosub förvärma
560 annat
570 endif
580 endwhile
590 endsub
600 rem---QSPI---
610 sub qspi
620 låt ncs = 0, nrsti = 1
630 qspi termoelement
640 låt ncs = 1
650 låt termoelement = termoelement >> 3
660 låt termoelement = termoelement * 1/4
670 låt F = termoelement * 9 / 5 + 31
680 lcd 0, "Temp:", dec termoelement, "C", dec F, "F"
690 print "Fan =", fan
700 endsub
710 rem---End program---
720 sub utgång
730 om! just då
740 låt värmare = 0, fan = 0
750 lcd 0, ""
760 lcd 1, "Adjö"
770 lcd 2, ""
780 lcd 3, ""
790 slutet
800 annat
810 endif
820 endsub
830 rem---Värm---
840 sub förvärma
850 medan F < temp
860 gosub lcdclear
870 lcd 1, "Förvärmning"
880 if F < = 349 då
890 låt värmare = 5000, fan = 1
900 elseif F < = temp då
910 låt värmare = setpoint - (F * 5), fan = 1
920 print "värmare värde =", värmare
930 endif
940 rem tills F > = temp
950 endwhile
960 gosub reflow
970 endsub
980 rem---Reflow---
990 sub reflow
1000 demaskera timer 3
1010 gosub lcdclear
1020 låt Summer = 750
1030 sova 500 ms
1040 låt Summer = 0
1050 medan 1 göra
1060 lcd 3, "Timer =", cnt, "sekunder"
1070 lcd 1, "Tryck på < att starta"
1080 if! sedan upp
1090 låt cnt = cnt + 10
1100 elseif! sedan ner
1110 låt cnt = cnt - 10
1120 elseif! kvar sedan
1130 demaskera timer 2
1140 annat
1150 endif
1160 endwhile
1170 endsub
1180 sub reflow2
1190 lcd 3, "Reflow gjort"
1200 låter summern = 500
1210 sova 500 ms
1220 låt Summer = 0
1230 sova 500 ms
1240 låt Summer = 400
1250 sova 500 ms
1260 låt Summer = 0, fan = 0, värmare = 0
1270 mask timer 3
1280 gosub huvudsakliga
1290 endsub
1300 rem---justera---
1310 sub justera
1320 if F < temp då
1330 låt värmare = 5000, fan = 1
1340 lcd 2, "Temp justera"
1350 print "Adj Temp upp =", F
1360 annat
1370 låt värmare = 0, fan = 1
1380 lcd 2, "Temp bra"
1390 print "Adj Temp ner =", F
1400 endif
1410 endsub
1420 rem---räkning---
1430 sub räkna
1440 om cnt > 0 då
1450 rem
1460 låt cnt = cnt - 1
1470 rem lcd 3, "Timer =", cnt, "SEK"
1480 annat
1490 mask timer 2
1500 låt cnt = 300
1510 gosub reflow2
1520 endif
1530 endsub
1540 rem---tydlig LCD---
1550 sub lcdclear
1560 lcd 1, ""
1570 lcd 2, ""
1580 lcd 3, ""
1590 endsub