Curso Prático de Programação em Linguagem C para 8051 Parte 1

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

Download "Curso Prático de Programação em Linguagem C para 8051 Parte 1"

Transcrição

1 Curso Prático de Programação em Linguagem C para 8051 Parte 1 Prof. Salomão Choueri Junior

2 Sumário 1. Introdução Linguagem C Hardware Base Estrutura de um Software de Aplicação Estrutura Básica de um programa em C PROG1.C Software de Testes Comentários Diretivas de Pré-Processamento Função Principal void main ( ) Atribuições Loop Infinito while (1) A Linguagem C é case sensitive Compilação, Simulação e Programação Compilação Arquivos.HEX Simulação Programação na Placa de Testes Operadores Lógicos e Aritméticos Operadores Lógicos Operadores Aritméticos Exercícios Resolvidos EXR1.C EXR2.C EXR3.C EXR4.C Exercícios Propostos: Projeto Proposto: Variáveis e Funções Variáveis Nome Tipo e Valores Funções Sintaxe das Funções PROG2.C Pisca Leds PROG3.C Pisca Leds com tempo controlado pela DIPS Exercícios Resolvidos EXR5.C Exercícios Propostos:...17

3 5.7. Projeto Proposto: Operadores Relacionais e Estruturas de Decisão Operadores Relacionais Estrutura if-else PROG4.C Sequencial de LEDS Estrutura switch-case Comandos break e continue PROG5.C Sequencial de LEDS com switch Exercícios Propostos Projetos Propostos Estruturas de Loop - Laços Estrutura while Estrutura do while PROG6.C Alarme Residencial Estrutura for PROG7.C Contador de Eventos Exercícios Resolvidos EXR6.C Exercícios Propostos Projeto proposto Atividades não presenciais Apêndice A Revisão Apêndice B at89x52.h... 35

4

5 Introdução 1.1. Linguagem C A Linguagem C foi criada para gerar o menor número de códigos quanto possível. Seu conjunto de comandos é bem reduzido, porém bastante flexível. Para microcontroladores utiliza-se o SDCC (Small Device C Compiler) que é um compilador ANSI C otimizado. Trata-se de um projeto open source (código fonte aberto) sob licença GLP (General Public License) da GNU Hardware Base O hardware utilizado no curso é a Placa de Testes EDT-044 que utiliza o microcontrolador AT89S52. Este microntrolador possui 32 pinos de I/O divididos em 4 ports de 8 bits Estes ports são bit/byte endereçáveis, ou seja, podemos acessar o port (P0, P1, P2, P3) ou cada bit individualmente (P0_0, P0_1, P0_2, P0_3, P0_4, P0_5, P0_6, P0_7, P1_0... P1_7, P2_0...P2_7, P3_0... P3_7). Na Placa de Testes são utilizadas 9 entradas e 9 saídas, a saber: Entradas: P2 Dip-switch com 8 chaves (ON = nível lógico 0 ) P3_2 Push-Bottom (acionada = nível lógico 0 ) Saídas: P0 8 Leds (ativos em nível lógico 1 ) P3_7 Buzzer (ativo em nível lógico 0 ) P1 P1_0 P1_1 P1_2 P1_3 P1_4 P1_5 P1_6 P1_7 P0_0 P0_1 P0_2 P0_3 P0_4 P0_5 P0_6 P0_7 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 P0 LEDS P3 PB BZ P3_0 P3_1 P3_2 P3_3 P3_4 P3_5 P3_6 P3_7 P2_7 P2_6 P2_5 P2_4 P2_3 P2_2 P2_1 P2_0 DIP8 DIP7 DIP6 DIP5 DIP4 DIP3 DIP2 DIP1 P2 DIPS 1

6 1.3. Estrutura de um Software de Aplicação Para aplicações em microcontroladores tem-se, geralmente, a estrutura apresentada a seguir: INICIO Declarar e definir conteúdos iniciais das variáveis Inicializar periféricos programáveis INICIALIZAÇÃO Colocar conteúdos iniciais nas saídas Processo LOOP INFINITO 2

7 2. Estrutura Básica de um programa em C Para apresentarmos a estrutura básica de um programa em Linguagem C, faremos um software para testar a Placa de Testes PROG1.C Software de Testes Este programa utilizará o seguinte fluxograma: PROG1 Apaga LEDS Desliga BZ INICIALIZAÇÃO LEDS DIPS BZ PB LOOP INFINITO Abra o editor JFE (C:\8051\Editor_C\JFE), Carregue o software PROG1.C que está na pasta C:\8051\CursoC. A figura a seguir mostra o programa aberto no JFE. 3

8 2.2. Comentários Os comentários aparecem em verde e podem iniciados com /* e encerrados com */ quando utilizase várias linhas ou coloca-se // quando forem colocados em apenas uma linha Diretivas de Pré-Processamento O comando #include inclui um arquivo header (cabeçalho) que contém as definições do microcontrolador utilizado (at89x52.h) assim como bibliotecas com funções em C. No arquivo at89x52.h tem-se as definições dos ports e registradores de funções especiais do AT89S52. No momento, utilizaremos somente os ports que aparecem em azul: P0, P1, P2, P3, P0_0... P0_7, P1_0... P1_7, P2_0...P2_7, P3_0... P3_7 Podemos utilizar também, os nomes das entradas e saídas da Placa de testes: As entradas aparecem em marrom: DIPS, DIP1... DIP8 e PB As saídas aparecem em vermelho: LEDS, LED1... LED8 e BZ O Apêndice B apresenta o arquivo at89x52,h 4

9 2.4. Função Principal void main ( ) Trata-se do bloco principal do programa que estará entre chaves. No nosso caso, a função principal nunca retornará nada (void vazio) e também, nunca recebe nenhum parâmetro, ou seja, sempre será void main ( ). Maiores informações no tópico 5.2 Funções Atribuições Note que as atribuições são encerradas com ponto e vírgula ( ; ) e os valores em hexadecimal devem ser precedidos de 0x Loop Infinito while (1) Todas as atribuições, comandos e estruturas que estiverem entre as chaves da estrutura while (1) serão repetidas em loop infinito. Maiores informações no tópico 7.1 Estrutura - while A Linguagem C é case sensitive Isto significa que o compilador diferencia letras maiúsculas e minúsculas. Todos os comandos em C são com letras minúsculas e os ports e entradas e saídas da placa são escritos com letras maiúsculas. 5

10 3. Compilação, Simulação e Programação 3.1. Compilação Para compilar o programa basta clicar em Compilar. Caso não tenha erros de sintaxe no programa digitado, um arquivo com extensão.hex será criado no mesmo diretório do arquivo fonte Arquivos.HEX O formato Intel Hex compreende um arquivo texto (ASCII), com a seguinte codificação: : :01000B0032C2 : BA :01001B0032B2 : AA :01002B0032A2 : CF120040E C7900E93B : B7A C780075A000E49343 : F2A308B A0D9F4DAF275A0FF786B : E C E4F0A3D8FC90 : D9FAF6D8FD02002CA8 :10002C FE758000D2B785A080A2B292FA :08003C00B780F : FF : - Delimitador de início da linha 04 - Número de bytes da linha Endereço inicial dos bytes 00 - Tipo de registro: 00 = dados, 01 fim de registro Dados/instruções 84 - Checksum complemento da soma de todos os bytes 6

11 3.2. Simulação a) Abrir o programa Pinnacle52 ( Iniciar Programas Pinnacle Pinnacle52 register later) b) Abrir Code Memory ( View - Code Memory) otimizar janela. c) Abrir Ports ( View Ports) otimizar janela. d) Abrir o Programa ( File open Arquivos do tipo: INTEL HEX PROG1.HEX) e) Executar programa (seta verde - run) f) Simular entradas (DIPS e PB) e verificar saídas (LEDS e BZ) 3.3. Programação na Placa de Testes a) Abrir o Gravador USB ( C:\8051\Gravadores\Gravador USB) b) Conectar o cabo USB do Kit Programador c) Carregar o Arquivo.HEX ( LOAD FLASH) d) Gravar o programa (AUTO) e) Simular o programa alterando o estado da Dips-Switch e PB e verificando os LEDS e BZ. 7

12 8

13 4.1. Operadores Lógicos 4. Operadores Lógicos e Aritméticos 4.2. Operadores Aritméticos 4.3. Exercícios Resolvidos EXR1.C OPERADORES LÓGICOS! NOT & AND OR ^ XOR << n Desloca n bits à esquerda >> n Desloca n bits à direita OPERADORES ARITMÉTICOS + SOMA - SUBTRAÇÃO / DIVISÃO % RESTO DA DIVISÃO * MULTIPLICAÇÃO ++ INCREMENTO ( SOMAR 1 ) -- DECREMENTO ( SUBTRAIR 1 ) Dê um programa que realize as seguintes operações lógicas: LED1=DIP1+DIP2 LED2=DIP1. DIP2 LED3=DIP1+DIP2 LED4=DIP1+DIP2.DIP1 Tabela de Verificação DIP1 DIP2 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED

14 Programa EXR1.C /* EXR1.C Exercício Resolvido 1 Operações Lógicas */ #include <at89x52.h> void main () LEDS = 0x00; BZ = 1; while (1) LED1 = DIP1 DIP2; LED2 = DIP1 & DIP2; LED3 =!(DIP1 DIP2); LED4 = DIP1 (DIP2 &!DIP1); EXR2.C Dê uma rotina que apresente nos LEDS o conteúdo das DIPS multiplicado por 4. Exemplos de testes: DIPS DIP8 DIP7 DIP6 DIP5 DIP4 DIP3 DIP2 DIP1 LEDS LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 0x x x x x0C x x3F xFC Programa EXR2.C /* EXR2.C Exercício Resolvido 2 Operações Aritméticas LEDS = DIPS x 4 */ #include <at89x52.h> void main () LEDS = 0x00; BZ = 1; while (1) LEDS = DIPS *4; 10

15 EXR3.C Dê uma rotina que apresente nos LEDS o conteúdo das DIPS multiplicado por 4 utilizando instrução de deslocamento. Programa EXR3.C /* EXR2.C Exercício Resolvido 2 LEDS = DIPS x 4 Com instrução de deslocamento */ #include <at89x52.h> void main () LEDS = 0x00; BZ = 1; while (1) LEDS = DIPS << 2; EXR4.C Dê uma rotina que apresente nos LEDS a soma do nibble mais significativo das DIPS com o nibble menos significativo. Algoritmo: Soma-se o conteúdo da DIPS deslocado 4 bits à direita com o conteúdo da DIPS com o nibble mais significativo zerado. Exemplo: 0x0F + 0x02 = 0x11 DIPS DIP8 DIP7 DIP6 DIP5 DIP4 DIP3 DIP2 DIP1 DIPS DIP8 DIP7 DIP6 DIP5 DIP4 DIP3 DIP2 DIP1 0xF x x LEDS LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 0x

16 Programa EXR4.C /* EXR4.C Exercício Resolvido 4 LEDS = soma do nibble mais significativo com o nibble menos significativo da DIPS */ #include <at89x52.h> void main () LEDS = 0x00; BZ = 1; while (1) LEDS = (DIPS >>4) + (DIPS & 0x0F); 4.4. Exercícios Propostos: EX1.C Dê uma rotina que apresente nos LEDS o conteúdo das DIPS dividido por 4. EX2.C Dê uma rotina que apresente nos LEDS o resto da divisão das DIPS por 4. EX3.C Dê uma rotina que acione o BZ (ativo em nível lógico 0 ) quando a DIP1 = Projeto Proposto: PROJ1.C Controle de uma Bomba para caixa d água e alarme do reservatório. Entradas: DIP1 Sensor de nível de água mínimo do reservatório DIP2 Sensor de nível de água máximo do reservatório DIP3 Sensor de nível de água mínimo da caixa d água DIP4 Sensor de nível de água máximo da caixa d água OBS: Sensores = 1 na presença de água Sáidas: LED1 Bomba d água ativo em nível lógico 1 BZ Alarme - ativo em nível lógico 0 A bomba d água deve ligar sempre que a caixa d água não estiver cheia e tiver água no reservatório e o Alarme deve ativar se não tiver água no reservatório. 12

17 5. Variáveis e Funções 5.1. Variáveis Uma variável é uma posição de memória na qual o programa pode armazenar valores. Assim, uma variável possui 3 atributos: um nome, o tipo de dado e o valor armazenado Nome Algumas regras básicas para estabelecer o nome da variável: a) Deve sempre começar com letra ou sublinhado (_); b) Não pode conter caracteres especiais, somente letras, números e sublinhado; c) Deve lembrar o que guarda; d) O compilar C é case sensitive; e) Existem nomes reservados. Nomes Reservados pelo Padrão ANSI-C auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while main Outros nomes reservados pelo SDCC: bit, interrupt, using, sfr Tipo e Valores Tipo de Dado bits bytes Valores bit 1 0 ou 1 char a +127 unsigned char a 255 int a unsigned int a long a unsigned long a float 32 4 ±1,17549 E-38 a ±3, E+38 13

18 5.2. Funções Funções são blocos de programas que são executados como uma sub-rotina Sintaxe das Funções As funções possuem um cabeçalho e o bloco de instruções que ela realiza como mostra a estrutura abaixo: tipo_do_dado_de_retorno nome (declaração_do_parâmetro_de_entrada) Instruções; Na declaração da função, quando ela não retorna nenhum dado coloca-se void (vazio) e, quando não há nenhum parâmetro de entrada não coloca-se nada dentro dos parênteses. Exemplo1: Função teste #include <at89x52.h> void teste ( ) LEDS = DIPS; BZ = PB; void main ( ) LEDS = 0x00; BZ = 1; while (1) teste ( ); Exemplo 2: Função somar #include <at89x52.h> char somar (char a, char b) unsigned char c; c = a + b; return (c); void main ( ) LEDS = 0x00; BZ = 1; while (1) LEDS = somar (0x07,0x20); 14

19 5.3. PROG2.C Pisca Leds O programa a seguir apresenta uma rotina que faz os LEDS piscarem utilizando a função atraso_ ms(tempo_em_ms). /* PROG2.C PISCA LEDS */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> void main () // Inicio do programa principal LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito LEDS = 0xFF; // Acende todos os LEDS atraso_ms(500); // Atraso de 500ms (0,5s) LEDS = 0x00; // Apaga todos os LEDS atraso_ms(500); // Atraso de 500ms (0,5s) // Fim do Loop Infinito // Fim do Programa Principal 5.4. PROG3.C Pisca Leds com tempo controlado pela DIPS O programa a seguir faz os LEDS acenderem e apagarem com velocidade controlada pela DIPS segundo tabela dada a seguir DIP3 DIP2 DIP1 VALOR T (s) T (ms) , , , , , , , ,8 800 O cálculo do tempo é dado pela seguinte expressão: Tempo = ((DIPS & 0x07) + 1) * 100 Para zerar o conteúdo de DIP8 a DIP4, executa-se a operação AND com 0x07, como mostrado a seguir: DIPS DIP8 DIP7 DIP6 DIP5 DIP4 DIP3 DIP2 DIP1 0xXY X X X X X Y Y Y 0x x0Y Y Y Y 15

20 Como os valores da DIPS variam de 0 a 7 e os tempos de 100ms a 800ms, soma-se 1 ao valor da DIPS e multiplica-se por 100. A variável com o tempo de atraso (MS) deve ser declarada como variável global, pois é utilizada tanto na função main quanto na função atraso_ms. /* PROG3.C PISCA LEDS COM TEMPO DADO PELA DIPS */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> // Declaração das variáveis globais unsigned int MS; void main () // Inicio do programa principal LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito MS = ((DIPS & 0x07) + 1) * 100; // MS = tempo de atraso LEDS = 0xFF; // Acende todos os LEDS atraso_ms(ms); // Atraso LEDS = 0x00; // Apaga todos os LEDS atraso_ms(ms); // Atraso // Fim do Loop Infinito // Fim do Programa Principal 16

21 5.5. Exercícios Resolvidos EXR5.C Utilize a programa PROG3.C e transforme a rotina que faz piscar os LEDS na função SEQ1 ( ). /* EXR5.C PISCA LEDS COM TEMPO DADO PELA DIPS */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> // Declaração das variáveis globais unsigned int MS; // Declaração das funções void SEQ1 (); // PROGRAMA PRINCIPAL void main () // Inicio do programa principal LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito MS = ((DIPS & 0x07) + 1) * 100; // MS = tempo de atraso SEQ1 (); // Chama função SEQ1 () // Fim do Loop Infinito // Fim do Programa Principal // FUNÇÕES void SEQ1 ( ) LEDS = 0xFF; atraso_ms(ms); LEDS = 0x00; atraso_ms(ms); // Acende todos os LEDS // Atraso // Apaga todos os LEDS // Atraso 5.6. Exercícios Propostos: EX4.C Baseado no PROG3.C, dê um programa que realize atraso de 100ms a 1,6s com base em DIP4, DIP3,DIP2 e DIP1. EX5.C Baseado no PROG3.C, dê um programa que faça o BZ tocar quando os LEDS estiverem acesos. 17

22 5.7. Projeto Proposto: PROJ2.C Apresente nos LEDS a sequência da super máquina. LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 LEDS x x x x x x42 18

23 6.1. Operadores Relacionais 6.2. Estrutura: if - else 6. Operadores Relacionais e Estruturas de Decisão OPERADORES RELACIONAIS = = IGUAL A!= DIFERENTE DE < MENOR QUE > MAIOR QUE <= MENOR OU IGUAL A >= MAIOR OU IGUAL A Sintaxe: if (condição) instrução 1; instrução 2;... else instrução 1; instrução 2;... Forma simplicada: if (condição) instrução 1; else instrução 2; 19

24 Exemplo1: Exemplo1 DIPS = 0xFF S if ( DIPS = = 0xFF) LEDS = 0xFF; else LEDS = 0x00; Apaga LEDS DIPS = 0x80 S Acende LEDS if ( DIPS = = 0x80) BZ = 0; else BZ = 1; OU Desliga BZ Aciona BZ if ( DIPS = = 0xFF) LEDS = 0xFF; else LEDS = 0x00; if ( DIPS = = 0x80) BZ = 0; else BZ = 1; Exemplo 2: Exemplo2 PB = 0 DIP1 = 1 S S Acende LED1 Apaga LED1 if ( PB = = 0 ) LED1 = 0; else if ( DIP1 = = 1) LED1 = 1; if ( DIP2 = = 1) LED1 = 1; DIP2 = 1 S OU Acende LED1 if (!PB ) LED1 =0; else if ( DIP1) LED1 = 1; if ( DIP2) LED1 = 1; 20

25 6.3. PROG4.C Sequencial de LEDS O programa a seguir apresenta uma rotina que realiza 4 sequências diferentes nos LEDS selecionadas pela DIP1 e DIP2 segundo a tabela: DIP2 DIP1 Sequências nos LEDS 0 0 Sequência Sequência Sequência Sequência 4 PROG4 MS (global) Teste (local) Apaga LEDS Desliga BZ teste= nibble signif. da DIPS teste = 0x00 S teste = 0x01 S teste = 0x02 S teste = 0x03 S Apaga LEDS SEQ4( ) SEQ3( ) SEQ2( ) SEQ1( ) 21

26 /* PROG4.C SEQUENCIAL DE LEDS */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> // Declaração das variáveis globais unsigned int MS = 200; // Declaração das funções void SEQ1 (); void SEQ2 (); void SEQ3 (); void SEQ4 (); // FUNÇÃO PRINCIPAL void main () // Inicio do programa principal unsigned char teste; // Declaração de variável local LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito teste = DIPS & 0x0F; if (teste==0x00) SEQ1(); else if (teste == 0x01) SEQ2(); else if (teste == 0x02) SEQ3(); else if (teste == 0x03) SEQ4(); else LEDS = 0X00; // Fim do Loop Infinito // Fim do Programa Principal // FUNÇÕES void SEQ1 () LEDS = 0xFF; atraso_ms (MS); LEDS = 0x00; atraso_ms (MS); void SEQ2 () LEDS = 0x55; atraso_ms (MS); LEDS = 0xAA; atraso_ms (MS); void SEQ3 () LEDS = 0x0F; atraso_ms (MS); LEDS = 0xF0; atraso_ms (MS); void SEQ4 () LEDS = 0xC0; atraso_ms (MS); LEDS = 0x03; atraso_ms (MS); LEDS = 0x30; atraso_ms (MS); LEDS = 0x0C; atraso_ms (MS); 22

27 6.4. Estrutura switch-case Sintaxe: switch (variável) case valor1: instrução 1; instrução 2;... break; case valor2: instrução 1; instrução 2;... break; case valorn: instrução 1; instrução 2;... break; default: instrução 1; instrução 2;... break; Comandos break e continue break :Força uma interrupção abrupta do bloco de uma estrutura switch, for, while e do while. continue: Ignora o resto das instruções do bloco e retorna ao início do bloco. 23

28 6.6. PROG5.C Sequencial de LEDS com switch /* PROG5.C SEQUENCIAL DE LEDS COM SWITCH */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> // Declaração das variáveis globais unsigned int MS = 200; // Declaração das funções void SEQ1 (); void SEQ2 (); void SEQ3 (); void SEQ4 (); // FUNÇÃO PRINCIPAL void main () // Inicio do programa principal unsigned char teste; // Declaração de variável local LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito teste = DIPS & 0x0F; switch (teste) case 0x00: SEQ1(); break; case 0x01: SEQ2(); break; case 0x02: SEQ3(); break; case 0x03: SEQ4(); break; default: LEDS = 0X00; break; // Fim do Loop Infinito // Fim do Programa Principal // FUNÇÕES (idem PROG4.C) 6.7. Exercícios Propostos EX6.C Dê um programa que acenda todos os LEDS se DIP1=1 e DIP2=1. Os LEDS devem apagar se DIP8=1. Dar prioridade à DIP8. EX7.C Dê um programa que verifique a DIPS e acenda os LEDS de acordo com a faixa de valores dadas a seguir: LED1 = 1 para DIPS <= 0x20 LED2 = 1 para 0x20 < DIPS < 0x30 LED3 = 1 para DIPS >= 0x Projetos Propostos PROJ3.C Dê um sequencial de LEDS com 8 sequências controladas pela DIP3, DIP2 e DIP1 e 8 velocidades controladas pela DIP7, DIP6 e DIP5. 24

29 7. Estruturas de Loop - Laços 7.1. Estrutura: while Sintaxe: while (condição) instrução 1; instrução 2;... Forma simplicada: while (condição) instrução 1; Na estrutura while o bloco de instruções é realizado enquanto a condição for verdadeira formando assim um loop de repetição Exemplo PB = 0 Acende os LEDS S Aciona BZ Atraso 0,5s while ( PB = = 0) BZ = 0; Atraso_ms(500); BZ = 1; Atraso_ms(500); LEDS = 0xFF; Desliga BZ Atraso 0,5s 7.2. Estrutura: do while Sintaxe: do instrução 1; instrução 2;... while (condição); 25

30 Na estrutura do while, realiza-se o bloco de instruções antes de verificar a condição para realizar o loop de repetição. Exemplo Aciona BZ Atraso 0,5s Desliga BZ Atraso 0,5s do BZ = 0; Atraso_ms(500); BZ = 1; Atraso_ms(500); while ( PB = = 0); LEDS = 0xFF; PB = 0 S Acende os LEDS 7.3. PROG6.C Alarme Residencial Entradas: DIP1 = Liga/Desliga Alarme DIP5 a DIP8 = Sensores Saídas: LED1 LED8 = Temporização = Sensor ativo Descrição: Enquanto o alarme não estiver ligado o LED8 deve acender se pelo menos um sensor estiver ativo. Ao ligar o alarme deve-se realizar um atraso de 5s para o usuário sair de sua casa (durante este tempo o LED1 deve acender). Ao término deste tempo inicia-se a verificação dos sensores. Quando um sensor for acionado devese realizar um atraso de 5s para que o usuário chegue até a central de alarme para desligá-lo. Caso o alarme não seja desligado o buzzer deve ser acionado. O buzzer só será desativado quando o alarme for desligado. 26

31 PROG6 unsigned char teste Apaga LEDS Desliga BZ DIP1 = 1 S Acende LED1 Atraso 5s teste= nibble + signif. da DIPS teste 0x00 S Apaga LED1 Apaga LED8 Acende LED8 Teste = nibble + signif. da DIPS teste 0x00 S Acende LED1 Atraso 5s Apaga LED1 DIP1 = 1 S Desliga BZ Liga BZ 27

32 /* PROG6.C ALARME RESIDENCIAL Entradas: DIP1 = Liga/Desliga Alarme DIP5 a DIP8 = Sensores Saídas: LED1 LED8 = Temporização = Sensor ativo */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> // FUNÇÃO PRINCIPAL void main () // Inicio do programa principal unsigned char teste; // Declaração de variável local LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito while (!DIP1) // Espera ligar Alarme teste = DIPS & 0xF0; // Separa sensores if (teste!= 0x00) LED8=1; // Acende LED8 se sensores <>0 else LED8=0; // Apaga LED8 se sensores = 0 LED1=1; // Acende LED1 atraso_ms (5000); // Atraso 5s LED1=0; // Apaga LED1 do teste = DIPS & 0xF0; // Separa sensores while (teste == 0x00); // Aguarda sensores <> 0 LED1=1; // Acende LED1 atraso_ms (5000); // Atraso 5s LED1=0; // Apaga LED1 while (DIP1) BZ = 0; // Aciona BZ enquanto DIP1=1 BZ = 1; // Desliga BZ atraso_ms (100); // Atraso debouncing chave // Fim do Loop Infinito // Fim do Programa Principal 28

33 7.4. Estrutura for Sintaxe: for (inicialização;condição;incremento) instrução 1; instrução 2;... Forma simplicada: for (inicialização;condição;incremento) instrução 1; 7.5. PROG7.C Contador de Eventos Entradas: PB = Clock do Contador DIPS = Programação da Contagem máxima Saídas: LEDS = Indicação da Contagem BZ = Indicação sonora do término de Contagem Descrição: A cada pulso em PB ( ) deve-se incrementar a contagem e atualizar os LEDS. A cada incremento deve-se comparar a contagem atual com a contagem máxima programada pela DIPS. Caso a contagem atingir o número programado deve-se dar 5 bips no buzzer (com o valor da contagem piscando concomitantemente), zerar a contagem e voltar peças. 29

34 PROG7 unsigned char CONT=0 insigned char i Apaga LEDS Desliga BZ PB = 1 S Atraso 20ms PB = 0 S Atraso 20ms CONT +1 LEDS = CONT DIPS=CONT S I=0;i<5;i++ LEDS=CONT Aciona BZ Atraso 0,5s CONT +1 LEDS=0x00 Desliga BZ Atraso 0,5s 30

35 /* PROG7.C CONTADOR DE EVENTOS Entradas: PB = Clock do Contador DIPS = Programação da Contagem máxima Saídas: LEDS = Indicação da Contagem BZ = Indicação sonora do término de Contagem */ // Diretivas de Pré-Processamento #include <at89x52.h> #include <atraso.h> // FUNÇÃO PRINCIPAL void main () // Inicio do programa principal unsigned char i,cont =0x00; // Declaração de variável local LEDS = 0x00; // Apaga LEDS BZ = 1; // Desliga BZ while (1) // Inicio do Loop Infinito while (PB) // Aguarda PB ir para zero atraso_ms (20); // Deboucing while (!PB) // Aguarda PB ir para um atraso_ms (20); // Deboucing CONT++; // Incrementa contagem LEDS = CONT; // Atualiza LEDS if (CONT == DIPS) // Verifica final de contagem for (i=0;i<5;i++) // Faz 5 bips no BZ LEDS = CONT; BZ = 0; atraso_ms (500); LEDS - 0x00; BZ = 1; atraso_ms (500); CONT = 0x00; // Zera CONT LEDS = 0x00; // Zera LEDS // Fim do Loop Infinito // Fim do Programa Principal 31

36 7.5. Exercícios Resolvidos EXR6.C Mudar a instrução que incrementa a contagem no PROG7 (com realce em amarelo) para incremento em decimal. - Para fazer o incremento em decimal, segue-se o seguinte algoritmo:. Antes de incrementar a contagem, testa-se o nibble menos significativo de CONT;. Se o nibble menos significativo for igual a 9, soma-se 7 à CONT ( 0x09+7=0x10 ; 0x19+7=0x20 ; 0x29+7=0x30...). Se o nibble menos significativo for diferente de 9, some-se 1 a CONT. Este trecho de programa ficaria assim: teste = CONT & 0xF0; if (teste = = 0x09) CONT = CONT+7 else CONT++; OBS: O algoritmo utilizado tem uma situação de erro: quando o valor de CONT for 0x99, ao somar-se 7 o resultado ficaria 0xA0 ao invés de 0x00. Uma das soluções possíveis é dada a seguir if (CONT!= 0x99) teste = CONT & 0x0F; if (teste = = 0x09) CONT = CONT+7 else CONT++; else CONT = 0x Exercícios Propostos EX8.C Dê um programa que realize uma contagem de tempo em segundos nos LEDS ( de 0x00 a 0x99). Esta contagem deve estar condicionada à DIP1. Se DIP1=0 o contador deve estar parado, caso contrário o contador segue contando em segundos. EX9.C De um programa que aguarde o acionamento da PB. Quando PB for acionada, realizar uma contagem regressiva nos LEDS de 0x09 a 0x00 (em segundos). Ao chegar a 0x00 o buzzer deve disparar. Um pulso na DIP1 deve desligar o buzzer e retornar ao início do programa Projeto proposto PROJ4.C Projeto de aplicação de livre escolha. Sugestões: Controle de motor de passo, Controle de Temperatura de uma estufa, Controle de velocidade de um motor por PWM, etc. 32

37 8. Atividades não presenciais a) Digitar, compilar e testar os exercícios resolvidos: EXR1.C a EXR6.C b) Resolver os exercícios propostos: EX1.C a EX9.C c) Elaborar os projetos propostos: PROJ1.C a PROJ4.C d) Compactar todos os programas fonte (*.C) e enviar para o professor Salomão até 03/07/

38 Apêndice A Revisão Função OR Função AND Função XOR Função NOT S = A B S = A & B S = A ^ B S =!A A B S A B S A B S A S Tabela de Conversão Binário Hexa Decimal A B C D E F 15 34

39 Apêndice B at89x52.h /* Register Declarations for ATMEL 89x52 Processors Written By - Bernd Bartmann (1999) based on reg51.h by Sandeep Dutta KEIL C compatible definitions are included This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA , USA. In other words, you are welcome to use, share and improve this program. You are forbidden to forbid anyone else to use, share and improve what you give them. Help stamp out software-hoarding! */ #ifndef AT89x52_H #define AT89x52_H /* BYTE addressable registers */ sfr at 0x80 P0 ; sfr at 0x80 LEDS ; sfr at 0x81 SP ; sfr at 0x82 DPL ; sfr at 0x83 DPH ; sfr at 0x87 PCON ; sfr at 0x88 TCON ; sfr at 0x89 TMOD ; sfr at 0x8A TL0 ; sfr at 0x8B TL1 ; sfr at 0x8C TH0 ; sfr at 0x8D TH1 ; sfr at 0x90 P1 ; sfr at 0x98 SCON ; sfr at 0x99 SBUF ; sfr at 0xA0 P2 ; sfr at 0xA0 DIPS ; sfr at 0xA8 IE ; sfr at 0xB0 P3 ; sfr at 0xB8 IP ; sfr at 0xC8 T2CON ; sfr at 0xC9 T2MOD ; sfr at 0xCA RCAP2L ; 35

40 sfr at 0xCB RCAP2H ; sfr at 0xCC TL2 ; sfr at 0xCD TH2 ; sfr at 0xD0 PSW ; sfr at 0xE0 ACC ; sfr at 0xE0 A ; sfr at 0xF0 B ; /* BIT addressable registers */ /* P0 */ sbit at 0x80 P0_0 ; sbit at 0x81 P0_1 ; sbit at 0x82 P0_2 ; sbit at 0x83 P0_3 ; sbit at 0x84 P0_4 ; sbit at 0x85 P0_5 ; sbit at 0x86 P0_6 ; sbit at 0x87 P0_7 ; sbit at 0x80 LED1 ; sbit at 0x81 LED2 ; sbit at 0x82 LED3 ; sbit at 0x83 LED4 ; sbit at 0x84 LED5 ; sbit at 0x85 LED6 ; sbit at 0x86 LED7 ; sbit at 0x87 LED8 ; /* TCON */ sbit at 0x88 IT0 ; sbit at 0x89 IE0 ; sbit at 0x8A IT1 ; sbit at 0x8B IE1 ; sbit at 0x8C TR0 ; sbit at 0x8D TF0 ; sbit at 0x8E TR1 ; sbit at 0x8F TF1 ; /* P1 */ sbit at 0x90 P1_0 ; sbit at 0x91 P1_1 ; sbit at 0x92 P1_2 ; sbit at 0x93 P1_3 ; sbit at 0x94 P1_4 ; sbit at 0x95 P1_5 ; sbit at 0x96 P1_6 ; sbit at 0x97 P1_7 ; sbit at 0x90 T2 ; sbit at 0x91 T2EX ; /* SCON */ sbit at 0x98 RI ; sbit at 0x99 TI ; sbit at 0x9A RB8 ; sbit at 0x9B TB8 ; sbit at 0x9C REN ; 36

41 sbit at 0x9D SM2 ; sbit at 0x9E SM1 ; sbit at 0x9F SM0 ; /* P2 */ sbit at 0xA0 P2_0 ; sbit at 0xA1 P2_1 ; sbit at 0xA2 P2_2 ; sbit at 0xA3 P2_3 ; sbit at 0xA4 P2_4 ; sbit at 0xA5 P2_5 ; sbit at 0xA6 P2_6 ; sbit at 0xA7 P2_7 ; sbit at 0xA0 DIP1 ; sbit at 0xA1 DIP2 ; sbit at 0xA2 DIP3 ; sbit at 0xA3 DIP4 ; sbit at 0xA4 DIP5 ; sbit at 0xA5 DIP6 ; sbit at 0xA6 DIP7 ; sbit at 0xA7 DIP8 ; /* IE */ sbit at 0xA8 EX0 ; sbit at 0xA9 ET0 ; sbit at 0xAA EX1 ; sbit at 0xAB ET1 ; sbit at 0xAC ES ; sbit at 0xAD ET2 ; sbit at 0xAF EA ; /* P3 */ sbit at 0xB0 P3_0 ; sbit at 0xB1 P3_1 ; sbit at 0xB2 P3_2 ; sbit at 0xB2 PB ; sbit at 0xB3 P3_3 ; sbit at 0xB4 P3_4 ; sbit at 0xB5 P3_5 ; sbit at 0xB6 P3_6 ; sbit at 0xB7 P3_7 ; sbit at 0xB7 BZ ; sbit at 0xB0 RXD ; sbit at 0xB1 TXD ; sbit at 0xB2 INT0 ; sbit at 0xB3 INT1 ; sbit at 0xB4 T0 ; sbit at 0xB5 T1 ; sbit at 0xB6 WR ; sbit at 0xB7 RD ; /* IP */ sbit at 0xB8 PX0 ; sbit at 0xB9 PT0 ; sbit at 0xBA PX1 ; sbit at 0xBB PT1 ; 37

42 sbit at 0xBC PS ; sbit at 0xBD PT2 ; /* T2CON */ sbit at 0xC8 T2CON_0 ; sbit at 0xC9 T2CON_1 ; sbit at 0xCA T2CON_2 ; sbit at 0xCB T2CON_3 ; sbit at 0xCC T2CON_4 ; sbit at 0xCD T2CON_5 ; sbit at 0xCE T2CON_6 ; sbit at 0xCF T2CON_7 ; sbit at 0xC8 CP_RL2 ; sbit at 0xC9 C_T2 ; sbit at 0xCA TR2 ; sbit at 0xCB EXEN2 ; sbit at 0xCC TCLK ; sbit at 0xCD RCLK ; sbit at 0xCE EXF2 ; sbit at 0xCF TF2 ; /* PSW */ sbit at 0xD0 P ; sbit at 0xD1 FL ; sbit at 0xD2 OV ; sbit at 0xD3 RS0 ; sbit at 0xD4 RS1 ; sbit at 0xD5 F0 ; sbit at 0xD6 AC ; sbit at 0xD7 CY ; /* BIT definitions for bits that are not directly accessible */ /* PCON bits */ #define IDL 0x01 #define PD 0x02 #define GF0 0x04 #define GF1 0x08 #define SMOD 0x80 #define IDL_ #define PD_ #define GF0_ #define GF1_ #define SMOD_ /* TMOD bits */ #define M0_0 #define M1_0 #define C_T0 #define GATE0 #define M0_1 #define M1_1 #define C_T1 #define GATE1 0x01 0x02 0x04 0x08 0x80 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 38

43 #define M0_0_ #define M1_0_ #define C_T0_ #define GATE0_ #define M0_1_ #define M1_1_ #define C_T1_ #define GATE1_ #define T0_M0 #define T0_M1 #define T0_CT #define T0_GATE #define T1_M0 #define T1_M1 #define T1_CT #define T1_GATE #define T0_M0_ #define T0_M1_ #define T0_CT_ #define T0_GATE_ #define T1_M0_ #define T1_M1_ #define T1_CT_ #define T1_GATE_ #define T0_MASK #define T1_MASK #define T0_MASK_ #define T1_MASK_ /* T2MOD bits */ #define DCEN #define T2OE #define DCEN_ #define T2OE_ 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0x0F 0xF0 0x0F 0xF0 0x01 0x02 0x01 0x02 /* Interrupt numbers: address = (number * 8) + 3 */ #define IE0_VECTOR 0 /* 0x03 external interrupt 0 */ #define TF0_VECTOR 1 /* 0x0b timer 0 */ #define IE1_VECTOR 2 /* 0x13 external interrupt 1 */ #define TF1_VECTOR 3 /* 0x1b timer 1 */ #define SI0_VECTOR 4 /* 0x23 serial port 0 */ #define TF2_VECTOR 5 /* 0x2B timer 2 */ #define EX2_VECTOR 5 /* 0x2B external interrupt 2 */ #endif 39

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

Leia mais

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes ITENS FUNDAMENTAIS Profª Angélica da Silva Nunes CONCEITOS BÁSICOS Hardware - é a parte física do computador, tais como: teclado, monitor de vídeo, etc. Software - são os programas e aplicativos que permitem

Leia mais

O COMPUTADOR. Introdução à Computação

O COMPUTADOR. Introdução à Computação O COMPUTADOR Introdução à Computação Sumário O Hardware O Software Linguagens de Programação Histórico da Linguagem C Componentes Básicos do Computador O HARDWARE: O equipamento propriamente dito. Inclui:

Leia mais

Programação: Tipos, Variáveis e Expressões

Programação: Tipos, Variáveis e Expressões Programação de Computadores I Aula 05 Programação: Tipos, Variáveis e Expressões José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor é uma entidade

Leia mais

Variáveis e Comandos de Atribuição

Variáveis e Comandos de Atribuição BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

PROGRAMAÇÃO. para MICROCONTROLADORES. www.u8051.com.br. 01Ver. 0. 1701

PROGRAMAÇÃO. para MICROCONTROLADORES. www.u8051.com.br. 01Ver. 0. 1701 0101010101010 PROGRAMAÇÃO LINGUAGEM C para MICROCONTROLADORES 8051 Com base na IDE JFE Editor e SDCC Compiler Elementos da Linguagem C Arquitetura Interna do 8051 Ports de entrada e saída Timers Comunicação

Leia mais

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,

Leia mais

Tipo de Dados em Linguagem C

Tipo de Dados em Linguagem C Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa

Leia mais

Algoritmo e Técnica de Programação - Linguagem C

Algoritmo e Técnica de Programação - Linguagem C Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema

Leia mais

Programando em C++ Histórico da Linguagem C

Programando em C++ Histórico da Linguagem C Programando em C++ Joaquim Quinteiro Uchôa joukim@comp.ufla.br DCC-UFLA, 2002 Programando em C++ p.1/38 Histórico da Linguagem C Linguagem C: 1972 - Laboratório Bells, por Dennis Ritchie, a partir da linguagem

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em

Leia mais

LINGUAGEM C. Estrutura básica de um programa

LINGUAGEM C. Estrutura básica de um programa LINGUAGEM C Estrutura básica de um programa Um programa em linguagem C é constituído por uma sequência de funções (módulos) que em conjunto irão permitir resolver o problema proposto. Estas funções contêm

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

EXPERIÊNCIA 7: LINGUAGEM DE ALTO NÍVEL C PARA 8051 E GRAVAÇÃO de programas EM EPROM

EXPERIÊNCIA 7: LINGUAGEM DE ALTO NÍVEL C PARA 8051 E GRAVAÇÃO de programas EM EPROM EXPERIÊNCIA 7: LINGUAGEM DE ALTO NÍVEL C PARA 8051 E GRAVAÇÃO de programas EM EPROM Autores: Prof. Dr. André Riyuiti Hirakawa e Prof. Dr. Carlos Eduardo Cugnasca Versão 3.0-2006 1. OBJETIVO Esta experiência

Leia mais

Programação Estruturada I

Programação Estruturada I Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

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

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

Leia mais

Programação em linguagem C EA870 - FEEC - Unicamp

Programação em linguagem C EA870 - FEEC - Unicamp Programação em linguagem C EA870 - FEEC - Unicamp Introdução à linguagem C, para programação de microcontroladores HC11, utilizando o compilador ICC11 Murillo Fernandes Bernardes bernarde@fee.unicamp.br

Leia mais

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação Lógica de Programação 3. INTRODUÇÃO À LINGUAGEM C Caro Aluno Vamos iniciar o terceiro capítulo da nossa disciplina. Agora vamos começar a aplicar os conceitos vistos nos capítulos anteriores em uma linguagem

Leia mais

Programação em Linguagem C 1 CONCEITOS PRELIMINARES

Programação em Linguagem C 1 CONCEITOS PRELIMINARES Linguagem C Índice 1 Conceitos preliminares...1 1.1 Microcomputadores padrão Intel x86...1 1.2 Modos de memória nos microcomputadores...3 1.3 O sistema operacional...3 2 Introdução a Linguagem C...4 2.1

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Exemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes

Exemplos de Programas em C para o 8051 para o compilador crossware EEL Prof. Raimes Moraes Exemplos de Programas em C para o 8051 para o compilador crossware EEL7030 - Prof. Raimes Moraes /* HELLO.C Programa Exemplo No 1 - Ilustra programa para a escrita de dados na porta serial #include

Leia mais

Programação em C++: Introdução

Programação em C++: Introdução Programação em C++: Introdução J. Barbosa J. Tavares Visualização Científica Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo

Leia mais

Manual MifareUSB/Serial

Manual MifareUSB/Serial Manual MifareUSB/Serial 08/2012 V2.6 Manual MifareUSB/Serial Este manual descreve as conexões de hardware e os comandos para leitura, escrita e configurações para os leitores/gravadores de cartão Mifare

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

2. Constantes e Variáveis

2. Constantes e Variáveis 2. Constantes e Variáveis Neste capitulo veremos como os dados constantes e variáveis são manipulados pela linguagem C. O que são constantes inteiras, reais, caracteres e strings. Quais são as regras de

Leia mais

MICROCONTROLADORES FAMÍLIA 8031/8051

MICROCONTROLADORES FAMÍLIA 8031/8051 MANUAL MICROCONTROLADORES FAMÍLIA 8031/8051 PROF. EDSON PEDRO FERLIN CURITIBA, PR ABRIL 2004 Sumário CAPÍTULO 1 INTRODUÇÃO... 3 CAPÍTULO 2 VISÃO GERAL... 4 1.1) Características de Hardware... 6 1.1) Pinagem

Leia mais

Luckas Andre Farias. Criptografia em hardware usando VHDL aplicado a VOIP

Luckas Andre Farias. Criptografia em hardware usando VHDL aplicado a VOIP Luckas Andre Farias Criptografia em hardware usando VHDL aplicado a VOIP Londrina 2012 Luckas Andre Farias Criptografia em hardware usando VHDL aplicado a VOIP Trabalho de Conclusão de curso apresentado

Leia mais

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução Prova Substitutiva Uma Solução Aluno: Matrícula: Uso de Interrupções e do Temporizador 1. Faça um programa (usando o assembly do 8051) para acionamento de um motor de corrente contínua, com as seguintes

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

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

Sistemas Embarcados Programação Embarcada

Sistemas Embarcados Programação Embarcada Sistemas Embarcados Programação Embarcada Instituto Federal de Pernambuco Coordenação de Informática/IFPE Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://alsm.cc Sistemas Embarcados Direitos

Leia mais

Algoritmos e Técnicas de

Algoritmos e Técnicas de INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de Programação Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Curso Prático de C++

Curso Prático de C++ Sumário Autor: Prof. Luiz Bianchi Universidade Regional de Blumenau FUNDAMENTOS... 3 Declaração de variáveis... 4 Tipos de dados... 4 Operador de atribuição... 5 Comentários... 5 Tipos modificados... 6

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

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

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

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

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA. Representação de Dados Tipos de dados: Caracteres (letras, números n e símbolos). s Lógicos. Inteiros. Ponto flutuante: Notações decimais: BCD. A declaração de uma variável vel define o seu tipo. O tipo

Leia mais

EEC2104 Microprocessadores

EEC2104 Microprocessadores EEC2104 Microprocessadores Edição 2005/2006 Contadores / Temporizadores Contadores/temporizadores em geral... Hardware para contagem de impulsos Externos Internos (derivados do relógio interno) Contagem

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

Sistemas Embarcados:

Sistemas Embarcados: Sistemas Embarcados: Microcontroladores Prof. Protásio Laboratório de Microengenharia/DEE/CEAR/UFPB Programação Assembly 8051 Programação Assembly Ferramentas de simulação MCU 8051 IDE v1.4.7 An open source

Leia mais

Desenvolvendo Projetos em BASIC para o Microcontrolador AT89S8252. Com base no BASCOM - Teoria e Prática. Autor: Vitor Amadeu Souza

Desenvolvendo Projetos em BASIC para o Microcontrolador AT89S8252. Com base no BASCOM - Teoria e Prática. Autor: Vitor Amadeu Souza Desenvolvendo Projetos em BASIC para o Microcontrolador AT89S8252 Com base no BASCOM - Teoria e Prática Autor: Vitor Amadeu Souza Dedicatória Dedico este livro a minha querida noiva Renata Leal. Que preciosos

Leia mais

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação Introdução Algoritmos e Lógica de Programação Tipos de dados Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Informações a serem processadas pelo computador. Consideremos

Leia mais

8051 PROGRAMAÇÃO EM C

8051 PROGRAMAÇÃO EM C 1 8051 PROGRAMAÇÃO EM C C E ASSEMBLY for-loop em C int z; for (z=255; z>0; z--) P1=z; loop em Assembly MOV R1,#255 ABC: MOV P1,R1 DJNZ R1,ABC 2 TIPOS DE DADOS (DATA TYPES) E ATRASOS (TIME DELAY) EM C DO

Leia mais

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE http://mcu8051ide.sourceforge.net/ Tela inicial Criar novo projeto:

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Cap1.1 ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM 1. Conceitos básicos Bit = BInary digit = vale sempre 0 ou 1 elemento básico de informação Byte Word = 8 bits processados em paralelo (ao

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

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Prof a.dr a.thatyana de Faria Piola Seraphim (ECO) Prof.Dr.Enzo Seraphim (ECO) Universidade Federal de Itajubá thatyana@unifei.edu.br seraphim@unifei.edu.br Introdução - História A linguagem de programação

Leia mais

DeviceNet Drive Profile CFW-09

DeviceNet Drive Profile CFW-09 Motores Automação Energia Transmissão & Distribuição Tintas DeviceNet Drive Profile CFW09 Manual da Comunicação Manual da Comunicação DeviceNet Drive Profile Série: CFW09 Idioma: Português Versão de Software:

Leia mais

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00 Fundamentos da Programação 32 A. Conceito Variáveis contém dados: VIII. VARIÁVEIS de entrada que o computador precisa manipular; de saída que o computador precisa imprimir; e temporários, utilizados de

Leia mais

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor

Leia mais

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i). Cast (conversão) Um tipo de dado pode ser convertido momentaneamente em outro tipo com um cast. Em linguagem C a sintaxe usada é formada pelo tipo desejado entre parênteses precedendo a expressão a ser

Leia mais

Linguagens de Programação

Linguagens de Programação 68 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 5 Instruções de controle: Parte 2 Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 5.1 Introdução Instrução de repetição for Instrução de repetição do while Instrução de seleção

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

METODOLOGIAS DE PROGRAMAÇÃO

METODOLOGIAS DE PROGRAMAÇÃO METODOLOGIAS DE PROGRAMAÇÃO 1. GENERALIDADES Todo programa a ser elaborado deve ser considerado como um produto a ser desenvolvido. Para tal, uma série de etapas devem ser cumpridas até a obtenção do programa

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2016 Linguagem de Programação C 2 1 Linguagem de Programação C Os programas em C consistem em

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 Linguagem C: Desenvolvida por Dennis Ritchie nos laboratórios da AT&T Bell (EUA) no início dos anos 70; Algol

Leia mais

Organização de Computadores Como a informação é processada?

Organização de Computadores Como a informação é processada? Curso de ADS/DTEE/IFBA Organização de Computadores Como a informação é processada? Prof. Antonio Carlos Referências Bibliográficas: 1. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear 2.

Leia mais

UNIVERSIDADE LUTERANA DO BRASIL ULBRA CONTROLE DE MOTOR DE PASSO VIA PORTA PARALELA -BUILDER C++ FABRÍCIO DE MARI

UNIVERSIDADE LUTERANA DO BRASIL ULBRA CONTROLE DE MOTOR DE PASSO VIA PORTA PARALELA -BUILDER C++ FABRÍCIO DE MARI UNIVERSIDADE LUTERANA DO BRASIL ULBRA CONTROLE DE MOTOR DE PASSO VIA PORTA PARALELA -BUILDER C++ FABRÍCIO DE MARI Canoas, junho de 2007. SUMÁRIO 1. INTRODUÇÃO...03 1.1 Objetivo...04 1.2 Justificativa...04

Leia mais

Convertendo Algoritmos para a Linguagem C

Convertendo Algoritmos para a Linguagem C onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento

Leia mais

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial Periféricos Integrados do 8051 Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial Periféricos Integrados do 8051 Portas de entrada e saída O 8051

Leia mais

Curso Java Starter. www.t2ti.com 1

Curso Java Starter. www.t2ti.com 1 1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do

Leia mais

Trabalho de Formatura: Curso de Linguagem C. Autor: Jair Gustavo de Mello Torres Orientador: Carlos Antônio Alves

Trabalho de Formatura: Curso de Linguagem C. Autor: Jair Gustavo de Mello Torres Orientador: Carlos Antônio Alves Trabalho de Formatura: Curso de Linguagem C Autor: Jair Gustavo de Mello Torres Orientador: Carlos Antônio Alves Ilha Solteira - Junho de 2006 Sumário Módulo 1 Apresentação do Histórico e das Características

Leia mais

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1: Inteligência É a faculdade de criar objetos artificiais, especialmente ferramentas para fazer ferramentas. Henri Bergson. WHILE Além dos comandos if-else e switch, o controle de fluxo de um programa pode

Leia mais

LINGUAGEM C PARA O 8051

LINGUAGEM C PARA O 8051 LINGUAGEM C PARA O 8051 Disciplina de Microcontroladores Prof. Rubão VARIÁVEIS E TIPOS DE DADOS SIMPLES Char 8 bits Short e int 16 bits Long 32 bits Float 32 bits Unsigned int 16 bits Unsigned long 32

Leia mais

INFORMATIVO DE PRODUTO

INFORMATIVO DE PRODUTO Unidade Discadora Telefônica - Para Monitoramento Remoto Até 5 Números Código: AFDISC A unidade discadora telefônica para monitoramento remoto, código AFDISC é um equipamento que deve ser instalado em

Leia mais

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

Programação Daniel Corteletti Aula 3 Parte III Página 1/7 Programação Daniel Corteletti Aula 3 Parte III Página /7 LINGUAGEM DE PROGRAMAÇÃO - ASSEMLY - PARTE I Assembly - o que é "Assembly" significa montagem. "Assembler" significa montador. Montagem é o ato

Leia mais

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream> Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras

Leia mais

MEC1100 Manual de Instruções v2010.10

MEC1100 Manual de Instruções v2010.10 MEC1100 Manual de Instruções v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212 Londrina PR Brasil http://www.maxwellbohr.com.br 1

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Aula 08 Programação em pascal Pascal Pascal

Leia mais

7. Estrutura de Decisão

7. Estrutura de Decisão 7. Estrutura de Decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação

Leia mais

Descrição e análise da implementação em Assembly MIPS da função itoa

Descrição e análise da implementação em Assembly MIPS da função itoa Descrição e análise da implementação em Assembly MIPS da função itoa Alana Rocha 1, Guilherme Alves 2, Guilherme Nunes 3 e Luiz Guilherme 4 Objetivo e visão geral do documento Este documento tem o objetivo

Leia mais

Estruturas de Dados Aula 15: Árvores 17/05/2011

Estruturas de Dados Aula 15: Árvores 17/05/2011 Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo

Leia mais

Revisão C++ - Parte 1

Revisão C++ - Parte 1 Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos

Leia mais

Especificações. Conteúdo. Compatibilidade de Tags com o GPW-100. Tabela de Revisões

Especificações. Conteúdo. Compatibilidade de Tags com o GPW-100. Tabela de Revisões Manual GPW-100 Rev. A.2 sales@acuraglobal.com Tel.: +55 11 3028-4600 Matriz: Rua Reginata Ducca, 73 09626-100 São Bernardo do Campo SP Fábrica: Doutor Domiciano Costa Moreira, 266 37500-202 Itajubá MG

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 4 Aluno que não sabe programar int main() { cout

Leia mais

Técnicas de Programação I

Técnicas de Programação I Técnicas de Programação I Conceitos básicos C/C++ Material baseado nas aulas da Profa. Isabel Harb Manssour http://www.inf.pucrs.br/~manssour/laproi, entre outros materias Estrutura de Seleção: Comando

Leia mais

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre

INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO. Engenharia Electrotécnica. Microprocessadores. 2ºano - 1ºsemestre INSTITUTO POLITÉCNICO DE BRAGANÇA ESCOLA SUPERIOR DE TECNOLOGIA E DE GESTÃO Engenharia Electrotécnica Microprocessadores 2ºano - 1ºsemestre Microprocessador 8085 Exercícios de Programação em Linguagem

Leia mais

Introdução a C Tipos de Dados Variáveis Operadores

Introdução a C Tipos de Dados Variáveis Operadores Introdução a C Tipos de Dados Variáveis Operadores INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 introdução a C tópicos ciclo de desenvolvimento sistemas numéricos tipos de

Leia mais

Entradas/Saídas. Programação por espera activa Programação por interrupções

Entradas/Saídas. Programação por espera activa Programação por interrupções Entradas/Saídas Programação por espera activa Programação por interrupções Programação por espera activa 1. O programa lê o estado do periférico: CPU pede ao controlador (IN) o valor no registo ESTADO

Leia mais

Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 2000

Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 2000 Laboratório de Sistemas Digitais /0 Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 000 OBJETIVO Aprender a utilizar o Editor de Esquemáticos e o Simulador Lógico Criar e simular os esquemáticos

Leia mais

Algoritmos e Programação usando a Linguagem C. Prof. MSc. Renato Afonso Cota Silva

Algoritmos e Programação usando a Linguagem C. Prof. MSc. Renato Afonso Cota Silva Algoritmos e Programação usando a Linguagem C Prof. MSc. Renato Afonso Cota Silva 1 2 Aula 1 Introdução à Linguagem C... 4 1.1 Introdução... 4 1.2 Fundamentos da Linguagem... 5 1.3 Comandos de Entrada

Leia mais

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEFINIDOS PELO USUÁRIO Prof. Protásio DEE UFPB 1 Estruturas É uma coleção de variáveis que são referenciadas sob um único nome. Uma estrutura fornece

Leia mais

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL

Introdução ao Arduino. Pessanha Santos ASPOF EN-AEL Introdução ao Arduino Pessanha Santos ASPOF EN-AEL Programa 1. Introdução à plataforma de desenvolvimento Arduino 2. Análise à sua constituição 3. Software de desenvolvimento Arduino 4. Estrutura e Sintaxe

Leia mais

Software RedeMB5 Manual do Usuário (Ver. 2)

Software RedeMB5 Manual do Usuário (Ver. 2) Manual do Usuário (Ver. 2) 1. Introdução O software RedeMB5 é uma ferramenta que permite monitorar em tempo real 247 medidores de energia ou multitransdutores digitais KRON em uma rede padrão RS-485 com

Leia mais