Programación de microcontroladores PIC16f877a en linux

Slides:



Advertisements
Presentaciones similares
PIC 16F873 CONVERSIÓN A/D Y TRANSMISIÓN POR PUERTO SERIE
Advertisements

CURSO BASICO INTERMEDIO
LOS PUERTOS DE E/S PUERTO A
MICROCONTROLADORES NOCIONES BÁSICAS.
MICROPROCESADORES y MICROCONTROLADORES
MICROCONTROLADORES PIC
ARQUITECTURA DE COMPUTADORAS
RESUMEN: Softmicro de 8 bits Xilinx
TEMPORIZADORES.
Rommel Chang Suárez Jefferson Moreno Briones
MICROCONTROLADORES MICROCHIP
Introducción a los MCU´s de Motorola
Sistemas Digitales Curso 2007/2008 Departamento de Tecnología E l e c t r ó n i c a Periféricos E/S. VIA 65C22 Sistemas Digitales 2º curso Ingeniero Técnico.
Entrada / salida digital con ccs
Registros de Desplazamiento
Conversor Análogo Digital
PICmicro GAMA MEDIA: PIC16F87X
Semana 4 - periferico.
Registros y Contadores
Microcontroladores PIC16F84A.
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Operación de Micros e Interfaces
ARQUITECTURA DE COMPUTADORES
José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores.
INTERRUPCIONES Introducción.
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Maquinas Digitales  La idea principal es dividir el procesamiento de cada una de las instrucciones en una serie de pasos totalmente independientes.
B ENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA Sistemas Programables Juan José Fonseca Zárate T IMER 2 PIC 18 F
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Objetivos Generales Entender el funcionamiento de un microcontrolador
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Convertidores analógico-digitales
Timer 3 Presentan: Fernando piñal moctezuma Tecilli tapia Tlatelpa BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA SISTEMAS.
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Lenguaje Ensamblador Pic 16F84A.
M.C. Luis Ricardo Salgado Garza Depto. Ciencias Computacionales, ITESM-MTY Marzo 2004.

MÓDULO II: El microcontrolador PIC16F8X
MICROCONTROLADORES COMPATIBLES CON 8XC51
Tema 1: Introducción a los microcontroladores
PIC16F877 Timers.
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Microcontrolador MPS430F149
MICROCONTROLADORES TATIANA HURTADO RIVAS LILIANA PORTELA NOREÑA
Comparador A Integrantes Álvaro Bravo Domingo Devotto Nelson Figueroa.
Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Sesión 09: TIMER como base de tiempo.
Programar PIC`s en lenguaje C18 En 64 horas. El siguiente material está desarrollado como complemento didáctico para la materia de microcontroladores,
Sesión 10: Conversión Análoga a Digital
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
CURSO DE ROBÓTICA.  Consideraciones Mecánicas.  Mantención de los componentes de KIT Mindstorm NXT  Se debe entender como son los componentes.
Sesión 1: Presentación del curso. 2009/1 Circuitos Digitales III Universidad Santo Tomás Sistemas Digitales II Presentación  Nombre:  Sebastian Villa.
Tema 4: El microcontrolador PIC16F876
Real Colegio San José S.A.S Programación - BASIC.
INTRODUCCIÓN A LAS HERRAMIENTAS DE DISEÑO CON PIC
NOCIONES BÁSICAS COMPUTO II
Estructura Microcontrolador
DETECTOR DE MINAS ANTI PERSONALES
CORPOCIDES Ing. Emilio Medina Baquero
RESUMEN: Softmicro de 8 bits Xilinx
PICmicro GAMA MEDIA: PIC16F84 [I]
Javier Mauricio Galvis Moreno
ESTADO Registro de ESTADO más utilizado  Es el registro más utilizado.  Ocupa la dirección 03 H tanto del Banco 0 como el Banco 1 de la Memoria de Datos.
Programando puertos en C freescale
Módulo Serial Asicrónico SCI (Serial Communications Interface Module)
Parte I Pines de E/S Interrupciones
Introducción a los microcontroladores Octubre 2013 Arduino Uno Convertidor A/D.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
* Rango de entrada * Numero de bits. * Resolución.
Transcripción de la presentación:

Programación de microcontroladores PIC16f877a en linux Dia 3 Por: Ing. Fernando E. Serrano E-mail:serranofer@ieee.org 1

PIC16F877A 2

Caracteristicas Caracteristica PIC16F877A Frecuencia de operación 20 MHz Memoria flash de programa 8K Memoria de datos (Bytes) 368 Memoria EEPROM (Bytes) 256 Interrupciones 15 Puertos entrada/salida A,B,C,D,E Temporizadores 3 Módulo captura/comparación/PWM 2 Comunicacion serie MSSP/USART Comunicación paralela PSP Modulo de conversión analoga-digital 10 bits 8 Comparadores analogos Conjunto de instrucciones 35 Ciclo de instruccion 200 ns 3

Diagrama de bloques 4

Memoria de programa 5

Memoria de datos (Registros) 6

Partes del PIC16F877A PORTA PORTB PORTC PORTD PORTE Es un puerto de 6 bits configurable como entrada o salida. PORTB Es un puerto de ocho bits configurable como entradas o salidas. PORTC PORTD Es un puerto con entradas con disparador Schmitt, que pueden configurarse como entradas y salidas. PORTE Tiene tres pines los cuales se configuran como entrada y salidas individualmente. 7

Partes del PIC16F877A TIMER0 TIMER1 TIMER2 CAPTURA/COMPARACION/PWM Es un temporizador que se puede usar con entradas externas o internas. TIMER1 Es un temporizador de 16 bits. TIMER2 Es un temporizador de 8 bits con un prescalador y post escalador. CAPTURA/COMPARACION/PWM Registro de captura de 16 bits. Registro de comparacion de 16 bits. Generador de PWM amo/esclavo. MASTER SYNCRONOUS SERIAL PORT MODULE Tiene tres pines los cuales se configuran como entrada y salidas individualmente. 8

Partes del PIC16F877A ADDRESSABLE UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER (USART) Se utiliza para la comunicación en serie con otros dispositivos como PC's. ANALOG-TO-DIGITAL CONVERTER (A/D) MODULE Convertidor analogo a digital. 9

Partes del PIC16F877A TIMER0 TIMER1 TIMER2 CAPTURA/COMPARACION/PWM Es un temporizador que se puede usar con entradas externas o internas. TIMER1 Es un temporizador de 16 bits. TIMER2 Es un temporizador de 8 bits con un prescalador y post escalador. CAPTURA/COMPARACION/PWM Registro de captura de 16 bits. Registro de comparacion de 16 bits. Generador de PWM amo/esclavo. MASTER SYNCRONOUS SERIAL PORT MODULE Tiene tres pines los cuales se configuran como entrada y salidas individualmente. 10

Partes del PIC16F877A TIMER0 TIMER1 TIMER2 CAPTURA/COMPARACION/PWM Es un temporizador que se puede usar con entradas externas o internas. TIMER1 Es un temporizador de 16 bits. TIMER2 Es un temporizador de 8 bits con un prescalador y post escalador. CAPTURA/COMPARACION/PWM Registro de captura de 16 bits. Registro de comparacion de 16 bits. Generador de PWM amo/esclavo. MASTER SYNCRONOUS SERIAL PORT MODULE Tiene tres pines los cuales se configuran como entrada y salidas individualmente. 11

Configuración del temporizador 0 TIMER0 La interrupción TMR0 es generada cuando el registro TMR0 se desborda de FFh a 00h. Este desborde pone el bit TMR0IF (INTCON<2>) a 1. El bit TMR0IF (INTCON<2>) debe ponerse a cero al salir debe ser puesta a cero en software por la interrupción del timer0. 12

Configuración del temporizador 0 TIMER0 El temporizador 0 TIMER0 tiene las siguientes características Temporizador/contador de 8 bits Lectura y escritura Selección de reloj externo e interno. Interrupción en desbordamiento de FFh a 00h 13

Configuración del temporizador 0 TIMER0 Prescaler El prescaler es un divisor de frecuencia que se utiliza para el timer 0 tanto como temporizador como contador. Este se configura modificando los siguientes bits del registro option_reg 14

Configuración del temporizador 0 TIMER0 Prescaler El prescaler es un divisor de frecuencia que se utiliza para el timer 0 tanto como temporizador como contador. Este se configura modificando los siguientes bits del registro option_reg 15

Configuración del temporizador 0 TIMER0 OPTION_REG 16

Configuración del temporizador 0 TIMER0 OPTION_REG Donde se debe poner el bit PSA del registro option_reg a 1 para asignarlo al temporizador watchdog y a 0 para asignarlo al TIMER0. El bit T0CS del OPTION_REG debe estar en cero para activar el TIMER0 como temporizador o en uno como contador. 17

Configuración del temporizador 0 TIMER0 INTCON El bit 6 (PEIE) del registro INTCON debe estar a 1 para habilitar todas las interrupciones . El bit 5 (TMR0IE) del INTCON debe estar a 1 para habilitar todas la interrupción del TIMER0. El bit 7 (GIE) del INTCON debe estar a 1 para habilitar todas las interrupciones. 18

Configuración generador de PWM (Pulse Width Modulation) El generador de PWM sirve para generar pulsos con modulación de anchura el cual se utiliza para variar la velocidad en motores ya sea de corriente directa o corriente continua. Para configurarlo se necesita el TIMER2. Para esto los pines CCPx se deben configurar como salidas estos están en el puerto C. Por lo que se debe configurar CCP2 como salida poniendo a cero el bit TRISC<1> 19

Periodo PWM Periodo PWM=(PR2+1)*4*Tosc*(TMR2 prescale value) 20

Ciclo de duración PWM CD PWM=(CCPR2L:CCP2CON<5:4>) •TOSC • (TMR2 Prescale Value) 21

Pasos para configurar el generador PWM Poner el bit 2 (TMR2ON) del T2CON a 1 y los bit 0 y 1 del T2CON de acuerdo a la tabla en la siguiente diapositiva. Asigne el periodo PWM escribiendo en el registro PR2. Asigne el ciclo de duracion PWM escribiendo en el registro CCPR2L y CCP2CON<5:4> Configurar el pin CCP2 poniendo a cero el bit TRISC<1> Configure el modulo CCP2 para la operación en PWM en CCP2CON bit 3-0 con 11xx 22

Pasos para configurar el generador PWM 23

24

Programacion en C para el PIC16F877A #include <pic16f877.h> int main(){ Return 0; } 25

Programacion en C para el PIC16F877A Para modificar los registros estos están almacenados en variables por ejemplo #include <pic16f877.h> int main(){ TRISA=0x0C; PORTA=0x01; Return 0; } 26

Programacion en C para el PIC16F877A-Interrupciones #include <pic16f877.h> void isr(void) __interrupt n { ... } Donde n es el número de interrupción. 27

Referencias http://sdcc.sourceforge.net/ http://gputils.sourceforge.net/ http://gsim.sourceforge.net/ http://www.utp.edu.co/~eduque/arquitec/Instruc%20877.pdf 28