PUERTOS DE ENTRADA Y SALIDA

15
UNIVERSIDAD PRIVADA DEL VALLE SERVICIOS DE LABORATORIO ASIGNATURA: MICROPROCESADORES II PRACTICA Nº 1 PUERTOS DE ENTRADA Y SALIDA 1. COMPETENCIAS Manejará y configurará los puertos de entrada y salida del los microcontroladores PIC. Será capaz de operar los lenguajes de entorno de programación de los microcontroladores. Estará familiarizado con el repertorio de instrucciones de los PIC asociados a la configuración de los puertos. Manejará y entenderá el funcionamiento de los pulsadores de acción momentánea y su utilización con los microcontroladores. Manejará el concepto de tablas en la programación de microcontroladores en lenguaje ensamblador. 2. MARCO TEORICO PIC 16F877 Se denomina microcontrolador a un dispositivo programable capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos. Los microcontroladores poseen una memoria interna que almacena dos tipos de datos; las instrucciones, que corresponden al programa que se ejecuta, y los registros, es decir, los datos que el usuario maneja, así como registros especiales para el control de las diferentes funciones del microcontrolador. Los microcontroladores se programan en Assembler y cada microcontrolador varía su conjunto de instrucciones de acuerdo a su fabricante y modelo. De acuerdo al número de instrucciones que el microcontrolador maneja se le denomina de arquitectura RISC (reducido) o CISC (complejo). Los microcontroladores poseen principalmente una ALU (Unidad Lógico Aritmética), memoria del programa, memoria de registros, y pines I/O (entrada y/0 salida). La ALU es la encargada de procesar los datos dependiendo de las instrucciones que se ejecuten (ADD, OR, AND), mientras que los pines son los que se encargan de comunicar al microcontrolador con el medio externo; la función de los pines puede ser de transmisión de datos, alimentación de corriente para l funcionamiento de este o pines de control especifico.

Transcript of PUERTOS DE ENTRADA Y SALIDA

UNIVERSIDAD PRIVADA DEL VALLE SERVICIOS DE LABORATORIOASIGNATURA: MICROPROCESADORES IIPRACTICA Nº 1

PUERTOS DE ENTRADA Y SALIDA

1. COMPETENCIAS

Manejará y configurará los puertos de entrada y salida del los microcontroladores PIC.

Será capaz de operar los lenguajes de entorno de programación de los microcontroladores.

Estará familiarizado con el repertorio de instrucciones de los PIC asociados a la configuración de los puertos.

Manejará y entenderá el funcionamiento de los pulsadoresde acción momentánea y su utilización con los microcontroladores.

Manejará el concepto de tablas en la programación de microcontroladores en lenguaje ensamblador.

2. MARCO TEORICO

PIC 16F877Se denomina microcontrolador a un dispositivo programable capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.Los microcontroladores poseen una memoria interna que almacena dos tipos de datos; las instrucciones, que corresponden al programa que se ejecuta, y los registros, es decir, los datos que el usuario maneja, así como registros especiales para el control de las diferentes funciones del microcontrolador.

Los microcontroladores se programan en Assembler y cada microcontrolador varía suconjunto de instrucciones de acuerdo a su fabricante y modelo. De acuerdo al número de instrucciones que el microcontrolador maneja se le denomina de arquitectura RISC (reducido) o CISC (complejo).Los microcontroladores poseen principalmente una ALU (Unidad Lógico Aritmética), memoria del programa, memoria de registros, y pines I/O (entrada y/0 salida). La ALU es la encargada de procesar los datos dependiendo de las instrucciones que seejecuten (ADD, OR, AND), mientras que los pines son los que se encargan de comunicar al microcontrolador con el medio externo; la función de los pines puedeser de transmisión de datos, alimentación de corriente para l funcionamiento de este o pines de control especifico.

En este proyecto se utilizo el PIC 16F877. Este microcontrolador es fabricado porMicroChip familia a la cual se le denomina PIC. El modelo 16F877 posee varias características que hacen a este microcontrolador un dispositivo muy versátil, eficiente y practico para ser empleado en la aplicación que posteorimente será detallada.Algunas de estas características se muestran a continuación:

Soporta modo de comunicación serial, posee dos pines para ello. Amplia memoria para datos y programa. Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este

tipo de memoria se puede borrar electrónicamente (esto corresponde a la "F" en elmodelo).

Set de instrucciones reducido (tipo RISC), pero con las instrucciones necesarias para facilitar su manejo.

CARACTERISTICASEn siguiente tabla de pueden observar las características más relevantes del dispositivo:

CARACTERÍSTICAS 16F877Frecuencia máxima DX-20MHzMemoria de programa flash palabra de 14 bits

8KB

Posiciones RAM de datos 368Posiciones EEPROM de datos 256Puertos E/S A,B,C,D,ENúmero de pines 40Interrupciones 14Timers 3Módulos CCP 2Comunicaciones Serie MSSP, USARTComunicaciones paralelo PSPLíneas de entrada de CAD de 10 bits

8

Juego de instrucciones 35Instrucciones

Longitud de la instrucción 14 bitsArquitectura HarvardCPU RiscCanales Pwm 2

Pila Harware -

Ejecución En 1 Ciclo Máquina -

Descripción de los puertos:

Puerto A: Puerto de e/s de 6 pines RA0 è RA0 y AN0 RA1 è RA1 y AN1 RA2 è RA2, AN2 y Vref- RA3 è RA3, AN3 y Vref+ RA4 è RA4 (Salida en colector abierto) y T0CKI(Entrada de reloj del modulo

Timer0) RA5 è RA5, AN4 y SS (Selección esclavo para el puerto serie síncrono)

Puerto B: Puerto e/s 8 pines Resistencias pull-up programables RB0 è Interrupción externa RB4-7 èInterrupcion por cambio de flanco RB5-RB7 y RB3 è programacion y debugger in circuit

Puerto C: Puerto e/s de 8 pines RC0 è RC0, T1OSO (Timer1 salida oscilador) y T1CKI (Entrada de reloj del modulo

Timer1). RC1-RC2 è PWM/COMP/CAPT RC1 è T1OSI (entrada osc timer1) RC3-4 è IIC RC3-5 è SPI RC6-7 è USART

Puerto D: Puerto e/s de 8 pines Bus de datos en PPS (Puerto paralelo esclavo) Puerto E: Puerto de e/s de 3 pines RE0 è RE0 y AN5 y Read de PPS RE1 è RE1 y AN6 y Write de PPS RE2 è RE2 y AN7 y CS de PPS

Dispositivos periféricos: Timer0: Temporizador-contador de 8 bits con preescaler de 8 bits Timer1: Temporizador-contador de 16 bits con preescaler que puede incrementarse

en modo sleep de forma externa por un cristal/clock. Timer2: Temporizador-contador de 8 bits con preescaler y postescaler. Dos módulos de Captura, Comparación, PWM (Modulación de Anchura de Impulsos). Conversor A/D de 1 0 bits. Puerto Serie Síncrono Master (MSSP) con SPI e I2C (Master/Slave). USART/SCI (Universal Syncheronus Asynchronous Receiver Transmitter) con 9 bit. Puerta Paralela Esclava (PSP) solo en encapsulados con 40 pines

3. MATERIALES Y EQUIPOS

1 Multímetro Digital. 1 Microcontrolador PIC de gama media o alta 1 Bread board. 1 Fuente DC. 1 Pulsador. 7 Diodos emisores de luz LED. 1 Display de 7 segmentos.

4. PROCEDIMIENTO

Parte 1.1Configurar dos puertos como entrada y un puerto como salida yrealizar un programa que sume los datos ingresado en lospuertos de entrada y muestre el resultado en el puertoconfigurado como salida.

LAYOUT 1.1

List p=16f877Ainclude <P16f877A.INC>aux equ 0x20org 0x00nopnopbsf STATUS,RP0bcf STATUS,RP1movlw b'00000110'movwf ADCON1clrf TRISBmovlw b'11111111'movwf TRISDmovwf TRISCbcf STATUS,RP0bcf STATUS,RP1clrf PORTBiniciomovfw PORTCaddwf PORTD,Wmovwf PORTBgoto inicioend

Parte 1.2Realizar un programa que compare los nibbles alto y bajo de un puerto configurado como entrada y muestre el resultado en tres LEDs conectados a otro puerto configurado como salida.

Considere el puerto de entrada:

include "p16f877a.inc"DATOA EQU 0x20DATOB EQU 0x21org 0x00bsf STATUS, RP0BCF STATUS, RP1movlw 0x06

movwf ADCON1CLRF TRISA MOVLW 0XFFMOVWF TRISB BCF STATUS, RP0BCF STATUS, RP1INICIO

MOVF PORTB,WMOVWF DATOA MOVWF DATOBMOVLW 0X0FANDWF DATOA, FSWAPF DATOB,FANDWF DATOB, FMOVF DATOA,WSUBWF DATOB, WBTFSS STATUS,CGOTO BMABTFSS STATUS, ZGOTO BAGOTO IGUAL

BMAMOVLW 0X01MOVWF PORTAGOTO INICIOBAMOVLW 0X04MOVWF PORTAGOTO INICIOIGUALMOVLW 0X02MOVWF PORTAGOTO INICIOEND

Parte 1.3Realizar un programa que rote a la izquierda el encendido deuno de ocho LEDs conectados a un puerto configurado comosalida. La rotación se efectuará cada vez que se presione unpulsador conectado a otro puerto configurado como salida.

List p=16f877Ainclude <P16f877A.INC>aux equ 0x20org 0x00nopnopbsf STATUS,RP0bcf STATUS,RP1movlw b'00000110'movwf ADCON1bsf TRISA,0clrf TRISCbcf STATUS,RP0bcf STATUS,RP1

clrf PORTCMovlw b'00000001'movwf PORTCgoto moverpresionarbtfss PORTA,0goto presionarsoltarbtfsc PORTA,0goto soltarreturnmovercall presionarmovwf auxrlf aux,0movwf PORTCgoto moverend

Parte 1.4

Desarrollar un programa, utilizando el concepto de tablas,que cuente las veces que se presiona un pulsador. El conteodebe mostrarse en un displays de 7 segmentos conectado a unpuerto configurado como salida. El conteo debe ser en basehexadecimal que empiece en 0 y termine en F.

Layout 1.4

list p=16f877ainclude <p16F877A.inc>CONT EQU 0X20

ORG 00nopnop

;bank1bsf STATUS, RP0bcf STATUS, RP1

;port a digitalmovlw 0x06movwf ADCON1;port a b0 inmovlw 0x01movwf TRISA;port b outclrf TRISB;bank0bcf STATUS, RP0BCF STATUS, RP1movlw 0x00movwf CONTcall tablamovwf PORTB_press

btfss PORTA, 0goto _press_soltarbtfsc PORTA, 0goto _soltar_aumentar

incf CONT,Fmovlw 0x0fandwf CONT, Wcall tablamovwf PORTBgoto _press

tabla addwf PCL, FRETLW 0X3FRETLW 0X06RETLW 0X5BRETLW 0X4FRETLW 0X66RETLW 0X6DRETLW 0X7DRETLW 0X07RETLW 0X7FRETLW 0X67RETLW 0x77RETLW 0x7CRETLW 0x58RETLW 0x5ERETLW 0X79RETLW 0X71

END

5. CUESTIONARIO.

1. Explicar los algoritmos utilizados en los distintos programas de la práctica.

2. Explicar los diagramas de los circuitos utilizados en la práctica.

Se Configuro dos puertos como entrada y un puerto comosalida y realizar un programa que sume los datosingresado en los puertos de entrada y muestre elresultado en el puerto configurado como salida.

Se Realizo un programa que compare los nibbles alto y bajo de un puerto configurado como entrada y muestre el resultado en tres LEDs conectados a otro puerto configurado como salida.

Se Realizo un programa que rote a la izquierda elencendido de uno de ocho LEDs conectados a un puertoconfigurado como salida. La rotación se efectuará cadavez que se presione un pulsador conectado a otro puertoconfigurado como salida.

Se Desarrollo un programa, utilizando el concepto detablas, que cuente las veces que se presiona unpulsador. El conteo debe mostrarse en un displays de 7segmentos conectado a un puerto configurado como salida.El conteo debe ser en base hexadecimal que empiece en 0y termine en F.

6. CONCLUSIONES

Se pudo demostrar la utilidad de los programas que se usan para programar microcontroladores

Se pudo verificar los códigos aprendidos en clases son muy útiles en todo el proceso de programar

7. RECOMENDACIONES

Se debe tener cuidado al polarizar todos los integrados y micros ya que estos pueden llegar a dañarse

Se debe seguir las instrucciones para elaborar los programas y quemarlos en el microcontrolador a ser usado