Paso 4: El programa:
********************************Tecnológica artes ***
********************************
Proyecto: Reflujo tostadora
Por: MC9S12DP512 | MAX6675 | K-tipo termopar | NHD-0420DZ-NSW-BBW
> pins (debe ser señalado escribiendo "pins declaración de < >")
pp7 del latido del corazón
modo seguro * pa6
para alambre de amarillo/verde de termopar de tipo k = + ve, rojo alambre = - ve
Rem //LCD - ver página 94 Guía del usuario básico
lcd_rs pa0
lcd_en pa1
lcd_d4 pa2
lcd_d5 pa3
lcd_d6 pa4
lcd_d7 PE5
Rem / 5 botón joystick utilizado para la entrada de usuario
Pp0 izquierdo
derecho pp1
por pp2
por pp3
Seleccione pp4
calentador pp5
pt0 ventilador
zumbador pp6
análogo 5000
Rem---programa comienza aquí---
10 dim nrsti como pin pm5 para salida digital
20 dim ncs como pm3 de pin de salida digital
30 dim termopar como short, F tan corto
40 dim cnt, consigna, temperatura, estado
50 dim izquierda como pp0 pin para entrada digital debounced
60 dim seleccione como debounced pp4 pin para entrada digital
70 se atenúan como pp3 pin para entrada digital debounced
80 dim abajo como pp2 pin para entrada digital debounced
90 dim derecha como pp1 pin para entrada digital debounced
100 dim calentador como pin pp5 para salida analógica
110 dim ventilador como pin pt0 para salida digital
120 dim zumbador como pin pp6 para salida analógica
130 dim SPICTL como byte en dirección 0x000000d8
140 deje que SPICTL = SPICTL & 0xfe
150 configurar timer 0 para 750 ms
160 configurar el temporizador 1 de 500 ms
170 configurar timer 2 para 1 s
180 configurar temporizador 3 de 500 ms
190 en temporizador 0 gosub qspi
200 el temporizador 1 gosub salida
210 el temporizador 2 hacer gosub cuenta
temporizador de máscara 220 2
230 el temporizador 3 gosub ajustar
temporizador de 240 máscara 3
250 dejó consigna = 5000
260 sub main
270 lcd 0, «Artes de la tecnología»
280 lcd 1, "reflujo tostadora"
s sueño 290 1
300 rem
310 rem---menú principal---
rem 320 gosub lcdclear
330 dejó cnt = 300, calentador = 0, ventilador = 0, zumbador = 0
340 lcd 1, "ROHS || Plomo"
350 lcd 2, "para arriba || Abajo"
360, mientras que 1
370 if! hasta luego
380 dejó temp = 473
main2 390 gosub
sueño rem 400 100 ms
elseif 410! abajo entonces
420 dejó temp = 428
430 rem dormir 100 ms
gosub 440 main2
más de 450
endif 460
endwhile 470
endsub 480
main2 490 sub
gosub 500 lcdclear
510 y 1 hacer
520 lcd 1, "Inicio", "| <> – |", "Pare"
530 if! luego a la izquierda
540 lcd 3, "prensa -> | a la salida"
Precaliente el gosub 550
más de 560
endif 570
endwhile 580
endsub 590
600 rem---QSPI---
610 sub qspi
620 dejó ncs = 0, nrsti = 1
termopar qspi 630
640 dejó ncs = 1
650 dejó termopar termopar de = >> 3
660 dejó termopar termopar de = * 1/4
670 dejó F = termopar * 9 / 5 + 31
680 lcd 0, "Temp:", dec dec termopar, "C", F, "F"
690 impresión "ventilador =", ventilador
endsub 700
710 rem---fin programa---
salida de sub 720
730 if! justo entonces
740 deje estufa = 0, ventilador = 0
750 lcd 0, ""
760 lcd 1, "Adiós"
770 lcd 2, ""
780 lcd 3, ""
final 790
más de 800
endif 810
endsub 820
830 rem---precalentamiento---
Precaliente el sub 840
850 y F < hacer temp
gosub 860 lcdclear
870 lcd 1, "Precalentamiento"
880 if F < = 349 entonces
890 deje estufa = 5000, ventilador = 1
elseif 900 F < = temp entonces
910 deje estufa = punto de ajuste - (F * 5), ventilador = 1
920 impresión "calentador valor =", calentador
endif 930
940 rem hasta F > = temp
endwhile 950
gosub 960 reflujo
endsub 970
980 rem---reflujo---
reflujo secundario 990
1000 desenmascarar a temporizador 3
1010 gosub lcdclear
1020 dejar zumbador = 750
1030 dormir 500 ms
1040 dejar zumbador = 0
1050 mientras 1
1060 lcd 3, "contador =", cnt, "segundos"
1070 lcd 1, "prensa < para empezar"
1080 if! hasta luego
1090 dejar cnt = cnt + 10
elseif 1100! abajo entonces
1110 dejó cnt = cnt - 10
1120 elseif! luego a la izquierda
1130 desenmascarar a temporizador 2
más de 1140
1150 endif
endwhile 1160
1170 endsub
1180 sub reflow2
lcd de 1190 3, "Reflujo de hecho"
1200 dejar zumbador = 500
1210 dormir 500 ms
1220 dejar zumbador = 0
1230 dormir 500 ms
1240 dejar zumbador = 400
1250 dormir 500 ms
1260 dejar zumbador = 0, ventilador = 0, calentador = 0
temporizador de máscara 1270 3
1280 gosub principal
1290 endsub
1300 rem---ajuste---
1310 sub ajuste
1320 if F < temp entonces
1330 deje estufa = 5000, ventilador = 1
1340 lcd 2, "Temperatura de ajuste"
1350 impresión "Adj Temp hasta =", F
más de 1360
1370 deje estufa = 0, ventilador = 1
1380 lcd 2, "Buena temperatura"
1390 impresión "Adj Temp = hacia abajo", F
endif 1400
1410 endsub
1420 rem---cuenta---
cuenta sub 1430
1440 if cnt > 0 entonces
1450 rem
1460 dejó cnt = cnt - 1
1470 rem lcd 3, "contador =", cnt, "sec"
más de 1480
temporizador de 1490 de la máscara 2
1500 dejar cnt = 300
1510 gosub reflow2
1520 endif
1530 endsub
1540 rem---clara LCD---
sub 1550 lcdclear
1560 lcd 1, ""
1570 lcd 2, ""
1580 lcd 3, ""
1590 endsub