You are on page 1of 85

Introduo a Linguagem C para PICmicro Programao de PIC em C CCS

9/12/2003 Slide 1

Introduo a Linguagem C para PICmicro Programao de PIC em C CCS

9/12/2003 Slide 2

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 3

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 4

Praticidade de Programao em C
G G G G G

G G G G

Programao estruturada Programao com o uso de Bibliotecas Possibilidade de inserir cdigo em Assembly Implementao de rotinas de delay (atraso) Criao de expresses matemticas com variveis de 8,16,32 bits e ponto flutuante Criao de rotinas de interrupo Seleo de Banco de RAM Seleo de Pgina de memria de Programa Configurao dos Perifricos

9/12/2003 Slide 5

Exemplo de estrutura de programa em C

9/12/2003 Slide 6

Exemplo de estrutura de programa em C

9/12/2003 Slide 7

Exemplo de estrutura de programa em C

9/12/2003 Slide 8

Exemplo de estrutura de programa em C

9/12/2003 Slide 9

Exemplo de estrutura de programa em C

9/12/2003 Slide 10

Exemplo de cdigo ASM em um programa em C

9/12/2003 Slide 11

Exemplo de cdigo ASM em um programa em C

9/12/2003 Slide 12

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 13

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 14

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 15

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 16

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 17

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 18

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 19

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 20

Uso do Compilador da CCS no MPLAB

9/12/2003 Slide 21

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 22

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 23

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 24

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 25

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 26

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 27

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 28

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 29

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 30

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 31

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 32

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 33

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 34

Uso do Compilador com o Editor da CCS

9/12/2003 Slide 35

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 36

Comandos da Linguagem C
Comando: if (expr) {bloco de comandos;} else {bloco de comandos;} switch (expr) { case cexpr: stmt; default:stmt; } Exemplo if (x==25) x=1; else x=x+1; switch (cmd) { case 0:printf("cmd 0"); break; case 1:printf("cmd 1"); break; default:printf("badcmd" );}
Slide 37

9/12/2003

Comandos da Linguagem C
while (expr) stmt; While{ (get_rtcc()!=0) putc('n'); } do { putc(c=getc()); } while (c!=0); for (i=1;i<=10;++i){ printf("%u\r\n",i); } #byte portb = 0x06 loop: portb = portb ^ 0x01 goto loop;
Slide 38

Do{ stmt }while (expr); for(exp1;exp2;exp3) stmt; goto label;

9/12/2003

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 39

Funes do Compilador padro ANSI


G

Funes Matemticas abs() Retorna o valor absoluto de um sinal. exp() Retorna o valor de ex (e = 2,718282). floor() Retorna o menor nmero inteiro que menor que o valor especificado. ceil() Retorna o menor nmero inteiro que maior que o valor especificado. labs() Retorna o valor absoluto de um nmero inteiro. modf() Retorna a parte inteira e a parte fracionria de um nmero fracionrio. fmod() Retorna o resto da diviso de dois nmeros fracionrios.

9/12/2003 Slide 40

Funes do Compilador padro ANSI


G

Funes Matemticas fabs() Retorna o valor absoluto de um nmero fracionrio (ponto flutuante). log() Calcula o Ln (logaritmo natural) do nmero especificado. log10() Calcula o valor do logaritmo de base 10 do nmero especificado. frexp() Decompe o nmero em uma mantissa na faixa de 0.5 a 1 e um expoente inteiro tal que o nmero ser igual mantissa * 2 exp. ldexp() Multiplica um valor por 2 exp. sqrt() Retorna a Raiz quadrada do valor especificado.

9/12/2003 Slide 41

Funes do Compilador padro ANSI


G

Funes Matemticas cos() Retorna o valor do coseno. acos() Retorna o valor do arco coseno. cosh() Retorna o valor do coseno hiperblico. sin() Retorna o valor do seno. asin() Retorna o valor do arco seno. sinh() Retorna o valor do seno hiperblico. tan() Retorna o valor da tangente. tanh() Retorna o valor da tangente hiperblica atan() Retorna o arco tangente.

9/12/2003 Slide 42

Funes do Compilador padro ANSI


G

Funes de Manipulao de Caracteres atol(), atoL(), atol32(), atof() Converte uma string em um valor inteiro de 8, 16 ou 32 bits, ou em um float. tolower() Converte um caractere no seu correspondente minsculo. toupper() Converte um caractere no seu correspondente maisculo. isalnum() Verifica se o caractere uma letra ou nmero. isalpha() Verifica se o caractere uma letra. isdigit() Verifica se o caractere um nmero. islower() Verifica se o caractere uma letra minscula. isupper() Verifica se o caractere uma letra maiscula.
Slide 43

9/12/2003

Funes do Compilador padro ANSI


G

Funes de Manipulao de Caracteres isspace() Verifica se o caractere um espao. isxdigit() Verifica se o caractere um digito hexadecimal. iscntrl() Verifica se um caractere de controle. isgraph() Verifica se um caractere grfico. isprint() Verifica se um caractere pode ser impresso. ispunct() Verifica se o caractere diferente de letra ou nmero. ismoung() Verifica se o caractere est contido em uma string. strlen() Retorna a quantidade de caractere em uma string.

9/12/2003 Slide 44

Funes do Compilador padro ANSI


G

Funes de Manipulao de Caracteres strcpy() Copia o contedo de uma string para outra. strncpy() Copia um determinado nmero de caractere de uma string para outra. strcmp(), strncmp(), stricmp() Compara duas strings e retorna: maior, menor ou igual. strcat() Concatena uma string dentro de outra. strstr() Localiza uma string dentro de outra. strchr(), strrchr() localiza um caractere em uma string. strtok() Retorna um ponteiro para a prxima ocorrncia de uma palavra em um string.

9/12/2003 Slide 45

Funes do Compilador padro ANSI


G

Funes de Manipulao de Caracteres strspn(), strcspn() Conta o nmero de caracteres presentes em uma string e que aparecem tambm em outra. strpbrk() Localiza um caractere de uma string em outra string. strlwr() Converte os caracteres de uma string em minsculo. sprintf() Imprime uma string ou constante de caracteres em outra string.

9/12/2003 Slide 46

Funes do Compilador padro ANSI


G

Operadores + Soma. Subtrao. * Multiplicao. / Diviso. % Resto da diviso = Atribuio & Operao AND bit a bit | Operao IOR bit a bit ^ Operao XOR bit a bit ! Operao NEGATION bit a bit
Slide 47

9/12/2003

Funes do Compilador padro ANSI


G

Operadores << Rotao a esquerda >> Rotao a direita ++ Incremento -Decremento == Igual != Diferente > Maior < Menor >= Maior ou igual <= Menor ou igual
Slide 48

9/12/2003

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 49

Funes Especiais para o Microcontrolador


G

Funes para RS232 I/O getc(), getch(), getchar(), gets() fgetc(), fgets(), get_string() putc(), putchar(), puts() fputc(), fputs() printf(), fprintf() kbhit(), set_uart_speed() perror(), assert(),

9/12/2003 Slide 50

Funes Especiais para o Microcontrolador


G

Funes para I2C I/O i2c_start() i2c_stop() i2c_read() I2c_write() I2c_poll()

9/12/2003 Slide 51

Funes Especiais para o Microcontrolador


G

Funes para SPI I/O setup_spi() spi_read() spi_write() spi_data_is_in()

9/12/2003 Slide 52

Funes Especiais para o Microcontrolador


G

Funes para manipulao de Memria memset() memcpy() offsetof() offsetofbit()

9/12/2003 Slide 53

Funes Especiais para o Microcontrolador


G

Funes para Delay (atraso) Delay_cycles() Delay_us() Delay_ms()

9/12/2003 Slide 54

Funes Especiais para o Microcontrolador


G

Funes para manipulao de bit e byte shift_right(), shift_left() rotate_right(), rotate_left() bit_clear(), bit_set(), bit_test() swap() make8(), make16(), make32()

9/12/2003 Slide 55

Funes Especiais para o Microcontrolador


G

Funes para manipulao de I/O (Entrada e Sada) output_low(), output_high(), output_float(), output_bit() output_a(), output_b(), output_c(), output_d(), output_e() input() input_a(), input_b(), input_c(), input_d(), input_e() port_b_pullups() set_tris_a(), set_tris_b(), set_tris_c(), set_tris_d(), set_tris_e()

9/12/2003 Slide 56

Funes Especiais para o Microcontrolador


G

Funes Analgicas setup_comparator() setup_vref() setup_adc() setup_adc_ports() set_adc_channel() read_adc()

9/12/2003 Slide 57

Funes Especiais para o Microcontrolador


G

Funes para manipulao de Timers setup_timer_0(), setup_rtcc(), setup_counter() setup_timer_1(), setup_timer_2(), setup_timer_3() set_rtcc(), set_timer_0(), set_timer_1(), set_timer_2(), set_timer_3() get_rtcc(), get_timer0(), get_timer1(), get_timer2(), get_timer3() setup_wdt(), restart_wdt()

9/12/2003 Slide 58

Funes Especiais para o Microcontrolador


G

Funes para o mdulo CCP setup_ccp1(), setup_ccp2() set_pwm1_duty(), set_pwm2_duty()

9/12/2003 Slide 59

Funes Especiais para o Microcontrolador


G

Funes para manipulao da memria EEPROM e FLASH read_eeprom() write_eeprom() read_program_eeprom() write_program_eeprom() read_calibration()

9/12/2003 Slide 60

Funes Especiais para o Microcontrolador


G

Funes para controle do processador sleep() reset_cpu(), restart_cause() enable_interrupts(), disable_interrupts() ext_int_edge() read_bank(), write_bank() label_address(), goto_address()

9/12/2003 Slide 61

SLIDE PRMIO
Envie Um E-mail
Para Microchip@artimar.com.br com o seguinte assunto:

200 Premio Seminario Microchip 2003


Inclua o Nome do Participante e Endereo para envio.
Os Primeiros

5 participantes que enviarem

o e-mail acima recebero

1 Brinde Microchip
* Promoo Vlida por Tempo Lim itado e Somente 1 Brinde por Participante do Seminrio
9/12/2003 Slide 62

Funes Especiais para o Microcontrolador


G

Funes para manipulao da PSP setup_psp() psp_input_full() psp_output_full() psp_overflow()

9/12/2003 Slide 63

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 64

Migrao de programas em C para outros modelo de PIC

9/12/2003 Slide 65

Migrao de programas em C para outros modelo de PIC

9/12/2003 Slide 66

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 67

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para EEPROM 2401.c 2402.c 2404.c 2408.c 24128.c 2416.c 24256.c 2432.c 2465.c

9/12/2003 Slide 68

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para EEPROM 25160.c 25320.c 25640.c 25C080.c 9346.c 9356.c 9356SPI.c 9366.c AT25256.c

9/12/2003 Slide 69

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para EEPROM AT29C1024.c CE51X.c CE62X.c CE67X.c

9/12/2003 Slide 70

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para RAM Serial 68HC68R1.c 68HC68R2.c

9/12/2003 Slide 71

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para expanso de I/O 74165.c 74595.c

9/12/2003 Slide 72

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para conversor Analgico Digital AD7705.c AD7715.c AD8320.c AD8400.c

9/12/2003 Slide 73

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes para comunicao serial CRC.c Input.c Loader.c PIC_USB.h S7600.h SC28l19X.c Smtp.h USB.h USB.c

9/12/2003 Slide 74

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes Sensores de temperatura DS1302.c DS1621.c DS1621M.c DS1631.c DS1624.c

9/12/2003 Slide 75

Biblioteca de funes da CCS (Drivers)


G

Biblioteca de Funes teclado e lcd KDB.c LCD.c

9/12/2003 Slide 76

Agenda
Praticidade de Programao em C Uso do compilador no MPLAB e editor da CCS Comandos da Linguagem C Funes do Compilador padro ANSI As funes especiais para o microcontrolador PIC A migrao do programa desenvolvido em C para outro modelo de PIC Biblioteca de funes da CCS Simulao e Depurao de programas

9/12/2003 Slide 77

Simulao e Depurao de Programas

9/12/2003 Slide 78

Simulao e Depurao de Programas

9/12/2003 Slide 79

Simulao e Depurao de Programas

9/12/2003 Slide 80

Simulao e Depurao de Programas

9/12/2003 Slide 81

Simulao e Depurao de Programas

9/12/2003 Slide 82

Simulao e Depurao de Programas

9/12/2003 Slide 83

Simulao e Depurao de Programas

9/12/2003 Slide 84

Fim

A Equipe Microchip Brasil Agradece a Sua Presena!

9/12/2003 Slide 85

You might also like