' ' CONTROL DE ACTUADORES Y SENSORES MEDIANTE PUERTO PARALELO ' ' Programaci¢n de un display de 7 segmentos de c todo com£n ' Segmentos y punto decimal en las 8 l¡neas de DATOS: ' ' punto seg.7 seg.6 seg.5 seg.4 seg.3 seg.2 seg.1 ' D7 D6 D5 D4 D3 D2 D1 D0 ' 3 ' --- ' 2 | | 4 ' 1 --- ' 5 | | 7 ' --- o8 ' 6 ' 2002 V¡ctor R. Gonz lez DECLARE SUB Activa (valor%) ' Direcciones del puerto paralelo CONST LPTBASE = &H378 CONST DATOS = LPTBASE CONST ESTADO = LPTBASE + 1 CONST CONTROL = LPTBASE + 2 CONST APAGADO = &H0 ' display apagado DIM i AS INTEGER, segmento(11) AS INTEGER ' Valores que activan los segmentos segmento(0) = &H7E ' segmentos ,7,6,5,4,3,2, : 01111110 segmento(1) = &H48 ' segmentos ,7, , ,4, , , : 01001000 segmento(2) = &H3D ' segmentos , ,6,5,4,3, ,1: 00111101 segmento(3) = &H6D ' segmentos ,7,6, ,4,3, ,1: 01101101 segmento(4) = &H4B ' segmentos ,7, , ,4, ,2,1: 01001011 segmento(5) = &H67 ' segmentos ,7,6, , ,3,2,1: 01100111 segmento(6) = &H73 ' segmentos ,7,6,5, , ,2,1: 01110011 segmento(7) = &H4C ' segmentos ,7, , ,4,3, , : 01001100 segmento(8) = &H7F ' segmentos ,7,6,5,4,3,2,1: 01111111 segmento(9) = &H4F ' segmentos ,7, , ,4,3,2,1: 01001111 segmento(10) = &H80 ' segmentos 8, , , , , , , : 10000000 CLS : PRINT "Control de un display de 7 segmentos:" ' Cuenta adelante PRINT : INPUT "Pulsa para comenzar una cuenta adelante ...", a$ FOR i = 0 TO 10 IF segmento(i) <> PUNTO THEN PRINT " "; i; ELSE PRINT " . "; END IF Activa segmento(i) SLEEP 1 NEXT i ' Cuenta atr s PRINT : INPUT "Pulsa para comenzar la cuenta atr s ...", a$ FOR i = 10 TO 0 STEP -1 IF segmento(i) <> PUNTO THEN PRINT " "; i; ELSE PRINT " . "; END IF Activa segmento(i) SLEEP 1 NEXT i ' Apaga el display PRINT : INPUT "Pulsa para apagar y salir ...", a$ Activa APAGADO END ' EnvÖa un valor al puerto de datos SUB Activa (valor%) OUT DATOS, valor% END SUB