presentación mikro c

Post on 22-Oct-2014

107 Views

Category:

Documents

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MikroC

Cuando abrimos el compilador

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

2

Ejemplo por defecto

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

3

Cerramos el proyecto defecto

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

4

Nuevo proyecto

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

5

Opciones del Nuevo Proyecto

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

6

Palabra de ConfiguraciónP16f877

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

7

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

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

8

Listos para Programar

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

9

Apariencia

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

10

Al gusto: MikroDream, MrGreen o Zedar

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

11

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

Comentarios

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

13

Code explorer

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

14

Ventana de error

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

15

Depurador

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

16

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:

Herramientas

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

18

En la nueva V, para

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

Herramientas

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

20

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

Algunas Librerías

ctype math stdlib string

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

22

Variables

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

23

Ejemplo de Variables

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

24

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

25

Operadores

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

26

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

27

Sentencias de Control

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

28

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

29

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

30

Continue y breake

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

31

Mezclando con ensamblador

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

32

Manejo de Puertos

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

33

PORTB.F0 = 0;

Ejemplo

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

34

Ejemplo

Contador continuo que saca su valor por el puerto B

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

35

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.

� 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

Funciones

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

38

� 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

Funciones útiles

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

40

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

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

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

43

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 */

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

45

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);

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

47

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.

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);

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).

LCD

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

51

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

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");

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');

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

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

56

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");

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);

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);

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);

Diagrama a 4 bits

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

61

Diagrama a 8 bits

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

62

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 ;}

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);

top related