Sunteți pe pagina 1din 64

MikroC

Cuando abrimos el compilador

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Ejemplo por defecto

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Cerramos el proyecto defecto

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Nuevo proyecto

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Opciones del Nuevo Proyecto

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Palabra de Configuracin
P16f877

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

En caso de querer modificar la configuracin despus

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Listos para Programar

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

Apariencia

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

10

Al gusto: MikroDream, MrGreen o Zedar

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

11

Ambiente

EN LA NUEVA VERSIN LAS HHERAMIENTAS SE SELECCIONAN DESDE MEN VIEW


05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 12

Comentarios

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

13

Code explorer

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

14

Ventana de error

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

15

Depurador

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

16

Atajos
Si al escribir queremos completar una palabra automticamente oprimimos: y al seleccionar nuestra opcin damos enter. Por ejemplo:

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

17

Herramientas

En la nueva V, para

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

18

En la nueva versin se debe empezar la depuracin con F9 para hacer uso de estas herramientas

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

19

Herramientas

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

20

Compilacin
Una vez creado el proyecto y escrito el cdigo se puedo compilar con: Ctrl + F9 Run Compile

Archivos que arroja MikroC Si quieres ver el cdigo en ensamblador puedes usar Project View Assembly o el cono
05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 21

Algunas Libreras
ctype math stdlib string

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

22

Variables

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

23

Ejemplo de Variables

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

24

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

25

Operadores

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

26

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

27

Sentencias de Control

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

28

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

29

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

30

Continue y breake

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

31

Mezclando con ensamblador

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

32

Manejo de Puertos

PORTB.F0 = 0;

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

33

Ejemplo

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

34

Ejemplo
Contador continuo que saca su valor por el puerto B

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

35

Ejercicios Rpidos
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 Que cree un arreglo de 10 elementos tipo char, que solicite que el usuario lo llene a travs 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 ms grande por lo leds que se encuentran conectados al puerto C.

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

36

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 Gutirrez Begovich

37

Funciones

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

38

Escriba una fn que pida valores en centmetros de hasta 8 bits por el puerto C y calcule el rea de un crculo, y otra para el volumen de un cilindro.

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

39

Funciones tiles

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

40

Interrupciones
Las interrupciones se manejan como una funcin y debe ser declarada y escrita por el programador con el nombre interrupt(). Los registros especiales importantes (STATUS, PCLATH Y W) son salvados automticamente por MikroC.

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

41

Teclado
void Keypad_Init(unsigned *port); unsigned short Keypad_Read(void); Keypad_Init(&PORTB); kp = Keypad_Read();

Consulta sin una tecla fue oprimida. La funcin regresa un valor entre 1 y 16 unsigned short Keypad_Released(void); kp = Keypad_Released();

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

Se recomienda el uso de interrupciones con el teclado


05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 42

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

43

USART (Trabaja asncorno)


void Usart_Init(const unsigned long baud_rate); unsigned short Usart_Data_Ready(void); Consulta si el buffer de lectura est listo para ser ledo 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); /* Enva chunk por USART */
05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 44

Usart_Init(9600);

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez 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 medicin del canal indicado en el parmetro. Previo a usar esta funcin se deben configurar TRISA y TRISE como entrada en los canales analgicos que se quieran usar, tambin se deben seleccionar mediante ADCON1 los pines que sern analgicos y los que sern digtales as como Vref+ y veref-. unsigned tmp; ... tmp = Adc_Read(1);
05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 46

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

47

EEPROM
unsigned short Eeprom_Read(unsigned int address); unsigned short take; ... take = Eeprom_Read(0x3F); void Eeprom_Write(unsigned int address, unsigned short data); Eeprom_Write(0x32, 19); Se sugiere dejar pasar 20ms entre escrituras.

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

48

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

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

49

Sound
void Sound_Init(unsigned *snd_port, unsigned snd_pin); Sound_Init(&PORTB, 2); void Sound_Play(unsigned freq_in_hz, unsigned duration_ms); Sound_Play(1000, 100);

Freq_max = Fosc/(80*3) Freq_min = Fosc/(80*255).

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

50

LCD

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

51

LCD 4 bits personalizado


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

Nota: MikroC configura el pin RW como salida y sacando 0, por lo que si se quiere utilizar para otra aplicacin se debe reconfigurar despues de usar la funcin de inicializacin

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

52

Lcd_Custom_Out Imprime en el LCD, se le debe indicar el rengln, la columna y el texto a imprimir void Lcd_Custom_Out(char row, char col, char *text); Ejemplo: Lcd_Custom_Out(1, 3, Arquitectura");

Lcd_Custom_Out_Cp

Imprime en el LCD, en la posicin actual del cursor void Lcd_Custom_Out_Cp(char *text); Ejemplo: Lcd_Custom_Out_Cp(Arquitectura");
05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 53

Lcd_Custom_Chr Imprime un carcter en el regln y columna indicados void Lcd_Custom_Chr(char row, char col, char character); Ejemplo: Lcd_Custom_Chr(2, 3, A');

Lcd_Custom_Chr_Cp

Imprime un carcter en La posicin actual del cursor void Lcd_Custom_Chr_Cp(char character); Ejemplo:
05/03/2012

Lcd_Custom_Chr_Cp(A');
Compilador MikroC. Prof. David Arturo Gutirrez Begovich 54

Lcd_Custom_Cmd Enva un comando al LCD

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

Limpia la pantalla

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

55

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

56

LCD de 4 bits automtico


Lcd_Init Inicializa en el puerto especificado al LCD void Lcd_Init(unsigned short *port); Ejemplo: Lcd_Init(&PORTB);

Nota: todas las funciones anteriores funcionan igual que las personalizadas, a diferencia de que trabajan con el puerto indicado, se declaran igual slo que sin la palabra custom
Lcd_Out(1, 3, Arquitectura"); Lcd_Custom_Out(1, 3, Arquitectura");
05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 57

LCD a 8 bits
Lcd8_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, unsigned short D1, unsigned short D0); Ejemplo: Lcd8_Config(&PORTC,&PORTD,0,1,2,6,5,4,3,7,1,2,0);

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

58

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 Gutirrez Begovich

59

Lcd8_Out(1, 3, Arquitectura"); Lcd8_Out_Cp(Arquitectura"); Lcd8_Chr(2, 3, A'); Lcd8_Chr_Cp(A');

Lcd8_Cmd(Lcd_Clear);

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

60

Diagrama a 4 bits

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

61

Diagrama a 8 bits

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

62

Posible solucin para ahorrar memoria RAM


Escribir los mensajes en FLASH a 16 caracteres const char *msg1=Arquitectura de "; const char *msg2= Computadoras "; Escribir una rutina que transfiera las cadenas de Flash a un arreglo en RAM // --- Copia constantes de FLASH a la RAM void strConstCpy(char *dest, const char *source) { while(*source) *dest++ = *source++ ; *dest = 0 ; }
05/03/2012 Compilador MikroC. Prof. David Arturo Gutirrez Begovich 63

Utilizar la funcin anterior antes de mandar textos por LCD unsigned char texto[16]; // --- inicilizacin del LCD Lcd8_Config(&PORTC,&PORTB,7,6,5,7,6,5,4,3,2,1,0); strConstCpy(texto,msg1); //MENSAJE: Arquitectura de Lcd8_Out(1, 1,texto); strConstCpy(texto,msg2); //MENSAJE: Computadoras Lcd8_Out(2, 1,texto); delay_ms(2500); Lcd8_Cmd(Lcd_Clear);

05/03/2012

Compilador MikroC. Prof. David Arturo Gutirrez Begovich

64

S-ar putea să vă placă și