Elige tu idioma

Google-Translate-Spanish to English Google-Translate-Chinese (Simplified) BETA Google-Translate-Spanish to French Google-Translate-Spanish to German Google-Translate-Spanish to Italian Google-Translate-Spanish to Japanese BETA Google-Translate-Spanish to Korean BETA Google-Translate-Spanish to Russian BETA
Usa este widget!

Visitas

Contador Web
Contador Web WAU_classic('65kdjd2sjoxp')

visitantes

Calendario Ideas&Tecnologia

Marzo 2010
L M X J V S D
« Ene    
1234567
891011121314
15161718192021
22232425262728
293031  

Archivos

Meta

CATEGORIAS

Entradas recientes

Nube de Etiquetas

VIDEO

Ultimos comentarios

Enlaces

Count per Day

Directorios

Tutorial de Labview


Por: Ideas&Tecnologia

portada

LabView es un programa para el desarrollo de aplicaciones de propositos generales, en la cual es utilizado por la mayoría de los estudiantes, ingenieros, investigadores, etc. Esto se debe por su amigable interface grafica y su facilidad de realizar grandes proyectos.

Labview abarca varios campos de ingeniería, como: Telecomunicaciones, Automatizacion, Estadistica, Programacion, Robotica, etc.

Instalación de Labview

Para la instalación de labview es realmente sencillo, solo seguir los pasos predeterminados que te indica el instalador y listo.

Lo que hay que tomar en cuenta es el ingreso de las licencias, para esto hay que irse a Programas -> National Instruments -> NI License Manager

Luego irse al menú Options y seleccionar Install License File, bueno aquí se debe buscar el archivo que aparece cuando crackeas, y listo, ya puedes darle uso al Labview.

dibujo

Para el uso de bloques especiales en labview, como ejemplo: Rf Communications, PID, Filtros, Vision, Bases de Datos, USB, etc;. hace falta instalarlos a parte.

OJO!

Una de la formas de hacer proyectos en labview, bueno a criterio personal, es partiendo de los ejemplos que se encuentran en los archivos de instalación de labview, archivos que aparecen cuando instalas el labview y las librerías adicionales.

Estos archivos están direccionados en:

Archivos de Programas -> National Instruments -> Labview 8.5 -> Examples


Los temas que tratan los ejemplos son los siguientes:

dibujo2

Aquí lo que tienen que hacer es buscar lo que quieren hacer, por ejemplo: RF comunications, filtros, PID, Reconocimientos con visión, identificador de código de barras, etc. Y luego de lo buscado, partir como base para la realización de sus projectos.

Hay una inmensa gama de ejemplos de diferentes areas de ingeniería, algo que de seguro les va servir y de mucho.

Otras forma de buscar ejemplos es desde el mismo labview.

dibujo3

Luego debemos seleccionar la pestaña Search:

dibujo4

Y luego en Enter Keyword(s) poner lo que queremos realizar.

OBSERVACIONES

ü Labview es una herramienta que posee todas las facilidades para realizar diversas aplicaciones, lo ventajoso de trabajar con Labview es la utilización de diversas y diferentes opciones, ya que utiliza: base de datos, adquisición de imágenes, transmisión de datos, etc.

ü La modularización es una ventaja bien grande en LABVIEW, se puede analizar resultado por sub-bloques, dando una ubicación más fácil de donde se encuentra el error o percance en caso de que hubiere.

Hay gran cantidad de recursos de buena calidad en internet en enseñanza basica de labview, es por ese motivo que nos enfocaremos en Vision, ya que es escasa la información que existe.

Labview – Vision

Utilizacion de una Camara Web

dibujo-5

Este es el diagrama de bloque para la utilizar la cámara web, ahora vamos a explicar paso a paso la realización de este diagrama de bloque.

dibujo-6-2

Crea una lista de todas ls cámaras usb existentes en la computadora.

dibujo7-2

Con este matriz Index se selecciona cual cámara se desea utilizar pues poniendo el numero en la que se encuentra la cámara en la lista.

dibujo-8-2

Crea una sesión IMAQ USB para la cámara especificada y luego realiza la adquisición.

dibujo-9-2

Crea un memoria temporal para una imagen, en este caso, para la imágenes de la cámara web.

dibujo-10

Aquí se obtiene imágenes durante la adquisición, se lo pone dentro de una while para que se mantega activado la visualización de imágenes, si deseamos finalizar solo aplastamos el botón STOP.


dibujo-11-2

Cerramos la sesión de la cámara usb

dibujo12-2

Elimina o vacia la memoria temporal que se utilizo para obtención de imágenes.

dibujo-13-2

Administra los errores que se pueden presentar.

Una vez explicado, haremos una demostración en el panel Frontal, que lo haremos a continuación:

dibujo-14

RECOMENDACIÓN

1. En el manejo de las cámaras web, obligadamente tiene que conmutar una cámara a la vez en forma secuencial, en el caso de no hacerlo, ocasiona que el código en labview presente errores. Para solucionar este problema, debe de darse la inicialización de una cámara y la terminación de la misma, justo en el momento que se utilice la otra cámara, de esta manera se logrará manejar varias cámaras a la vez.

2. Cuando la cámara realiza el enfoque para obtener las imagenes, tratar de controlar la intensidad de luz por que afecta la adquisición de datos.

3. Para tener un margen de error pequeño en la toma de imágenes a través de una cámara web, es recomendable una cámara de alta fidelidad, mientras mayor sea la resolución, menor será el margen de error.

FABRICACION DE UNA PCB EN FORMA

CASERA

POR TRANSFERENCIA TERMICA

Por: Ideas&Tecnologia


12

DESCRIPCION

Realizar el circuito impreso de forma simple a manera profesional.

Una vez ya realizado el circuito pcb en ARES procedemos a pasar el circuito a la baquelita, con materiales que tenemos a disposición en nuestros hogares.

MATERIALES:

Baquelita

Hoja adhesiva A4

Plancha (las que se usan para planchar la ropa)

Lija fina o lustre para limpiar la película de protección que viene en la baquelita

Broca 1mm

Acido ferrico

Recipiente

MANOS A LA OBRA:

1. Despegamos las dos partes que conforman la hoja adesiva “esto es importante ya que debemos tomar una de las dos para hacer la impresión del circuito” y tomamos la hoja que no tiene el pegamento.

2. Imprimimos el circuito pcb en una impresora ´LASER´ (no se debe usar impresora a tinta) ya que el método a seguir se llama transferencia térmica.

212

3. Una vez impreso vamos a pasar nuestra imagen del circuito a la baquita.

4. Limpiamos la película de protección de la baquelita con un lustre hasta que quede brilloso.

312

5. Recortamos la baquelita a una medida un poco mayor a la del circuito impreso.

6. Sobreponemos el papel con la baquelita y sujetamos con cinta transparente.

412

7. Encendemos la plancha y la ponemos a la máxima temperatura.

8. Procedemos a planchar, en los primeros momentos mantenemos por unos 15 seg la pancha sobre el papel para asegurarnos que no se deslice luego de ello hacemos ligeros movimientos hasta estar seguros de haber cubierto todas las áreas hacemos esto por unos 5 min (el tiempo puede variar de acuerdo al tamaño del circuito).

510

610

71

9. Una vez planchado llevamos la baquelita a una tina de agua y la sumergimos (con esto hacemos que la hoja se empape y quede la impresión sobre la baquelita) esperamos unos minutos y vamos retirando el papel suavemente.

81

10. Podremos apreciar que la impresión va quedando el la baquelita y limpiamos con un cepillo los restos de papel que estén por ahí.

121

111

131

11. Si en el caso de que se llegue a perder una línea se puede arreglar con un marcador indeleble la falla.

12. Preparamos el acido férrico con agua hasta una medida donde pueda cubrir la baquelita en nuestro recipiente.

141
13. Sumergimos la baquelita en el acido, en nuestro caso tenemos una maquina que nos ayuda en hacer los movimientos para que el liquido este corriendo por todas partes.

151

14. Esperamos hasta que el acido se halla comido la parte que no es circuito.

161

171

15. Limpiamos, perforamos donde van los elementos y listo ya tienes tu pcb.

181

uno-3

191

16. Con esto concluimos y a disfrutar de tu proyecto.


Reloj Ajedrez

Por: Ideas&Tecnologia


110

Descripción

Este proyecto realizado en codigo assembler consiste en el diseño de un circuito de reloj digital cuya funcion es la de controlar el tiempo de una partida de ajedrez. Para realizar este proyecto utilizamos el PIC16F887 y la

técnica de múltiplexación para ahorrar el uso de pines del microcontrolador y a su vez el consumo de energía debido a que se utiliza 8 display cátodo común, un indicador Led para inicio y final del juego,3 button para el control de Jugador1,2 y Start/Finish.

Funcionamiento

Al energizar el circuito este empezara con el reloj seteado en cero, esperando a que el juez presione el button Start/Finish, al presionar este button el indicador led encenderá indicando que se a iniciado el juego, luego de esto se espera a que un jugador presione el button para dar inicio al arranque del reloj una vez iniciado el juego el juez podrá detenerlo en el momento que deseo y a la vez reanudarlo.

Código en ASM

;**********************************************************************************************

LIST P=16F877A

INCLUDE “P16F877A.INC”

ERRORLEVEL -302

__CONFIG (_CP_OFF & _PWRTE_OFF & _HS_OSC & _WDT_OFF & _LVP_OFF & _BODEN_OFF )

;************Equivalencias ******************************************

DISPDIG1 EQU 0X20 ;COD 7 SEG DE DIGITO 1

DISPDIG2 EQU 0X21 ;COD 7 SEG DE DIGITO 2

DISPDIG3 EQU 0X22 ;COD 7 SEG DE DIGITO 3

DISPDIG4 EQU 0X23 ;COD 7 SEG DE DIGITO 4

DISPDIG5 EQU 0X24 ;COD 7 SEG DE DIGITO 5

DISPDIG6 EQU 0X25 ;COD 7 SEG DE DIGITO 6

DISPDIG7 EQU 0X26 ;COD 7 SEG DE DIGITO 7

DISPDIG8 EQU 0X27 ;COD 7 SEG DE DIGITO 8

SELECT EQU 0X29 ;HABILITADOR PARA DISPLAYS

UNIDAD EQU 0X30

DECENA EQU 0X31

N1 EQU 0X32

N2 EQU 0X33

N3 EQU 0X34

CENTENA EQU 0X35

SEGJUGA1 EQU 0X36

SEGJUGA2 EQU 0X37

MINJUGA1 EQU 0X38

MINJUGA2 EQU 0X39

; CARGA_TMR0 SE USA PARA PROGRAMAR EL TMR0

CARGA_TMR0 EQU d’217′ ;217=>2ms

;*********************************************************************

ORG 0

GOTO INICIO

ORG 4 ;Int cada 5ms

GOTO INTERRUPTION

;#####################################################################

; PROGRAMA PRINCIPAL

INICIO

BSF STATUS,5 ; Seleccion del banco 1

CLRF TRISD

MOVLW 07H

MOVWF TRISC

CLRF TRISB

CLRF TRISE

MOVLW b’10000111′

MOVWF OPTION_REG ; PRE-ESCALER=256

MOVLW b’10100000′ ; Interrupci¢n por timer0

MOVWF INTCON

bcf STATUS,5 ; Seleccion banco 0

CLRF PORTB

CLRF PORTC

CLRF PORTD

CLRF PORTE

CLRF DISPDIG1

CLRF DISPDIG2

CLRF DISPDIG3

CLRF DISPDIG4

CLRF DISPDIG5

CLRF DISPDIG6

CLRF DISPDIG7

CLRF DISPDIG8

CLRF SELECT

CLRF UNIDAD

CLRF DECENA

CLRF CENTENA

CLRF SEGJUGA1

CLRF SEGJUGA2

CLRF MINJUGA1

CLRF MINJUGA2

CLRF N1

CLRF N2

CLRF N3

CLRWDT

MOVLW 0×01 ;Interrupción por timer0

MOVWF SELECT

MOVLW CARGA_TMR0 ;Valor a cargar en el Timer:

MOVWF TMR0

STARTPRESS

BCF PORTC,3

BTFSC PORTC,2 ;SI BIT=0 EJECUTA SIG INSTRUCCION

GOTO STARTSOLTAR

GOTO STARTPRESS

STARTSOLTAR BTFSC PORTC,2 ;SI BIT=0 EJECUTA SIG INSTRUCCION

GOTO STARTSOLTAR

BSF PORTC,3

PRESS BTFSC PORTC,0 ;SI BIT=0 EJECUTA SIG INSTRUCCION

GOTO SOLTARJUGADOR1

BTFSC PORTC,1

GOTO SOLTARJUGADOR2

GOTO PRESS

SOLTARJUGADOR1 BTFSC PORTC,0

GOTO SOLTARJUGADOR1

GOTO JUGADOR1

SOLTARJUGADOR2 BTFSC PORTC,1

GOTO SOLTARJUGADOR2

GOTO JUGADOR2

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

JUGADOR1

INCF SEGJUGA1,F

MOVF SEGJUGA1,W

SUBLW .60

BTFSC STATUS,2

GOTO MINUTOSJ1

GOTO SEGUNDOSJ1

MINUTOSJ1 CLRF SEGJUGA1

INCF MINJUGA1,F

BCF STATUS,2

CLRW

SEGUNDOSJ1

BTFSC PORTC,1

GOTO JUGADOR2

CALL TIMEJUGADOR1

CALL DELAY

BTFSC PORTC,2

GOTO STOP

GOTO JUGADOR1

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

JUGADOR2

INCF SEGJUGA2,F

MOVF SEGJUGA2,W

SUBLW .60

BTFSC STATUS,2

GOTO MINUTOSJ2

GOTO SEGUNDOSJ2

MINUTOSJ2 CLRF SEGJUGA2

INCF MINJUGA2,F

BCF STATUS,2

CLRW

SEGUNDOSJ2

BTFSC PORTC,0

GOTO JUGADOR1

CALL TIMEJUGADOR2

CALL DELAY

BTFSC PORTC,2

GOTO STOP

GOTO JUGADOR2

STOP BTFSC PORTC,2

GOTO STOP

GOTO STARTPRESS

;************************************************************************

TIMEJUGADOR1

MOVF SEGJUGA1,W

CALL BINBCD

MOVF UNIDAD,W

MOVWF DISPDIG4

MOVF DECENA,W

MOVWF DISPDIG3

MOVF MINJUGA1,W

CALL BINBCD

MOVF UNIDAD,W

MOVWF DISPDIG2

MOVF DECENA,W

MOVWF DISPDIG1

RETURN

;************************************************************************

TIMEJUGADOR2

MOVF SEGJUGA2,W

CALL BINBCD

MOVF UNIDAD,W

MOVWF DISPDIG8

MOVF DECENA,W

MOVWF DISPDIG7

MOVF MINJUGA2,W

CALL BINBCD

MOVF UNIDAD,W

MOVWF DISPDIG6

MOVF DECENA,W

MOVWF DISPDIG5

RETURN

;************************************************************************

;**********************************************************************

; SUBRUTINA INTERRUPT

INTERRUPTION

MOVLW b’10100000′ ;Limpiar bandera de TMR0

MOVWF INTCON

MOVLW CARGA_TMR0 ;Valor a cargar en el Timer:

MOVWF TMR0

CLRWDT

BCF ´ STATUS,C

BTFSC SELECT,0 ;SI BIT CODIGO_G0.0=1 EJECUTA SIG INSTRUCCION

GOTO DIG1

BTFSC SELECT,1 ;SI BIT CODIGO_G0.1=1 EJECUTA SIG INSTRUCCION

GOTO DIG2

BTFSC ´ SELECT,2 ;SI BIT CODIGO_G0.2=1 EJECUTA SIG INSTRUCCION

GOTO DIG3

BTFSC SELECT,3 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION

GOTO DIG4

BTFSC SELECT,4 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION

GOTO DIG5

BTFSC SELECT,5 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION

GOTO DIG6

BTFSC SELECT,6 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION

GOTO DIG7

BTFSC SELECT,7 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION

GOTO DIG8

DIG1

CLRF PORTD

MOVF DISPDIG1,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×02

MOVWF SELECT

RETFIE

DIG2

CLRF PORTD

MOVF DISPDIG2,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×04

MOVWF SELECT

RETFIE

DIG3

CLRF PORTD

MOVF DISPDIG3,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×08

MOVWF SELECT

RETFIE

DIG4

CLRF PORTD

MOVF DISPDIG4,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×10

MOVWF SELECT

RETFIE

DIG5

CLRF PORTD

MOVF DISPDIG5,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×20

MOVWF SELECT

RETFIE

DIG6

CLRF PORTD

MOVF DISPDIG6,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×40

MOVWF SELECT

RETFIE

DIG7

CLRF PORTD

MOVF DISPDIG7,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×80

MOVWF SELECT

RETFIE

DIG8

CLRF PORTD

MOVF DISPDIG8,W

CALL TABLA

MOVWF PORTB ;Dato al display

MOVF SELECT,W

MOVWF PORTD

NOP

MOVLW 0×01

MOVWF SELECT

RETFIE

;***********************************************************

;SUBRUTINA DELAY=N1×20.556 MSEG.

;CON N1=25 SE TIENE UN RETARDO DE 0.5 SEG

;CON N1=50 SE TIENE UN RETARDO DE 1 SEG.

;CON N1=100 SE TIENE UN RETARDO DE 2 SEG.

DELAY MOVLW .50

MOVWF N1

LAZO1 MOVLW .67

MOVWF N2

NOP

LAZO2 MOVLW .255

MOVWF N3

LAZO3 NOP

NOP

NOP

DECFSZ N3,F

GOTO LAZO3

DECFSZ N2,F

GOTO LAZO2

DECFSZ N1,F

GOTO LAZO1

RETURN

;***********************************************************

;Tabla de códigos de 7 segmentos para un display de CATODO COMUN. Los leds

;se encienden con un cero

TABLA

addwf PCL,F

retlw 0×3F ;0

retlw 0×06 ;1

retlw 0×5B ;2

retlw 0X4F ;3

retlw 0X66 ;4

retlw 0X6D ;5

retlw 0X7D ;6

retlw 0X07 ;7

retlw 0X7F ;8

retlw 0X6F ;9

;************************************************************************

;SUBRUTINA BINARIO/BCD

BINBCD NOP

MOVWF UNIDAD;NUMERO A CONVERTIR

CLRF DECENA

CLRF CENTENA

RESTA10 MOVLW .10

SUBWF UNIDAD,W

BTFSS STATUS,C;SALTA SI W >=10, C=1

GOTO BINBCDFIN

MOVWF UNIDAD;ACTUALIZA UNIDAD

INCF DECENA,F

MOVLW .10

SUBWF DECENA,W

BTFSS STATUS,C;SALTA SI W>=10, C=1

GOTO RESTA10

CLRF DECENA

INCF CENTENA,F

GOTO RESTA10

BINBCDFIN RETURN

;************************************************************************

END

Diseño de PCB

211

311

411

Contador up/down de 3 dígitos

Por: Ideas&Tecnologia


1


Descripción

Este proyecto consiste en diseñar un circuito contador de 3digitos mediante  el PIC16F887, esto se mostrara en Formato Decimal y Binario. Para aquello se emplea 3 display Cátodo Común y 16 Led, donde el bit LSB es el pin RB0 y el MSB pin RC7, el modo de conteo se controla mediante el button  (up/down)

Para realizar este proyecto utilizamos la técnica de múltiplexación para ahorrar el uso de pines del microcontrolador y a su vez el consumo de energía.


Funcionamiento

Al energizar el circuito este mostrara el numero ‘000’, para iniciar el conteo  se presionara el button ‘up/down’ y de esta manera se iniciara el conteo up, si se desea cambiar el modo de conteo se deberá presionar el button up/down para cambiar al modo opuesto es decir  al modo down.

Este circuito llegara hasta el valor máximo de ‘999’ una vez llegado a este valor se detendrá el conteo y  esperara que el usuario vuelva a presionar  el button ‘up/down’ lo mismo ocurrirá la llegar al valor ‘000’.

Código en MicroBasic

program CodigoMicro

dim DIG1 as WORD

dim DIG2 as  WORD

dim DIG3 as WORD

dim Cont as Byte

dim Cont2 as Byte

dim numero as Word

dim Sentido as Byte

dim Tiempo as Byte

dim numeroLSB as WORD

dim numeroMSB as WORD

dim Tecla as Byte

dim salto as byte

sub procedure  ButtonA()

if PORTA.0=1 then

while(PORTA.0=1) wend

Tecla=1

if Sentido=0 then

Sentido=1

else

Sentido=0

END IF

end if

end sub

sub function CODIG7SEG(dim num as Word) as BYTE

select case num

case 0  result = $3F

case 1  result = $06

case 2  result = $5B

case 3  result = $4F

case 4  result = $66

case 5  result = $6D

case 6  result = $7D

case 7  result = $07

case 8  result = $7F

case 9  result = $6F

end select       ‘case end

end sub

sub procedure interrupt                   ‘ Interrupt service routine

INTCON = $00                            ’ Set T0IE, clear T0IF

Inc(CONT)

Inc(Cont2)

IF Cont=1 THEN

PORTE.2=0

PORTE.1=0

PORTE.0=1

DELAY_US(5)

PORTD=CODIG7SEG(DIG1)

END IF

IF Cont=2 THEN

PORTE.0=0

PORTE.2=0

PORTE.1=1

DELAY_US(5)

PORTD=CODIG7SEG(DIG2)

END IF

IF Cont=3 THEN

PORTE.0=0

PORTE.1=0

PORTE.2=1

DELAY_US(5)

PORTD=CODIG7SEG(DIG3)

Cont=0

END IF

If Cont2=100 then

Tiempo=1

Cont2=0

End If

‘ Increment value of cnt on every interrupt

TMR0   = 245

INTCON = $A0           ‘ Set T0IE, clear T0IF

end sub

main:

OPTION_REG = $07       ‘ Assign prescaler to TMR0

ANSEL  = 0              ‘ Configure AN pins as digital I/O

ANSELH = 0

TRISB = 0               ‘ PORTB is output

TRISA=$01

TRISC = 0

TRISD = 0

TRISE=0

WPUB=$FF

TMR0  = 245              ‘ Timer0 initial value

INTCON = $A0           ‘ Enable TMRO interrupt

Cont=0

Cont2=0

DIG1=0

DIG2=0

DIG3=0

portA=0

PORTB=0

PORTC=0

PORTD=0

PORTE=0

numero=0

numeroLSB=0

numeroMSB=0

Sentido=0

Tiempo=0

Tecla=0

Salto=0

while(1)                    ‘ While there is no interrupt, program runs in endless loop:

INICIO:

ButtonA()

if Tecla=0  THEN

goto INICIO

END IF

REVISAR:

IF Tecla=1 THEN

IF ((Sentido=0 ) AND (Tecla=1) )then

goto  Decrementa

END IF

IF ((Sentido=1 ) AND (Tecla=1) )then

goto Incrementa

end if

else if salto=0 then

goto incrementa

else goto decrementa

end if

end if

Incrementa:

salto=0

Tecla=0

if Tiempo=1 then

if numero <999 then

Inc(numero)

end if

numeroLSB= lo(numero)

portB=numeroLSB

numeroMSB=Hi(numero)

portC=numeroMSB

DIG1= (numero / 100 )

DIG2= (numero / 10) mod 10

DIG3=  numero  mod 10

Tiempo=0

End If

ButtonA()

GOTO REVISAR

Decrementa:

salto=1

Tecla=0

if Tiempo=1 then

if numero>0 then

Dec(numero)

end if

numeroLSB= lo(numero)

portB=numeroLSB

numeroMSB=Hi(numero)

portC=numeroMSB

DIG1= (numero / 100 )

DIG2= (numero / 10) mod 10

DIG3=  numero  mod 10

Tiempo=0

End If

ButtonA()

GOTO REVISAR

wend

end.

Diseño de PCB

210

310

410