Presentación Mikro C
Presentación Mikro C
Presentación Mikro C
05/03/2012
05/03/2012
05/03/2012
Nuevo proyecto
05/03/2012
05/03/2012
Palabra de Configuracin
P16f877
05/03/2012
05/03/2012
05/03/2012
Apariencia
05/03/2012
10
05/03/2012
11
Ambiente
Comentarios
05/03/2012
13
Code explorer
05/03/2012
14
Ventana de error
05/03/2012
15
Depurador
05/03/2012
16
Atajos
Si al escribir queremos completar una palabra automticamente oprimimos: y al seleccionar nuestra opcin damos enter. Por ejemplo:
05/03/2012
17
Herramientas
En la nueva V, para
05/03/2012
18
En la nueva versin se debe empezar la depuracin con F9 para hacer uso de estas herramientas
05/03/2012
19
Herramientas
05/03/2012
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
22
Variables
05/03/2012
23
Ejemplo de Variables
05/03/2012
24
05/03/2012
25
Operadores
05/03/2012
26
05/03/2012
27
Sentencias de Control
05/03/2012
28
05/03/2012
29
05/03/2012
30
Continue y breake
05/03/2012
31
05/03/2012
32
Manejo de Puertos
PORTB.F0 = 0;
05/03/2012
33
Ejemplo
05/03/2012
34
Ejemplo
Contador continuo que saca su valor por el puerto B
05/03/2012
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
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
37
Funciones
05/03/2012
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
39
Funciones tiles
05/03/2012
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
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
05/03/2012
43
Usart_Init(9600);
05/03/2012
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
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
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
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);
05/03/2012
50
LCD
05/03/2012
51
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
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
Limpia la pantalla
05/03/2012
55
05/03/2012
56
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
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
59
Lcd8_Cmd(Lcd_Clear);
05/03/2012
60
Diagrama a 4 bits
05/03/2012
61
Diagrama a 8 bits
05/03/2012
62
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
64