SlideShare a Scribd company logo
1 of 160
Curso-Taller programación en lenguaje C para microcontroladores PIC PIC16F877
Características ,[object Object],[object Object],[object Object],[object Object]
Características (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Puertos de entrada y salida ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características ( periféricos ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Características (periféricos 2) ,[object Object],[object Object],[object Object],[object Object]
Arquitectura interna ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura interna
Terminales fisicas
PUERTOS Puerto # funciones Funciones PORTA 3 Entradas digital Salidas digital Entradas analógicas PORTB 2 Entradas digital Salidas digital PORTC 3 Entradas digital Salidas digital Medios de comunicación PORTD 3 Entradas digital Salidas digital Puerto paralelo esclavo PORTE 4 Entradas digital Salidas digital Entradas analógicas Control del puerto paralelo esclavo
FUNCIONES PORTA Terminal Funciones RA0 Ent. Digital Sal. Digital Ent. Analógica RA1 Ent. Digital Sal. Digital Ent. Analógica RA2 Ent. Digital Sal. Digital Ent. Analógica V REF  - RA3 Ent. Digital Sal. Digital Ent. Analógica V REF  + RA4 Ent. Digital Sal. Digital Ent. contador 1 RA5 Ent. Digital Sal. Digital Ent. Analógica
FUNCIONES PORTB Terminal Funciones RB0 Ent. Digital Sal. Digital Ent. Interrupción 0 RB1 Ent. Digital Sal. Digital RB2 Ent. Digital Sal. Digital RB3 Ent. Digital Sal. Digital PGM ( función LVP ) RB4 Ent. Digital Sal. Digital RB5 Ent. Digital Sal. Digital RB6 Ent. Digital Sal. Digital PGC ( función LVP ) RB7 Ent. Digital Sal. Digital PGD ( función LVP )
FUNCION PORTC Terminal Funciones RC0 Ent. Digital Sal. Digital Sal. Osc timer 1 Ent. Contador 1 RC1 Ent. Digital Sal. Digital Ent. Osc Timer 1 Captura/Comp/PWM 1 RC2 Ent. Digital Sal. Digital Captura/Comp/PWM 2 RC3 Ent. Digital Sal. Digital Reloj sincrono SPI Reloj síncrono I2C RC4 Ent. Digital Sal. Digital Datos entrada SPI Datos I2C RC5 Ent. Digital Sal. Digital Datos salida SPI RC6 Ent. Digital Sal. Digital Transmisión USART RC7 Ent. Digital Sal. Digital Recepción USART
FUNCIONES PORTD Terminal Funciones RD0 Ent. Digital Sal. Digital Bit 0 puerto paralelo esclavo RD1 Ent. Digital Sal. Digital Bit 1 puerto paralelo esclavo RD2 Ent. Digital Sal. Digital Bit 2 puerto paralelo esclavo RD3 Ent. Digital Sal. Digital Bit 3 puerto paralelo esclavo RD4 Ent. Digital Sal. Digital Bit 4 puerto paralelo esclavo RD5 Ent. Digital Sal. Digital Bit 5 puerto paralelo esclavo RD6 Ent. Digital Sal. Digital Bit 6 puerto paralelo esclavo RD7 Ent. Digital Sal. Digital Bit 7 puerto paralelo esclavo
FUNCIONES PORTE Terminal Funciones RE0 Ent. Digital Sal. Digital Ent. Analógica Lectura PSP RE1 Ent. Digital Sal. Digital Ent. Analógica Escritura PSP RE2 Ent. Digital Sal. Digital Ent. Analógica Habilitación PSP
Tipos de datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de datos 2 ,[object Object],[object Object],[object Object],[object Object]
Asignación de datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Asignación de datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Registros asociados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entrada o salida ,[object Object],[object Object],[object Object]
Acceso individual de bits 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entrada  o salida ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entrada o salida ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entrada o salida ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ADCON1 ADCON1 =  0   0  0  0  0  1  1  0 ADCON1 = 6 ;
Delay_ms ( retardo por software ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura de un programa en C (  ciclo while  ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura de un programa en C  (  ciclo for  ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura de un programa en C  (  ciclo do - while  ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.- Encendido de LED ,[object Object]
Encendido de LED ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Encendido de LED ( diagrama de flujo ) Led Configura bit del puerto como salida Enciende bit Retardo de 1000ms Apaga bit Retardo de 300 ms
Encendido de LED ( esquemático )
Encendido de LED ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Encendido de LED ( programa 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicios propuestos 1 ,[object Object],[object Object]
2.- Luces secuenciales ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Luces secuenciales ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Luces secuenciales ( diagrama de flujo ) Luces Configura puerto como salida Envía 00000001 Envía 00000010 Envía 00000100 Envía 00001000 Envía 00010000 Envía 00100000 Envía 01000000 Envía 10000000
Luces secuenciales ( esquemático )
Luces secuenciales ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicios propuestos 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arreglos ( definiciones ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arreglos ( Inicializando ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Condicionante if ,[object Object],[object Object],[object Object]
Símbolos de condición ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
3.- Luces con arreglo ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Luces con arreglo ( diagrama de flujo ) Luces Configura puerto como salida Limpia apuntador Envía dato apuntado Incrementa apuntador apuntador  ≥ 8 Limpia  apuntador si no
Luces con arreglo ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicios propuestos 3 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operadores a nivel de bits Operador operacion & AND; compara pares de bits y regresa 1 si ambos son 1’s, de otra manera regresa 0. | OR (inclusive); compara pares de bits y regresa 1 si uno o ambos son 1’s, de otra manera regresa 0. ^ OR (exclusiva); compara pares de bits y regresa 1 si los bits son complementarios, de otra manera regresa 0. ~ Complemento (unitario); invierte cada bit << Corrimiento hacia la izquierda; mueve los bits hacia la izquierda, descartando el bit mas a la izquierda y asignando ceros al bit a la derecha. >> Corrimiento hacia la derecha; mueve los bits hacia la derecha, descartando el bit mas a la derecha y asignando ceros al bit a la izquierda.
Ejemplos operadores lógicos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplos a nivel de bits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
4.- Luces con desplazamiento ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Luces con desplazamiento ( diagrama de flujo ) Luces Configura puerto como salida Inicializa variable Envía variable al puerto Modifica variable variable =  0 Inicializa variable si no
Luces con desplazamiento ( programa 1 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operaciones aritméticas Operador Operación + Suma - Resta * Multiplicación / División % Resto, regresa el residuo de la división entera (no puede ser usado con variables flotantes  ++ Como prefijo Incrementa en uno el valor de la variable antes de evaluar la expresión. Como Postfijo suma en uno la variable después de ser evaluado la expresión. -- Como prefijo decrementa en uno el valor de la variable antes de evaluar la expresión. Como Postfijo resta en uno la variable después de ser evaluado la expresión.
Luces con desplazamiento ( programa 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicios propuestos 4 ,[object Object],[object Object],[object Object],[object Object]
Acceso a bits individual ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
5.- Secuencias condicionadas (  problema  ) ,[object Object]
Secuencias condicionadas ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Secuencias condicionadas ( diagrama de flujo ) Luces Configura puertos RD salida, RA entrada Limpia contador Envía secuencia_izquierda Incrementa contador Contador =  10 Limpia  contador si no RA0 =  0 Envía  Secuencia_derecha si no
Secuencias condicionadas ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicios propuestos 5 ,[object Object]
Ejercicios propuestos 5 ( esquemático )
MOTOR A PASOS 1 ,[object Object]
MOTOR A PASOS 2 ,[object Object]
MOTOR A PASOS 2 ,[object Object]
Secuencias de activación 1 ,[object Object],Paso A B C D 1 1 1 0 0 2 0 1 1 0 3 0 0 1 1 4 1 0 0 1
Secuencias de activación 2 ,[object Object],Paso A B C D 1 1 0 0 0 2 0 1 0 0 3 0 0 1 0 4 0 0 0 1
Secuencias de activación 3 ,[object Object],Paso A B C D 0.5 1 0 0 0 1 1 1 0 0 1.5 0 1 0 0 2 0 1 1 0 2.5 0 0 1 0 3 0 0 1 1 3.5 0 0 0 1 4 1 0 0 1
Secuencias de activación 4 ,[object Object],Paso A C B D 1 1 0 1 0 2 1 0 0 1 3 0 1 0 1 4 0 1 1 0
Secuencia de activación 5 ,[object Object],Paso A C B D 0.5 1 0 1 0 1 1 0 0 0 1.5 1 0 0 1 2 0 0 0 1 2.5 0 1 0 1 3 0 1 0 0 3.5 0 1 1 0 4 0 0 1 0
Circuito de potencia 1 ( motor unipolar  )
Circuito de potencia 2 ( motor unipolar  )
Circuito de potencia 3 ( motor bipolar  ) Este mismo diagrama se repetiría para manejar la segunda bobina
Circuito de potencia x ( motor a pasos  ) Circuito integrado UCN 5804   Circuito integrado SAA1042
Circuito de potencia x1 ( motor unipolar  )
Circuito de potencia x2 ( motor bipolar  )
Ejercicios propuestos 5 ,[object Object]
Ejercicios propuestos 5 ( esquemático )
6.- Display de 7 segmentos ,[object Object]
Display de 7 segmentos ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Display de 7 segmentos  ( diagrama de flujo ) Configura puertos Inicia variables Display Envía decena Envía unidad Incrementa unidad Unidades>’9’ Limpia unidades Incrementa decenas Decenas>’9’ Limpia decenas si si no no
Display de 7 segmentos ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Display de 7 segmentos (  esquemático  )
Ejercicio propuesto 6 ( d7seg ) ,[object Object]
Ejercicio propuesto 6 ( esquemático )
Display de cristal liquido
LCD ( funciones bus 8 bits ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd8_Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd8_Config 2 Ejemplo: Lcd8_Config(&PORTC,&PORTD,0,1,2,0,1,2,3,4,5,6,7);
Lcd8_Init ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd8_Init 2 Ejemplo: Lcd8_Init(&PORTB, &PORTC);
Lcd8_Out ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd8_Out_Cp ,[object Object],[object Object],[object Object],[object Object]
Lcd8_Chr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd8_Chr_Cp ,[object Object],[object Object],[object Object],[object Object]
Lcd8_Cmd ,[object Object],[object Object],[object Object],[object Object]
Comandos predefinidos Comando Función LCD_FIRST_ROW Mueve el cursor a la 1a. fila. LCD_SECOND_ROW Mueve el cursor a la 2a. fila. LCD_THIRD_ROW Mueve el cursor a la 3a. fila. LCD_FOURTH_ROW Mueve el cursor a la 4a. fila. LCD_CLEAR Limpia el display. LCD_RETURN_HOME Regresa el cursor a la posición 1,1. Los datos de la RAM no son afectados. LCD_CURSOR_OFF Apaga el cursor. LCD_UNDERLINE_ON Coloca el caracter subrayado. LCD_BLINK_CURSOR_ON Parpadeo del cursor. LCD_MOVE_CURSOR_LEFT Mueve el cursor hacia la izquierda sin cambiar la RAM LCD_MOVE_CURSOR_RIGHT Mueve el cursor hacia la derecha sin cambiar el contenido de la RAM LCD_TURN_ON Enciende el display LCD_TURN_OFF Apaga el display LCD_SHIFT_LEFT Mueve el display hacia la izquierda sin cambiar el contenido de la RAM LCD_SHIFT_RIGHT Mueve el display hacia la derecha sin cambiar el contenido de la RAM
7.- LCD 8 BITS ,[object Object]
LCD 8 BITS ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object]
LCD 8 BITS ( diagrama de flujo ) Inicializa puertos de datos y control Envía mensaje Envía comando de Corrimiento a la izq. LCD 8 bits
LCD 8 BITS ( esquemático )
LCD 8 BITS ( programa 1 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LCD 8 BITS ( programa 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LCD 8 BITS ( esquemático )
LCD 8 BITS ( programa 3 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicios propuestos 7 ,[object Object]
Ejercicio propuesto 8 H H H O H O O H H HO H O L A L . . .
LCD ( funciones bus 4 bits ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Config 2 Ejemplo:     Lcd_Config(&PORTC,0,1,2,4,5,6,7);
Lcd_Init ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Init 2 Ejemplo: Lcd_Init(&PORTB);
Lcd_Out ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Out_Cp ,[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Chr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Chr_Cp ,[object Object],[object Object],[object Object],[object Object],[object Object]
Lcd_Cmd ,[object Object],[object Object],[object Object],[object Object],[object Object]
8.- LCD 4 BITS ,[object Object]
LCD 4 BITS ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object]
LCD 4 BITS ( diagrama de flujo ) Inicializa puertos de datos y control Envía mensaje Envía comando de Corrimiento a la der. LCD 8 bits
LCD 4 BITS ( esquemático Config )
LCD 4 BITS ( programa 1 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LCD 4 BITS ( programa 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LCD 4 BITS ( esquemático Init )
LCD 4 BITS ( programa 3 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conversión de tipo de datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ByteToStr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ShortToStr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WordToStr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IntToStr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LongToStr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FloatToStr ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.- Contador 0-9 ( problema )  ,[object Object]
Contador 0-9 ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contador 0-9 ( diagrama de flujo ) teclado Inicializa puertos (LCD) Inicializa contador Convierte contador  a ASCII Envía a LCD ASCII Incrementa  contador
Contador 0-9 ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contador 0-9 ( esquemático )
Contador 0-9 ( funcionamiento ) . . . Contador 0-9 : 0 Contador 0-9 : 1 Contador 0-9 : 2 Contador 0-9 : 3 Contador 0-9 : 4 Contador 0-9 : 5 Contador 0-9 : 6 Contador 0-9 : 9
Ejercicio propuesto 8 ,[object Object]
Ejercicio propuesto 8 . . . Serie de numeros Serie de numeros 1 Serie de numeros 1 2 Serie de numeros 1 2 4 Serie de numeros 8 Serie de numeros 8 16 Serie de numeros 8 16 32 Serie de numeros 8192  16384  32768
Ejercicio propuesto 9 ,[object Object]
Ejercicio propuesto 9 . . . Contador 00-99 cada 500 mseg 00 Contador 00-99 cada 500 mseg  01 Contador 00-99 cada 500 mseg  02 Contador 00-99 cada 500 mseg 03 Contador 00-99 cada 500 mseg 04 Contador 00-99 cada 500 mseg 05 Contador 00-99 cada 500 mseg 06 Contador 00-99 cada 500 mseg 99
Teclado matricial ( esquemático )
Teclado matricial ( funciones ) ,[object Object],[object Object],[object Object]
Keypad_Init ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Keypad_Init 2 Ejemplo: Keypad_Init(&PORTB);
Keypad_Read ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Keypad_Released ,[object Object],[object Object],[object Object],[object Object]
10.- Teclado matricial ( problema ) ,[object Object]
Teclado matricial ( algoritmo ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Teclado matricial ( diagramas de flujo ) teclado Inicializa puertos (LCD y teclado) Lee teclado Convierte a ASCII Envía a LCD
Teclado matricial ( esquemático )
Teclado matricial ( programa ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicio propuesto 9 ,[object Object]
Ejercicio propuesto 9 Cual es el numero de 3 cifras: Cual es el numero de 3 cifras: 025 Cual es el numero de 3 cifras: 025 El producto por 2 es: 050 Cual es el numero de 3 cifras: 025 El producto por 2 es: 050 La división entre 2 es: 012

More Related Content

What's hot

Bus structure of 8085 microprocessor 8085 microprocessor complete tutorial
Bus structure of 8085 microprocessor   8085 microprocessor complete tutorialBus structure of 8085 microprocessor   8085 microprocessor complete tutorial
Bus structure of 8085 microprocessor 8085 microprocessor complete tutorial
madhurace
 
Introduction to the Arduino
Introduction to the ArduinoIntroduction to the Arduino
Introduction to the Arduino
Wingston
 

What's hot (20)

Bus structure of 8085 microprocessor 8085 microprocessor complete tutorial
Bus structure of 8085 microprocessor   8085 microprocessor complete tutorialBus structure of 8085 microprocessor   8085 microprocessor complete tutorial
Bus structure of 8085 microprocessor 8085 microprocessor complete tutorial
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
Risc Cisc
Risc  CiscRisc  Cisc
Risc Cisc
 
Uart
UartUart
Uart
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
The I2C Interface
The I2C InterfaceThe I2C Interface
The I2C Interface
 
Chapter 8 Embedded Hardware Design and Development (third portion)
Chapter 8 Embedded Hardware Design and Development (third portion)Chapter 8 Embedded Hardware Design and Development (third portion)
Chapter 8 Embedded Hardware Design and Development (third portion)
 
I2C
I2CI2C
I2C
 
Arduino 1
Arduino 1Arduino 1
Arduino 1
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Instruction Set Architecture – II
Instruction Set Architecture – IIInstruction Set Architecture – II
Instruction Set Architecture – II
 
Timer0 PIC16F84A
Timer0 PIC16F84ATimer0 PIC16F84A
Timer0 PIC16F84A
 
Microcontrolador
MicrocontroladorMicrocontrolador
Microcontrolador
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Introduction to the Arduino
Introduction to the ArduinoIntroduction to the Arduino
Introduction to the Arduino
 
Embedded C - Lecture 1
Embedded C - Lecture 1Embedded C - Lecture 1
Embedded C - Lecture 1
 
Introducción a arduino
Introducción a arduinoIntroducción a arduino
Introducción a arduino
 
Microprocesador 8085 Apuntes assembler
Microprocesador 8085 Apuntes assemblerMicroprocesador 8085 Apuntes assembler
Microprocesador 8085 Apuntes assembler
 
manual-actividades-esp32-steamakers_compress.pdf
manual-actividades-esp32-steamakers_compress.pdfmanual-actividades-esp32-steamakers_compress.pdf
manual-actividades-esp32-steamakers_compress.pdf
 

Viewers also liked

Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
freddymadriz
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicaciones
Carlos Tovar
 
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87xMicrocontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Miguel Angel Corona Lòpez
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
Luis Zurita
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
Luis Zurita
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
Luis Zurita
 

Viewers also liked (20)

Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
Microcontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicacionesMicrocontroladores pic diseño practico de aplicaciones
Microcontroladores pic diseño practico de aplicaciones
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
 
Libro simulacion mikroc
Libro simulacion mikrocLibro simulacion mikroc
Libro simulacion mikroc
 
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87xMicrocontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
Microcontroladores pic, diseño práctico de aplicaciones 2da parte 16 f87x
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Microcontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos aoMicrocontrolador pic16 f84, desarrollo de proyectos ao
Microcontrolador pic16 f84, desarrollo de proyectos ao
 
comunicacion pic - usb
comunicacion pic - usbcomunicacion pic - usb
comunicacion pic - usb
 
Labview & pic
Labview & picLabview & pic
Labview & pic
 
Bootloader USB Multiplataforma para pic18f4550
Bootloader USB Multiplataforma para pic18f4550Bootloader USB Multiplataforma para pic18f4550
Bootloader USB Multiplataforma para pic18f4550
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Libro mikro c
Libro mikro cLibro mikro c
Libro mikro c
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
Programando pi cs_ccs_08
Programando pi cs_ccs_08Programando pi cs_ccs_08
Programando pi cs_ccs_08
 
Ciclo for picc
Ciclo for piccCiclo for picc
Ciclo for picc
 
PROGRAMACIÓN DE MICROCONTROLADORES
PROGRAMACIÓN DE MICROCONTROLADORESPROGRAMACIÓN DE MICROCONTROLADORES
PROGRAMACIÓN DE MICROCONTROLADORES
 

Similar to Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)

28812521 Practica1 1
28812521 Practica1 128812521 Practica1 1
28812521 Practica1 1
carlos
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Jose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Jose Manuel Mansilla Carrasco
 
Digitalio config 16f887a_886
Digitalio config 16f887a_886Digitalio config 16f887a_886
Digitalio config 16f887a_886
luisvargasquinto
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
Oscar Pastrana
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
RoxanneLamas2
 

Similar to Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2) (20)

pic16f877-con-mikroc.pdf
pic16f877-con-mikroc.pdfpic16f877-con-mikroc.pdf
pic16f877-con-mikroc.pdf
 
Micro
MicroMicro
Micro
 
Puertoserial[1]
Puertoserial[1]Puertoserial[1]
Puertoserial[1]
 
28683892 Practica1 1
28683892 Practica1 128683892 Practica1 1
28683892 Practica1 1
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 
Control automático de un sistema de riego
Control automático de un sistema de riegoControl automático de un sistema de riego
Control automático de un sistema de riego
 
28812521 Practica1 1
28812521 Practica1 128812521 Practica1 1
28812521 Practica1 1
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
 
Digitalio config 16f887a_886
Digitalio config 16f887a_886Digitalio config 16f887a_886
Digitalio config 16f887a_886
 
Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)Arduino(Tipos y su Programacion)
Arduino(Tipos y su Programacion)
 
Introducción Arquitectura Microcontroladores.pdf
Introducción Arquitectura Microcontroladores.pdfIntroducción Arquitectura Microcontroladores.pdf
Introducción Arquitectura Microcontroladores.pdf
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
Intel
IntelIntel
Intel
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
 
04.Entradas y salidas digitales
04.Entradas y salidas digitales04.Entradas y salidas digitales
04.Entradas y salidas digitales
 
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (11)

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)

  • 1. Curso-Taller programación en lenguaje C para microcontroladores PIC PIC16F877
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 10. PUERTOS Puerto # funciones Funciones PORTA 3 Entradas digital Salidas digital Entradas analógicas PORTB 2 Entradas digital Salidas digital PORTC 3 Entradas digital Salidas digital Medios de comunicación PORTD 3 Entradas digital Salidas digital Puerto paralelo esclavo PORTE 4 Entradas digital Salidas digital Entradas analógicas Control del puerto paralelo esclavo
  • 11. FUNCIONES PORTA Terminal Funciones RA0 Ent. Digital Sal. Digital Ent. Analógica RA1 Ent. Digital Sal. Digital Ent. Analógica RA2 Ent. Digital Sal. Digital Ent. Analógica V REF - RA3 Ent. Digital Sal. Digital Ent. Analógica V REF + RA4 Ent. Digital Sal. Digital Ent. contador 1 RA5 Ent. Digital Sal. Digital Ent. Analógica
  • 12. FUNCIONES PORTB Terminal Funciones RB0 Ent. Digital Sal. Digital Ent. Interrupción 0 RB1 Ent. Digital Sal. Digital RB2 Ent. Digital Sal. Digital RB3 Ent. Digital Sal. Digital PGM ( función LVP ) RB4 Ent. Digital Sal. Digital RB5 Ent. Digital Sal. Digital RB6 Ent. Digital Sal. Digital PGC ( función LVP ) RB7 Ent. Digital Sal. Digital PGD ( función LVP )
  • 13. FUNCION PORTC Terminal Funciones RC0 Ent. Digital Sal. Digital Sal. Osc timer 1 Ent. Contador 1 RC1 Ent. Digital Sal. Digital Ent. Osc Timer 1 Captura/Comp/PWM 1 RC2 Ent. Digital Sal. Digital Captura/Comp/PWM 2 RC3 Ent. Digital Sal. Digital Reloj sincrono SPI Reloj síncrono I2C RC4 Ent. Digital Sal. Digital Datos entrada SPI Datos I2C RC5 Ent. Digital Sal. Digital Datos salida SPI RC6 Ent. Digital Sal. Digital Transmisión USART RC7 Ent. Digital Sal. Digital Recepción USART
  • 14. FUNCIONES PORTD Terminal Funciones RD0 Ent. Digital Sal. Digital Bit 0 puerto paralelo esclavo RD1 Ent. Digital Sal. Digital Bit 1 puerto paralelo esclavo RD2 Ent. Digital Sal. Digital Bit 2 puerto paralelo esclavo RD3 Ent. Digital Sal. Digital Bit 3 puerto paralelo esclavo RD4 Ent. Digital Sal. Digital Bit 4 puerto paralelo esclavo RD5 Ent. Digital Sal. Digital Bit 5 puerto paralelo esclavo RD6 Ent. Digital Sal. Digital Bit 6 puerto paralelo esclavo RD7 Ent. Digital Sal. Digital Bit 7 puerto paralelo esclavo
  • 15. FUNCIONES PORTE Terminal Funciones RE0 Ent. Digital Sal. Digital Ent. Analógica Lectura PSP RE1 Ent. Digital Sal. Digital Ent. Analógica Escritura PSP RE2 Ent. Digital Sal. Digital Ent. Analógica Habilitación PSP
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. ADCON1 ADCON1 = 0 0 0 0 0 1 1 0 ADCON1 = 6 ;
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Encendido de LED ( diagrama de flujo ) Led Configura bit del puerto como salida Enciende bit Retardo de 1000ms Apaga bit Retardo de 300 ms
  • 34. Encendido de LED ( esquemático )
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Luces secuenciales ( diagrama de flujo ) Luces Configura puerto como salida Envía 00000001 Envía 00000010 Envía 00000100 Envía 00001000 Envía 00010000 Envía 00100000 Envía 01000000 Envía 10000000
  • 41. Luces secuenciales ( esquemático )
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Luces con arreglo ( diagrama de flujo ) Luces Configura puerto como salida Limpia apuntador Envía dato apuntado Incrementa apuntador apuntador ≥ 8 Limpia apuntador si no
  • 50.
  • 51.
  • 52. Operadores a nivel de bits Operador operacion & AND; compara pares de bits y regresa 1 si ambos son 1’s, de otra manera regresa 0. | OR (inclusive); compara pares de bits y regresa 1 si uno o ambos son 1’s, de otra manera regresa 0. ^ OR (exclusiva); compara pares de bits y regresa 1 si los bits son complementarios, de otra manera regresa 0. ~ Complemento (unitario); invierte cada bit << Corrimiento hacia la izquierda; mueve los bits hacia la izquierda, descartando el bit mas a la izquierda y asignando ceros al bit a la derecha. >> Corrimiento hacia la derecha; mueve los bits hacia la derecha, descartando el bit mas a la derecha y asignando ceros al bit a la izquierda.
  • 53.
  • 54.
  • 55.
  • 56. Luces con desplazamiento ( diagrama de flujo ) Luces Configura puerto como salida Inicializa variable Envía variable al puerto Modifica variable variable = 0 Inicializa variable si no
  • 57.
  • 58. Operaciones aritméticas Operador Operación + Suma - Resta * Multiplicación / División % Resto, regresa el residuo de la división entera (no puede ser usado con variables flotantes ++ Como prefijo Incrementa en uno el valor de la variable antes de evaluar la expresión. Como Postfijo suma en uno la variable después de ser evaluado la expresión. -- Como prefijo decrementa en uno el valor de la variable antes de evaluar la expresión. Como Postfijo resta en uno la variable después de ser evaluado la expresión.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64. Secuencias condicionadas ( diagrama de flujo ) Luces Configura puertos RD salida, RA entrada Limpia contador Envía secuencia_izquierda Incrementa contador Contador = 10 Limpia contador si no RA0 = 0 Envía Secuencia_derecha si no
  • 65.
  • 66.
  • 67. Ejercicios propuestos 5 ( esquemático )
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76. Circuito de potencia 1 ( motor unipolar )
  • 77. Circuito de potencia 2 ( motor unipolar )
  • 78. Circuito de potencia 3 ( motor bipolar ) Este mismo diagrama se repetiría para manejar la segunda bobina
  • 79. Circuito de potencia x ( motor a pasos ) Circuito integrado UCN 5804 Circuito integrado SAA1042
  • 80. Circuito de potencia x1 ( motor unipolar )
  • 81. Circuito de potencia x2 ( motor bipolar )
  • 82.
  • 83. Ejercicios propuestos 5 ( esquemático )
  • 84.
  • 85.
  • 86. Display de 7 segmentos ( diagrama de flujo ) Configura puertos Inicia variables Display Envía decena Envía unidad Incrementa unidad Unidades>’9’ Limpia unidades Incrementa decenas Decenas>’9’ Limpia decenas si si no no
  • 87.
  • 88. Display de 7 segmentos ( esquemático )
  • 89.
  • 90. Ejercicio propuesto 6 ( esquemático )
  • 92.
  • 93.
  • 94. Lcd8_Config 2 Ejemplo: Lcd8_Config(&PORTC,&PORTD,0,1,2,0,1,2,3,4,5,6,7);
  • 95.
  • 96. Lcd8_Init 2 Ejemplo: Lcd8_Init(&PORTB, &PORTC);
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102. Comandos predefinidos Comando Función LCD_FIRST_ROW Mueve el cursor a la 1a. fila. LCD_SECOND_ROW Mueve el cursor a la 2a. fila. LCD_THIRD_ROW Mueve el cursor a la 3a. fila. LCD_FOURTH_ROW Mueve el cursor a la 4a. fila. LCD_CLEAR Limpia el display. LCD_RETURN_HOME Regresa el cursor a la posición 1,1. Los datos de la RAM no son afectados. LCD_CURSOR_OFF Apaga el cursor. LCD_UNDERLINE_ON Coloca el caracter subrayado. LCD_BLINK_CURSOR_ON Parpadeo del cursor. LCD_MOVE_CURSOR_LEFT Mueve el cursor hacia la izquierda sin cambiar la RAM LCD_MOVE_CURSOR_RIGHT Mueve el cursor hacia la derecha sin cambiar el contenido de la RAM LCD_TURN_ON Enciende el display LCD_TURN_OFF Apaga el display LCD_SHIFT_LEFT Mueve el display hacia la izquierda sin cambiar el contenido de la RAM LCD_SHIFT_RIGHT Mueve el display hacia la derecha sin cambiar el contenido de la RAM
  • 103.
  • 104.
  • 105. LCD 8 BITS ( diagrama de flujo ) Inicializa puertos de datos y control Envía mensaje Envía comando de Corrimiento a la izq. LCD 8 bits
  • 106. LCD 8 BITS ( esquemático )
  • 107.
  • 108.
  • 109. LCD 8 BITS ( esquemático )
  • 110.
  • 111.
  • 112. Ejercicio propuesto 8 H H H O H O O H H HO H O L A L . . .
  • 113.
  • 114.
  • 115. Lcd_Config 2 Ejemplo: Lcd_Config(&PORTC,0,1,2,4,5,6,7);
  • 116.
  • 117. Lcd_Init 2 Ejemplo: Lcd_Init(&PORTB);
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125. LCD 4 BITS ( diagrama de flujo ) Inicializa puertos de datos y control Envía mensaje Envía comando de Corrimiento a la der. LCD 8 bits
  • 126. LCD 4 BITS ( esquemático Config )
  • 127.
  • 128.
  • 129. LCD 4 BITS ( esquemático Init )
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140. Contador 0-9 ( diagrama de flujo ) teclado Inicializa puertos (LCD) Inicializa contador Convierte contador a ASCII Envía a LCD ASCII Incrementa contador
  • 141.
  • 142. Contador 0-9 ( esquemático )
  • 143. Contador 0-9 ( funcionamiento ) . . . Contador 0-9 : 0 Contador 0-9 : 1 Contador 0-9 : 2 Contador 0-9 : 3 Contador 0-9 : 4 Contador 0-9 : 5 Contador 0-9 : 6 Contador 0-9 : 9
  • 144.
  • 145. Ejercicio propuesto 8 . . . Serie de numeros Serie de numeros 1 Serie de numeros 1 2 Serie de numeros 1 2 4 Serie de numeros 8 Serie de numeros 8 16 Serie de numeros 8 16 32 Serie de numeros 8192 16384 32768
  • 146.
  • 147. Ejercicio propuesto 9 . . . Contador 00-99 cada 500 mseg 00 Contador 00-99 cada 500 mseg 01 Contador 00-99 cada 500 mseg 02 Contador 00-99 cada 500 mseg 03 Contador 00-99 cada 500 mseg 04 Contador 00-99 cada 500 mseg 05 Contador 00-99 cada 500 mseg 06 Contador 00-99 cada 500 mseg 99
  • 148. Teclado matricial ( esquemático )
  • 149.
  • 150.
  • 151. Keypad_Init 2 Ejemplo: Keypad_Init(&PORTB);
  • 152.
  • 153.
  • 154.
  • 155.
  • 156. Teclado matricial ( diagramas de flujo ) teclado Inicializa puertos (LCD y teclado) Lee teclado Convierte a ASCII Envía a LCD
  • 157. Teclado matricial ( esquemático )
  • 158.
  • 159.
  • 160. Ejercicio propuesto 9 Cual es el numero de 3 cifras: Cual es el numero de 3 cifras: 025 Cual es el numero de 3 cifras: 025 El producto por 2 es: 050 Cual es el numero de 3 cifras: 025 El producto por 2 es: 050 La división entre 2 es: 012