Curso de Linguagem C. Rinaldo Câmara Gonçalves Labtools Mosaico Didactic Division Revisão 2

Tamanho: px
Começar a partir da página:

Download "Curso de Linguagem C. Rinaldo Câmara Gonçalves Labtools Mosaico Didactic Division Revisão 2"

Transcrição

1 Curso de Linguagem C Rinaldo Câmara Gonçalves Labtools Mosaico Didactic Division Revisão 2

2

3 Sumário SUMÁRIO...3 RECURSOS BÁSICOS: EXEMPLO 1 BOTÃO E LED...5 RECURSOS DO LIVRO...5 LÓGICA DO EXEMPLO...5 ESQUEMA ELÉTRICO...6 FLUXOGRAMA...7 CÓDIGO...8 EXERCÍCIOS PROPOSTOS...10 ANOTAÇÕES...11 RECURSOS BÁSICOS: EXEMPLO 2 PISCA PISCA VARIÁVEL...13 RECURSOS DO LIVRO...13 LÓGICA DO EXEMPLO...13 ESQUEMA ELÉTRICO...14 FLUXOGRAMA...15 CÓDIGO...16 EXERCÍCIOS PROPOSTOS...18 ANOTAÇÕES...19 RECURSOS BÁSICOS: EXEMPLO 3 CONTADOR HEXADECIMAL...20 RECURSOS DO LIVRO...20 LÓGICA DO EXEMPLO...20 ESQUEMA ELÉTRICO...21 FLUXOGRAMA...22 CÓDIGO...25 EXERCÍCIOS PROPOSTOS...28 ANOTAÇÕES...29 RECURSOS AVANÇADOS: EXEMPLO 4 MAXIMIZAÇÃO DE PINOS DE I/O...30 RECURSOS DO LIVRO...30 LÓGICA DO EXEMPLO...30 ESQUEMA ELÉTRICO...31 FLUXOGRAMA...32 CÓDIGO...36 EXERCÍCIOS PROPOSTOS...40 ANOTAÇÕES...41 RECURSOS AVANÇADOS: EXEMPLO 5 VARREDURA DE DISPLAY...42 RECURSOS DO LIVRO...42 LÓGICA DO EXEMPLO...42 ESQUEMA ELÉTRICO...44 FLUXOGRAMA...45 CÓDIGO...50 EXERCÍCIOS PROPOSTOS...57 ANOTAÇÕES...58 RECURSOS AVANÇADOS: EXEMPLO 6 CONTROLE DO LCD...59 RECURSOS DO LIVRO...59 LÓGICA DO EXEMPLO...59 ESQUEMA ELÉTRICO...60 FLUXOGRAMA...61 CÓDIGO...68 EXERCÍCIOS PROPOSTOS...76 ANOTAÇÕES...77 RECURSOS AVANÇADOS: EXEMPLO 7 CONVERSOR ANALÓGICO DIGITAL...78 RECURSOS DO LIVRO...78 LÓGICA DO EXEMPLO...78 Linguagem C para PIC 3

4 ESQUEMA ELÉTRICO...79 FLUXOGRAMA...80 CÓDIGO...82 EXERCÍCIOS PROPOSTOS...86 ANOTAÇÕES...87 RECURSOS AVANÇADOS: EXEMPLO 8 CONTROLE DO PWM E EEPROM INTERNA...88 RECURSOS DO LIVRO...88 LÓGICA DO EXEMPLO...88 ESQUEMA ELÉTRICO...89 FLUXOGRAMA...90 CÓDIGO...93 EXERCÍCIOS PROPOSTOS...99 ANOTAÇÕES RECURSOS AVANÇADOS: EXEMPLO 9 COLETOR DE DADOS RECURSOS DO LIVRO LÓGICA DO EXEMPLO ESQUEMA ELÉTRICO FLUXOGRAMA CÓDIGO EXERCÍCIOS PROPOSTOS ANOTAÇÕES RECURSOS AVANÇADOS: EXEMPLO 10 FUNÇÕES MATEMÁTICAS RECURSOS DO LIVRO LÓGICA DO EXEMPLO ESQUEMA ELÉTRICO FLUXOGRAMA CÓDIGO EXERCÍCIOS PROPOSTOS ANOTAÇÕES Linguagem C para PIC

5 Recursos Básicos: Exemplo Recursos do Livro Botão e Led Para o bom entendimento deste nosso primeiro exemplo são necessários os conhecimentos de programação em linguagem C, comandos de controle de Fluxo (cap.7 do livro Programação em C), declaração de variáveis, constantes e tipos de dados (cap.5 do livro Programação em C), diretivas de configuração dos pinos de I/O (cap.10-pág.170, cap.11.5; 11.6-pág.202; 11.7 e cap.12.2-pág. 250 do livro Programação em C) Lógica do exemplo Nosso exemplo será composto de um programa capaz de ler um botão e controlar um led. Com o botão S1 pressionado o led L2 acende, com o botão S1 liberado o led L2 apaga. Veremos os primeiros comandos para controle de fluxo de um programa e como ler uma entrada e acionar uma saída, fundamental já que estamos trabalhando com um microcontrolador. Neste exemplo você verá o comando WHILE, (Faça enquanto for verdadeiro) sendo utilizado para o controle de fluxo de nossa rotina principal, forçando um loop infinito. O comando IF ELSE, (Se verdadeiro comando, Se falso comando), realiza o teste do botão e determina o caminho a ser seguido, se acende ou apaga o led. Caso o botão esteja pressionado o teste determina que o led deve acender, caso contrário o led será apagado. Para o teste do botão está sendo utilizado o operando! (NOT), para botão pressionado temos nível lógico zero no pino de I/O, neste caso o teste com o comando IF será verdadeiro para botão pressionado e falso para botão liberado. Linguagem C para PIC 5

6 Linguagem C para PIC Esquema Elétrico +5V +5V +5V +5V S1 RB0 10K RB1 330R RESET 10K MCLR RA0 RA1 RA2 RA4 RA5 RA3 RE1 RE0 RE2 VDD VSS OSC1 OSC2 RC1 RC2 RC0 RC4 RC3 RC5 VDD VSS RB7 RB6 RB4 RB3 RB5 RB1 RB2 RB0 RD7 RD6 RD5 RD4 RD2 RD1 RD3 RC7 RD0 RC MC1 4MHz L2 16F877A

7 1.4 - Fluxograma MAIN CONFIGURAÇÕES INICIAIS TRIS, PORTAS, WATCHDOG, PRESCALER. A LIMPA WATCHDOG BOTÃO S1 PRESS.? APAGA LED L2 ACENDE LED L2 A Linguagem C para PIC 7

8 1.5 - Código * Programação em C - Recursos Básicos de programação * * Exemplo 1 * * * * CENTRO DE CAPACITAÇÃO - LABTOOLS * * * * TEL: (0XX11) SITE: * * cursos@labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSÃO : 1.0 * * DATA : 05/06/2003 * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrição geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Este software está preparado para demonstrar o controle dos pinos de I/O // este primeiro programa demonstrará o estado de um botão por meio de um led. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição das variáveis internas do PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <16f877A.h> // microcontrolador utilizado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações para gravação * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #fuses xt,wdt,noprotect,put,brownout,nolvp,nocpd,nowrt fusíveis // configuração dos /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização das variáveis * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco estão definidas as variáveis globais do programa. //Este programa não utiliza nenhuma variável de usuário /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de constantes facilita a programação e a manutenção. //Este programa não utiliza nenhuma constante de usuário /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declaração dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de flags ajuda na programação e economiza memória RAM. //Este programa não utiliza nenhum flag de usuário /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) #byte porta = 0x05 #byte portb = 0x06 #byte portc = 0x07 #byte portd = 0x08 #byte porte = 0x09 8 Linguagem C para PIC

9 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As entradas devem ser associadas a nomes para facilitar a programação e //futuras alterações do hardware. #bit botao = portb.0 // Estado do botão // 1 -> Liberado // 0 -> Pressionado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SAÍDAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As saídas devem ser associadas a nomes para facilitar a programação e //futuras alterações do Hardware. #bit led = portb.1 // Led correspondente ao botão // 1 -> Led ligado // 0 -> Led desligado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações do Microcontrolador * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void main () setup_counters(rtcc_internal, WDT_2304MS); set_tris_a(0b ); set_tris_b(0b ); set_tris_c(0b ); set_tris_d(0b ); set_tris_e(0b ); porta=0x00; portb=0x00; portc=0x00; portd=0x00; porte=0x00; // configuração dos pinos de I/O // limpa porta // limpa portb // limpa portc // limpa portd // limpa porte /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Loop principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ while(true) RESTART_WDT(); if(!botao) // testa botão led = 1; // Se botão = 0, então led = 1 else led=0; // caso contrário, led = 0 // FIM DO PROGRAMA Linguagem C para PIC 9

10 1.7 - Exercícios Propostos Agora que o exemplo já foi estudado e esclarecido, aproveite para gerar novos problemas e soluções, seguindo os exercícios propostos: 1. Utilize as funções do Compilador para controlar o Led, OUTPUT_HIGH e OUTPUT_LOW. 2. Altere a lógica do programa para que o led acenda com o botão liberado e apague com o botão pressionado. 3. Troque o pino de I/O que controla o botão, por exemplo, utilize o pino RB3. 4. Com o botão pressionado acenda o led 2 e apague o led 3, para o botão liberado apague o led 2 e acenda o led Linguagem C para PIC

11 1.8 - Anotações Linguagem C para PIC 11

12

13 Recursos Básicos: Exemplo Recursos do Livro Pisca Pisca Variável Para o bom entendimento deste exemplo são necessários os conhecimentos adquiridos no exemplo 1 e mais, funções do compilador para controle de atraso (cap.11.4 pág. 195 do livro Programação em C), Operadores para criação de expressões lógicas e aritméticas (cap.6 do livro Programação em C), diretivas de configuração para uso de função de atraso (cap.10, pág.169 do livro Programação em C) Lógica do exemplo A finalidade de nosso exemplo é demonstrar a inversão de portas e a utilização da função de delay da Linguagem C. Através dos botões S1 e S2, Up e Down é possível ajustar a freqüência de oscilação dos Leds 3 e 4 da placa McLab2. As constantes min e max determinam os limites, máximos e mínimos de ajuste da freqüência de oscilação. Para a inversão das portas está sendo utilizado o operador lógico ~, (NOT, complemento de 1), com este operando estaremos invertendo bit a bit o conteúdo do registrador portb. A função delay_ms gera um atraso de milisegundos usando o ciclo de máquina, ou seja, o programa fica travado nesta função até o tempo desejado. O camando For (inicialização, teste condicional, incremento) é utilizado para controle do laço da rotina de delay, definindo a quantidades de vezes que o laço será executado, nesta rotina não utilizaremos a opção de inicialização do comando For, sendo a mesma executada fora do laço. Linguagem C para PIC 13

14 Linguagem C para PIC Esquema Elétrico +5V +5V +5V +5V S1 RB0 10K +5V S2 RB1 10K RB2 330R RB3 330R RESET 10K MCLR RA0 RA1 RA2 RA4 RA5 RA3 RE1 RE0 RE2 VDD VSS OSC1 OSC2 RC1 RC2 RC0 RC4 RC3 RC5 VDD VSS RB7 RB6 RB4 RB3 RB5 RB1 RB2 RB0 RD7 RD6 RD5 RD4 RD2 RD1 RD3 RC7 RD0 RC MC1 4MHz L3 L4 16F877A

15 Fluxograma A MAIN CONFIGURAÇÕES INICIAIS TRIS, PORTAS, WATCHDOG, PRESCALER. BOTÃO S1 PRESS.? INICIALIZA PORTB COM 0X0F TEMPO = MAX? B LIMPA WATCHDOG INCREMENTA TEMPO COMPLEMENTA PORTB A BOTÃO S2 PRESS.? TEMPO = MIN? DECREMENTA TEMPO CARREGA A VARIÁVEL CONTADOR COM O VALOR DA VARIÁVEL TEMPO ROTINA DE DELAY LAÇO FOR B CONTADOR 0 DELAY (10MS) Linguagem C para PIC 15

16 Código * Programação em C - Recursos Básicos de programação * * Exemplo 2 * * * * CENTRO DE CAPACITAÇÃO - LABTOOLS * * * * TEL: (0XX11) SITE: * * cursos@labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSÃO : 1.0 * * DATA : 05/06/2003 * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrição geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Este software demonstrará a utilização da função de delay e a inversão de portas //a frequência de oscilação dos leds é controlada pelos botões S1 (UP) e S2 (DOWN). /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição das variáveis internas do PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <16f877A.h> // microcontrolador utilizado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações para gravação * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #fuses xt,wdt,noprotect,put,brownout,nolvp,nocpd,nowrt // configuração dos fusíveis /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definições para uso de Rotinas de Delay * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use delay(clock= , RESTART_WDT) // diretiva para o uso da função delay /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização das variáveis * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco estão definidas as variáveis globais do programa. int contador = 0 ; int tempo = 9; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de constantes facilita a programação e a manutenção. //Este programa não utiliza constantes #define max 255 // Limite de ajuste do tempo #define min 10 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declaração dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de flags ajuda na programação e economiza memória RAM. //Este programa não utiliza nenhum flag de usuário. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) #byte porta = 0x05 #byte portb = 0x06 #byte portc = 0x07 #byte portd = 0x08 16 Linguagem C para PIC

17 #byte porte = 0x09 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As entradas devem ser associadas a nomes para facilitar a programação e //futuras alterações do hardware. #bit botao_0 = portb.0 // Estado do botão_0 // 1 -> Liberado // 0 -> Pressionado #bit botao_1 = portb.1 // Estado do botão_1 // 1 -> Liberado // 0 -> Pressionado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SAÍDAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As saídas devem ser associadas a nomes para facilitar a programação e //futuras alterações do hardware. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações do Microcontrolador * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void main () setup_counters(rtcc_internal,wdt_2304ms); set_tris_a(0b ); set_tris_b(0b ); set_tris_c(0b ); set_tris_d(0b ); set_tris_e(0b ); porta = 0x00; portb = 0x0f; portc = 0x00; portd = 0x00; porte = 0x00; // carrega portb com valor inicial /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Loop principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ while(true) RESTART_WDT(); portb = ~portb; // complemanta o portb if (!botao_0) // O botão_0 foi pressionado? if (tempo!= max) // sim, tempo é diferente de max? tempo = tempo + 1; // não, incrementa tempo // botão_0 liberado, testa botão 1 if (!botao_1) // O botão 1 foi pressionado? if (tempo!= min) // sim, tempo é diferente de min? tempo = tempo - 1; // não, decrementa tempo // botão_1 liberado contador = tempo; // carrega contador for (;contador!=0; contador--) // contador é diferente de 0? se sim // decrementa contador e executa o comando delay_ms(10); // comando: delay de 10 milisegundos. // FIM DO PROGRAMA Linguagem C para PIC 17

18 Exercícios Propostos Agora que o exemplo já foi estudado e esclarecido, aproveite para gerar novos problemas e soluções, seguindo os exercícios propostos: 1. Implemente a inversão de portas para que o led 3 e o led 4 pisquem alternadamente. 2. Utilize a forma reduzida para incrementar e decrementar a variável tempo. 3. Troque a função delay_ms por delay_us e ajuste as constantes para obter o mesmo ajuste de freqüência. 4. Substitua o comando For pelo comando While. 18 Linguagem C para PIC

19 Anotações Linguagem C para PIC 19

20 Recursos Básicos: Exemplo 3 Contador Hexadecimal Recursos do Livro Para o bom entendimento deste exemplo são necessários os conhecimentos adquiridos nos exemplos anteriores e tabela de constante (cap pág. 309 do livro Programação em C) Lógica do exemplo Através dos botões S1 e S2 o contador será incrementado ou decrementado, e o seu valor mostrado no display de sete segmentos ds4. A finalidade de nosso exemplo é demonstrar a implementação de tabelas utilizando a memória de programa, sendo está tabela uma matriz unidimensional, nossa tabela fará a conversão de BCD para sete segmentos, realizando a função de um circuito decodificador. Para o devido tratamento dos botões, neste exemplo foi implementada uma rotina de filtro para cada botão evitando o problema de debouncing, além do filtro foi criado um flag, para cada botão, que tem a função de indicar se a tecla está pressionada ou liberada. Desta forma para que o contador seja incrementado ou decrementado o botão deve ser pressionado e depois liberado. A variável contador será utilizada como indexador da tabela de constante, assim sendo para o contador igual à zero, será retornado o código de sete segmentos para o número zero e assim por diante. 20 Linguagem C para PIC

21 Linguagem C para PIC Esquema Elétrico MC1 MCLR RA0 RA1 RA2 RA4 RA5 RA3 RE1 RE0 RE2 VDD VSS OSC1 OSC2 RC1 RC2 RC0 RC4 RC3 RC5 VDD VSS RB7 RB6 RB4 RB3 RB5 RB1 RB2 RB0 RD7 RD6 RD5 RD4 RD2 RD1 RD3 RC7 RD0 RC V +5V +5V RESET DS4 a b c d e f g Dp a c b d e f g Dp RB0 RB1 +5V 10K +5V 10K 10K S1 S2 4,7K BC337 4MHz 220R 220R PIC16F877 PIC16F877 16F877A

22 Fluxograma MAIN CONFIGURAÇÕES INICIAIS TRIS, PORTAS, WATCHDOG, PRESCALER. INICIALIZA PORTB COM 0X10 B LIMPA WATCHDOG A 22 Linguagem C para PIC

23 A BOTÃO S1 PRESS.? Re-carrrega o Filtro do Botão Marca botão liberado O botão já estava pressionado? C Filtro 0? Marca Botão pressionado Decrementa o Filtro Contador Max? Incrementa o contador Consulta tabela de conversão e atualiza o display C Linguagem C para PIC 23

24 C BOTÃO S2 PRESS.? Re-carrrega o Filtro do Botão Marca botão liberado O Botão já estava pressionado? B Filtro 0? Marca Botão pressionado Decrementa o Filtro Contador Min? Decrementa o contador Consulta tabela de conversão e atualiza o display B 24 Linguagem C para PIC

25 Código * Programação em C - Recursos Básicos de programação * * Exemplo 3 * * * * CENTRO DE CAPACITAÇÃO - LABTOOLS * * * * TEL: (0XX11) SITE: * * cursos@labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSÃO : 1.0 * * DATA : 05/06/2003 * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrição geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Contador hexadecimal que utiliza dois botões para incrementar e decrementar // o valor da variável "contador". O contador está limitado pelas constantes min e max. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DEFINIÇÃO DAS VARIÁVEIS INTERNAS DO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <16f877A.h> // microcontrolador utilizado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações para gravação * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #fuses xt,wdt,noprotect,put,brownout,nolvp,nocpd,nowrt // configuração dos fusíveis /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definições para uso de Rotinas de Delay * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use delay(clock= , RESTART_WDT) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de constantes facilita a programação e a manutenção. #define t_filtro 400 #define min 0 #define max 15 // tamanho do filtro // valor mínimo para o contador // valor máximo para o contador /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização das variáveis * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco estão definidas as variáveis globais do programa. int contador=min; // inicia contador com mínimo long int filtro0=t_filtro; // inicia filtro do bot1 long int filtro1=t_filtro; // inicia filtro do bot2 int flags=0; // limpa os flags /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declaração dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de flags ajuda na programação e economiza memória RAM. #bit bt_up_press = flags.0 #bit bt_down_press = flags.1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) Linguagem C para PIC 25

26 #byte porta = 0x05 #byte portb = 0x06 #byte portc = 0x07 #byte portd = 0x08 #byte porte = 0x09 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As entradas devem ser associadas a nomes para facilitar a programação e //futuras alterações do hardware. #bit botao_up = portb.0 // Estado do botão UP // 1 -> Liberado // 0 -> Pressionado #bit botao_down = portb.1 // Estado do botão DOWN // 1 -> Liberado // 0 -> Pressionado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SAÍDAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As saídas devem ser associadas a nomes para facilitar a programação e // futuras alterações do hardware. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tabela de Valores * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ byte const tabela[16] = //PGFEDCBA ; POSIÇÃO RELATIVA AOS SEGMENTOS 0b , // 0H - 0 0b , // 1H - 1 0b , // 2H - 2 0b , // 3H - 3 0b , // 4H - 4 0b , // 5H - 5 0b , // 6H - 6 0b , // 7H - 7 0b , // 8H - 8 0b , // 9H - 9 0b , // AH - A 0b , // BH - B 0b , // CH - C 0b , // DH - D 0b , // EH - E 0b ; // FH - F /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações do Microcontrolador * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void main() setup_counters(rtcc_internal, wdt_2304ms); set_tris_a(0b ); set_tris_b(0b ); set_tris_c(0b ); set_tris_d(0b ); set_tris_e(0b ); porta = 0x00; portb=(0b ); // seleciona display ds4 portc = 0x00; portd = (tabela[contador]); // mostra no display valor inicial do contador porte = 0x00; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 26 Linguagem C para PIC

27 * Loop principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ while(true) // rotina principal RESTART_WDT(); // incia o watch-dog timer /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tratamento do Botão 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ if (!botao_up) // O botão UP está pressionado? // sim, if (!(bt_up_press)) // O botão UP já foi tratato? // não. if (filtro0!=0) // Fim do filtro do botão UP? filtro0--; // Não, então decrementa o filtro else // Sim, Faz a ação do botão bt_up_press = 1; // Marca que o botão está pressionado if (contador!= max) contador++; // incrementa o contador portd = (tabela[contador]); // consulta tabela, atualiza // display else // botão 0 liberado filtro0 = t_filtro; // inicia o filtro do botão 0 bt_up_press = 0; // marca que o botão foi liberado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tratamento do Botão 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ if (!botao_down) // testa botão DOWN // botão DOWN pressionado if (!(bt_down_press)) // o botão DOWN já foi tratato? // não if (filtro1!=0) // Fim do filtro do botão DOWN? filtro1--; // não, então decrementa o filtro else //. Faz a ação do botão bt_down_press = 1; // marca que o botão está pressionado if (contador!= min) contador--; // decrementa o contador portd = (tabela[contador]);// consulta tabela, atualiza // display else // botão 1 liberado filtro1 = t_filtro; // inicia o filtro do botão 1 bt_down_press = 0; // marca que o botão foi liberado Linguagem C para PIC 27

28 Exercícios Propostos Agora que o exemplo já foi estudado e esclarecido, aproveite para gerar novos problemas e soluções, seguindo os exercícios propostos: 1. Modifique o programa para que o contador conte de 1 a Implemente um botão para reset do contador. 3. Altere a tabela para que as posições de A a F da tabela apaguem o display. 4. Mude a contagem do dsp4 para o display dsp3. 28 Linguagem C para PIC

29 Anotações Linguagem C para PIC 29

30 Recursos Avançados: Exemplo Recursos do Livro Maximização de Pinos de I/O Para o bom entendimento deste exemplo são necessários os conhecimentos adquiridos nos exemplos anteriores e mais, funções do compilador para controle de interrupção, tratamento automático (cap.12 pág.254 do livro Programação em C), controle do processador (cap.11 pág.223 do livro Programação em C), manipulação de Timers (cap.11.8 pág.211 do livro Programação em C), diretivas de configuração para uso de interrupções, #int_xxx e #priority (cap.10, pág.161 e pág.166 do livro Programação em C) Lógica do exemplo Nosso exemplo será composto de um programa capaz de ler quatro botões e tocar o buzzer com uma freqüência diferente para cada combinação de botões. Para cada botão existe um led ligado no mesmo pino, que será utilizado para indicar os botões pressionados no momento. Utilizaremos os timers e duas interrupções para controlarmos a freqüência de leitura dos botões e a freqüência do buzzer: Timer 0: controlará a freqüência de varredura dos botões; Timer 2: controlará a freqüência do som. O som será feito excitando o buzzer com uma onda quadrada de freqüência variável. Variaremos esta freqüência alterando o valor de PR2, que controla o estouro deste timer. Desta forma, nosso programa principal será um loop infinito sem efeito algum. Somente ficaremos esperando o acontecimento das interrupções. Para a varredura dos botões ajustaremos a interrupção de TMR0 para aproximadamente 500Hz: Ciclo de Máq. Prescale Conta TMR0 Auxiliar Período Freqüência 1 µs µs 488 Hz Além disso, o sistema possui um filtro, regulado pela constante FILTRO_BOTAO, para evitar o debounce da tecla. Este filtro garante que a tecla fique pressionada pelo tempo de FILTRO_BOTAO x 2048µs. Quanto à freqüência do buzzer, esta será controlada por TMR2. Calibramos os valores de pre e postscale para que a freqüência da interrupção do TMR2 varie entre 100Hz e 2kHz, com a variação de PR2 entre 16 e 240: Ciclo de Máq. Prescale Postscale PR2 Período Freqüência 1 µs µs 3906 Hz 1 µs µs 260 Hz Para facilitar a implementação, a cada interrupção inverteremos o estado do pino de acionamento do buzzer. Desta forma, a freqüência deste será equivalente à metade da freqüência da interrupção do TMR2. O Livro Conectando o PIC, possui um cápitulo dedicado a este assunto. 30 Linguagem C para PIC

31 Linguagem C para PIC Esquema Elétrico +5V +5V +5V +5V S1 RB0 10K 10K 330R +5V S2 RB1 10K 10K 330R +5V S3 RB2 10K 10K 330R +5V S4 RB3 10K 10K 330R RESET 10K MCLR RA0 RA1 RA2 RA4 RA5 RA3 RE1 RE0 RE2 VDD VSS OSC1 OSC2 RC1 RC2 RC0 RC4 RC3 RC5 VDD VSS RB7 RB6 RB4 RB3 RB5 RB1 RB2 RB0 RD7 RD6 RD5 RD4 RD2 RD1 RD3 RC7 RD0 RC MC1 BUZZER 4MHz L1 L2 L3 L4 16F877A

32 Fluxograma MAIN CONFIGURAÇÕES INICIAIS TRIS, PORTAS, WATCHDOG, PRESCALER. LIGA AS INTERRUPÇÕES LIMPA WATCHDOG 32 Linguagem C para PIC

33 INTERRUPÇÕES INT DE TMR0? Trata TMR2 Trata TMR0 TRATA TMR2 SAÍDA DO BUZZER ESTÁ LIGADA? LIGA A SAÍDA DO BUZZER DESLIGA A SAÍDA DO BUZZER FIM DA INTERRUPÇÃO Linguagem C para PIC 33

34 TRATA TMR0 Convetre pinos dos botões em entradas Delay de 4 ciclos de máquina para estabilização do port Lê todos os botões e guarda em variável temporária (STATUS_BOTÕES) Converte pinos dos botões em saída CHECA BOTÃO S1 Reinicia Filtro Botão S1 PRESS? Limpa Flag de botão pressionado (Status Leds) Fim do Filtro? Marca flag de botão pressionado CHECA BOTÃO S2 CHECA BOTÃO S3 CHECA BOTÃO S4 A 34 Linguagem C para PIC

35 AÇÃO DOS BOTÕES A Atualiza leds conforme botões pressionados Algum botão pressionado? Inicializa PER com 255 Consulta tabela conforme conbinação de botões pressionados Deliga interrupção de TMR2 Inicializa TMR2 Desliga a saída do Buzzer Liga Interrupção de TMR2 FIM DA INTERRUPÇÃO Linguagem C para PIC 35

36 Código * Programação em C - Recursos Básicos de programação * * Exemplo 4 * * * * CENTRO DE CAPACITAÇÃO - LABTOOLS * * * * TEL: (0XX11) SITE: * * cursos@labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSÃO : 1.0 * * DATA : 05/06/2003 * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrição geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Este software está preparado para ler quatro botões e tocar o buzzer com //duração variavel conforme a tecla pressionada, além de acender o led //indicando a última tecla pressionada. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DEFINIÇÃO DAS VARIÁVEIS INTERNAS DO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <16f877A.h> // microcontrolador utilizado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações para gravação * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #fuses xt,wdt,noprotect,put,brownout,nolvp,nocpd,nowrt fusíveis // configuração dos /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de constantes facilita a programação e a manutenção. #define t_filtro 20 // tamanho do filtro /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização das variáveis * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco estão definidas as variáveis globais do programa. int status_botoes = 0; int status_leds = 0; int per = 0; int filtro1 = t_filtro; int filtro2 = t_filtro; int filtro3 = t_filtro; int filtro4 = t_filtro; // armazena o estado lógico dos botões // atualiza leds conforme o botão pressionado // limitador de contagem do Timer2 // inicia filtro do botao1 // inicia filtro do botao2 // inicia filtro do botao3 // inicia filtro do botao4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) #byte porta = 0x05 #byte portb = 0x06 #byte portc = 0x07 #byte portd = 0x08 #byte porte = 0x09 36 Linguagem C para PIC

37 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declaração dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de flags ajuda na programação e economiza memória RAM. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As entradas devem ser associadas a nomes para facilitar a programação e //futuras alterações do hardware. #bit botao1 = status_botoes.0 // Estado do botão 1 // 1 -> Liberado // 0 -> Pressionado #bit botao2 = status_botoes.1 // Estado do botão 2 // 1 -> Liberado // 0 -> Pressionado #bit botao3 = status_botoes.2// Estado do botão 3 // 1 -> Liberado // 0 -> Pressionado #bit botao4 = status_botoes.3 // Estado do botão 4 // 1 -> Liberado // 0 -> Pressionado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SAÍDAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // AS SAÍDAS DEVEM SER ASSOCIADAS A NOMES PARA FACILITAR A PROGRAMAÇÃO E //FUTURAS ALTERAÇÕES DO HARDWARE. #bit botao1_press = status_leds.0 #bit botao2_press = status_leds.1 #bit botao3_press = status_leds.2 #bit botao4_press = status_leds.3 #bit buzzer = porta.5 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tabela de Valores * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ byte const tabela[16] = 255,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configuração do Microcontrolador * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // A rotina principal simplesmente limpa o WDT, pois toda a lógica do // programa é tratada dentro das interrupções. void main() setup_adc_ports (no_analogs); setup_counters(rtcc_internal, rtcc_div_8); setup_timer_2 (t2_div_by_16,per,1); set_tris_a(0b ); set_tris_b(0b ); set_tris_c(0b ); set_tris_d(0b ); set_tris_e(0b ); porta=(0b ); portb=(0b ); portc=(0b ); portd=(0b ); porte=(0b ); enable_interrupts(global); enable_interrupts(int_rtcc); #priority timer0,timer2 // prioridade para a int de trm0 Linguagem C para PIC 37

38 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Rotina principal * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ while(true) // rotina principal RESTART_WDT(); // incia o watch-dog timer /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Rotina de Tratamento de interrupção de TMR0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Esta interrupção ocorrerá a cada 2048us. // O filtro dos botões tem duração de 40ms (2048us x 20) e são decrementados a cada // interrupção. // Esta interrupção é responsável por converter os pinos dos botões em entrada, salvar // a condição dos botões em variável temporária e converter os pinos em saída // novamente. #int_rtcc void trata_int_tmr0() set_tris_b(0b ); delay_cycles(4); status_botoes = portb; set_tris_b(0b ); // configura os pinos como entrada para // testar os botões // aguarda 4 ciclos de máquina para a // estabilização do portb // lê o status dos botoes, salva em variável // temporária // configura os pinos como saída para // controle dos leds /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tratamento do Botão 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ if (!botao1) // testa botão 1 // botão 1 está pressionado? filtro1--; // Sim, então decrementa o filtro if (filtro1 == 0) // acabou o filtro do botão 1? botao1_press = 1; // marca que o botão está pressionado else // botão 1 liberado filtro1 = t_filtro; // inicia o filtro do botão 1 botao1_press = 0; // marca que o botão foi liberado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tratamento do Botão 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ if (!botao2) // testa botão 2 // botão 2 está pressionado? filtro2--; // Sim, então decrementa o filtro if (filtro2 == 0) // fim do filtro do botão 2? botao2_press = 1; // marca que o botão está pressionado else // botão 2 liberado filtro2 = t_filtro; // inicia o filtro do botão 2 botao2_press = 0; // marca que o botão foi liberado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tratamento do Botão 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ if (!botao3) // testa botão 3 // botão 3 está pressionado? 38 Linguagem C para PIC

39 filtro3--; // Sim, então decrementa o filtro if (filtro3 == 0) // fim do filtro do botão 3? botao3_press = 1; // marca que o botão está pressionado else // botão 3 liberado filtro3 = t_filtro; // inicia o filtro do botão 3 botao3_press = 0; // marca que o botão foi liberado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tratamento do Botão 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ if (!botao4) // testa botão 4 // botão 4 está pressionado? filtro4--; // Sim, então decrementa o filtro if (filtro4 == 0) // fim do filtro do botão 4? botao4_press = 1; // marca que o botão está pressionado else // botão 4 liberado filtro4 = t_filtro; // inicia o filtro do botão 4 botao4_press = 0; // marca que o botão foi liberado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Atualiza Leds conforme botões pressionados * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ portb = status_leds; // atualiza os leds if (status_leds == 0) per = 0xff; setup_timer_2 (t2_div_by_16,per,1); disable_interrupts (INT_TIMER2); buzzer = 0; else per = (tabela[status_leds]);// consulta tabela e inicializa timer2. setup_timer_2 (t2_div_by_16,per,1); enable_interrupts (INT_TIMER2); // habilita interrupção de timer2. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Rotina de Tratamento de interrupção de TMR2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Está interrupção só irá ocorrer quando alguma tecla estiver pressionada, // o periodo de ocorrência depende do botão ou da conbinação de botões pressionados, // ela irá inverter o pino de I/O do buzzer a cada interrupção. #int_timer2 void trata_int_tmr2() if (buzzer!= 0) // o buzzer está ligado? buzzer = 0; // sim, então desliga else buzzer = 1; // não, então liga Linguagem C para PIC 39

40 Exercícios Propostos Agora que o exemplo já foi estudado e esclarecido, aproveite para gerar novos problemas e soluções, seguindo os exercícios propostos: 1. Utilize as funções disponíveis do Compilador para inverter o estado do buzzer. 2. Modifique o controle dos leds, os botões pares controlam os leds impares e os botões impares controlam os leds pares, conforme a tabela abaixo. Botão 1 Botão 2 Botão 3 Botão 4 Led 2 Led 1 Led 4 Led3 40 Linguagem C para PIC

41 Anotações Linguagem C para PIC 41

42 Recursos Avançados: Exemplo Recursos do Livro Varredura de Display Para o bom entendimento deste exemplo são necessários os conhecimentos adquiridos nos exemplos anteriores e mais, funções do compilador para controle de interrupção, tratamento manual (cap.12 pág.254 do livro Programação em C), controle do processador (cap.11 pág.223 do livro Programação em C), manipulação de Timers (cap.11.8 pág.211 do livro Programação em C), introdução de código em assembly no programa em C (cap.10, pág.151 do livro Programação em C),retorno de valores em funções assembly (cap.9, pág.147 do livro Programação em C), diretivas de configuração para uso de interrupções, #int_global e #priority (cap.10, pág.162 e pág.166 do livro Programação em C) Lógica do exemplo O exemplo desenvolvido para esta aula faz muito mais que simplesmente implementar a varredura dos displays. Trata-se de um contador regressivo de segundos, ou seja, um temporizador capaz de contar até segundos. Para isso, utilizaremos os displays para indicar o valor atual do temporizador. A primeira tecla (S1) não possui nenhuma função. Por outro lado, o led relacionado a ela (L1) será utilizado para indicar o estado do temporizador: L1 Aceso Apagado Descrição Temporizador em contagem regressiva Temporizador paralisado Os demais botões apresentam as funções de controle do temporizador: Botão S2 S3 S4 Descrição Incrementa o valor inicial em 1 segundo Decrementa o valor inicial em 1 segundo Inicia e paralisa o temporizador Os botões de incremento e decremento operam de forma rotativa, isto é, comutam automaticamente entre 0000 e Outra característica destes botões é que eles executam suas funções repetidamente quando mantidos pressionados e só funcionam quando o temporizador está paralisado. Ao atingir o valor zero (0000) o temporizador é automaticamente paralisado, desligandose o led indicativo (L1). Para o sistema de varredura foram criadas 4 variáveis para armazenamento dos dígitos mostrados nos respectivos displays: UNIDADE, DEZENA, CENTENA e MILHAR. Estas variáveis representam o valor atual do temporizador e são incrementadas e decrementadas através dos botões. Na verdade, os botões alteram diretamente o valor da unidade. A lógica do sistema compara este valor com os limites (0 e 9) para alterar ou não os demais dígitos. A freqüência de varredura é controlada pela interrupção de Timer0. Ajustamos seus parâmetros para que a comutação entre displays (tempo da interrupção) seja de aproximadamente 4kHz: Ciclo de Máq. Prescale Conta TMR0 Auxiliar Período Freqüência 1 µs µs 3900 Hz 42 Linguagem C para PIC

43 A freqüência de varredura será a freqüência de comutação dividida pelo número de displays, que no nosso caso será de aproximadamente 1kHz. Dentro do tratamento da interrupção de TMR0 é desligado o display atual, carregado o valor do dígito correspondente ao display e ligado o display seguinte. Quanto à contagem dos segundos, utilizamos a interrupção de Timer1 para esta finalidade. Veja os ajustes dos parâmetros para esta interrupção: Ciclo de Máq. Prescale Conta TMR1 Auxiliar Período Freqüência 1 µs µs 1 Hz Para isso, configuramos o prescale de TMR1 em 1:8 e iniciamos o contador com o valor total menos o desejado para a contagem ( ). Desta maneira a interrupção acontecerá a cada 0,5 segundo. Para podermos contar 1 segundo foi criado uma variável auxiliar denominada DIVISOR_TMR1. Cada vez que o sistema entrar na interrupção de TMR1 e o contador auxiliar (DIVISOR_TMR1) terminar, o tempo é decrementado, começando pela unidade e chegando até a milhar, se for necessário. Quando o tempo termina (0000) tanto o led quanto o TMR1 são desligado. Neste exemplo está sendo utilizado o tratamento Manual de interrupções, neste modo nós devemos providenciar todo o código necessário para o tratamento da interrupção, tais como: salvar contexto, restaurar contexto, limpar os flags de indicação de interrupção e criar os registradores para as rotinas de salvar e restaurar contexto. A prioridade de tratamento da interrupção depende da seqüência de teste dos flags de int, que também é de responsabilidade do programador. Para este tipo de tratamento estamos utilizando a diretiva #int global. Linguagem C para PIC 43

44 Esquema Elétrico 220R a b c d e f g Dp f e DS1 a g b c d Dp f e DS2 a g b c d Dp f e DS3 a g b c d Dp f e DS4 a g b c d Dp 220R Comum 1 Comum 2 Comum 3 Comum 4 BC337 BC337 BC337 BC337 +5V +5V 4,7K 4,7K 4,7K 4,7K RESET 10K MC1 4MHz +5V MCLR RA0 RA1 RA2 RA3 RA4 RA5 RE0 RE1 RE2 VDD VSS OSC1 OSC2 RC0 RC1 RC2 RC3 RC4 RC5 16F877A 32 VDD 31 VSS 40 RB7 39 RB6 38 RB5 RB RB3 35 RB2 34 RB1 33 RB0 30 RD7 29 RD6 28 RD5 27 RD4 22 RD3 21 RD2 20 RD1 19 RD0 26 RC7 25 RC6 RB0 +5V +5V +5V 330R 10K 10K RB1 RB2 RB3 10K L1 S2 S3 S4 44 Linguagem C para PIC

45 Fluxograma MAIN CONFIGURAÇÕES INICIAIS TRIS, PORTAS, WATCHDOG, PRESCALER. Configura Timer1 Liga as interrupções A Limpa WATCHDOG BOTÃO UP PRESS.? Trata Botão UP BOTÃO DOWN PRESS.? Trata Botão Down BOTÃO Start/Stop PRESS.? Trata Botão Start/Stop Recarrega Filtro e turbo das teclas Linguagem C para PIC 45

46 INTERRUPÇÕES INT DE TMR0? SWITCH CASE Recarrega Timer1 decrementa contador de int. Atualiza Display da Unidade? Incrementa ponteiro de seleção de Display, desliga display do milhar, consulta tabela de conversão para sete segmentos, liga display da unidade Passou 1 segundo? Atualiza Display da Dezena? Incrementa ponteiro de seleção de Display, desliga display da unidade, consulta tabela de conversão para sete segmentos, liga display da dezena Recarrega contador de int. Decrementa Timer Atualiza Display da Centena? Incrementa ponteiro de seleção de Display, desliga display da dezena, consulta tabela de conversão para sete segmentos, liga display da centena Timer Chegou a zero? Atualiza Display do milhar? Zera ponteiro de seleção de Display, desliga display da centena, consulta tabela de conversão para sete segmentos, liga display do milhar Desliga led de indicação de timer operando FIM DA INTERRUPÇÃO Desabilita interrupção de Timer1 FIM DA INTERRUPÇÃO 46 Linguagem C para PIC

47 Trata Botão UP Trata Botão DOWN Timer Ligado? Timer Ligado? Decrementa Filtro Decrementa Filtro Fim do Filtro? Fim do Filtro? Decrementa Turbo Decrementa Turbo Fim do Temporizador para Turbo do Botão? Fim do Temporizador para Turbo do Botão? Recarrega temporizador para Turbo Recarrega temporizador para Turbo Incrementa Timer Decrementa Timer A A Linguagem C para PIC 47

48 Trata botão Start/Stop Ação já foi executada? Filtro terminou? Timer ligado? Timer é igual a zero? Apaga led de indicação de Timer ligado Acende Led de indicação de Timer ligado Desabilita interrupção de Timer1 Carrega Timer1 A Carrega contador de interrupções Habilita interrupção de Timer 1 A 48 Linguagem C para PIC

49 Incrementa Timer Decrementa Timer Incrementa unidade Decrementa unidade Unidade = 10? Unidade = 0XFF? Zera unidade Incrementa dezena Unidade = 9 Decrementa dezena Dezena = 10? Dezena = 0XFF? Zera dezena Incrementa centena Dezena = 9 Decrementa centena centena = 10? centena = 0XFF? Zera centena Incrementa milhar Centena = 9 Decrementa milhar Milhar = 10? Milhar = 0XFF? Zera milhar Milhar = 9 Return Return Linguagem C para PIC 49

50 Código * Programação em C - Recursos Básicos de programação * * Exemplo 5 * * * * CENTRO DE CAPACITAÇÃO - LABTOOLS * * * * TEL: (0XX11) SITE: * * cursos@labtools.com.br * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSÃO : 1.0 * * DATA : 05/06/2003 * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descrição geral * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // Este exemplo foi preparado para demonstrar o funcionamento do TIMER de // 16 bits do PIC (TMR1), da varredura de displays e do tratamento manual de int. // Consiste num temporizador de segundos. dois botões foram utilizados para // programar o tempo da contagem. Um outro botão foi utilizado para disparar // o contador. O temporizador consegue contar até 9999 segundos, de forma que // os 4 displays de 7 segmentos foram necessários. A contagem é regressiva. // um led indica que o temporizador está operando. Quando o sistema chega // a 0000 (ZERO) o led é desligado automaticamente. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DEFINIÇÃO DAS VARIÁVEIS INTERNAS DO PIC * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <16f877A.h> // microcontrolador utilizado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Configurações para gravação * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #fuses xt,wdt,noprotect,put,brownout,nolvp,nocpd,nowrt fusíveis // configuração dos /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definições para uso de Rotinas de Delay * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use delay(clock= , RESTART_WDT) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Constantes internas * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de constantes facilita a programação e a manutenção. #define t_filtro 250 // tamanho do filtro #define turbo_tecla 60 #define delta_timer1 ( ) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização das variáveis * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //Neste bloco estão definidas as variáveis globais do programa. int display = 0 ; // atualiza os displays int contador = 2; // contador de interrupções de timer1 int filtro = t_filtro; // inicia filtro dos botões int turbo = 1; // inicia turbo das teclas int unidade = 9; // variável unidade do timer de 1 seg int dezena = 9; // variável dezena do timer de 1 seg int centena = 9; // variável centena do timer de 1 seg int milhar = 9; // variável milhar do timer de 1 seg static int W_TEMP; static int STATUS_TEMP; static int FSR_TEMP; static INT PCLATH_TEMP; // variáveis para salvar contexto 50 Linguagem C para PIC

51 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição e inicialização dos port's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) #byte porta=0x05 #byte portb=0x06 #byte portc=0x07 #byte portd=0x08 #byte porte=0x09 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Definição de SFR's * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #bit tmr1if = 0x0c.0 // tmr1if é o bit 0 do sfr pir1 #bit t0if = 0x0b.2 // t0if é o bit 2 do sfr intcon #bit tmr1ie = 0x8c.0 // tmr1ie é o bit 0 do fsr pie1 #byte status = 0x03 // define endereço do reg de status #byte fsr = 0x04 // define endereço do reg de fsr #byte pclath = 0x0a // define endereço do reg de pclath /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Declaração dos flags de software * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ //A definição de flags ajuda na programação e economiza memória RAM. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ENTRADAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // As entradas devem ser associadas a nomes para facilitar a programação e //futuras alterações do hardware. #bit bt_up = portb.1 // Estado do botão up // 1 -> Liberado // 0 -> Pressionado #bit bt_down = portb.2 // Estado do botão down // 1 -> Liberado // 0 -> Pressionado #bit bt_start_stop = portb.3 // Estado do botão start_stop // 1 -> Liberado // 0 -> Pressionado /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SAÍDAS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ // AS SAÍDAS DEVEM SER ASSOCIADAS A NOMES PARA FACILITAR A PROGRAMAÇÃO E //FUTURAS ALTERAÇÕES DO HARDWARE. #bit estado_timer = portb.0 // led de estado do timer // 1 -> timer contando // 0 -> timer parado #bit disp0 = portb.4 // seleção do display unidade (0) #bit disp1 = portb.5 // seleção do display dezena (1) #bit disp2 = portb.6 // seleção do display centena (2) #bit disp3 = portb.7 // seleção do display milhar (3) Linguagem C para PIC 51

Instituto Federal de Educação, Ciência e Tecnologia da Paraíba. Microcontrolador PIC 16F877

Instituto Federal de Educação, Ciência e Tecnologia da Paraíba. Microcontrolador PIC 16F877 Instituto Federal de Educação, Ciência e Tecnologia da Paraíba MINICURSO Microcontrolador PIC 16F877 Alison Lins de Lima Fábio Montenegro Pontes Jonathan B. da Silva Rafael Tavares Coutinho Thiago Pinto

Leia mais

Guia do Usuário Placa de Desenvolvimento McLab1

Guia do Usuário Placa de Desenvolvimento McLab1 Placa de Desenvolvimento McLab1 Sumário 1. APRESENTAÇÃO...3 2. HARDWARE...4 2.1. MICROCONTROLADOR PIC16F628A...4 2.2. DISPLAYS DE 7 SEGMENTOS...5 2.3. TECLAS...5 2.4. LEDS...6 2.5. LÂMPADA...6 2.6. BOTÃO

Leia mais

Interrupções e timers

Interrupções e timers Prática 3: 3.1 Introdução e objetivos Interrupções e timers Na prática anterior foi visto que a função main fica continuamente monitorando o teclado avaliando se alguma tecla foi pressionada através da

Leia mais

Programação em BASIC para o PIC Vitor Amadeu Souza

Programação em BASIC para o PIC Vitor Amadeu Souza Programação em BASIC para o PIC Vitor Amadeu Souza Introdução Continuando com a série do último artigo, hoje veremos os passos para o desenvolvimento de uma minuteria com o microcontrolador PIC18F1220

Leia mais

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza Introdução Nesta terceira série de artigos que aborda a programação na linguagem BASIC para o microcontrolador PIC,

Leia mais

www.vwsolucoes.com Copyright 2011 VW Soluções

www.vwsolucoes.com Copyright 2011 VW Soluções 1 Apresentação O adaptador ADP.v01 é utilizado para facilitar a instalação de display Lcd 16x2 ou display Lcd 20x4 nos CLP PIC28 ou CLP PIC40 através de um flat cable de 10vias de acordo com a necessidade

Leia mais

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos www.decom.ufop.br/alex/ alexvbh@gmail.com

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos www.decom.ufop.br/alex/ alexvbh@gmail.com PIC18F4550 Curso Engenharia de Controle e Automação Alex Vidigal Bastos www.decom.ufop.br/alex/ alexvbh@gmail.com 1 Agenda Características do PIC18F4550 Pinagem do PIC18F4550 Pinagem do PIC18F4550 Datasheet

Leia mais

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO Parte I Fundamentos Teóricos O que diferencia um microcontrolador (como o 8051) de um microprocessador é o fato de que o primeiro pode apresentar, integrados

Leia mais

Hardware Parte I. Fábio Rodrigues de la Rocha

Hardware Parte I. Fábio Rodrigues de la Rocha Hardware Parte I Fábio Rodrigues de la Rocha PIC16F877 40 pinos Freqüência máxima 20MHz. Vias de programação 14 bits 33 portas configuráveis como entradas/saídas 15 interrupções diferentes Memória EEPROM

Leia mais

Central de Alarme de Oito Zonas

Central de Alarme de Oito Zonas Central de Alarme de Oito Zonas R02 ÍNDICE CARACTERÍSTICAS GERAIS:... 3 CARACTERÍSTICAS TÉCNICAS:... 3 CONHECENDO A CENTRAL:... 4 COMO A CENTRAL FUNCIONA:... 4 COMO APAGAR A MEMÓRIA DA CENTRAL:... 4 COMO

Leia mais

Programação de Robótica: Modo Circuitos Programados - Avançado -

Programação de Robótica: Modo Circuitos Programados - Avançado - Programação de Robótica: Modo Circuitos Programados - Avançado - 1 Programação de Robótica: Modo Circuitos Programados - Avançado ATENÇÃO Lembramos que você poderá consultar o Manual de Referência do Software

Leia mais

Multiplexando displays de 7 segmentos com PIC16F877A

Multiplexando displays de 7 segmentos com PIC16F877A Multiplexando displays de 7 segmentos com PIC16F877A A ligação de vários displays de 7 segmentos nos PICs podem ser feitas de diversas meneiras, uma bastante interessante é a que se segue. A ligação de

Leia mais

Comunicação Serial com o AVR ATMEGA8

Comunicação Serial com o AVR ATMEGA8 Comunicação Serial com o AVR ATMEGA8 Vitor Amadeu Souza vitor@cerne-tec.com.br Introdução Os microcontroladores AVR vem a cada dia tomando cada vez mais espaço nos novos projetos eletrônicos microcontrolados.

Leia mais

Guia de consulta rápida

Guia de consulta rápida Guia de consulta rápida DigiFlash Smart Trigger 1 2 3 4 5 17 Smart Trigger 6 7 8 9 16 15 14 13 12 11 10 O DigiFlash Smart Trigger é um dispositivo para disparar flashes a partir de um evento externo. Pode

Leia mais

Programação C para microcontroladores PIC

Programação C para microcontroladores PIC Programação C para microcontroladores PIC eletrocursos.gnomio.com 1/6 Sumário Histórico do Documento... 3 Treinadores Responsáveis... 3 Carga Horária... 3 Ementa... 3 Objetivos... 3 Conteúdo Programático...

Leia mais

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br 1 Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br Continuando com o artigo apresentado na edição passada de comunicação USB com o PIC, continuaremos nesta edição o estudo do

Leia mais

Programação em BASIC para o PIC Projetos com Display Gráfico Vitor Amadeu Souza

Programação em BASIC para o PIC Projetos com Display Gráfico Vitor Amadeu Souza Programação em BASIC para o PIC Projetos com Display Gráfico Vitor Amadeu Souza Introdução No artigo desta edição, veremos os passos para controlar um dispaly gráfico de 128 x 64 pixels. A idéia será apresentar

Leia mais

Controladores Lógicos Programáveis CLP (parte-3)

Controladores Lógicos Programáveis CLP (parte-3) Controladores Lógicos Programáveis CLP (parte-3) Mapeamento de memória Na CPU (Unidade Central de Processamento) de um CLP, todas a informações do processo são armazenadas na memória. Essas informações

Leia mais

Monitor de Rede Elétrica Som Maior Pro. Manual do Usuário Versão 3.9f

Monitor de Rede Elétrica Som Maior Pro. Manual do Usuário Versão 3.9f Monitor de Rede Elétrica Som Maior Pro Manual do Usuário Versão 3.9f 2 ÍNDICE PÁG. 1 APRESENTAÇÃO...03 2 DESCRIÇÃO DO EQUIPAMENTO...04 2.1 ROTINA INICIAL DE AVALIAÇÃO DA REDE ELÉTRICA...04 2.2 TROCA DE

Leia mais

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma Jogo de Memória (Memorex v. 3.0) José Wilson Lima Nerys Universidade Federal de Goiás jwlnerys@gmail.com Abstract No presente projeto uma sequência de Leds é criada pelo microcontrolador, e deve ser repetida

Leia mais

Sistemas Embarcados. Introdução aos sistemas embarcados

Sistemas Embarcados. Introdução aos sistemas embarcados Sistemas Embarcados Introdução aos sistemas embarcados Introdução aos Sistemas embarcados Definição de um sistema embarcado Exemplos de sistemas embarcados Processadores utilizados em sistemas embarcados

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação

Leia mais

Conheça o 4017 (ART062)

Conheça o 4017 (ART062) 1 de 11 20/02/2013 18:14 Conheça o 4017 (ART062) Este artigo não é novo, mas sua atualidade se manterá por muito tempo, o que jusitifica o fato dele ser um dos mais acessados desse site. De fato, o circuito

Leia mais

Suporta os microcontroladores: R. Leonardo da Vinci, 883 - Campinas/SP CEP 13.077-009 F.: (19) 4141.3351 / 3304.1605

Suporta os microcontroladores: R. Leonardo da Vinci, 883 - Campinas/SP CEP 13.077-009 F.: (19) 4141.3351 / 3304.1605 Suporta os microcontroladores: PIC16F877A, PIC18F452, PIC18F4520, PIC18F4550, PIC 18F876A, PIC18F252, PIC18F2550 e outros com 28 e 40 pinos O Kit de desenvolvimento ACEPIC PRO V2.0 foi projetado tendo

Leia mais

EA079 Laboratório de Micro e Minicomputadores: Hardware Laboratório III

EA079 Laboratório de Micro e Minicomputadores: Hardware Laboratório III EA079 Laboratório de Micro e Minicomputadores: Hardware Laboratório III Projeto de Interface com o Teclado 1 Objetivo do Laboratório III 1. Entender as características elétricas e funcionais do pino IRQ.

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Placa Acessório Modem Impacta

Placa Acessório Modem Impacta manual do usuário Placa Acessório Modem Impacta Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. A Placa Modem é um acessório que poderá ser utilizado em todas as centrais

Leia mais

CDE4000 MANUAL 1. INTRODUÇÃO 2. SOFTWARE DE CONFIGURAÇÃO 3. COMUNICAÇÃO

CDE4000 MANUAL 1. INTRODUÇÃO 2. SOFTWARE DE CONFIGURAÇÃO 3. COMUNICAÇÃO CDE4000 MANUAL 1. INTRODUÇÃO O controlador CDE4000 é um equipamento para controle de demanda e fator de potência. Este controle é feito em sincronismo com a medição da concessionária, através dos dados

Leia mais

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS 1 PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS INTRODUÇÃO O processamento interno do CLP é digital e pode-se, assim, aplicar os conceitos de lógica digital para compreen8 der as técnicas e as linguagens

Leia mais

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO O seguinte artigo apresenta uma UCP hipotética construída no software simulador DEMOWARE Digital Works 3.04.39. A UCP (Unidade Central de Processamento)

Leia mais

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

KVM CPU Switch 4 Portas Manual do Usuário

KVM CPU Switch 4 Portas Manual do Usuário P R E F Á C I O Este é um produto da marca GTS Network, que está sempre comprometida com o desenvolvimento de soluções inovadoras e de alta qualidade. Este manual descreve, objetivamente, como instalar

Leia mais

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre ACENDENDO AS LUZES Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre Projeto 1 LED piscante Neste capitulo, todos os projetos utilizam luzes LED s de diversas formas. Em relação ao hardware,

Leia mais

Aula 2. - Elaboração de algoritmos/fluxogramas. - Gravação do programa no microcontrolador

Aula 2. - Elaboração de algoritmos/fluxogramas. - Gravação do programa no microcontrolador Aula 2 - Elaboração de algoritmos/fluxogramas - Set de instruções do 8051 - Programação em Assembly - Gravação do programa no microcontrolador - Simulação Exercícios da aula passada... 1) Converta os números

Leia mais

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) 2823-8800 SÃO CAETANO DO SUL - SP - CEP: 09530-250

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) 2823-8800 SÃO CAETANO DO SUL - SP - CEP: 09530-250 LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) 2823-8800 SÃO CAETANO DO SUL - SP - CEP: 09530-250 1 SISTEMA HCS 2005 PROTOCOLO DE COMUNICAÇÃO (Baseado no Guarita Vr5.0x Última modificação:

Leia mais

www.vwsolucoes.com Copyright 2013 VW Soluções

www.vwsolucoes.com Copyright 2013 VW Soluções 1 1. Especificação técnicas: Dimensões do módulo 4EA2SA v1.0: 100 mm x 56 mm Peso aproximado: xxx gramas (montada). Alimentação do circuito : 12 ou 24Vcc Tipo de comunicação: RS232 ou RS485 Tensão de referencia:

Leia mais

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA 8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente

Leia mais

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC.

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC. CONVERSOR ANALÓGICO / DIGITAL SINAL DIGITAL ASSUME APENAS 2 ESTADOS: 0V E 5V SINAL ANALÓGICO TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC. 1 FONTE DESTES SINAIS ANALÓGICOS UM DOS NOSSOS OBJETIVOS

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

INFORMATIVO DE PRODUTO

INFORMATIVO DE PRODUTO Temporizador Automático / Relógio Programador de Horário Para Acionamento Automático de Sirenes e Outros Equipamentos Código: AFKITPROG 2 O REGISTRADOR ELETRÔNICO DE PONTO REP O Relógio Acionador Automático

Leia mais

Módulo FGM721. Controlador P7C - HI Tecnologia

Módulo FGM721. Controlador P7C - HI Tecnologia Automação Industrial Módulo Controlador P7C - HI Tecnologia 7C O conteúdo deste documento é parte do Manual do Usuário do controlador P7C da HI tecnologia (PMU10700100). A lista de verbetes consta na versão

Leia mais

Exercícios de Microcontroladores -> Programas sequenciais

Exercícios de Microcontroladores -> Programas sequenciais Exercícios de Microcontroladores -> Programas sequenciais Prof. Gabriel Vinicios - www.gvensino.com.br Exercício 1: Cronômetro - Dificuldade: (3/5) No display, serão exibidos: minutos : segundos : décimos

Leia mais

PIC16F628a. Pinagem do PIC16F628a:

PIC16F628a. Pinagem do PIC16F628a: PIC16F628a O PIC16F628a é um microcontrolador fabricado pela Microchip Technology (www.microchip.com), com as seguintes características: - composto de 18 pinos; - possui somente 35 instruções no seu microcódigo;

Leia mais

7. Técnicas de Programação

7. Técnicas de Programação 7. Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 7.1 Fluxograma Definições Início/Fim Sub-rotinas Tomada de decisão Terminação 7.1 Fluxograma Exercícios Ex.1: Testa um botão e acende

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Temporizadores e Motor de Passo Alunos: Matrícula:

Leia mais

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008 Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008 O objetivo deste boletim é mostrar as características do driver MPC6006L. Tópicos abordados neste boletim: APRESENTAÇÃO

Leia mais

dígitos. altura (mm) 10

dígitos. altura (mm) 10 ±,QVWDODomR Este equipamento é de fixação em, por meio de duas presilhas, cujo aperto é realizado por parafuso. As dimensões para a abertura são indicadas na figura1. O esquema de ligação é mostrado na

Leia mais

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL; Boletim Técnico EP3 11/07 Utilizando Funções e Blocos Funcionais de usuário pelo software A1 19 de outubro de 2007 O objetivo deste boletim é mostrar como utilizar o recurso de Funções (Functions) e Blocos

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Aula 4: Programação em C para PIC Marco Jose da Silva mdasilva@utfpr.edu.br Compiladores C para PICs C18 HI-TECH CCS IAR MikroC http://www.microchip.com/ http://www.htsoft.com/

Leia mais

DESCRIÇÃO DO FUNCIONAMENTO Basicamente o ANTRON II-s recebe sinais provenientes da atuação de contatos elétricos externos, associados a equipamentos

DESCRIÇÃO DO FUNCIONAMENTO Basicamente o ANTRON II-s recebe sinais provenientes da atuação de contatos elétricos externos, associados a equipamentos DESCRIÇÃO DO FUNCIONAMENTO Basicamente o ANTRON II-s recebe sinais provenientes da atuação de contatos elétricos externos, associados a equipamentos ou sistemas que se queiram supervisionar, via contatos

Leia mais

Módulo I. Desenvolvimento Software CLP - Básico

Módulo I. Desenvolvimento Software CLP - Básico Desenvolvimento Software CLP - Básico Lista de exercícios utilizados nas vídeo aulas e manual de referência das instruções utilizadas em cada aula. Setor de capacitação técnica Branqs Automação Santos

Leia mais

Módulo de Desenvolvimento PIC16F877A

Módulo de Desenvolvimento PIC16F877A Objetivos: Módulo de Desenvolvimento PIC16F877A Realizar programação e projetos com microcontroladores e seus periféricos, integrando sistemas analógicos e digitais com a utilização de compilador (Mikro

Leia mais

FACILITY TOP HÍBRIDA. Manual Técnico MANUAL TÉCNICO AUTOMATIZADOR PARA PORTÕES DESLIZANTES MONDIALE. P19165 - Rev. 1

FACILITY TOP HÍBRIDA. Manual Técnico MANUAL TÉCNICO AUTOMATIZADOR PARA PORTÕES DESLIZANTES MONDIALE. P19165 - Rev. 1 MANUAL TÉCNICO AUTOMATIZADOR PARA PORTÕES DESLIZANTES P19165 - Rev. 1 MONDIALE 1 ÍNDICE DIAGRAMA DE CONEXÕES...4 Principais características... 5 Funções do led SN...5 Entrada PARA Trava...6 botões (+)

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Manual de utilização do módulo NSE METH-8RL/Exp

Manual de utilização do módulo NSE METH-8RL/Exp INSTALAÇÃO 1 - Baixe o arquivo Software Configurador Ethernet disponível para download em www.nse.com.br/downloads-manuais e descompacte-o em qualquer pasta de sua preferência. 2 - Conecte a fonte 12Vcc/1A

Leia mais

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br Acessando a Porta Paralela com o Delphi Vitor Amadeu Souza vitor@cerne-tec.com.br Introdução A Porta Paralela pode ser usada de forma a permitir a interface do computador com o mundo externo para acionamento

Leia mais

MANUAL DO USUÁRIO CENTRAL MC 4D

MANUAL DO USUÁRIO CENTRAL MC 4D 12 Manual do Usuário Intrusos podem entrar em zonas sem proteção, ou ter sofisticação para isolar um sensor ou desconectar dispositivos de aviso de alarme; Central, detectores, sensores só funcionam quando

Leia mais

MINISTÉRIO DA EDUCAÇÃO IFSC - Campus São José. CST em Telecomunicações ELETRÔNICA DIGITAL CONTADORES. Marcos Moecke

MINISTÉRIO DA EDUCAÇÃO IFSC - Campus São José. CST em Telecomunicações ELETRÔNICA DIGITAL CONTADORES. Marcos Moecke MINISTÉRIO DA EDUCAÇÃO IFSC - Campus São José CST em Telecomunicações ELETRÔNICA DIGITAL CONTADORES Marcos Moecke São José - SC, 29 SUMÁRIO 5. CONTADORES... 5. CONTADORES ASSÍNCRONOS 5. C 5.2 C ASSÍNCRONOS......

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014 PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014 Introdução: Este programa permite o gerenciamento dos amplificadores MR 4.50D-XT MR 6.50D-XT MR 6.80-XT

Leia mais

Capítulo 12. Projeto 5 Controle de Motores de Passo. 12.1 Circuito e Funcionamento

Capítulo 12. Projeto 5 Controle de Motores de Passo. 12.1 Circuito e Funcionamento Capítulo 12 Projeto 5 Controle de Motores de Passo A crescente popularidade dos motores de passo deve-se a sua adaptação à lógica digital. Estes dispositivos são usados em inúmeras aplicações, tais como:

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

Figura 01 Visão Geral da Placa

Figura 01 Visão Geral da Placa 1. Hardware O kit de FPGA é formado por periféricos que possibilitam sua interação com sinais de áudio, display gráfico e alfanumérico, comunicação serial e USB, codec de áudio, chaves para simulação e

Leia mais

Circuito integrado 555 e suas aplicações

Circuito integrado 555 e suas aplicações Circuito integrado 555 e suas aplicações Introdução Um circuito integrado popular é o versátil 555. Introduzido pela em 1973 pela Signetcs, este circuito integrado tem aplicações que variam de equipamentos

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

TUTORIAL DE PROGRAMAÇÃO. Configuração do cartão de entrada / saída analógica CP1W-MAD11.

TUTORIAL DE PROGRAMAÇÃO. Configuração do cartão de entrada / saída analógica CP1W-MAD11. TUTORIAL DE PROGRAMAÇÃO Configuração do cartão de entrada / saída analógica CP1W-MAD11. 1.0 Alocação de memória Antes de utilizar o cartão, é necessário conhecer a forma como a linha CP1 aloca as memórias

Leia mais

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO 1211.13. www.robouno.com.br

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO 1211.13. www.robouno.com.br R O B Ó T I C A Sensor Smart Ultrassom Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO 1211.13 Sensor Smart Ultrassom 1. Introdução Os sensores de ultrassom ou ultrassônicos são sensores que detectam

Leia mais

Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara

Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Contadores Contadores (cont.) Os contadores podem ser classificados por: Tipo de controle - Assíncrono - Síncrono Tipo de contagem

Leia mais

Kit de desenvolvimento ACEPIC 40N

Kit de desenvolvimento ACEPIC 40N Kit de desenvolvimento ACEPIC 40N O Kit de desenvolvimento ACEPIC 40N foi desenvolvido tendo em vista a integração de vários periféricos numa só placa, além de permitir a inserção de módulos externos para

Leia mais

LogixPro Introdução aos Timers (Temporizadores) no RSLogix

LogixPro Introdução aos Timers (Temporizadores) no RSLogix LogixPro Introdução aos Timers (Temporizadores) no RSLogix TON Timer... (Temporizador com atraso após ligamento) A partir do menu Simulations do LogixPro, selecione I/O Simulation. Elime qualquer programa

Leia mais

A seguir serão detalhados os atuadores da estação com a finalidade de facilitar a visualização e ilustrar os circuitos contidos em anexo.

A seguir serão detalhados os atuadores da estação com a finalidade de facilitar a visualização e ilustrar os circuitos contidos em anexo. MANUAL DE OPERAÇÃO Estação de Distribuição MPS Documentação Técnica Estação de distribuição Vista superior da estação Detalhe do terminal de válvulas CPV 2 Descrição da Estação Essa estação tem como principal

Leia mais

Microcontroladores PIC. Microcontroladores PIC

Microcontroladores PIC. Microcontroladores PIC Microcontroladores PIC Prof. Valdir Dugo Zaragoza 28/07/2015 1 MICROCONTROLADORES PIC Os microcontroladores PIC são componentes integrados programáveis fabricados pela empresa americana Microchip. Possuem

Leia mais

EXPERIMENTS MANUAL Manual de Experimentos Manual de Experimentos

EXPERIMENTS MANUAL Manual de Experimentos Manual de Experimentos 555 M-1108A *Only illustrative image./imagen meramente ilustrativa./ Imagem meramente ilustrativa. EXPERIMENTS MANUAL Manual de Experimentos Manual de Experimentos Conteúdo 1. Introdução... 2 2. Experiência

Leia mais

4.3. Máquina de estados: São utilizados em sistemas de complexos, é de fácil transformação para ladder desde que não haja muitas ramificações.

4.3. Máquina de estados: São utilizados em sistemas de complexos, é de fácil transformação para ladder desde que não haja muitas ramificações. Parte 4 - Técnicas de programação (Lógica simples) INTRODUÇÃO Programar em ladder é muito simples, desde que ele tenha uma estrutura sob a qual o programa deve ser desenvolvido, ou seja, se deve ter um

Leia mais

Estrutura de um Computador

Estrutura de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 7 Prof. Dr. Marcelo Andrade da Costa Vieira MODELO DE VON NEUMANN PRINCÍPIOS A arquitetura de um computador consiste de

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Display de LEDs Rotativo

Display de LEDs Rotativo Display de LEDs Rotativo Paulo Matias André Luiz Barbieri 12 de dezembro de 2008 Resumo Descrevemos um projeto capaz de formar imagens por meio de uma coluna de LEDs rotativa. A configuração dos LEDs é

Leia mais

COLETOR DE DADOS. 1. Verificar ou alterar o modo de interface para avançado COLETOR DE DADOS

COLETOR DE DADOS. 1. Verificar ou alterar o modo de interface para avançado COLETOR DE DADOS COLETOR DE DADOS Objetivo O objetivo deste material é orientar o operador das colhedoras de Cana Série A8000 de como formatar e como operacionalizar o coletor de dados. Descrição O coletor de dados das

Leia mais

Cerne Tecnologia e Treinamento

Cerne Tecnologia e Treinamento Tecnologia e Treinamento Tutorial para Testes na Placa de I/O Ethernet Kits Didáticos e Gravadores da Cerne Tecnologia A Cerne tecnologia têm uma linha completa de aprendizado para os microcontroladores

Leia mais

MANUAL DE INSTALAÇÃO E OPERAÇÃO. Discador GSM

MANUAL DE INSTALAÇÃO E OPERAÇÃO. Discador GSM MANUAL DE INSTALAÇÃO E OPERAÇÃO www.compatec.com.br Indice: 1. Caracterísitcas... 2 2. Leds... 3 3. Programando os números telefonicos... 4 3.1. Para apagar números individualmente... 4 3.2. Para apagar

Leia mais

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador

Leia mais

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Introdução ao Microsoft Windows 7 O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Visualmente o Windows 7 possui uma interface muito intuitiva, facilitando a experiência individual do

Leia mais

Manual de Instruções. Deve operar em ambientes isentos de gases corrosivos, poeiras inflamáveis ou materiais explosivos.

Manual de Instruções. Deve operar em ambientes isentos de gases corrosivos, poeiras inflamáveis ou materiais explosivos. Modelo: RPCF 3/ 12 Introdução O é apropriado para um eficiente controle da energia reativa das instalações elétricas. Ele é dotado de um microcontrolador com um poderoso algoritmo de otimização do fator

Leia mais

Manual Instalação, Configuração e Atualização FullCopyConvert Data FullCopyConvertService

Manual Instalação, Configuração e Atualização FullCopyConvert Data FullCopyConvertService Manual Instalação, Configuração e Atualização FullCopyConvert Data FullCopyConvertService Revisão: Maio / 2015 Sumário Bem-vindo ao FullCopyConvert! Estas instruções irá guiá-lo através da instalação do

Leia mais

Conhecendo o PIC16F877 Microcontrolador de 8 bits da Microchip Co.

Conhecendo o PIC16F877 Microcontrolador de 8 bits da Microchip Co. Programação Daniel Corteletti Aula 2 Página 1/6 Conhecendo o PIC16F877 Microcontrolador de 8 bits da Microchip Co. O microcontrolador PIC16F877 pode ser encontrado em diversos encapsulamentos: PDIP, QFP,

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações. Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações. A partir de agora, iremos conhecer o hardware do Arduino e suas caracteristicas

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Uma Abordagem com o Microcontrolador PIC 16F84 Nardênio Almeida Martins Novatec Editora Capítulo 1 Introdução Os microcontroladores estão presentes em quase tudo o que envolve

Leia mais

EA773 - Experimento 5

EA773 - Experimento 5 EA773 - Experimento 5 Wu Shin - Ting DCA - FEEC - Unicamp 19 de Novembro de 2009 O projeto consiste em implementar uma calculadora com memória com uso de barramento de 8 bits. Neste documento são discutidos

Leia mais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 6-T 2. Máquinas Sequencias Síncronas: Comparação entre

Leia mais

CAIXA PARA REMÉDIO COM ALARME E VIBRADOR

CAIXA PARA REMÉDIO COM ALARME E VIBRADOR CAIXA PARA REMÉDIO COM ALARME E VIBRADOR Modelo: 202V MANUAL DE INSTRUÇÃO PARABÉNS Você adquiriu a mais eficaz Caixa para Remédio com Alarme disponível no mercado. A Caixa para Remédio com Alarme foi projetada

Leia mais

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL - 317 RV1

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL - 317 RV1 MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL - 317 RV1 SÃO CAETANO DO SUL 06/06/2014 SUMÁRIO Descrição do Produto... 3 Características... 3 Configuração USB... 4 Configuração... 5 Página

Leia mais

C.I - 4017. Prof. Getúlio Teruo Tateoki

C.I - 4017. Prof. Getúlio Teruo Tateoki C.I - 4017 Prof. Getúlio Teruo Tateoki 1 -Circuito integrado CMOS que pode ser usado como seqüenciador, temporizador, e em sistemas de automação de pequeno porte além da codificação em controle remoto.

Leia mais

PROGRAMAÇÃO DO TREINAMENTO:

PROGRAMAÇÃO DO TREINAMENTO: PROGRAMAÇÃO DO TREINAMENTO: Página 2 0. Objetivos deste treinamento Quem está fazendo este módulo avançado II é porque já passou pelos módulos anteriores. Portanto não serão abordados aqui os tópicos já

Leia mais

Manual de Operação Balança Eletrônica Mod: EB 2001

Manual de Operação Balança Eletrônica Mod: EB 2001 Manual de Operação Balança Eletrônica Mod: EB 2001 1 Descrição: A balança eletrônica produzida por nossa empresa utiliza tecnologia de ponta, baixo consumo de energia e conversores analógicos/digitais

Leia mais