Sei sulla pagina 1di 5

31/08/2011

Caractersticas del Microcontrolador PIC18F4550

Programacin en lenguaje C para Microcontroladores PIC18FXXXX


Ing. Germn Jess Pereira Muoz

20/08/10

Ing. Germn Jess Pereira Muoz

20/08/10

Ing. Germn Jess Pereira Muoz

Caractersticas (2)
Arquitectura RISC avanzada Harvard: 16- bit con 8- bit de datos.

77 instrucciones Desde 18 a 80 pines Hasta 64K bytes de programa (hasta 2 Mbytes en ROMless) Multiplicador Hardware 8x8 Hasta 3968 bytes de RAM y 1KBytes de EEPROM Frecuencia mxima de reloj 40Mhz. Hasta 10 MIPS. Pila de 32 niveles. Mltiples fuentes de interrupcin Perifricos de comunicacin avanzados (CAN y USB)

Puertos de entrada y salida

PORTA ( RA6, RA5, RA4, RA3, RA2, RA1, RA0 ) PORTB ( RB7, RB6, RB5, RB4, RB3, RB2, RB1, RB0 ) PORTC ( RC6, RC5, RC4, RC3, RC2, RC1, RC0 ) PORTD ( RD7, RD6, RD5, RD4, RD3, RD2, RD1, RD0 ) PORTE ( RA3, RA2, RA1, RA0 )

20/08/10

Ing. Germn Jess Pereira Muoz

20/08/10

Ing. Germn Jess Pereira Muoz

Arquitectura interna

Terminales fsicas modelos de 40 pines

20/08/10

Ing. Germn Jess Pereira Muoz

20/08/10

Ing. Germn Jess Pereira Muoz

31/08/2011

Terminales fsicas de modelos de 28 pines

Tipos de datos
Tipo
(unsigned) char usigned char (signed) short (int) unsigned short (int) (signed) int unsigned (int) (signed) long (int) unsigned long (int)

bytes
1 1 1 1 2 2 4 4

Rango
0 .. 255 - 128 .. 127 - 128 .. 127 0 .. 255 -32768 .. 32767 0 .. 65535 -2147483648 .. 2147483647 0 .. 4294967295

20/08/10

Ing. Germn Jess Pereira Muoz

20/08/10

Ing. Germn Jess Pereira Muoz

Tipos de datos 2
Tipo
float 4

Asignacin de datos
Rango
Decimal
int i = 10; /* decimal 10 */ int j = -10; /* decimal -10 */ int p = 0; /* decimal 0 */

bytes

1.17549435082 x 10-38 .. 6.80564774407 x 1038

double

1.17549435082 x 10-38 .. 6.80564774407 x 1038

Hexadecimal
short x = 0x37; short y = 0x7F; int z = 0x125; /* decimal 55 */ /* decimal 127 */ /* decimal 293 */

long double 4

1.17549435082 x 10-38 .. 6.80564774407 x 1038

20/08/10

Ing. Germn Jess Pereira Muoz

20/08/10

Ing. Germn Jess Pereira Muoz

10

Asignacin de datos
Octal
int m = 023; short n = 016; /* 19 */ /* 14 */

Registros asociados
Entrada/salida PORTA PORTB PORTC PORTD Configuracin TRISA TRISB TRISC TRISD TRISE
Ing. Germn Jess Pereira Muoz 12

Binario
char dato = 0b00001111; short dat = 0b10101010; unsigned char sig = 0b11001100;

ASCII
char dat = a; char m = 5;
20/08/10 Ing. Germn Jess Pereira Muoz 11 20/08/10

PORTE

31/08/2011

Entrada o salida
SALIDA DE DATOS : 0 ENTRADA DE DATOS: 1 La asignacin es individual correspondiente a cada terminal del puerto.

Acceso individual de bits 1


MikroC te permite acceso individual en variables de 8 bits (char y unsigned short). Simplemente usando el selector (.) seguido de uno de los identificadores F0, F1, , F7. Siendo F7 el bit mas significativo. Ejemplo: PORTC.F0 = 1; PORTD.F5 = 0; PORTB.F7 = 1; Los identificadores F0F7 no se reconocen en minsculas. NOTA: Entre dos accesos a bits se debe tener un retardo mnimo de 2 microsegundos.

20/08/10

Ing. Germn Jess Pereira Muoz

13

20/08/10

Ing. Germn Jess Pereira Muoz

14

Entrada o salida
Si deseamos configurar el puerto C con la siguiente asignacin:
RC0 entrada RC1 entrada RC2 entrada RC3 entrada RC4 salida RC5 salida RC6 salida RC7 salida

Entrada o salida
Si deseamos configurar el puerto D con la siguiente asignacin:
RD0 entrada RD1 salida RD2 entrada RD3 salida RD4 entrada RD5 salida RD6 entrada RD7 salida Debemos utilizar cualquiera de las siguientes instrucciones

Posibles instrucciones a utilizar

TRISC = 0b00001111; o TRISC = 0x0F; o TRISC = 15;


Ing. Germn Jess Pereira Muoz 15

TRISD = 0b01010101; TRISD = 0x55; TRISD = 85;


20/08/10

o o

20/08/10

Ing. Germn Jess Pereira Muoz

16

Entrada o salida
Si deseamos configurar el puerto A con la siguiente asignacin:
RA0 RA1 RA2 RA3 RA4 RA5 RA6

Delay_ms (retardo por software)


Descripcin: Crea un retardo por software dado el tiempo en
milisegundos (constante). El rango de constantes aplicables a la funcin depende de la frecuencia del oscilador. Es una funcin interna; El cdigo es generado en el lugar donde se hace la llamada, as que la llamada de esta funcin no cuenta dentro del limite de llamadas anidadas.

salida salida salida salida entrada entrada entrada

void Delay_ms(const time_in_ms) Ejemplo:


Generar un retardo de 1 segundo

Posibles instrucciones a utilizar

ADCON1 = 6; //instruccin indispensable para usar el puerto A y el puerto E como entrada o salida de datos digitales TRISA = 0b01110000; o TRISA = 0x70; o TRISA = 112;
20/08/10 Ing. Germn Jess Pereira Muoz 17 20/08/10

Delay_ms(1000);

/* Pausa de un segundo */

Ing. Germn Jess Pereira Muoz

18

31/08/2011

Estructura de un programa en C ( ciclo while


// Definicin de variables globales // Definicin de funciones void main(void) { // Definicin de variables locales

Estructura de un programa en C( ciclo for )


// Definicin de variables globales // Definicin de funciones void main(void) { // Definicin de variables locales // Configuracin de registros (recursos y puertos) // ciclo infinito for ( ; ; )

// Configuracin de registros (recursos y puertos) // ciclo infinito while ( 1 ) { // Programa de usuario } }

{ } }

// Programa de usuario

20/08/10

Ing. Germn Jess Pereira Muoz

19

20/08/10

Ing. Germn Jess Pereira Muoz

20

Estructura de un programa en C ( ciclo do - while )


// Definicin de variables globales // Definicin de funciones void main(void) { // Definicin de variables locales // Configuracin de registros (recursos y puertos) // ciclo infinito do { // Programa de usuario } while ( 1 ) ;

1.- Encendido de LED


Crear un programa que encienda y apague un led, ubicado en la terminal RB7 del puerto B. El tiempo de encendido es de 1000 milisegundo y el de apagado de 300 milisegundos.

20/08/10

Ing. Germn Jess Pereira Muoz

21

20/08/10

Ing. Germn Jess Pereira Muoz

22

Encendido de LED (algoritmo)


1. Configurar el bit 7 del puerto B como salida de datos 2. Encendido del led 3. Retardo por software de 1000 milisegundos. 4. Apagado del led 5. Retardo por software de 300 milisegundos 6. Repetir el paso 2

Encendido de LED (diagrama de flujo)


Led Configura bit del puerto como salida Apaga bit

Enciende bit

Retardo de 300 ms

Retardo de 1000ms

20/08/10

Ing. Germn Jess Pereira Muoz

23

20/08/10

Ing. Germn Jess Pereira Muoz

24

31/08/2011

Programa Encendido LED Encendido de LED (programa 1A)

20/08/10

Ing. Germn Jess Pereira Muoz

25

20/08/10

Ing. Germn Jess Pereira Muoz

26

Encendido de LED (

programa 1B

Salida (

programa 1

20/08/10

Ing. Germn Jess Pereira Muoz

27

20/08/10

Ing. Germn Jess Pereira Muoz

28

Programa Ejemplo 2 PIC18F4550

Programa Ejemplo PIC18F4550

20/08/10

Ing. Germn Jess Pereira Muoz

29

20/08/10

Ing. Germn Jess Pereira Muoz

30

Potrebbero piacerti anche