Sunteți pe pagina 1din 18

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO

FACULTAD DE INFORMTICA Y ELECTRNICA


ESCUELA DE INGENIERA ELECTRNICA EN CONTROL Y
REDES INDUSTRIALES
MICROCONTROLADORES
PRCTICA 2
INTEGRANTES:
Gabriela Estrada (668)
Anglica Len (201)
Luis Allauca (359)
Bladimir Rocha (295)
William Caar (591)
CURSO:
Sexto Semestre A
FECHA DE ENTREGA:
31/ 05/ 2014

1

1. JUSTIFICACIN

Actualmente muchos sistemas de equipos requieren de servicios para compartir
recursos, aplicaciones, enlaces de comunicaciones mediante componentes
inteligentes de la red, que se puede conseguir a partir los microcontroladores
PIC, permitiendo la interconexin entre mltiples computadores o dispositivos
de la misma.

Este documento ser una fuente de informacin valiosa para aquellas personas
que necesiten ampliar sus conocimientos acerca de los distintos tipos de
microcontroladores que utilizamos diariamente en nuestra computadora.
Puesto, que se conseguir comprender el funcionamiento, las distintas
caractersticas y facilidades que nos brindan, para desarrollarnos en nuestro
entorno estudiantil, universitario, postgrado, laboral y personal.

2. OBJETIVOS:
General:
Trabajar con Microcontroladores PIC y display de 7 segmentos utilizando
programacin assembler logrando mostrar en dicho display el nmero de
cdula de los integrantes del grupo y un contador del 0 al 9.
Especficos:
Definir los tipos de puertos para la implementacin del PIC.
Identificar los diferentes medios que usa el PIC16F877A.
Lograr una implementacin correcta del proyecto.

3. INTRODUCCIN

Los principiantes en electrnica creen que un microcontrolador es igual a un
microprocesador. Esto no es cierto. Difieren uno del otro en muchos sentidos.
La primera y la ms importante diferencia es su funcionalidad. Para utilizar al
microprocesador en una aplicacin real, se debe de conectar con otros
componentes, en primer lugar con la memoria. Aunque el microprocesador se
considera una mquina de computacin poderosa, no est preparado para la
comunicacin con los dispositivos perifricos que se le conectan. Para que el
microprocesador se comunique con algn perifrico, se deben utilizar los
circuitos especiales. As era en el principio y esta prctica sigue vigente en la
actualidad. Por otro lado, al microcontrolador se le disea de tal manera que
tenga todas las componentes integradas en el mismo chip. No necesita de otros
componentes especializados para su aplicacin, porque todos los circuitos
necesarios, que de otra manera correspondan a los perifricos, ya se
encuentran incorporados. As se ahorra tiempo y espacio necesario para
construir un dispositivo.
2

4. MARCO TERICO:
PROGRAMA MPLAB
MPLAB es un editor IDE gratuito, destinado a productos de la marca Microchip.
Este editor es modular, permite seleccionar los distintos microcontroladores
soportados, adems de permitir la grabacin de estos circuitos integrados
directamente al programador.
Es un programa que corre bajo Windows, Mac OS y Linux. Presenta las clsicas
barras de programa, de men, de herramientas de estado, etc. El ambiente
MPLAB posee editor de texto, compilador y simulacin (no en tiempo real).
Para comenzar un programa desde cero para luego grabarlo al C en MPLAB
v7.XX los pasos a seguir son:
Crear un nuevo archivo con extensin .ASM y nombre cualquiera
Crear un Proyecto nuevo eligiendo un nombre y ubicacin
Agregar el archivo .ASM como un SOURCE FILE
Elegir el microcontrolador a utilizar desde SELECT DEVICE del men
CONFIGURE
MICROCONTROLADORES
Un microcontrolador es un circuito integrado programable que contiene todos
los componentes de un computador, aunque de limitadas prestaciones. Se
emplea para controlar el funcionamiento de una tarea determinada y, debido a
su reducido tamao, suele ir incorporado en el propio dispositivo al que
gobierna. Esta ltima caracterstica es la que le confiere la denominacin de
controlador incrustado. Podemos encontrar microcontroladores en lavadoras,
teclados, telfonos mviles, ratones etc. Hay multitud de microcontroladores
con ms memoria, entradas y salidas, frecuencia de trabajo, coste, subsistemas
integrados, etc., dependiendo de cada tipo de microcontrolador. El nombre
actual no es un acrnimo. En realidad, el nombre completo es PICmicro, aunque
generalmente se utiliza como Peripheral Interface Controller (controlador de
interfaz perifrico). Los microcontroladores ofrecen una amplia gama de
aplicaciones y slo algunas se exploran normalmente.










3













Caractersticas y aplicaciones

Con las Gamas de PIC se dispone de gran diversidad de modelos y
encapsulados, pudiendo seleccionar el que mejor se acople a las necesidades de
acuerdo con el tipo y capacidad de las memorias, el nmero de lneas de
entrada y salida (E/S) y las funciones auxiliares precisas. Sin embargo, todas
las versiones estn construidas alrededor de una arquitectura comn.

Gama Baja: Repertorio de 33 instrucciones de 12 bits y dos niveles de
pila.
Gama Media: Repertorio de 35 instrucciones de 14 bits, 8 niveles de
pila y un vector de interrupcin.
Gama Alta: Repertorio de 58 instrucciones de 16 bits, 16 niveles de pila
y cuatro vectores de interrupcin.
Gama Mejorada: Repertorio de 77 instrucciones de 16 bits, 32 niveles
de pila y cuatro vectores de interrupcin.

Programacin del PIC:

La mayora de PICs que Microchip distribuye hoy en da incorporan ICSP (In
Circuit Serial Programming, programacin serie incorporada) o LVP (Low
Voltage Programming, programacin a bajo voltaje), lo que permite programar
el PIC directamente en el circuito destino. Para la ICSP se usan los pines RB6 y
RB7 (En algunos modelos pueden usarse otros pines como el GP0 y GP1 o el
RA0 y RA1) como reloj y datos y el MCLR para activar el modo programacin
aplicando un voltaje de 13 voltios.

Existen muchos programadores de PICs, desde los ms simples que dejan al
software los detalles de comunicaciones, a los ms complejos, que pueden
verificar el dispositivo a diversas tensiones de alimentacin e implementan en
hardware casi todas las funcionalidades. Muchos de estos programadores
complejos incluyen ellos mismos PICs pre programado como interfaz para
enviar las rdenes al PIC que se desea programar.

4

MICROCONTROLADOR PIC16F877A

Es un microcontrolador con memoria de programa tipo FLASH, lo que
representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya
que no se requiere borrarlo con luz ultravioleta como las versiones EPROM, sino
que permite reprogramarlo nuevamente sin ser borrado con anterioridad.

El PIC16F877A es un microcontrolador de Microchip Technology fabricado en
tecnologa CMOS, su consumo de potencia es muy bajo y adems es
completamente esttico, esto quiere decir que el reloj puede detenerse y los
datos de la memoria no se pierden.

Los pines de entrada/salida de este microcontrolador estn organizados en
cinco puertos, el puerto A con 6 lneas, el puerto B con 8 lneas, el puerto C con
8 lneas, el puerto D con 8 lneas y el puerto E con 3 lneas. Cada pin de esos
puertos se puede configurar como entrada o como salida independiente
programando un par de registros diseados para tal fin. En ese registro un bit
en "0" configura el pin del puerto correspondiente como salida y un bit en "1" lo
configura como entrada. Dichos pines del microcontrolador tambin pueden
cumplir otras funciones especiales, siempre y cuando se configuren para ello.

En estos PICs se requiere de un oscilador externo para las prcticas con un
cristal de 4 MHz, porque garantiza precisin y es muy comercial. Internamente
esta frecuencia es dividida por cuatro, lo que hace que la frecuencia efectiva de
trabajo sea de 1 MHz en este caso, por lo que cada instruccin se ejecuta en un
microsegundo. El cristal debe ir acompaado de dos condensadores y se
conecta como se muestra en la figura.






DISPLAY 7 SEGMENTOS

El display de 7 segmentos, es un componente que se utiliza para la
representacin de nmeros en muchos dispositivos electrnicos. Cada vez es
ms frecuente encontrar LCD en estos equipos debido a su bajsima demanda
de energa.

Todava hay muchos que utilizan el display de 7 segmentos por su simplicidad.
5

Este elemento se ensambla o arma de manera que se pueda activar cada
segmento diodo LED por separado logrando de esta manera combinar los
elementos y representar todos los nmeros en el display del 0 al 9.

El display de 7 segmentos ms comn es el de color rojo, por su facilidad de
visualizacin. Cada elemento del display tiene asignado una letra que identifica
su posicin en el arreglo del display.







EL DISPLAY NODO COMN
En el display nodo comn, todos los nodos de los diodos LED unidos y
conectados a la fuente de alimentacin.
En este caso para activar cualquier elemento hay que poner el ctodo del
elemento a tierra a travs de una resistencia para limitar la corriente que pasa
por el elemento.



EL DISPLAY CTODO COMN
El display ctodo comn tiene todos los nodos de los diodos LED unidos y
conectados a tierra.
Para activar un segmento de estos hay que poner el nodo del segmento a
encender a Vcc tensin de la fuente a travs de una resistencia para limitar el
paso de la corriente.





6

RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RE0/AN5/RD
8
RE1/AN6/WR
9
RE2/AN7/CS
10
OSC1/CLKIN
13
OSC2/CLKOUT
14
RC1/T1OSI/CCP2
16
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RB7/PGD
40
RB6/PGC
39
RB5
38
RB4
37
RB3/PGM
36
RB2
35
RB1
34
RB0/INT
33
RD7/PSP7
30
RD6/PSP6
29
RD5/PSP5
28
RD4/PSP4
27
RD3/PSP3
22
RD2/PSP2
21
RC7/RX/DT
26
RC6/TX/CK
25
RC5/SDO
24
RC4/SDI/SDA
23
RA3/AN3/VREF+
5
RC0/T1OSO/T1CKI
15
MCLR/Vpp/THV
1
U1
PIC16F877A
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RN1
220
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RN3
4.7k
O
F
F
O
N
1234
8765
DSW1
DIPSW_4
X1
CRYSTAL
C1
22pF
C2
22pF
R1
10k
5. PRCTICA:
Materiales:
PIC16F877A
XTAL 4 MHz
2 Capacitores de 22pF
8 Resistencias 220 ohmios
4 Resistencias 4.7k ohmios
1 Dip switch
1 Display 7 segmentos ctodo comn
Programador Pickit2
Protoboard
Fuente de 5V
Multmetro
Cortadora
Pinzas
Cables de conexin
Simulacin en PROTEUS 7:
7

Cdigo:
;PRUEBA SEGUNDO PARCIAL
;Realizamos en un editor el siguiente listado de programa que llamaremos
;DISPLAY.ASM
; -------------------------------------------------------

; --------------------------------------------------------
LIST P=16F877A ; Modelo de PIC list directive to define processor
#include <P16F877A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

reg1 EQU 0X20
reg2 EQU 0X21
reg3 EQU 0X22
com1 EQU 0X23
com2 EQU 0X24
com3 EQU 0X25
com4 EQU 0X26
com5 EQU 0X27
com6 EQU 0X27

ORG 0 ; org coloca el programa en el origen, 0x000 para el 16F877A

; -------------------------------------------------------
; CONFIGURACION DE RECUROS
; --------------------------------------------------------

bsf STATUS,RP0 ;Selecciono el Bank 1 para poder acceder a TRISA
movlw 0X07
movwf ADCON1 ;Deshabilito los comparadores
movlw b'00001111' ;Configuro 4 bits menos significativos del PortA para
que sean de entrada
movwf TRISA
bcf STATUS,RP0 ;Selecciono de nuevo el Bank 0
bsf STATUS,RP0 ;Selecciono el Bank 1 para poder acceder a TRISB
movlw 0x00 ;Configuro todo el PortB para que sea de salida
movwf TRISB
bcf STATUS,RP0 ;Selecciono de nuevo el Bank 0

clrf PORTB ;Pongo 0 en todos los bits de PORTB

; -------------------------------------------------------
; INICIO DE CICLO REPETITIVO
; --------------------------------------------------------

LECTURA
movlw b'00000000'
xorwf PORTA,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto CONTADOR

8

movlw b'00000001'
xorwf PORTA,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto GABRIELA

movlw b'00000010'
xorwf PORTA,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto ANGELICA

movlw b'00000011'
xorwf PORTA,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LUIS

movlw b'00000100'
xorwf PORTA,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto WILLIAM

movlw b'00000101'
xorwf PORTA,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto BLADIMIR

goto LECTURA

CONTADOR
movlw b'01100111'
movwf com1

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'00000110' ;1
movwf PORTB

call Delay
movlw b'01011011' ;2
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay
movlw b'01100110' ;4
movwf PORTB

call Delay
movlw b'01101101' ;5
9

movwf PORTB

call Delay
movlw b'01111100' ;6
movwf PORTB

call Delay
movlw b'00000111' ;7
movwf PORTB

call Delay
movlw b'01111111' ;8
movwf PORTB

call Delay
movlw b'01100111' ;9
movwf PORTB

call Delay

movlw b'01100111' ;9
xorwf com1,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LIMPIAR

goto LECTURA

LIMPIAR
clrf PORTB ;Pongo 0 en todos los bits de PORTB
goto LECTURA

GABRIELA
movlw b'01011011'
movwf com2

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01111100' ;6
movwf PORTB

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay
movlw b'01101101' ;5
10

movwf PORTB

call Delay
movlw b'00000111' ;7
movwf PORTB

call Delay
movlw b'00000110' ;1
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay
movlw b'01000000' ;-
movwf PORTB

call Delay
movlw b'01011011' ;2
movwf PORTB

call Delay

movlw b'01011011' ;2
xorwf com2,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LIMPIAR

goto LECTURA

ANGELICA
movlw b'01111111' ;8
movwf com3

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01111100' ;6
movwf PORTB

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01001111' ;3
11

movwf PORTB

call Delay
movlw b'01101101' ;5
movwf PORTB

call Delay
movlw b'01011011' ;2
movwf PORTB

call Delay
movlw b'00000110' ;1
movwf PORTB

call Delay
movlw b'01111100' ;6
movwf PORTB

call Delay
movlw b'01011011' ;2
movwf PORTB

call Delay
movlw b'01000000' ;-
movwf PORTB

call Delay
movlw b'01111111' ;8
movwf PORTB

call Delay

movlw b'01111111' ;8
xorwf com3,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LIMPIAR

goto LECTURA

LUIS
movlw b'00000110' ;1
movwf com4

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01111100' ;6
movwf PORTB

call Delay
movlw b'00111111' ;0
12

movwf PORTB

call Delay
movlw b'01100110' ;4
movwf PORTB

call Delay
movlw b'01100110' ;4
movwf PORTB

call Delay
movlw b'01100111' ;9
movwf PORTB

call Delay
movlw b'01011011' ;2
movwf PORTB

call Delay
movlw b'01100111' ;9
movwf PORTB

call Delay
movlw b'01100111' ;9
movwf PORTB

call Delay
movlw b'01000000' ;-
movwf PORTB

call Delay
movlw b'00000110' ;1
movwf PORTB

call Delay

movlw b'00000110' ;1
xorwf com4,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LIMPIAR

goto LECTURA

WILLIAM
movlw b'01001111' ;3
movwf com5

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01011011' ;2
13

movwf PORTB

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01011011' ;2
movwf PORTB

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01100110' ;4
movwf PORTB

call Delay
movlw b'01111100' ;6
movwf PORTB

call Delay
movlw b'00000111' ;7
movwf PORTB

call Delay
movlw b'01100111' ;9
movwf PORTB

call Delay
movlw b'01000000' ;-
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay

movlw b'01001111' ;3
xorwf com5,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LIMPIAR

goto LECTURA

BLADIMIR
movlw b'01100110' ;4
movwf com6

call Delay
movlw b'00111111' ;0
14

movwf PORTB

call Delay
movlw b'01101101' ;5
movwf PORTB

call Delay
movlw b'00111111' ;0
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay
movlw b'01001111' ;3
movwf PORTB

call Delay
movlw b'01101101' ;5
movwf PORTB

call Delay
movlw b'01101101' ;5
movwf PORTB

call Delay
movlw b'00000110' ;1
movwf PORTB

call Delay
movlw b'00000111' ;7
movwf PORTB

call Delay
movlw b'01000000' ;-
movwf PORTB

call Delay
movlw b'01100110' ;4
movwf PORTB

call Delay

movlw b'01100110' ;4
xorwf com6,0 ; verificacin de OPCION respecto a W
btfsc STATUS,Z ; verificando la bandera Z
goto LIMPIAR

goto LECTURA



15

; -------------------------------------------------------
;SUBRUTINA DELAY DE LAS SECUENCIAS
; --------------------------------------------------------

Delay movlw 0xEF ; Espero 0.5 s (Para un reloj de 4 MHz)
movwf reg1
dos movlw 0xE8
movwf reg2
uno clrwdt
dem1 goto dem2
dem2 goto dem3
dem3 clrwdt
decfsz reg2,f
goto uno
decfsz reg1,f
goto dos
dem4 goto dem5
dem5 goto dem6
dem6 goto dem7
dem7 clrwdt
return

end

Calculo del tiempo de ejecucin del retardo:
f= 4 x 10^6 Hz
T= 250 x 10^-9 s

A= (9 CM) (239)
A= 2151 CM

B= (A + 3 CM + 2 CM) (232)
B= (2151 CM + 3 CM + 2 CM) (232)
B= 500192

C= B +11 CM
C= 500192 CM + 11 CM
C= 500203 CM

Tejecucin = C x 4 x T
Tejecucin = 500203 x 4 x (250 x 10^-9 s)
Tejecucin= 0.500 s

6. CONCLUSIONES:

El programa MPLAB es una herramienta muy importante para la realizacin de
programas con diferente funcin.
Con el uso del PIC en este caso 16F877A es ms fcil usar el display de 7
segmentos ya que se obvia el uso de decodificadores.
Para la visualizacin en el caso de prctica de nmeros es necesario hacer una
tabla de acuerdo al nmero y as enviarlo al puerto de salida B.
16

La programacin es un factor importante para la correcta funcin del circuito.
El PIC16F877A posee 5 puertos (A, B, C, D y E) tiles al momento de la
realizacin del proyecto ya que pueden ser usados como entradas o salidas.
Los retardos programados en la ejecucin del programa dependen directamente
del nmero de ciclo de mquina que efectu la subrutina delay.
La palabra de configuracin al momento de quemar el PIC es muy importante
ya que de esto depende su correcto funcionamiento.

7. RECOMENDACIN:

Se debe tener cuidado al manipulas el PIC ya que este se puede daar por ser
de tecnologa CMOS.
Verificar si el display de 7 segmentos es nodo comn o ctodo comn para as
evitar errores al momento de la ejecucin de la prctica.
Al momento de la alimentacin debemos estar seguros de proporcionar al
circuito el voltaje adecuado 5 voltios para su funcionamiento.
Verificar que el MCLR no este activado para as poder evitar que el PIC se
resetee a cada momento; esto se evita conectndolo a Vdd.

8. WEBGRAFA:

http://es.wikipedia.org/wiki/Microcontrolador_PIC
http://www.unicrom.com/Tut_display-7-segmentos.asp
http://www.mikroe.com/chapters/view/79/capitulo-1-el-mundo-de-los
microcontroladores/
http://www.utp.edu.co/~eduque/arquitec/PIC16F877.pdf
ANEXOS










17

S-ar putea să vă placă și