Étape 4: Le programme :
********************************Technologique Arts ***
********************************
Projet : Refonte ou grille-pain
De : MC9S12DP512 | MAX6675 | Thermocouple de Type K | NHD-0420DZ-NSW-BBW
> épingles (doit être désigné en tapant "< instruction > pins")
rythme cardiaque pp7
pa6 safemode *
pour le fil jaune/vert de k type thermocouple = + ve, rouge fil = - ve
REM //LCD - voir page 94 dans le Guide d’utilisation de base
lcd_rs pa0
lcd_en pa1
AP2 lcd_d4
lcd_d5 pa3
lcd_d6 pa4
lcd_d7 pa5
REM / / 5 bouton joystick utilisé pour la saisie de l’utilisateur
Pp0 gauche
pp1 droite
vers le bas pp2
jusqu'à pp3
Sélectionnez pp4
radiateur pp5
ventilateur pt0
ronfleur pp6
5000 analogiques
REM---programme commence ici---
10 dim nrsti broche pm5 pour sortie numérique
20 dim ncs pm3 broche de sortie numérique
30 dim thermocouple plus brefs, F comme court
40 dim cnt, consigne, temp, statut
50 dim gauche pp0 de la broche d’entrée numérique debounced
dim 60 sélectionnez comme broche pp4 pour entrée numérique debounced
70 dim up pp3 NIP pour une entrée numérique debounced
80 dim bas pin pp2 pour une entrée numérique debounced
dim 90 droite broche pp1 pour entrée numérique debounced
100 dim radiateur pp5 broche pour la sortie analogique
dim 110 fan pt0 broche de sortie numérique
120 dim buzzer pp6 broche pour la sortie analogique
130 dim SPICTL as byte à l’adresse 0x000000d8
140 let SPICTL = SPICTL & 0xfe
150 configurer minuterie 0 à 750 ms
160 configurer minuterie 1 pour 500 ms
170 configurer minuterie 2 pour 1 s
180 configurer minuterie 3 pour 500 ms
190 sur minuterie 0 faire gosub qspi
200 sur minuterie 1 faire gosub sortie
210 sur minuterie 2 faire gosub comte
minuterie de 220 masque 2
230 sur minuterie 3 gosub ajuster
minuterie de 240 masque 3
250 laisser consigne = 5000
260 procédure sub main
270 lcd 0, « Art Tech »
280 lcd 1, « Reflow grille-pain »
sommeil 290 1 s
300 rem
310 rem---menu principal---
320 rem gosub lcdclear
330 laisser cnt = 300, radiateur = 0, fan = 0, sonnerie = 0
340 lcd 1, "ROHS || Plomb"
350 lcd 2, "place || Down"
faire de la 360 tout en 1
370 if! puis haut
380 laisser temp = 473
gosub 390 main2
sommeil rem 400 100 ms
410 elseif! puis vers le bas
420 laisser temp = 428
sommeil rem 430 100 ms
gosub 440 main2
d’autre 450
endif 460
endwhile 470
end 480
void 490 main2
gosub 500 lcdclear
510 tout en 1 ne
520 lcd 1, « Démarrer », "| <> – |", « Stop »
530 if! puis à gauche
540 lcd 3, "presse -> | jusqu'à la sortie"
gosub 550 Préchauffer
d’autre 560
endif 570
endwhile 580
end 590
600 rem---QSPI---
void 610 qspi
620 laisser ncs = 0, nrsti = 1
qspi 630 thermocouple
640 laisser ncs = 1
650 laisser thermocouple = thermocouple >> 3
660 laisser thermocouple = thermocouple * 1/4
670 laisser F = thermocouple * 9 / 5 + 31
680 lcd 0, "Temp:", déc déc de thermocouple, « C », F, « F »
690 impression "Fan =", ventilateur
end 700
710 rem---programme fin---
exit sub 720
730 if! droite,
740 laissez convecteur = 0, fan = 0
750 lcd 0, ""
760 lcd 1, « Goodbye »
770 lcd 2, ""
780 lcd 3, ""
fin 790
d’autre 800
endif 810
end 820
830 rem---préchauffage---
void 840 Préchauffer
850 tout en F < temp
gosub 860 lcdclear
870 lcd 1, « Préchauffage »
880 if F < = 349 puis
890 laissez convecteur = 5000, ventilateur = 1
elseif 900 F < = temp puis
910 laissez convecteur = setpoint - F * 5, ventilateur = 1
920 impression "radiateur Value =", chauffage
endif 930
940 rem jusqu’au F > = temp
endwhile 950
gosub 960 refusion
end 970
980 rem---refusion---
refusion sous 990
1000 démasquer minuterie 3
1010 gosub lcdclear
1020 laisser ronfleur = 750
1030 dormir 500 ms
1040 laisser ronfleur = 0
1050 tout en 1 ne
1060 lcd 3, "Timer =", cnt, « secs »
1070 lcd 1, "presse < pour commencer"
1080 if! puis haut
1090 laisser cnt = cnt + 10
1100 elseif! puis vers le bas
1110 laisser cnt = cnt - 10
1120 elseif! puis à gauche
1130 démasquer minuterie 2
1140 d’autre
1150 endif
1160 endwhile
1170 end
1180 sub reflow2
1190, lcd 3, « Reflow fait »
1200 laisse sonnerie = 500
1210 dormir 500 ms
1220 laisser ronfleur = 0
1230 dormir 500 ms
1240 laisser ronfleur = 400
1250 dormir 500 ms
1260 laisser ronfleur = 0, fan = 0, radiateur = 0
minuterie de 1270 masque 3
gosub 1280 principal
1290 end
1300 rem---Adjust---
void 1310 ajuster
1320 if F < temp puis
1330 laissez convecteur = 5000, ventilateur = 1
1340 lcd 2, « Temp réglage »
1350 impression "Adj Temp up = «, F
d’autre de 1360
1370 laissez convecteur = 0, ventilateur = 1
1380 lcd 2, « Bon Temp »
1390 impression "Adj Temp down = «, F
1400 endif
1410 end
1420 rem---comte---
comte de 1430 sup
1440 if cnt > 0 then
1450 rem
1460 laisser cnt = cnt - 1
1470 rem lcd 3, "Timer =", cnt, « sec »
1480 d’autre
minuterie de 1490 masque 2
1500 laisser cnt = 300
1510 gosub reflow2
1520 endif
1530 end
1540 rem---Clear LCD---
1550 sub lcdclear
1560 lcd 1, ""
1570, lcd 2, ""
1580, lcd 3, ""
end de 1590