Stap 4: Het programma:
********************************Technologische Arts ***
********************************
Project: Reflow broodrooster
Vóór: MC9S12DP512 | MAX6675 | K-Type thermokoppel | NHD-0420DZ-NSW-BBW
> pinnen (moet worden aangewezen door te typen "pinnen < Statement >")
hartslag pp7
SafeMode * pa6
voor k-type thermokoppel geel/groene draad = + ve, rode draad = - ve
rem //LCD - Zie pagina 94 in fundamentele gebruikershandleiding
lcd_rs pa0
lcd_en pa1
lcd_d4 pa2
lcd_d5 pa3
lcd_d6 pa4
lcd_d7 pa5
rem / / 5 button joystick gebruikt voor invoer van de gebruiker
Linker pp0
juiste pp1
beneden pp2
omhoog pp3
Selecteer pp4
kachel pp5
ventilator pt0
zoemer pp6
analoge 5000
rem---programma begint hier---
10 dim nrsti als pin pm5 voor digitale uitgang
20 dim ncs als pin pm3 voor digitale uitgang
30 dim thermokoppel zo kort, F zo kort
40 dim cnt, setpoint, temp, status
50 dim links als pp0 van de pin voor digitale ingang debounced
60 dim selecteren als pin pp4 voor digitale ingang debounced
70 dim omhoog als pin pp3 voor digitale ingang debounced
80 dim neer als pin pp2 voor digitale ingang debounced
90 dim recht als pp1 van de pin voor digitale ingang debounced
100 dim kachel als pin pp5 voor analoge uitgang
110 dim ventilator als pin pt0 voor digitale uitgang
120 dim zoemer als pin pp6 voor analoge uitgang
130 dim SPICTL als byte op adres 0x000000d8
140 laat SPICTL = SPICTL & 0xfe
150 configureren timer 0 voor 750 ms
160 configureren timer 1 voor 500 ms
170 configureren timer 2 voor 1 s
180 configureren timer 3 voor 500 ms
190 op tijdopnemer 0 doen gosub qspi
200 op timer 1 doen gosub afsluiten
210 timer 2 doen gosub graaf
220 masker timer 2
230 op timer 3 Ken gosub aanpassen
240 masker timer 3
250 laat setpoint = 5000
260 sub main
270 lcd 0, "Tech Arts"
280 lcd 1, "Reflow Toaster"
290 slaap 1 s
300 rem
310 rem---hoofdmenu---
320 rem gosub lcdclear
330 laat cnt = 300, kachel = 0, ventilator = 0, zoemer = 0
340 lcd 1, "ROHS || Leiden"
350 lcd 2, "omhoog || Down"
360 terwijl 1 doen
370 als! vervolgens omhoog
380 laat temp = 473
390 gosub main2
400 rem-slaap 100 ms
410 elseif! vervolgens omlaag
420 laat temp = 428
430 rem-slaap 100 ms
440 gosub main2
450 anders
460 endif
470 endwhile
480 endsub
490 sub main2
500 gosub lcdclear
510 terwijl 1 doen
520 lcd 1, "Start", "| <> - |", "Stop"
530 als! links dan
540 lcd 3, "Press -> | naar uitgang"
Verwarm de 550 gosub
560 anders
570 endif
580 endwhile
590 endsub
600 rem---QSPI---
610 sub qspi
620 laat ncs = 0, nrsti = 1
630 qspi thermokoppel
640 laat ncs = 1
650 laat thermokoppel = thermokoppel >> 3
660 laat thermokoppel = thermokoppel * 1/4
670 laat F = thermokoppel * 9 / 5 + 31
680 lcd 0, "Temp:", dec thermokoppel, 'C', minder F, "F"
690 print "Fan =", ventilator
700 endsub
710 rem---einde programma---
720 sub uitgang
730 als! recht dan
740 laat kachel = 0, ventilator = 0
750 lcd 0, ""
760 lcd 1, "Goodbye"
770 lcd 2, ""
780 lcd 3, ""
790 einde
800 anders
810 endif
820 endsub
830 rem---Preheat---
Verwarm de 840 sub
850 terwijl F < temp ken
860 gosub lcdclear
870 lcd 1, "Voorverwarming"
880 als F < = 349 then
890 laat kachel = 5000, ventilator = 1
900 elseif F < = temp then
910 laat kachel = setpoint - (F * 5), ventilator = 1
920 print "kachel waarde =", kachel
930 endif
940 rem tot F > = temp
950 endwhile
960 gosub opnieuw plaatsen
970 endsub
980 rem---Reflow---
990 sub opnieuw plaatsen
1000 ontmaskert timer 3
1010 gosub lcdclear
1020 laat zoemer = 750
1030 slapen 500 ms
1040 laat zoemer = 0
1050 terwijl 1 doen
1060 lcd 3, "Timer =", cnt, "sec"
1070 lcd 1, "Press < om te beginnen"
1080 als! vervolgens omhoog
1090 laat cnt cnt + 10 =
1100 elseif! vervolgens omlaag
1110 laat cnt = cnt - 10
1120 elseif! links dan
1130 ontmaskert timer 2
1140 anders
1150 endif
1160 endwhile
1170 endsub
1180 sub reflow2
1190 lcd 3, "Reflow gedaan"
1200 laat zoemer = 500
1210 slapen 500 ms
1220 laat zoemer = 0
1230 slapen 500 ms
1240 laat zoemer = 400
1250 slapen 500 ms
1260 laat zoemer = 0, ventilator = 0, kachel = 0
1270 masker timer 3
1280 gosub belangrijkste
1290-endsub
1300 rem---aanpassen---
1310 sub aanpassen
1320 als F < vervolgens temp
1330 laat kachel = 5000, ventilator = 1
1340 lcd 2, 'Temp aanpassen'
1350 print "Adj Temp omhoog =", F
1360 anders
1370 laat kachel = 0, ventilator = 1
1380 lcd 2, "Temp goed"
1390 print "Adj Temp omlaag =", F
1400 endif
1410 endsub
1420 rem---graaf---
1430 sub tellen
1440 als cnt > 0 then
1450 rem
1460 laat cnt = cnt - 1
1470 rem lcd 3, "Timer =", cnt, "sec"
1480 anders
1490 masker timer 2
1500 laat cnt = 300
1510 gosub reflow2
1520 endif
1530-endsub
1540 rem---duidelijk LCD---
1550 sub lcdclear
1560 lcd 1, ""
1570 lcd 2, ""
1580 lcd 3, ""
1590-endsub