UNIVERSIDAD TECNOLGICA DE HONDURAS
1
INFORME SOBRE PROYECTO PROGRAMA PARA PIC 18F45K22 EN LENGUAJE DE
PROGRAMACIN DE ALTO NIVEL MIKOBASIC UTILIZANDO DISPLAY DE SIETE
SEGMENTOS.
ASIGNATURA MICROCONTROLADORES
CATEDRTICO: ING. EDUIN FIGUEROA
PRESENTADO POR: LAURA EDELMIRA MIRANDA DOMNGUEZ
SAN PEDRO SULA, 03 DE DICIEMBRE DE 2012
CONTENIDO
Artculo I. Artculo II.
Resumen
.......................................................................................................................................
3
Objetivos.......................................................................................................................................
4 Objetivos generales
..............................................................................................................
4 Objetivos especificos
...........................................................................................................
4 Introduccin
.............................................................................................................................
5 Descripcin del proyecto
..........................................................................................................
6
Seccin 2.01 Seccin 2.02 Artculo III. Artculo IV.
2
Artculo V. Procedimiento
...............................................................................................................................
6 Artculo VI. Artculo VII. Artculo VIII. Artculo IX. Seccin 9.01
Seccin 9.02 Seccin 9.03 Seccin 9.04 Seccin 9.05 (a) (b) Diagrama de
Flujo del programa
..............................................................................................
7 La Funcion Main:
.....................................................................................................................
8 Caractersticas de los
Microcontroladores................................................................................
9 Recursos
...................................................................................................................................
9 MikroBasic
..........................................................................................................................
9 mikroElektronika EasyPIC v7
........................................................................................
9 mikroProg Suite para PIC
.........................................................................................
10 mikroProg on board
......................................................................................................
10 PIC 18F45K22
...................................................................................................................
10
Caractersticas
...............................................................................................................................
11 Descripcin
....................................................................................................................................
11
Artculo X. Marco conceptual
.......................................................................................................................
12 Artculo XI. Artculo XII. Artculo XIII. Conclusiones
..........................................................................................................................
13 Bibliografa
............................................................................................................................
14 Anexo
.....................................................................................................................................
15 Anexo. Codigo en MikroBasic Pro
....................................................................................
15
Seccin 13.01
ARTCULO I.
RESUMEN
El proyecto propone crear un programa para el PIC 18F45K22,
haciendo uso del lenguaje de programacin de alto nivel MikroBasic
utilizando cuatro display de siete segmentos y comprobarlo en el
kit de entrenamiento EasyPIC V7. Un microcontrolador es un circuito
integrado de alta escala de integracin que incorpora la mayor parte
de los elementos que configuran un controlador y que contiene todos
los componentes fundamentales de un ordenador, aunque de limitadas
prestaciones y que se suele destinar a gobernar una sola tarea. En
su memoria slo reside un programa que controla en funcionamiento de
una tarea determinada, sus lneas de entrada/salida se conectan a
los sensores y actuadores del dispositivo a controlar y, debido a
su pequeo tamao, suele ir integrado en el propio dispositivo al que
gobierna. MikroBasic PRO es un IDE para desarrollo de aplicaciones
especiales para la programacin de Microntroladores especficamente
la familia PIC. El Kit EasyPIC v7 es un programador de PIC, el cual
realiza de funcin de almacenar el cdigo generado en el IDE dentro
de la memoria de programa del PIC. La finalidad del proyecto es
crear un programa en MikroBasic Pro el cual el cual consiste
inicialmente en un ciclo que muestra las opciones de un men, una a
la vez en los display de siete segmentos contenidos en el
programador EasyPIC.
3
ARTCULO II.
OBJETIVOS
SECCIN 2.01
OBJETIVOS GENERALES
Conocer las ventajas de la utilizacin de los programas de alto
nivel para la programacin de Microcontroladores. Conocer las
ventajas de los programas de alto nivel para la programacin de
PICs
4
SECCIN 2.02
OBJETIVOS ESPECFICOS
Desarrollar un programa para el microcontrolador PIC 18F45K22,
utilizando MikroBasic Pro como IDE de desarrollo. Implementar el
uso del kit de entrenamiento Easy PIC v7, para programar el
microcontrolador. Mostrar las salidas del programa a travs de
display de siete segmentos incluidos en el programador EasyPIC.
ARTCULO III.
INTRODUCCIN
Los Microcontroladores son computadores digitales integrados en
un chip que cuentan con un microprocesador o unidad de
procesamiento central (CPU), una memoria para almacenar el
programa, una memoria para almacenar datos y puertos de entrada
salida.
Los PIC son una familia de Microcontroladores tipo RISC
fabricados por Microchip Technology Inc. y derivados del PIC1650,
originalmente desarrollado por la divisin
5
de microelectrnica de General Instrument.Para que se usan? Por
nombrar varios ejemplos de aplicaciones, tenemos mandos a
distancia, termmetros digitales, controles de acceso por puertas de
seguridad, los sistemas ABS o EPS de los coches, control y sensrica
de maquinaria, domtica del hogar, microrobtica, monederos
electrnicos con esto tenemos una idea del uso actual de los
Microcontroladores.
El funcionamiento de los Microcontroladores esta determinado por
el programa almacenado en su memoria. Este puede escribirse en
distintos leguajes de programacin. En la actualidad existen una
gran variedad de lenguajes de alto nivel para programacin de
PICs.
MikroBasic es una versin especial del lenguaje Basic. La mayora
de los otros Microcontroladores requieren alguna forma de
programacin que puede ser muy difcil de aprender. Con el MikroBasic
se puede crear circuitos simples y programas en poco tiempo incluso
proyectos muy sofisticados.
ARTCULO IV.
DESCRIPCIN DEL PROYECTO
El proyecto consta del desarrollo de un programa para el PIC
18F45K22, utilizando como IDE de desarrollo el lenguaje MikroBasic
Pro, el cual al ser un lenguaje de alto nivel hace que la escritura
de cdigo fuente para este tipo de PICs sea mas sencilla y rpida.
Adems de escribir el cdigo fuente para este PIC el cual contiene
una rutina main que llama a otros procedimientos los cuales tienen
como funcin mostrar un men en forma de letreros cuatro display de
siete segmentos una opcin a la vez contenida dentro de un ciclo
while, tambin se debe hacer uso del programador EasyPIC v.7 para
mostrar el resultado del programa.
6
ARTCULO V.
PROCEDIMIENTO
Paso 1. Instalacin de la suit mikroProg Suite para PIC Paso 2.
Ejecucin del software MikroBasic Pro Paso 3. Crear un nuevo
proyecto Paso 4. Seleccin del PIC en nuestro caso el PIC 18F45K22.
Paso 5. Escritura del cdigo (ver en anexos), haciendo uso del
diagrama de flujo bsico del programa (ver en seccin V). Paso 6.
Probar el cdigo haciendo uso del programador EasyPic v7
ARTCULO VI.
DIAGRAMA DE FLUJO DEL PROGRAMA
Es siguiente diagrama de flujo muestra la lgica del programa, el
cual consiste inicialmente en un ciclo que muestra las opciones de
un men, una a la vez en un los cuatro display de siete
segmentos.
7
ARTCULO VII.
LA FUNCION MAIN:
La funcin main es el cdigo que inicia la operacin de la
aplicacin, la funcin main: contiene la inicializacin de las
variables y configuracin de puertos tanto de entrada como de
salida. Desde aqu se llamara a cada sub procedimiento llamado desde
main. main: Configuracion de puertos como digitales ANSELA = 0
ANSELB = 0 ANSELC = 0 ANSELD = 0 ANSELE = 0 portb=%11111111 TRISA =
%11110000 TRISB = %11111111 TRISC = %11111111 TRISD = %00000000
TRISE = %11111111 lata = 0 latb = 0 latc= 0 latd= 0 late = 0
Inicializar variables x=1 numero=64 Inicio del bucle While para
mostrar el menu principal del sistema. while portb.0 =1
delay_ms(500) guiones 'guiones delay_ms(500) delay_ms(300) MenU
'Menu delay_ms(500) delay_ms(500) PArA 'Para delay_ms(500)
delay_ms(500) USUA 'Usua delay_ms(500) delay_ms(500) Prog 'Prog
delay_ms(500) wend end.
8
' ' (Siete Segmentos)
ARTCULO VIII.
CARACTERSTICAS DE LOS MICROCONTROLADORES
Un microcontrolador dispone normalmente de los siguientes
componentes: Procesador o CPU (Unidad Central de Proceso). Memoria
RAM para contener los datos. Memoria para el programa tipo
ROM/EPROM/EEPROM/Flash. Lneas de E/S para comunicarse con el
exterior. Diversos mdulos para el control de perifricos
(temporizadores, puertos serie y paralelo, CAD: Conversores
Analgico/Digital, CDA: Conversores Digital/Analgico, etc.).
Generador de impulsos de reloj que sincronizan el funcionamiento de
todo el sistema.
9
ARTCULO IX.
RECURSOS
SECCIN 9.01
MIKROBASIC
MikroBasic para PIC es un compilador BASIC con todas las
caractersticas para Microcontroladores PIC de Microchip. Est
diseado para desarrollar, construir y deparar aplicaciones
embebidas basadas en PIC. Este entorno de desarrollo cuenta con una
amplia variedad de caractersticas tales como: una sintaxis BASIC
fcil de aprender, IDE fcil de usar, un cdigo muy compacto y
eficiente, muchos equipos y bibliotecas de software, la
documentacin completa, el simulador de software, un depurador de
hardware, la generacin de archivos COFF, etc. Adems incluye muchos
ejemplos prcticos que permiten un rpido inicio en laprogramacin de
Microcontroladores PIC .
SECCIN 9.02 MIKROELEKTRONIKA EASYPIC V7mikroElektronika EasyPIC
v7 Junta de Desarrollo es la sptima generacin de la placa de
desarrollo EasyPIC. Est equipado con muchos mdulos incorporados,
incluyendo mikroProg - programador rpido con mikroICD (depurador en
circuito) de apoyo. mikroElektronika EasyPIC v7 Junta de Desarrollo
tiene que ver con la conectividad, con cuatro conectores diferentes
para cada puerto, de modo que el usuario puede conectar tarjetas
accesorias, sensores y aparatos electrnicos personalizados. El
potente a bordo mikroProg programador y depurador en circuito puede
programar y depurar ms de 250 microcontroladores PIC,
y es compatible con 3,3 V y 5V MCU. El EasyPIC v7 tambin cuenta
con el PIC18F45K22 ms potente con 16 MIPS operacin, 64Kb de memoria
de programa lineal, 3896 bytes de memoria de datos lineales, y
soporte para una amplia gama de alimentacin de 1.8V a 5V.Este chip
ofrece muchos mdulos de propsito general, incluyendo 36 I / O pins,
30 pins de entrada analgicas (AD), Digital-to-Analog Converter
(DAC), el apoyo de Percepcin tctiles capacitivos con Tiempo de
carga de la unidad de medida (CTMU), tres de 8-bits temporizadores,
y cuatro temporizadores de 16-bit. Tambin tiene un par cada uno de
SPI, I2C, CCP, y los mdulos de comparacin.
SECCIN 9.03 MIKROPROG SUITE PARA PIC mikroProg programador
EasyPIC v7 requiere un software especial de programacin llamado
mikroProg Suite para PIC . Este software se utiliza para la
programacin de todas las familias de microcontroladores Microchip ,
incluyendo pic10, PIC12, PIC16, PIC18, dsPIC30/33, PIC24 y PIC32.
El software tiene una interfaz intuitiva y SingleClick tecnologa de
programacin .
10
SECCIN 9.04 MIKROPROG ON BOARDPotente bordo mikroProg
programador y depurador en circuito puede programar y depurar ms de
250 microcontroladores. Usted lo necesita, si usted es un
profesional o un principiante.
SECCIN 9.05 PIC 18F45K22
(A) CARACTERSTICAS
Memory Type : Program Memory KBytes : Program Memory KWords :
Self-write : EEPROM Data Memory : RAM : I/O Pins : Pin count : Max.
CPU Speed MHz : CPU Speed MIPS : Internal Oscillator :
Flash 32 16 Yes 256 1536 36 40 64 16 16 MHz 32 kHz
11
# of A/D Ch. : Digital Communication :
28 2 -A/E/USART 2 -MSSP(SPI/I2C)
Timers :
3 - 8-bit 4 - 16-bit 0 - 32-bit
(B) DESCRIPCIN
ARTCULO X.Microcontrolador:
MARCO CONCEPTUAL
Un microcontrolador (abreviado C, UC o MCU) es un circuito
integrado programable, capaz de ejecutar las rdenes grabadas en su
memoria. Est compuesto de varios bloques funcionales, los cuales
cumplen una tarea especfica. Un microcontrolador incluye en su
interior las tres principales unidades funcionales de una
computadora: unidad central de procesamiento, memoria y perifricos
deentrada/salida.Compilador. La programacin en un lenguaje de alto
nivel (como C o Basic) permite disminuir el tiempo de desarrollo de
un producto y si adems est familiarizado con C o Basic es una buena
opcin. No obstante, cuando el compilador convierta el cdigo del
programa a
un lenguaje ensamblado, cada lnea de cdigo del programa en
lenguaje de alto nivel habr generado bastantes ms lneas de cdigo en
lenguaje ensamblador, normalmente en una relacin de uno a tres.
Esto significa que para utilizar un lenguaje de alto nivel
necesitaremos un microcontrolador con una capacidad de memoria
relativamente grande. Si el programa que estamos desarrollando
necesita utilizar nmeros con decimales, o con notacin cientfica o
se utilizan operaciones complejas, como pueden ser las
trigonomtricas, es casi obligado utilizar un lenguaje de alto
nivel. Pero si lo que se va a hacer es manipular bits en registros,
entradas, salidas y clculos sencillos, el lenguaje ensamblado es la
mejor opcin.Visualizador de siete segmentos:
12
Tambin llamado lmpara siete segmento, es un dispositivo usado
para presentar informacin de forma visual. Esta informacin es
especficamente un dgito decimal del 0 (cero) al 9 (nueve), por lo
que se deduce que el cdigo BCD est involucrado. Cada segmento tiene
la forma de una pequea lnea incandescente.Programador. Es un
dispositivo que conectado a un PC permite grabar en el
microcontrolador el
programa desarrollado.RISC: Tanto la industria de los
computadores comerciales como la de los Microcontroladores estn
decantndose hacia la filosofa RISC (Computadores de Juego de
Instrucciones Reducido). En estos procesadores el repertorio de
instrucciones mquina es muy reducido y las instrucciones son
simples y, generalmente, se ejecutan en un ciclo. La sencillez y
rapidez de las instrucciones permiten optimizar el hardware y el
software del procesador.Puertos de Entrada y Salida:
La principal utilidad de las patillas que posee la cpsula que
contiene un microcontrolador es soportar las lneas de E/S que
comunican al computador interno con los perifricos exteriores y
segn los controladores de perifricos que posea cada modelo de
microcontrolador, se destinan a proporcionar el soporte a las
seales de entrada, salida y control. Todos los Microcontroladores
destinan algunas de sus patillas a soportar lneas de E/S de tipo
digital, esto es, todo o nada. Por lo general, estas lneas se
agrupan de ocho en ocho formando Puertos. Las lneas digitales de
los Puertos pueden configurarse como Entrada o como Salida cargando
un 1 un 0 en el bit correspondiente de un registro destinado a su
configuracin.Paquetes IDE:
Actualmente existen paquetes de software denominados "Entornos
de Desarrollo Integrado", IDE, que suelen funcionar bajo Windows y
que incluyen editores de texto para el ensamblador o el compilador,
permiten la simulacin del programa y tambin pueden integrar el
control de emuladores y programadores de dispositivos. Ejemplo de
estos programas es el MikroBasic pro.
ARTCULO XI.
CONCLUSIONES
Los lenguajes de alto nivel facilitan la generacin de cdigos
para microcontroladores PICs, adems que ahorran tiempo, tambin nos
brindan la ventaja de escribir cdigos fuente con mucho menos
cantidad de lneas que cuando se programa en lenguaje ensamblador.
Por mi parte considero que la a educacin es un proceso
interminable, puesto que cada da se aprende cosas nuevas o se
actualizan las ya conocidas o aprendidas, es decir, que la educacin
es un proceso permanente, por eso debemos estar in con las
tecnologas del momento y preparado para recibir las nuevas. Por lo
expresado anteriormente la elaboracin de este proyecto me sirvi
para comprender un poco ms la teora de los microcontroladores y su
aplicacin; de ah la importancia del mismo, pues a travs de l se
puede apreciar lo interesante que es la programacin en nuestra vida
cotidiana. Adems aprend a utilizar muchas de los comandos del
lenguaje Basic que ya casi tenia olvidadas.
13
ARTCULO XII.
BIBLIOGRAFA
Torres Torroti, M.(2007), Tutorial Microntroladores PIC. sn, sl
PARALLAX.(200?). Qu es un Microcontrolador?. p.8 Porting de GCC a
PIC16.(2006). Qu es un Microcontrolador?. Recuperado el 02 de
diciembre de
http://pjmicrocontroladores.wordpress.com/2006/11/06/%C2%BFque-es-un-microcontrolador/
Curso PIC MikroBasic. Recuperado el 02 de diciembre de 2012 de
https://sites.google.com/site/cursopicmikrobasic/introduccion-a-mikrobasic
Especificaciones PIC 18F45K22. Recuperado el 02 de diciembre de
2012 de http://www.mculabs.com/pic/PIC18F45K22.html
Especificaciones del EasyPIC. Recuperado el 02 de diciembre de 2012
de http://www.mikroe.com/easypic/ Visualizador de siete
segmentos.(2012). Recuperado el 02 de diciembre de 2012 de
http://www.ecured.cu/index.php/Visualizador_de_siete_segmentos
14
ARTCULO XIII. SECCIN 13.01
ANEXO ANEXO. CODIGO EN MIKROBASIC PRO
' Programa que genera un MenU con varios sub MenU ' Utiliza
portc.2 como selector hacia abajo ' Utiliza portb.0 como Enter '
Utiliza portb.1 como Esc ' Utiliza portb.2 como -->
program Boton1 dim numero as byte dim x as byte
15
sub function botonEnter() as byte while true if (Button(PORTB,
0, 10, 0)) then break end if delay_ms(500) wend delay_ms(5) result
=0 end sub
sub procedure activar1() lata.0 =0 lata.1 =0 lata.2 =0 lata.3 =1
end sub sub procedure activar2() lata.0 =0 lata.1 =0 lata.2 =1
lata.3 =0 end sub sub procedure activar3() lata.0 =0 lata.1 =1
lata.2 =0 lata.3 =0 end sub sub procedure activar4()
lata.0 =1 lata.1 =0 lata.2 =0 lata.3 =0 end sub sub procedure
PAra us: while portc.2 = 1 activar1 latd = 115 delay_ms(1)
16activar2 latd = 119 delay_ms(1) activar3 latd = 80 delay_ms(1)
activar4 latd = 247 delay_ms(1) if portb.0 = 0 then ' Mostrar
numero seleccionado ' durante 1000 ms activar1 latd = numero
delay_ms(800) break else goto us end if wend exit end sub sub
procedure numero11 no1: while portc.2 =1 latd = 6 delay_ms(1) if
portb.0 =0 then numero = 6 delay_ms(1) break else goto no1 end if
wend
end sub sub procedure numero12 no2: while portc.2 =1 latd = 91
delay_ms(1) if portb.0 =0 then numero = 91 delay_ms(1) break else
goto no2 end if wend end sub sub procedure numero13 no3: while
portc.2 =1 latd = 79 delay_ms(1) if portb.0 =0 then numero = 79
delay_ms(1) break else goto no3 end if wend end sub sub procedure
numero14 no4: while portc.2 =1 latd = 102 delay_ms(1) if portb.0 =0
then numero = 102 delay_ms(1) break else goto no4 end if wend end
sub sub procedure numero15 no9: while portc.2 =1
17
latd = 109 delay_ms(1) if portb.0 =0 then numero = 109
delay_ms(1) break else goto no9 end if wend end sub
18sub procedure numero16 no6: while portc.2 =1 latd = 125
delay_ms(1) if portb.0 =0 then numero = 125 delay_ms(1) break else
goto no6 end if wend end sub sub procedure numero17 no7: while
portc.2 =1 latd = 7 delay_ms(1) if portb.0 =0 then numero = 7
delay_ms(1) break else goto no7 end if wend end sub sub procedure
numero18 no8: while portc.2 =1 latd = 127 delay_ms(1) if portb.0 =0
then numero = 127
delay_ms(1) break else goto no8 end if wend end sub sub
procedure numero19 no9: while portc.2 =1 latd = 111 delay_ms(1) if
portb.0 =0 then numero = 111 delay_ms(1) break else goto no9 end if
wend end sub
19
sub procedure numeroa while portc.2 =1 delay_ms(500) numero11 if
numero 64 then x=1 break end if delay_ms(500) numero12 if numero 64
then x=1 break end if delay_ms(500) numero13 if numero 64 then x=1
break end if delay_ms(500) numero14 if numero 64 then x=1
break end if delay_ms(500) numero15 if numero 64 then x=1 break
end if delay_ms(500) numero16 if numero 64 then x=1 break end if
delay_ms(500) numero17 if numero 64 then x=1 break end if
delay_ms(500) numero18 if numero 64 then x=1 break end if
delay_ms(500) numero19 if numero 64 then x=1 break end if wend PAra
end sub sub procedure Guion1 numero = 64 guion1x: while portb.2 = 1
activar1 latd = 128 delay_ms(1) activar2 latd = 8 delay_ms(1)
20
activar3 latd = 8 delay_ms(1) activar4 latd = 8 delay_ms(1) if
portb.0 =0 then activar1 numeroa else goto guion1x end if wend end
sub sub procedure Guion2 numero =64 guion2x: while portb.2 = 1
activar1 latd = 8 delay_ms(1) activar2 latd = 128 delay_ms(1)
activar3 latd = 8 delay_ms(1) activar4 latd = 8 delay_ms(1) if
portb.0 =0 then activar2 numeroa else goto Guion2x end if wend exit
end sub sub procedure Guion3 numero = 64 guion3x: while portb.2 = 1
activar1
21
latd = 8 delay_ms(1) activar2 latd = 8 delay_ms(1) activar3 latd
= 128 delay_ms(1) activar4 latd = 8 delay_ms(1) if portb.0 =0 then
activar3 numeroa else goto Guion3x end if wend exit end sub sub
procedure Guion4 numero = 64 guion4x: while portb.2 = 1 activar1
latd = 8 delay_ms(1) activar2 latd = 8 delay_ms(1) activar3 latd =
8 delay_ms(1) activar4 latd = 128 delay_ms(1) if portb.0 =0 then
activar4 numeroa else goto Guion4x end if wend exit
22
end sub sub procedure subguiones submeq: while true
delay_ms(500) Guion1 delay_ms(500) Guion2 delay_ms(500) Guion3
delay_ms(500) Guion4 if portb.1 =0 then break else goto submeq end
if wend exit end sub
23
sub procedure guiones ment: while portc.2=1 activar1 latd = 8
delay_ms(1) activar2 latd = 8 delay_ms(1) activar3 latd = 8
delay_ms(1) activar4 latd = 8 delay_ms(1) if portb.0 =0 then
subGuiones else goto ment end if
wend end sub
sub procedure Men1 subme1: while portc.2 = 1 activar1 latd = 55
delay_ms(1) activar2 latd = 123 delay_ms(1) activar3 latd = 84
delay_ms(1) activar4 latd = 6 delay_ms(1) if portb.1 =0 then exit
else goto subme1 end if wend exit end sub sub procedure Men2
subme2: while portc.2 =1 activar1 latd = 55 delay_ms(1) activar2
latd = 123 delay_ms(1) activar3 latd = 84 delay_ms(1) activar4 latd
= 91 delay_ms(1) if portb.1 =0 then
24
break else goto subme2 end if wend exit end sub sub procedure
men3 smen3: while portc.2 =1 activar1 latd = 55 delay_ms(1)
activar2 latd = 123 delay_ms(1) activar3 latd = 84 delay_ms(1)
activar4 latd = 79 delay_ms(1) if portb.1 =0 then break ' Regresa
al sub menu else goto smen3 end if wend exit end sub
25
sub procedure subMenU subme: while true delay_ms(500) Men1
delay_ms(500) men2 delay_ms(500) men3 if portb.1 =0 then break
else
goto subme end if wend exit end sub
sub procedure MenU men: while portc.2=1 activar1 latd = 55
delay_ms(1) activar2 latd = 123 delay_ms(1) activar3 latd = 84
delay_ms(1) activar4 latd = 62 delay_ms(1) if portb.0 =0 then
subMenU else goto men end if wend end sub sub procedure nombre nom:
while portc.2 =1 activar1 latd = 56 delay_ms(1) activar2 latd = 95
delay_ms(1) activar3 latd = 28 delay_ms(1) activar4 latd = 208
26
delay_ms(1) if portb.1 =0 then PArA ' Regresa al MenU principal
en Para else goto nom end if wend end sub
sub procedure USUA us: while portc.2 = 1 activar1 latd = 62
delay_ms(1) activar2 latd = 109 delay_ms(1) activar3 latd = 62
delay_ms(1) activar4 latd = 247 delay_ms(1) if portb.0 =0 then
nombre else goto us end if wend end sub sub procedure Mprog1 p1:
while portc.2 =1 activar1 latd = 115 delay_ms(1) activar2 latd = 80
delay_ms(1) activar3 latd = 92 delay_ms(1)
27
activar4 latd = 134 delay_ms(1) if portb.1 =0 then break '
Regresa al MenU principal en Para else goto p1 end if wend exit end
sub
28sub procedure Mprog2 p2: while portc.2 =1 activar1 latd = 115
delay_ms(1) activar2 latd = 80 delay_ms(1) activar3 latd = 92
delay_ms(1) activar4 latd = 219 delay_ms(1) if portb.1 =0 then
break ' Regresa al MenU principal en Para else goto p2 end if wend
exit end sub sub procedure Mprog3 p3: while portc.2 =1 activar1
latd = 115 delay_ms(1) activar2 latd = 80 delay_ms(1) activar3
latd = 92 delay_ms(1) activar4 latd = 207 delay_ms(1) if portb.1
=0 then break else goto p3 end if wend exit ' regresa al MenU
anterior end sub sub procedure subMenUProg subme: while true
delay_ms(500) Mprog1 delay_ms(500) Mprog2 delay_ms(500) Mprog3 if
portb.1 =0 then break else goto subme end if wend exit end sub sub
procedure Prog menx: while portc.2=1 activar1 latd = 115
delay_ms(1) activar2 latd = 80 delay_ms(1) activar3 latd = 92
delay_ms(1) activar4
29
latd = 239 delay_ms(1) if portb.0 =0 then subMenUProg else goto
menx end if wend end sub
30main: Configuracion de puertos como digitales ANSELA = 0
ANSELB = 0 ANSELC = 0 ANSELD = 0 ANSELE = 0 portb=%11111111 TRISA =
%11110000 TRISB = %11111111 TRISC = %11111111 TRISD = %00000000
TRISE = %11111111 lata = 0 latb = 0 latc= 0 latd= 0 late = 0
Inicializar variables x=1 numero=64 while portb.0 =1 delay_ms(500)
guiones 'guiones delay_ms(500) delay_ms(300) MenU 'Menu
delay_ms(500) delay_ms(500) PArA 'Para delay_ms(500)
' ' (Siete Segmentos)
delay_ms(500) USUA 'Usua delay_ms(500) delay_ms(500) Prog 'Prog
delay_ms(500) wend end.
31