Anda di halaman 1dari 91

Introduccin

Los microcontroladores estn adquiriendo mayor presencia en nuestra vida cotidiana sin que aparentemente notemos su presencia. Estn presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los telfonos, en los hornos microondas, los televisores, los telfonos mviles, las consolas de videojuegos...

Controlador y Microcontrolador (I)


Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Ejemplo el termostato de un sistema de calefaccin.

Controlador y Microcontrolador (II)


En un principio, los controladores electrnicos se construan con circuitos integrados digitales ( puertas lgicas). Posteriormente se construyeron con microprocesadores, que eran auxiliados por memorias, unidades de E/S y todo ello en un circuito impreso. Actualmente todos los elementos de un controlador se han incluido en un nico chip que recibe el nombre microcontrolador.

Controlador y Microcontrolador (III)


Microcontrolador: un chip o circuito integrado de alta escala de integracin que incorpora la mayor parte de los elementos que configuran un controlador, cuya caracterstica principal es su alto nivel de especializacin e integracin.

Diferencias entre P y C (I)


Un microprocesador es un sistema abierto o genrico, porque su configuracin es variable de acuerdo con la aplicacin a la que se destine.

Diferencias entre P y C (II)


El microcontrolador es un sistema cerrado o especfico. Todas las partes del computador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan los perifricos.

Microcontrolador
Sistema cerrado (un solo chip que integra:) La CPU La Memoria de datos (RAM EEPROM) La Memoria de programa (ROM, EPROM, FLASH) Unidades de entrada/salida. Timmers y contadores. Opcionalmente tambin pueden integrar: Controladores de interrupciones. Clock interno. Comparadores PWM Convertidores A/D y D/A. Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Ventajas del uso de los Microcontroladores


Aumento de prestaciones: un mayor control sobre un determinado
elemento representa una mejora considerable en el mismo.

Aumento de la fiabilidad. Menor riesgo de averas Menos ajustes Disminucin del tamao del producto. Menor volumen Mano de obra Stocks Disminucin del coste del producto.

Aplicaciones de los Microcontroladores


Aparatos electrodomsticos: microondas, frigorficos, hornos, TV, reproductores y grabadores de CD y DVD, equipos de sonido, telfonos,... Equipos informticos: impresoras, mdems, unidades de disco, ratones, teclados,.. Automviles: mando de sistemas del automvil (ABS, inyeccin, encendido, climatizador..) Domtica: sistemas antirrobo, climatizadores,.. Instrumentacin: equipos de medida Robtica

Microcontroladores en el hogar

Cocina o Lavadora....................... 1 o Horno.......................... 1 o Frigorfico.................... 1 o Lavavajillas................... 1 Saln o TV............................. 2 o Mando a distancia.............. 1 o Video.......................... 1 o DVD............................ 2 o Receptor TDT................... 1 o Telfono fijo.................. 1 o Telfono mvil................. 2 Garaje o Puerta automtica.............. 1 o Alarma robo/incendio/gas....... 3 Ascensor............................ 2

General o Calefaccin........... o Aire acondicionado.... o Video portero......... Automvil o Frenos ABS............ o Climatizacin......... o Alarma antirrobo...... o Airbag................ o Equipo msica......... o Ordenador de viaje.... o Control motor......... o Sistema seguridad..... PC y perifricos..............

1 1 2 1 1 1 1 1 1 1 1 6

TOTAL: . . . . . . . . .

. 38

El Mercado de los Microcontroladores


se venden cientos de microcontroladores por cada microprocesador existe una gran diversidad de microcontroladores: clasificacin segn tamao de la palabra, en microcontroladores de 4, 8, 16 32 bits la totalidad de los microcontroladores actuales se fabrican con tecnologa CMOS.

Qu microcontrolador emplear?
Factores a considerar segn la aplicacin: Eleccin de la familia (fabricante).
Experiencia previa. Documentacin. Herramientas de desarrollo y precio. Disponibilidad.

Eleccin de modelo concreto de C


Precio del microcontrolador. E/S y recursos internos. Consumo y velocidad Memoria Ancho de palabra Diseo de la placa

Caractersticas (arquitectura) I
Todos los microcontroladores disponen de bloques bsicos: - Procesador (CPU), - Memoria de datos y de instrucciones, - Lneas de E/S, - Oscilador de reloj - Mdulos controladores de perifricos (recursos especiales). Sin embargo, cada fabricante intenta enfatizar los recursos ms idneos para las aplicaciones a las que se destinan preferentemente. En la actualidad la mayora de uC incorporan CPUs cuya arquitectura es de tipo: Von Neumann Harvard

Caractersticas (arquitectura) II
El modelo bsico de arquitectura empleada por los computadores digitales fue establecida en 1945 por Von Neumann. Este tipo de arquitectura consta de los siguientes bloques: Memoria principal Unidad aritmtico-lgica Unidad de control Unidad de entrada/salida

Caractersticas (arquitectura) III Arquitectura: Von Neumann

Caractersticas Arquitectura: Von Neumann


Memoria principal: se emplea para almacenar datos o instrucciones. Se compone de
una serie de celdas a cada una de las cuales se accede a travs de una direccin. Cada celda est compuesta de un nmero de bits que nos da el ancho de palabra de la memoria.

Unidad aritmtico-lgica: permite realizar las operaciones elementales (AND, OR,


NAND, NOR, suma, resta, etc.). Estas operaciones las realiza con datos procedentes normalmente de la memoria y los resultados parciales los almacena o no temporalmente en algunos registros que suele tener la propia unidad aritmtica. Las operaciones bsicas que puede realizar un computador se dividen en operaciones lgicas y operaciones aritmticas. Ambos tipos de operaciones se realizan dentro de esta unidad.

Unidad de control: se encarga de generar las seales necesarias para que todo el
computador ejecute las instrucciones ledas de la unidad de memoria. La unidad de control es la encargada de leer de forma consecutiva las instrucciones (que se encuentran almacenadas en la unidad de memoria), y generar las seales elctricas necesarias para proceder a la ejecucin de cada una de estas instrucciones. Es la unidad que gobierna y gestiona el comportamiento de un computador.

La agrupacin de algunos bloques funcionales del computador como son la unidad de control, la unidad aritmtico-lgica y los registros recibe el nombre de unidad central de proceso (CPU).

Caractersticas Arquitectura: Von Neumann


Unidad de entrada/salida: realiza la transferencia de informacin con el exterior, con las unidades que se conocen con el nombre de perifricos. Buses: caminos que unen los distintos bloques del computador y a travs de los cuales circulan los datos y las instrucciones. Dependiendo del tipo de informacin que se trate podemos hablar de diferentes caminos: Bus de datos: circulan los datos de las operaciones que se van a efectuar. Bus de direcciones: circulan las direcciones de memoria donde se encuentra almacenado algn tipo de informacin a la que se desea acceder. Bus de control : circulan las seales de control generadas por la unidad de control para la ejecucin de las instrucciones.

Arquitectura HARVARD
En la arquitectura Harvard, existen dos tipos de memorias, y por lo tanto dos buses, que suelen ser de anchura diferente, es posible acceder a ambas memorias al mismo tiempo, con lo cual la velocidad del sistema aumenta.

Procesador segmentado (pipeline)

Ejemplo:

Bsqueda 1

Ejecuta 1

1. MOVLW 55h

Bsqueda 2

Ejecuta2

2 .MOVWF PORTB

Bsqueda 3

Ejecuta 3

3. CALL SUB_1

Bsqueda 4

Salir

4. BSF PORTA,BIT3

Bsqueda SUB_1

Ejecuta SUB_1

Arquitecturas: Von Neumann vs. Harvard


La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema de buses nico (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes, una que contiene slo instrucciones y otra, slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias.

Microcontroladores (CPU)
CISC: Complex Instruction Set Computer
Muchas instrucciones diferentes. Potentes y especializadas. Facilita la programacin. Cdigo muy compacto P.e.: Motorola

RISC: Reduced Instruction Set Computer


Pocas instrucciones muy sencillas. La sencillez de las instrucciones permite liberar rea de silicio para implementar caractersticas que mejoren las prestaciones. Chips ms baratos, de menor consumo, de menos pines. P.e.: PIC

- SISC: Specific Instruction Set Computer


- Set de instrucciones reducido y especfico adaptado a las necesidades de la aplicacin prevista.

La memoria en los microcontroladores


En los microcontroladores, existen dos tipos de memoria: Memoria de programa. Memoria de datos. Ambos tipos de memoria estn integradas dentro del propio chip. La memoria de programa, ha de ser no voltil, y su contenido no sufre modificaciones durante la ejecucin del mismo, es del tipo ROM. La memoria de datos evoluciona segn se ejecuta el programa, ha de ser de tipo lecturaescritura es decir tipo RAM.

Tipos de memoria no voltil en los microcontroladores (I) Los diferentes tipos de memoria no voltil que nos podemos encontrar en un microcontrolador son: ROM CON MSCARA. OTP. EPROM. EEPROM. FLASH.

Tipos de memoria no voltil en los microcontroladores (II)


ROM CON MSCARA: Es una memoria no voltil de solo lectura, cuyo contenido se graba durante la fabricacin del chip. Es muy cara, por lo cual solo es interesante cuando el numero de chips a fabricar es muy elevado. Este tipo de memoria no se puede volver a programar. OTP: (One Time Programable), o ROM programable una vez. El Microcontrolador posee una memoria ROM que el usuario puede programar una nica vez. Una vez realizada esta funcin, no se puede modificar el programa. EPROM: (Erasable Programmable Read Only Memory y), memoria no voltil, que se puede grabar y borrar muchas veces. Se borra mediante luz ultravioleta y a travs de una ventana de cristal que posee el chip. EEPROM: (Electrical Erasable Programmable Read Only Memory) Tanto la grabacin como el borrado se realiza mediante impulsos elctricos. Estas operaciones se pueden efectuar muchas veces. FLASH: Es una memoria no voltil de bajo consumo, que se puede leer y escribir en el propio circuito. Es mas veloz y de mayor densidad que la EEPROM .

Puertos de entrada y salida


Soportan la comunicacin entre el chip y el mundo exterior (actuadores y sensores). Pueden ser digitales o analgicas. Una misma patilla del chip, puede ser entrada o salida, tanto analgica como digital. Las patillas se suelen agrupar en puertos de 8 o 16 bits. Protegidas contra sobreintensidades y sobretensiones.

Reloj principal
Genera las seales que determinan la velocidad de trabajo del uC. Suele estar integrado en el propio chip, solo necesita unos pocos componentes externos. Cristales de cuarzo. Resonadores cermicos. Circuitos R/C. Oscilador externo. Existen uC, que incluso integran toda la circuiteria necesaria para generar la seal de reloj.

Recursos especiales
Temporizadores o timers. Perro guardin o watchdog. Proteccin ante fallos de alimentacin o brownout. Estado de bajo consumo o sleep. Convertidor A/D. Convertidor D/A. Control se anchura de pulsos PWM. Puertos de comunicacin.
UART USART USB I2C CAN TCP/IP

Ciclo de vida del proyecto

Anlisis y Diseo

Implementacin

Depuracin y prueba

Idea o proyecto Requerimientos Papel y lpiz Herramientas grficas

Edicin Compilacin Ensamblado Correccin sintctica

Simulacin lgica Placa prototipo

Herramientas de desarrollo
Las herramientas de desarrollo estn formadas por un conjunto de programas e interfaces que permiten realizar los proyectos de la forma ms eficiente posible.

Ensamblador. Compilador. Simulador. Placas de prototipo + ICD. Emuladores en circuito + ICD. Programador.

Lenguajes de programacin Ensamblador


Permiten el uso eficiente de los recursos Programacin costosa y casi imposible la modificacin
El cdigo debe ser documentado, empleo de smbolos Programacin estructurada

Lenguajes de alto nivel


Desarrollo ms rpido, mantenimiento menos costoso Eficiencia Ocupacin en memoria Ada --> Grandes sistemas C, PASCAL, PYTON, BASIC
Permiten el acceso a los recursos hardware (ansi C + registros + asm)

Proceso de implementacin
Entorno IDE Editar cdigo fuente
*.c (editor de textos)

Compilar cdigo fuente


*.asm

MIKROC
(Mikroe compiler)

Ensamblar cdigo objeto


*.dbg, .cof *.hex

MPASM, MIKROC

Fichero ejecutable

WINPIC800 + TE-20

Implementacin y prueba
SIMULACIN/CORRECCIN

PROGRAMACIN

Foto placa

Placas de simulacin (programadores)

Microcontroladores (Familias I)
8051 (Intel)
Arquitectura Harvard (direccionamiento separado para datos e instrucciones) Bus de 8 bits de datos Puede direccionar 64K de programa (los 4K 8K bajos pueden residir en chip) y 64K de memoria de datos externa. 128 bytes de RAM interna + registros especiales. E/S direccionadas en espacio propio. Bus de direcciones de 16 bits Gran potencia en instrucciones de bit Timers y puertos serie (no A/D ni PWM) 8048 serie baja 80c196 de 16 bits 80186: microcontrolador con un 8086 como ncleo (PC XT)

Microcontroladores (Familias II)


68HC11 (Motorola) Arquitectura Von Neuman (datos, programa, E/S, timers comparten el mismo espacio de memoria) Bus de 8 bits de datos, 16 bits de direcciones Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers, A/D, PWM, acumuladores de pulsos, comunicacin serie sncrona y asncrona Serie baja 68HC05 683xx: microcontrolador con un 68xxx como ncleo

Porqu PIC?
No porque esta familia sea mejor que otras, sino porque presentan diversas caractersticas que los hacen especialmente interesantes: - Facilidad de uso. - Gran cantidad de informacin disponible en libros, revistas e Internet. - Herramientas de desarrollo muy asequibles. - Bajo precio y fcil disponibilidad. En muchos casos la eleccin de una versin adecuada de PIC es la mejor solucin para resolver un problema. Otras familias de microcontroladores son ms eficaces en aplicaciones concretas, especialmente si predomina una caracterstica especial.

Gamas de PICs
bit s
Gama alta mejorada
PIC24 , (DsPIC)
75, (84) instrucciones, hasta 16,(40)MIPS

16

PIC18
32 niveles de pila17 vectores de interrupcin, 75 instruciones de 16 bits, 10 MIPS

Gama alta Gama media Gama bsica

8b its

PIC16* 8 niveles de pila, 4 vectores de interrrupcin 35 instrucciones de 14 bits, 1 timer 8 bit y 2 de 16bit, hasta 5MIPS

PIC 10 , PIC 12* 2 niveles de pila y 33 instrucciones de 12 bits, 1 timer de 8bits

Microcontroladores (Familias III)


PIC (MicroChip)

Arquitectura Harvard (direccionamiento separado para datos e instrucciones)


solapamiento de instrucciones [PIPELINE -> SEGMENTACIN] (ejecucin actual y bsqueda de la siguiente.) Estructura ortogonal.

Primer microcontrolador RISC 16Fxx lnea ms popular del fabricante


35 instrucciones 8 bits de datos 14 bits de instruccin (hasta 8K instrucciones) Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers, A/D, PWM, acumuladores de pulsos, comunicacin serie sncrona y asncrona

Comparativa
Modelo Mem. Prog. Mem. Datos Bytes Palabras
Bytes EEP Bytes RAM

12C508 768 512x12 0 25 No 6 No


1-8bits+ WTD

16F84A 1792 1024x14 64 68 No 13 No


1- 8bits +WDT

16F88 7168 4096x14 256 368 16 2


1-16bits+2
8bits+WDT

16F877 14336 8192x14 256 368 33 2


1-16bits+2
8bits+WDT

18F6722 128K 64Kx16 1024 3936 12(10bits) 54 2


3-16bits+2
8bits+WDT

Conversin A/D Lneas de E/S Comparador Analog Temporizadores N de pins PWM Frec. Max. Precio

7(10bits) 8(10bits)

8 No 4 Mhz. 2,04

18 No 20Mhz. 5,17

18 Si(10bits) 20Mhz. 3,81

40 Si 20Mhz. 10,85

64 Si 40Mhz 23,75

Modo de conexionado del oscilador:

Oscilador XT C1=C2=22pF 33pF Cristal ? 4MHz (PIC16F84A-04)

Oscilador RC C1 de 20pF como mnimo 5K? ? R1 ? 100K?

La memoria de programa
El espacio marcado como "Espacio de Memoria de Usuario" es donde ir el programa, desde la direccin 0000h hasta la 3FFh (3FFh en decimal es 1023, que mas la direccin 0000h hace 1024 direcciones, es decir, 1Kbyte). "Reset Vector" es la primera direccin (0000h) a la que se dirige el PIC al encenderlo o al resetearlo y donde debe estar siempre la primera instruccin. "Vector de Interrupcin" es la direccin (0004h) a la que se dirige el PIC cuando se produce una interrupcin, esto es, un evento que permite sacar al PIC de la ejecucin normal del programa para ejecutar una subrutina de atencin a la interrupcin. "PC" (Contador de Programa) es un registro de 13 bits que apunta a la direccin de la memoria de programa que contiene la instruccin a ejecutar. "Niveles de la pila de 1 a 8" son los niveles de la pila, que se utiliza cuando se ejecutan subrutinas.

La memoria de datos RAM


- La memoria RAM no slo se usa para almacenar las variables que puedan utilizarse en el programa, tambin se utilizan una serie de registros para configurar y controlar el PIC. - La memoria esta dividida en dos bancos, el banco 0 y el banco 1, para seleccionar un banco u otro se utiliza un bit (RP0) del registro de estado (STATUS). Generalmente se trabaja con el banco 0. Cada banco se divide a su vez en dos reas: - RFS (Registros de Funciones Especiales) - RGP (Registros de Propsito General) El rea RFS (Registros de Funciones Especiales) controla el funcionamiento del dispositivo. Estos registros se emplean para el control del funcionamiento de la CPU y de los perifricos (direcciones desde la 00h hasta la 0Bh y desde la 80h hasta la 8Bh).

-El rea RGP (Registros de Propsito General) comprende los registros que podemos utilizar como variables de trabajo a partir de la direccin 0Ch hasta la 4Fh (68 bytes de SRAM). Puede accederse directamente o bien indirectamente haciendo uso del registro FSR. - El rea RGP as como algunos registros especiales son los mismos en los dos bancos del mapa de memoria del PIC.

Interrupciones

Registro INTCON

Registro OPTION

Manejo de una interrupcin


unsigned cnt; void interrupt() { cnt++; TMR0 = 96; INTCON = 0x20; }//~ void main() { OPTION_REG = 0x84; TRISB = 0; PORTB = 0xFF; TMR0 = 96; INTCON = 0xA0; cnt = 0; do { if (cnt == 400) { PORTB = ~PORTB; cnt = 0; } } while(1); }//~! // Incrementar valor cnt //en cada interrupcin // Activar T0IE, borrar T0IF

// Preescaler a TMR0 // PORTB como salida // iniciar PORTB // Habilitar interupcin TMR0 // Resetear cnt

// Negar PORTB // Resetear cnt

Clculo de retardos con TMR0 T. total = 4 x Tosc x (256-TMR0)xPredivisor Tosc = 1 / fclock

Formato de una instruccin (I)

Ejemplo: Addwf f,d

Ejemplo: bcf f,b

Formato de una instruccin (II)

Ejemplo: addfw k call k

RAM 16F84

RAM 16F877

Display alfanumrico LCD

Librera LCD (interface 4 bits)


Lcd_Config
void Lcd_Config(unsigned short *port, unsigned short RS, unsigned short EN, unsigned short WR, unsigned short D7, unsigned short D6, unsigned short D5, unsigned short D4); Lcd_Config(&PORTD,1,2,0,3,5,4,6);

Lcd_Init
Lcd_Init(&PORTB);

Lcd_Out
void Lcd_Out(unsigned short row, unsigned short col, char *text); Lcd_Out(1, 3, "Hello!");

Lcd_Custom_Cmd
void Lcd_Custom_Cmd(char out_char); Lcd_Custom_Cmd(Lcd_Clear);

LCD Command
LCD_FIRST_ROW LCD_SECOND_ROW LCD_THIRD_ROW LCD_FOURTH_ROW LCD_CLEAR LCD_RETURN_HOME

Purpose
Move cursor to 1st row Move cursor to 2nd row Move cursor to 3rd row Move cursor to 4th row Clear display Return cursor to home position, returns a shifted display to original position. Display data RAM is unaffected. Turn off cursor Underline cursor on Blink cursor on Move cursor left without changing display data RAM Move cursor right without changing display data RAM Turn LCD display on Turn LCD display off Shift display left without changing display data RAM Shift display right without changing display data RAM

LCD_CURSOR_OFF LCD_UNDERLINE_ON LCD_BLINK_CURSOR_ON LCD_MOVE_CURSOR_LEFT LCD_MOVE_CURSOR_RIGHT LCD_TURN_ON LCD_TURN_OFF LCD_SHIFT_LEFT LCD_SHIFT_RIGHT

Librera LCD a medida


Lcd_Custom_Config
void Lcd_Custom_Config(char * data_port, char D7, char D6, char D5, char D4, char * ctrl_port, char RS, char WR, char EN); Lcd_Custom_Config(&PORTD,3,2,1,0,&PORTB,2,3,4);

Lcd_Custom_Out Lcd_Custom_Cmd

Manejo de display LCD

char *text = "S.T.R.

2007";

void main() { TRISB = 0; TRISC = 0; // PORTB y PORTC Salida Lcd_Custom_Config(&PORTC,7,6,5,4,&PORTB,0,1,2); Lcd_Custom_Cmd(Lcd_CURSOR_OFF); // Ocultar cursor Lcd_Custom_Out(1, 1, text); //Imprimir texto }

Conversin A/D (I)


Hasta 8 canales de entrada Conversin por mtodo de aproximaciones sucesivas 10 bits de resolucin Voltaje alto y bajo de referencia seleccionable por software Posibilidad de ejecucin en modo SLEEP

Conversin A/D (II)


4 registros bsicos: 2 registros configuracin: ADCON0 ADCON1 2 registros datos: ADRESH y ADRESL

Registro de configuracin (I)

Registro de configuracin (II)

Registro de datos

Conversin A/D TRISA = 0xFF; ADCON1 = 0x80; ADCON0 = 0x81; Comando: Adc_Read( )

Inicializa el convertidor A/D para trabajar como oscilar RC, y como parmetro se le pasa el canal que queramos convertir, devolviendo un entero con el resultado de la conversin.

unsigned Adc_Read(unsigned short channel); temp = Adc_Read(0);

Interfaz Serie
Posibilidad de configuracin para comunicacin:
full-duplex asncrona. Sincrona como Master Sncrona como Slave

Utilizaremos el modo asncrono

Interfaz Serie
MODO ASINCRONO:
codificacin standard NRZ
1 bit inicio 8-9 de datos y 1 bit de paro.

formato standard de 8 bits ( configurable ) se transmite primero el bit LSB paridad no soportada por HW pero puede calcularse por SW y almacenarse en bit 9

Interfaz Serie
DIAGRAMA DEL BLOQUE DE TRANSMISION

Interfaz Serie
PROGRAMACION:
1) Inicializar registro del Generador de baudios (SPBRG) y el bit de alta velocidad si necesario (BRGH)

Interfaz Serie
2) Modo Asncrono
Clear bit SYNC

3) Habilitar puerto serie


Set bit SPEN

4) Interrupciones habilitadas
Set bit TXIE

5) Si se quiere 9 bit de datos


Set bit TX9

Interfaz Serie
6 ) Habilitar transmision
Set bit TXEN (habilita el bit TXIF)

7) Si se ha seleccionado 9 bit
Cargar bit en TX9D

8) Cargar el registro TXREG con los datos:


empieza automticamente la transmisin

// ejemplo para simular en placa de prototipos // PICDEM2 + PIC16F877 unsigned int temp; char txt[5]; void main(){ ADCON1 = 0x8E; TRISA = 0x11; Lcd_Custom_Config(&PORTD,3,2,1,0,&PORTA,3,2,1); Lcd_Custom_Out(1, 1, "valor conversion:"); do { temp = Adc_Read(0); // Almacena valor de la conversion WordToStr(temp*5/1020, txt); delay_ms(100); Lcd_Custom_Out(2, 1, txt); }while(1); }

/* * Project name: ADC_USART (enviar al puerto serie el valor del ADC) */ unsigned short temp_res; void main() { USART_Init(9600); // Inicializar puerto serie (9600 baud rate, 1 stop bit, ADCON1 = 0; TRISA = 0xFF; // Todos los pin analgicos y VDD es Vref // PORTA entrada

...

do { // leer ADC y enviar los 8 bits al puerto serie temp_res = ADC_Read(0) ; USART_Write(temp_res); } while (1);

Ejercicio n 1 (flujograma)
P ra c t ic a 0 1 -D e fin ir va ria b le s -P a --> E n t ra d a -P b --> S a lid a

L e e r P u e rt o A (R a 0 )

No

P 1 (R a 0 ) e s t a p u ls a d o ?

Si

A pagar Led L1 (R b 0 )

E nc ender Led L 1 (R b 0 )

Compilar Explorador de cdigo

Ventana de edicin Configuracin del proyecto

Resultado

Proceso de trabajo
Ejecutar el compilador. Crear un proyecto nuevo, o abrir uno existente.
Proyect -> new proyect.

Configurar parmetros del proyecto.


Nombre del proyecto, directorio de trabajo Seleccionar el Microcontrolador. Elegir la frecuencia de trabajo del mismo. Activar bits de configuracin.
Solo activar WDT_OFF.

Escribir el cdigo fuente. Construir el proyecto (build) y comprobar que esta libre de errores.
En el subdir de trabajo se generan 4 nuevos ficheros: *.asm, *.lst, *.mcl y *.hex

El fichero *.hex generado es el ejecutable que emplearemos para simular en proteus, y posteriormente grabarlo en el microcontrolador.

Comandos entrada/salida (I)


TRISx Donde x = A, B, C D E

-Define un puerto o un pin como entrada o salida. -Un 1 define el pin como entrada y un 0 como salida. - Ejemplo: TRISA = 0xFF; TRISB = 129; TRISE = % 11110001;

PORTx

Donde x = A, B, C D E

-Asigna un valor a un puerto. -Ejemplo: PORTB = %10000111; PORTA = 0xF8; PORTC = ~PORTB

PORTx.Fy

Donde x = A, B, C D E e y = 0..7

-Asigna un valor binario a un pin. -Ejemplo: PORTB.F2 =1; PORTA.F0 =0;

Comandos entrada/salida (II) var = PORTx


-Lee el puerto x y lo asigna a var -Ejemplo: temp = PORTB - temp sera de tipo byte.

Var = PORTx.Fy
-Lee el pin y del puerto x y lo asigna a var. -Ejemplo: temp = PORTA.F2;

Ejercicio 1
void main(){ TRISB = 0; TRISD = 0; PORTB = 0; PORTD = 0; do { PORTB = 0xFF; PORTD = 0; delay_ms(1000); PORTB = 0; PORTD = 0xFF; delay_ms(1000); } while(1); } // inicializamos el puerto B y el D como salida. // 0 --> Salida, 1 --> entrada

// equivale a 255 todo el puerto a 1


// Sera correcto PORTB = 255; PORTB = % 11111111;

// Retardo de 1 seg.

PIC 16F88

PIC 16F88
Microcontrolador Pic 16F88 Clock Frecuencia tpica Frecuencia mxima Memoria Flash (programa) de 14 bits Memoria Memoria RAM Memoria EEPROM Temporizadores Comparadores Perifricos PWM hasta 10 bits Convertidores A/D 10 bits Comunicacin serie SPI Oscilador interno de 32 Khz a 8 MHZ Fuentes de interrupcin Patillas de E/S Caractersticas Rango de tensin Encapsulados 2.05.5 V 18 pin DIP, SOIC, 20 pin SSOP 4 Mhz 20 Mhz 4096 384 256 Tmr0, Tmr1, Tmr2 2 1 7 USART Si 10 16

Anda mungkin juga menyukai