presentación mikro c

64
MikroC

Upload: xvr-glez

Post on 22-Oct-2014

107 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: presentación Mikro C

MikroC

Page 2: presentación Mikro C

Cuando abrimos el compilador

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

2

Page 3: presentación Mikro C

Ejemplo por defecto

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

3

Page 4: presentación Mikro C

Cerramos el proyecto defecto

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

4

Page 5: presentación Mikro C

Nuevo proyecto

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

5

Page 6: presentación Mikro C

Opciones del Nuevo Proyecto

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

6

Page 7: presentación Mikro C

Palabra de ConfiguraciónP16f877

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

7

Page 8: presentación Mikro C

En caso de querer modificar la configuración después

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

8

Page 9: presentación Mikro C

Listos para Programar

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

9

Page 10: presentación Mikro C

Apariencia

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

10

Page 11: presentación Mikro C

Al gusto: MikroDream, MrGreen o Zedar

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

11

Page 12: presentación Mikro C

Ambiente

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

12

EN LA NUEVA VERSIÓN LAS HHERAMIENTAS SE SELECCIONAN DESDE MENÚ VIEW

Page 13: presentación Mikro C

Comentarios

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

13

Page 14: presentación Mikro C

Code explorer

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

14

Page 15: presentación Mikro C

Ventana de error

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

15

Page 16: presentación Mikro C

Depurador

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

16

Page 17: presentación Mikro C

Atajos

Si al escribir queremos completar una palabra automáticamente oprimimos: y al seleccionar nuestra opción damos enter.

Por ejemplo:

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

17

Por ejemplo:

Page 18: presentación Mikro C

Herramientas

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

18

En la nueva V, para

Page 19: presentación Mikro C

En la nueva versión se debe empezar la depuración con F9 para hacer uso de estas herramientas

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

19

Page 20: presentación Mikro C

Herramientas

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

20

Page 21: presentación Mikro C

Compilación

Una vez creado el proyecto y escrito el código se puedo compilar con:

Ctrl + F9

Run › Compile

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

21

Archivos que arroja MikroC

Si quieres ver el código en ensamblador puedes usar Project › View Assembly o el ícono

Page 22: presentación Mikro C

Algunas Librerías

ctype math stdlib string

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

22

Page 23: presentación Mikro C

Variables

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

23

Page 24: presentación Mikro C

Ejemplo de Variables

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

24

Page 25: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

25

Page 26: presentación Mikro C

Operadores

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

26

Page 27: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

27

Page 28: presentación Mikro C

Sentencias de Control

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

28

Page 29: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

29

Page 30: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

30

Page 31: presentación Mikro C

Continue y breake

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

31

Page 32: presentación Mikro C

Mezclando con ensamblador

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

32

Page 33: presentación Mikro C

Manejo de Puertos

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

33

PORTB.F0 = 0;

Page 34: presentación Mikro C

Ejemplo

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

34

Page 35: presentación Mikro C

Ejemplo

Contador continuo que saca su valor por el puerto B

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

35

Page 36: presentación Mikro C

Ejercicios Rápidos

� Un programa que ponga 0x00 1s luego 0xFF 1s y repita esa tarea 25 veces

� Un programa que calcule el volumen de un cilindro con radio 2.5cm y altura de 10cm

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

36

altura de 10cm

� Que cree un arreglo de 10 elementos tipo char, que solicite que el usuario lo llene a través de un dip sw conectado al puerto D, el valor entrará cada que oprima un push que se encuentra en el Puerto B.0. Al llenar el arreglo, el programa debe desplegar en binario el valor del elemento más grande por lo leds que se encuentran conectados al puerto C.

Page 37: presentación Mikro C

� Del arreglo anterior, que multiplique por 5 cada elemento del arreglo.

� Calcula el valor de z al final de cada bucle

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

37

Page 38: presentación Mikro C

Funciones

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

38

Page 39: presentación Mikro C

� Escriba una fn que pida valores en centímetros de hasta 8 bits por el puerto C y calcule el Área de un círculo, y otra para el volumen de un cilindro.

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

39

Page 40: presentación Mikro C

Funciones útiles

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

40

Page 41: presentación Mikro C

Interrupciones

Las interrupciones se manejan como una función y debe ser declarada y escrita por el programador con el nombre interrupt(). Los registros especiales importantes (STATUS, PCLATH Y W) son salvados automáticamente por MikroC.

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

41

Page 42: presentación Mikro C

Teclado

void Keypad_Init(unsigned *port); Keypad_Init(&PORTB);

unsigned short Keypad_Read(void); kp = Keypad_Read();

Consulta sin una tecla fue oprimida. La función regresa un valor entre 1 y 16

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

42

unsigned short Keypad_Released(void); kp = Keypad_Released();

Llama a la funcióan Keypad_Read, pero no regresa ni realiza otra tarea hasta que se oprima una tecla, La función regresa un valor entre 1 y 16

Se recomienda el uso de interrupciones con el teclado

Page 43: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

43

Page 44: presentación Mikro C

USART (Trabaja asíncorno)

void Usart_Init(const unsigned long baud_rate); Usart_Init(9600);

Consulta si el buffer de lectura está listo para ser leído

unsigned short Usart_Data_Ready(void);

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

44

unsigned short Usart_Read(void);int receive; ... if (Usart_Data_Ready()) receive = Usart_Read();

void Usart_Write(unsigned short data);

int chunk = 0x1E; Usart_Write(chunk); /* Envía chunk por USART */

Page 45: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

45

Page 46: presentación Mikro C

ADC

unsigned Adc_Read(unsigned short channel); Inicializa el ADC utilizando el RC interno, ajusta el resultado a la derecha y hace la medición del canal indicado en el parámetro.

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

46

Previo a usar esta función se deben configurar TRISA y TRISE como entrada en los canales analógicos que se quieran usar, también se deben seleccionar mediante ADCON1 los pines que serán analógicos y los que serán digítales así como Vref+ y veref-.

unsigned tmp;

...

tmp = Adc_Read(1);

Page 47: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

47

Page 48: presentación Mikro C

EEPROMunsigned short Eeprom_Read(unsigned int address);

unsigned short take;

...

take = Eeprom_Read(0x3F);

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

48

void Eeprom_Write(unsigned int address, unsigned short data);

Eeprom_Write(0x32, 19);

Se sugiere dejar pasar 20ms entre escrituras.

Page 49: presentación Mikro C

FLASH

unsigned Flash_Read(unsigned address);

unsigned tmp;...tmp = Flash_Read(0x0D00); ...

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

49

...

void Flash_Write(unsigned address, unsigned int* data); unsigned short A=0xBB; ... Flash_Write(0x1234, &A);

Page 50: presentación Mikro C

Sound

void Sound_Init(unsigned *snd_port, unsigned snd_pin);

Sound_Init(&PORTB, 2);

void Sound_Play(unsigned freq_in_hz, unsigned duration_ms);

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

50

void Sound_Play(unsigned freq_in_hz, unsigned duration_ms);

Sound_Play(1000, 100);

Freq_max = Fosc/(80*3)

Freq_min = Fosc/(80*255).

Page 51: presentación Mikro C

LCD

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

51

Page 52: presentación Mikro C

LCD 4 bits personalizadoLcd_Custom_Config

Inicializa el bus de datos y de control del LCD (asigna los pines)

void Lcd_Custom_Config(char * data_port, char db3, char db2, char db1,char db0, char * ctrl_port, char rs, char ctrl_rw, char enable);

Ejemplo : Lcd_Custom_Config(&PORTD,3,2,1,0,&PORTB,2,3,4);

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

52

Ejemplo : Lcd_Custom_Config(&PORTD,3,2,1,0,&PORTB,2,3,4);

Nota: MikroC configura el pin RW como salida y sacando 0,por lo que si se quiere utilizar para otra aplicación se debereconfigurar despues de usar la función de inicialización

Page 53: presentación Mikro C

Lcd_Custom_Out

Imprime en el LCD, se le debe indicar el renglón, la columna y el texto a imprimir

void Lcd_Custom_Out(char row, char col, char *text);

Ejemplo: Lcd_Custom_Out(1, 3, “Arquitectura");

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

53

Ejemplo: Lcd_Custom_Out(1, 3, “Arquitectura");

Lcd_Custom_Out_Cp

Imprime en el LCD, en la posición actual del cursor

void Lcd_Custom_Out_Cp(char *text);

Ejemplo: Lcd_Custom_Out_Cp(“Arquitectura");

Page 54: presentación Mikro C

Lcd_Custom_Chr

Imprime un carácter en el reglón y columna indicados

void Lcd_Custom_Chr(char row, char col, char character);

Ejemplo: Lcd_Custom_Chr(2, 3, ‘A');

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

54

Lcd_Custom_Chr_Cp

Imprime un carácter en La posición actual del cursor

void Lcd_Custom_Chr_Cp(char character);

Ejemplo: Lcd_Custom_Chr_Cp(‘A');

Page 55: presentación Mikro C

Lcd_Custom_Cmd

Envía un comando al LCD

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

55

void Lcd_Custom_Cmd(char out_char);

Ejemplo : Lcd_Custom_Cmd(Lcd_Clear);

Limpia la pantalla

Page 56: presentación Mikro C

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

56

Page 57: presentación Mikro C

LCD de 4 bits automáticoLcd_Init

Inicializa en el puerto especificado al LCD

void Lcd_Init(unsigned short *port);

Ejemplo: Lcd_Init(&PORTB);

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

57

Ejemplo: Lcd_Init(&PORTB);

Nota: todas las funciones anteriores funcionanigual que las personalizadas, a diferencia de quetrabajan con el puerto indicado, se declaran igualsólo que sin la palabra custom

Lcd_Out(1, 3, “Arquitectura");

Lcd_Custom_Out(1, 3, “Arquitectura");

Page 58: presentación Mikro C

LCD a 8 bitsLcd8_Config

Indica los puerto a utilizar y a qué pines van ase los de control y de datos

void Lcd8_Config(unsigned short *ctrlport, unsigned short *dataport, unsigned short RS, unsigned short EN, unsigned short WR, unsigned short D7, unsigned short D6, unsigned short D5, unsigned short D4, unsigned short D3, unsigned short D2,

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

58

unsigned short D4, unsigned short D3, unsigned short D2, unsigned short D1, unsigned short D0);

Ejemplo: Lcd8_Config(&PORTC,&PORTD,0,1,2,6,5,4,3,7,1,2,0);

Page 59: presentación Mikro C

Lcd8_Init

Inicializa el LCD a 8 bits con los pines por defecto

void Lcd8_Init(unsigned short *portctrl, unsigned short *portdata);

Ejemplo: Lcd8_Init(&PORTB, &PORTC);

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

59

Ejemplo: Lcd8_Init(&PORTB, &PORTC);

Page 60: presentación Mikro C

Lcd8_Out(1, 3, “Arquitectura");

Lcd8_Out_Cp(“Arquitectura");

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

60

Lcd8_Chr(2, 3, ‘A');

Lcd8_Chr_Cp(‘A');

Lcd8_Cmd(Lcd_Clear);

Page 61: presentación Mikro C

Diagrama a 4 bits

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

61

Page 62: presentación Mikro C

Diagrama a 8 bits

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

62

Page 63: presentación Mikro C

Posible solución para ahorrar memoria RAM

Escribir los mensajes en FLASH a 16 caracteres

const char *msg1=“Arquitectura de ";

const char *msg2=“ Computadoras ";

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

63

Escribir una rutina que transfiera las cadenas de Flash a un arreglo en RAM

// --- Copia constantes de FLASH a la RAMvoid strConstCpy(char *dest, const char *source){while(*source)*dest++ = *source++ ;*dest = 0 ;}

Page 64: presentación Mikro C

Utilizar la función anterior antes de mandar textos por LCD

// --- inicilización del LCDLcd8_Config(&PORTC,&PORTB,7,6,5,7,6,5,4,3,2,1,0);

unsigned char texto[16];…

05/03/2012 Compilador MikroC. Prof. David Arturo Gutiérrez Begovich

64

strConstCpy(texto,msg1); //MENSAJE: Arquitectura deLcd8_Out(1, 1,texto);

strConstCpy(texto,msg2); //MENSAJE: ComputadorasLcd8_Out(2, 1,texto);

delay_ms(2500);Lcd8_Cmd(Lcd_Clear);