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.
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
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.