ESCUELA POLITÉCNICA DEL EJÉRCITO EXTENSIÓN LATACUNGA
CARRERA DE INGENIERÍA AUTOMOTRIZ INFORME DE MICROCONTROLADORES Y PLC Nivel: Sexto
Fecha :
30/04/2014
Paralelo: “B”
Nombre: José Luis Fuentes, Jonathan Lozada, Julio Ramírez. A.
TEMA. Programación de PIC.
B.
OBJETIVOS. Desarrollar Desarroll ar un programa para contar de forma ascendente de 0-9 y visualizarlo visualizar lo en un display de 7 segmentos con decodificador todo esto con ayuda de un micro controlador
PIC 16F628A.
Desarrollar Desarroll ar un programa para contar de forma descendente de 9-0 y visualizarlo en un display de 7 segmentos con decodificador todo esto con ayuda de un micro controlador
PIC 16F628A.
Desarrollar Desarroll ar un programa para contar de forma ascendente de 0-9 y visualizarlo visualizar lo en un display de 7 segmentos sin decodificador todo esto con ayuda de un micro controlador
PIC 16F628A.
Desarrollar Desarroll ar un programa para contar de forma descendente de 9-0 y visualizarlo en un display de 7 segmentos sin decodificador todo esto con ayuda de un micro controlador
PIC 16F628A.
Desarrollar un programa para visualizar la palabra “ESPEL” en un display de 7 segmentos sin decodificador todo esto con ayuda de un micro controlador 16F628A.
PIC
Desarrollar un programa para contar de forma ascendente de 0-99 y visualizarlo en un display de 7 segmentos con decodificador todo esto con ayuda de un micro controlador
C.
PIC 16F628A.
MATERIALES Y EQUIPOS.
Software Proteus
Software Microcode
Software Pickit 2,61
Protoboar.
D.
PIC 16F628A.
Pick 2 (quemador de microcontrolador).
Fuente de voltaje.
Display de 7 segmentos ánodo común.
Decodificador 74LS47
Resistencias 330 ohmios
Cables para conexiones.
MARCO TEÓRICO. PIC16F628A
El PIC16F84A se considera uno de los más famosos de todos los tiempos, pero actualmente ya es considerado como obsoleto, su remplazo en la actualidad viene siendo el PIC16F628A, este mismo es el que se utiliza en la mayoría de los ejemplos y proyectos que encontramos. Las características de este PIC, (PIC16f628A) son las siguientes:
Es un microcontrolador de 8 bits,
Cuenta con una arquitectura RISC avanzada
Un juego reducido de 35 instrucciones, ya que este PIC es el remplazo del 16f84A, sus pines son compatibles con su antepasado haciéndonos posible actualizar algún proyecto antiguo donde hayamos usado el 16F84A.
Diagrama de pines del PICF628A
Figura 1 - Diagrama de distribución de pines.
En el diagrama de pines podemos ver que los pines 1, 2, 3, 4, 15, 16, 17 y 18 tienen el nombre de RAx. Esos pines conforman el puerto A, “PORTA”, los pines 6 al 13 pertenecen al puerto B “PORTB”. El pin 5 corresponde al negativo o(-) o tierra y el pin 14 va conectado a la
fuente de alimentación de 5V. Tabla 1 - Puertos del PIC 16F628A
PUERTO 2119
Instrucciones usadas en el programa. ¿Qué es un display?
El display de 7 segmentos es un componente que se utiliza para la representación de información alfanumérica en muchos dispositivos electrónicos. Aunque externamente su forma difiere considerablemente de un diodo LED (diodos emisores de luz) típico, internamente están constituidos por una serie de diodos LED con unas determinadas conexiones internas.
Hay de dos tipos: ánodo común y cátodo común.
El diplay de ánodo común, tiene todos los ánodos de los leds están unidos internamente a una patilla común que debe ser conectada a potencial positivo o nivel “1”. El encendido de cada segmento individual se realiza aplicando potencial negativo o nivel “0”
por
la
patilla correspondiente a través de una resistencia que límite el paso de la corriente. El diplay de de cátodo común, todos los cátodos de los leds están unidos internamente a una patilla común que debe ser conectada a potencial negativo o nivel “0”. El encendido
de cada segmento individual se realiza aplicando potencial positivo o nivel “1” por la patilla correspondiente a través de una resistencia que límite el paso de la corriente.
Figura 2 - Distribución de pines de un display 7 segmentos
Decodificador 74LS47
Figura 3 - Distribución de pines decodificador 74LS47
E.
PROCEDIMIENTO Se elabora la tabla con para saber que pines se van a encender. Tabla 2 - Códigos de salida para el PUERTO B
g
f
e
d
c
b
a
OUT
RB6
RB5
RB4
RB3
RB2
RB1
RB0
[n]10
64
1
0
0
0
0
0
0
121
1
1
1
1
0
0
1
36
0
1
0
0
1
0
0
48
0
1
1
0
0
0
0
25
0
0
1
1
0
0
1
18
0
0
1
0
0
1
0
2
0
0
0
0
0
1
0
120
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
16
0
0
1
0
0
0
0
0 1 2 3 4 5 6 7 8 9
1. Programar un contador de forma ascendente de 0-9 y visualizarlo en un display de 7 segmentos con decodificador todo esto con ayuda de un micro controlador PIC 16F628A.
Diagrama de flujo: Inicio
TRISA=0
CNCOM
N
7
0
N≤ 9
PORTB
N
RETARDO
N
N+1
Programación en microcode: TRISA=0
“Confirma el puerta A como salida”
CMCON=7
“Digitaliza el puerta A”
n var byte
“almacenar valores de 8 bits de 0 -255”
n=0
“la variable n vale 0”
INICIO: if n<=9 then
“Condición si n es menor o igual que 9, entonces”
porta=n
“Puerto A igual a n”
pause 500
“Restraso 500 ms”
n=n+1
“Variable n igual a n + 1”
else
“Si no cumple con la condición”
n=0
“Variable n igual a 0
ENDIF
“Final de condición”
GOTO INICIO
“Regreso al INICIO”
Simulación en proteus:
U1 16 15 4
RA7/OSC1/CLKIN RA6/OSC2/CLKOUT RA5/MCLR
RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1
RA4/T0CKI/CMP2 RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI
17 18 1 2 3 6 7 8 9
U2 7 1 2 6 4 5 3
A
QA
B C
QB QC
D BI/RBO RBI
QD QE QF
LT
QG
13 12 11 10 9 15 14
74LS47
10 11 12 13
PIC16F628A
Figura 4 - Simulación Cont. Ascendente con Deco. 0-9
Circuito armado en protoboard:
Figura 5 - Circuito Cont. Ascendente con Deco. 0-9
2. Programa un contador en forma descendente de 9-0 y visualizarlo en un display de
7 segmentos con decodificador todo esto con ayuda de un micro controlador 16F628A.
Diagrama de flujo:
Inicio
TRISA=0
CNCOM
N
7
0
N≤ 9
PORTB
N
RETARDO
N
N+1
Programación en microcode: TRISA=0
“Confirma el puerta A como salida”
CMCON=7
“Digitaliza el puerta A”
n var byte
“almacenar valores de 8 bits de 0 -255”
n=9
“la variable n vale 9”
CONTADOR: for n= 9 to 0
“Condición si n es igual desde 9 a 0 , entonces”
porta=n
“Pueto A igual a variable n”
pause 300
“Retardo de 300 ms”
next n
“Seguir con la variable n
goto CONTADOR
“Regresar a contador”
PIC
Simulación en proteus: U1 16 15 4
RA7/OSC1/CLKIN RA6/OSC2/CLKOUT RA5/MCLR
RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1 RA4/T0CKI/CMP2
RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI
17 18 1 2 3 6 7 8 9 10 11 12 13
U2 7 1 2 6 4 5 3
A B C D BI/RBO RBI LT
QA QB QC QD QE QF QG
13 12 11 10 9 15 14
74LS47
PIC16F628A
Figura 6 - Simulación Cont. Descendente con Deco. 9-0
Circuito armado en protoboard:
Figura 7 - Circuito Cont. Ascendente con Deco. 0-9
3. Programar un contador de forma ascendente de 0-9 y visualizarlo en un display de 7 segmentos sin decodificador todo esto con ayuda de un micro controlador PIC 16F628A.
Diagrama de flujo Inicio
TRISB=0
N
0
N= 0 TO 9
LOOKUP 64 121 36 48 25 18 2 120 0 16
PORTB
UNIDAD
RETARDO
Programación en microcode: TRISB=0
“Confirma la puerta B como salida”
CMCON=7
“Digitaliza la puerta B”
n var byte
“almacenar valores de 8 bits de 0 -255”
UNIDAD var byte PORTB=0
“Puerto B igual a 0”
CONTADOR: for n= 0 to 9
“Condición si n igual desde 0 a 9”
lookup n, [64,121,36,48,25,18,2,120,0,16], UNIDAD “almacena una tabla de datos constante de 8 bits” PORTB=UNIDAD
“Puerto B igual a las unidades
pause 300
“Retraso de 300 ms”
next n
“Continuar con la variable n”
goto CONTADOR
“Regresar al contador”
Simulación en proteus: U1 16 15 4
RA7/OSC1/CLKIN
RA0/AN0
RA6/OSC2/CLKOUT RA5/MCLR
RA1/AN1 RA2/AN2/VREF
RA3/AN3/CMP1 RA4/T0CKI/CMP2 RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI
17 18 1 2 3 6 7 8 9 10 11 12 13
PIC16F628A
Figura 8 - Simulación Cont. Ascendente sin Dec. 0-9
Circuito armado en protoboard:
Figura 9 - Circuito armado Cont. Ascendente sin Dec 0-9
4. Programar un contador de forma ascendente de 0-9 y visualizarlo en un display de 7 segmentos sin decodificador todo esto con ayuda de un micro controlador 16F628A.
PIC
Diagrama de flujo Inicio
TRISB=0
N
0
N= 0 TO 9
LOOKUP [16,0,120,2,18,25,48,36,121,64]
PORTB
UNIDAD
RETARDO
Programación en microcode: TRISB=0
“Confirma la puerta B como salida”
CMCON=7
“Digitaliza la puerta B”
n var byte
“almacenar valores de 8 bits de 0 -255”
UNIDAD var byte PORTB=0
“Puerto B igual a 0”
CONTADOR: for n= 0 to 9
“Condición si n igual desde 0 a 9”
lookup n, [16,0,120,2,18,25,48,36,121,64], UNIDAD “almacena una tabla de datos constante de 8 bits” PORTB=UNIDAD
“Puerto B igual a las unidades
pause 300
“Retraso de 300 ms”
next n
“Continuar con la variable n”
goto CONTADOR
“Regresar al contador”
Simulación en proteus: U1 16 15 4
RA7/OSC1/CLKIN RA6/OSC2/CLKOUT RA5/MCLR
RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3/CMP1
RA4/T0CKI/CMP2 RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI
17 18 1 2 3 6 7 8 9 10 11 12 13
PIC16F628A
Figura 10 - Simulación Cont. Ascendente sin Dec. 0-9
Circuito armado en protoboard:
Figura 11 - Circuito armado Cont. Ascendente sin Dec 0-9
5. Programar para visualizar la palabra “ESPEL” en un display de 7 segmentos sin decodificador todo esto con ayuda de un micro controlador
PIC 16F628A.
Diagrama de flujo
Inicio
TRISB=0
N
0
N= 0 TO 9
LOOKUP [48,36,24,48,113]
PORTB
UNIDAD
RETARDO
Programación en microcode: TRISB=0
“Confirma la puerta B como salida”
CMCON=7
“Digitaliza la puerta B”
n var byte
“almacenar valores de 8 bits de 0 -255”
UNIDAD var byte PORTB=0
“Puerto B igual a 0”
CONTADOR: for n= 0 to 5
“Condición si n igual desde 0 a 5”
lookup n, [48,36,24,48,113], UNIDAD “almacena una tabla de datos constante de 8 bits” PORTB=UNIDAD
“Puerto B igual a las unidades
pause 300
“Retraso de 300 ms”
next n
“Continuar con la variable n”
goto CONTADOR
“Regresar al contador”
Simulación en proteus:
U1 16 15 4
RA7/OSC1/CLKIN
RA0/AN0
RA6/OSC2/CLKOUT
RA1/AN1 RA2/AN2/VREF
RA5/MCLR
RA3/AN3/CMP1 RA4/T0CKI/CMP2 RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI
17 18 1 2 3 6 7 8 9 10 11 12 13
PIC16F628A
Figura 12 - Simulación palabra ESPEL
Circuito armado en protoboard:
Figura 13 - Circuito armado ESPEL
6.
Programar un contador de forma ascendente de 0-99 y visualizarlo en un display de 7 segmentos con decodificador todo esto con ayuda de un micro controlador 16F628A.
Diagrama de flujo Inicio
TRISB=0
N
0
M
0
N= 0 TO 9
PORTB
N
RETARDO
M= 0 TO 9
PORTA
M
RETARDO
NEXT
N
NEXT
M
PIC
Programación en microcode: U VAR BYTE; declaración de variables D VAR BYTE; declaración de variables TRISB=0 INICIO: FOR D=0 TO 9; contar de cero a nueve para la variable D FOR U=0 TO 9; contar de cero a nueve para la variable U PORTB=U+16*D; asignar al puerto B la operación U+16*D PAUSE 1000; pausa 1000 mili segundos NEXT NEXT GOTO INICIO END
Simulación en proteus:
U1 16 15 4
RA7/OSC1/CLKIN
RA0/AN0
RA6/OSC2/CLKOUT
RA1/AN1 RA2/AN2/VREF
RA5/MCLR
RA3/AN3/CMP1 RA4/T0CKI/CMP2 RB0/INT RB1/RX/DT RB2/TX/CK RB3/CCP1 RB4 RB5 RB6/T1OSO/T1CKI RB7/T1OSI
U2
17 18
7
1
1
2
2
3
6 4
6 7
5 3
8 9
A B
QA QB
C
QC
D
QD
BI/RBO
QE
RBI
QF
LT
QG
13 12 11 10 9 15 14
74LS47
10 11 12 13
U3
PIC16F628A 7 1 2 6 4 5 3
A
QA
B
QB
C
QC
D
QD
BI/RBO
QE
RBI LT
QF QG
13 12 11 10 9 15 14
74LS47
Figura 14 - Simulación contador 0-99
C. Análisis de Resultados. El programa funciona correctamente, sin embargo existen un inconveniente al momento de realizar la simulación en proteus la cual se debe al sistema computacional en el cual se corre el programa. El pick 2 es indispensable para el funcionamiento del microcontrolador ya que este es el que transmite la información del software al circuito integrado.
D. Conclusiones. Es posible visualizar en un display el conteo realizado por el pic sin
necesidad de utilizar un decodificador. El pic permite realizar un contador sin necesidad de realizar grandes
circuitos gracias a la programación. Es necesario convertir a decimal las combinaciones binarias para poder
utilizar bien el programa. El pic es de mucha utilidad al momento de realizar circuitos gracias a su
facilidad de grabar y borrar su contenido.
E. Recomendaciones. Tener suficiente conocimiento y habilidad en el uso del software de
programación y simulación. Verificar que el software esté debidamente instalado para que no cause
problemas al momento de realizar los programas.
Manipular el pic con cuidado ya que es muy sensible.
Utilizar un regulador de voltaje 7805 para estar seguros de tener una fuente de 5 v. Antes de grabar información en el pic se debe estar seguro que se encuentra
en blanco.
F.
Referencias Bibliográfica.
PIC 16F628A, http://computoint.blogspot.com/2012/04/pic16f628a.html, ultimo acceso 21-04-2014.
Pic 16F628A http://proyectoaula-pic16f628a.blogspot.com/, ultimo acceso 21-042014.
ANEXO Hoja de firmas