Introdução à programação de microcontroladores PIC. Introdução à programação de microcontroladores

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

Download "Introdução à programação de microcontroladores www.pictronics.com.br PIC. Introdução à programação de microcontroladores www.pictronics.com."

Transcrição

1 Introdução à programação de microcontroladores PIC Introdução à programação de microcontroladores Nelson Camilo de Almeida Jan/2011

2 Conteúdo 1- Introdução PIC geral 2 - Introdução a programação 3 - Acender e apagar Led (delay_chaves) e Display 7 seguimentos 4 - Display LCD 5 - RS232 6 Conversor AD 7 - Interrupção Flag's 8 PWM 9 - EEPROM interna 10 - I2C Programas utilizados: MPLAB PICC-CCS Lite Proteus v7.7 Introdução: Diferença entre Microprocessador e Microcontrolador Os microcontroladores, surgidos em torno de dez anos após o surgimento dos primeiros microprocessadores, foram uma adaptação da indústria de eletrônica digital para atender as necessidades do mercado. Essa necessidade se dava pela dificuldade em termos de custos e complexidade de qualquer circuito digital em sistemas embarcados que precisasse de um processamento de dados. Um microprocessador é um circuito muito complexo, em forma de circuito integrado, que pode conter entre alguns milhares (Z80) a 7 milhões de transistores (Pentium II). Estes transistores internos constituem os mais diversos circuitos lógicos: como contadores, registradores, decodificadores, e centenas de outros. Estes circuitos lógicos são dispostos de maneira complexa, dando ao microprocessador a capacidade de executar operações lógicas, aritméticas, e de controle. Porém, apesar da sua grande capacidade de processamento, os microprocessadores são desprovidos de dispositivos essenciais para o funcionamento de um sistema. Por exemplo, para se fazer uma simples circuito de controle de um elevador seriam necessários um microprocessador, memória ROM para o programa, memoria RAM para os dados, de uma porta paralela para dar saída aos acionamentos, de uma outra porta pra receber os sinais digitais dos sensores, de uma porta serial para fazermos as configurações e rodarmos os diagnósticos, de um conversor AD para ler o sensor de carga que informa o peso total das pessoas que entram no elevador, de um temporizador para medir o tempo que a porta deve ficar aberta, dentre outros. Com essa extensa lista, chegamos a um circuito cujo diagrama de blocos é mostrado na Figura 1.

3 Figura 1: Diagrama em blocos do circuito para o elevador. Para a realização desse circuito, precisaríamos de uma placa controladora de tamanho razoável e com muitos CI s. Desta forma o circuito seria caro e perderia confiabilidade devido à grande quantidade de componentes, o que seria fatal para qualquer indústria que deseja ser competitiva. Além disso, haveria um processamento demasiadamente sofisticado para o problema proposto. Desse problema é que surgiram os Microcontroladores, que englobam em um único circuito integrado grande parte dos periféricos listados no exemplo acima. Em um microcontrolador, as memórias RAM e ROM, conversor AD, temporizadores, controladores serial e paralelo e a CPU em sí são todas integrados em um bloco. Por serem compostos apenas de uma peça, eles tem muito maior confiabilidade, são mais baratos, consomem menos energia, têm a fase de projeto reduzida, além de terem a manutenção facilitada. Ou seja, são muitas as vantagens em relação ao uso de um microprocessador com circuito. Afora isso, como não será feito processamento sofisticado, sua CPU não precisa ter uma grande capacidade de processamento, mas deve oferecer um conjunto de instruções simples, que gere programas pequenos e de rápida execução, ou seja, as instruções devem ser pequenas e velozes. É preciso ainda oferecer uma forma simples de se interfacear com outros periféricos que venham a ser adicionados. Levando em conta tudo que foi dito, chegamos ao diagrama em blocos da figura 2, onde se apresenta a típica arquitetura de um microcontrolador. É claro que, de acordo com a finalidade do microcontrolador, é possível integrar mais recursos e tal possibilidade foi representada pelos blocos rotulados com "etc".

4 Figura 2: Exemplo de arquitetura de um Microcontrolador. RISC e CISC Na sua essência, uma máquina RISC oferece um número muito reduzido de instruções, desde uma a poucas dezenas, e cada instrução apenas realiza uma ação muito simples. Se este conjunto satisfizer o critério de ser genérico, isto é, permitir programar qualquer algoritmo, então temos de reconhecer a grande vantagem desta abordagem: a sua simplicidade facilita a construção hardware da arquitetura do microcomtrolador. Nomeadamente, a Unidade de Controle da CPU fica mais simples e, portanto, menor, onde ocupa menor área na pastilha ('chip') do material semicondutor (Silício, habitualmente) sobre o qual são implantados os circuitos digitais que realizam os componentes do controlador. Ficando a Unidade de Controle menor, mais espaço livre fica na CPU, que pode ser aproveitado para outras unidades que aumentem o ritmo de execuções do CPU, por exemplo, um maior número de registadores de dados, uma memória interna ao CPU, etc. Uma máquina CISC segue uma filosofia oposta, procurando suportar o mais diretamente possível os mecanismos das instruções da linguagem de alto nível. A sua principal desvantagem é que a Unidade de Controle fica mais complexa, dada a variedade e complexidade das instruções. Para além do mencionado aspecto de aumentar o espaço ocupado pelos circuitos, isto também dificulta as otimizações das micro-ações que a Unidade de Controle deve realizar, para obter execuções mais rápidas das instruções. Por exemplo, no modelo CISC, dada a grande variedade de instruções, estas têm formatos variáveis e as suas representações em bits variam, por exemplo, desde 1 até 6 bytes, equivalente aos seus tipos. Observações importantes: A letra F (PIC16F877) identifica que o microcontrolador em questão utiliza a tecnologia FLASH, ou seja, pode ser regravado. Alguns modelos (que utilizam a letra C no nome, como o PIC16C877) só podem ser gravados uma única vez e são mais baratos. Outros modelos da família 16 (como o PIC16F870, PIC16F628, PIC16F84,...) possuem variações em termos de recursos (com mais ou com menos pinos de I/Os,

5 entradas analógicas, memória ROM, memória RAM, etc...), mas todos podem ser programados com a mesma linguagem. Modelos da família 18 são mais rápidos e um pouco mais caros, continuando a ser de 8 bits. Modelos da família 24 são de 16 bits, e indicados para aplicações que exijam mais poder de processamento. Os microcontroladores PIC são indicados para aplicações mais simples, que não necessitem de grande volume de dados manipulados, e que não necessitem processamento em tempo real de alto desempenho. Quando transferimos um programa para o microcontrolador, este deve estar em linguagem de máquina (ARQUIVO HEX), e será armazenado na memória ROM do microcontrolador. Esta memória não será apagada até que outro programa seja enviado, mesmo que a alimentação de energia elétrica seja desativada. Requisitos de Hardware

6

7 Opcionais: Introdução à programação Fluxograma: Os fluxogramas são ferramentas que auxiliam na programação e na codificação de programas. Na realidade são elementos gráficos utilizados para estabelecer a sequencia de operações necessárias para o cumprimento de determinada tarefa e, consequentemente, a resolução de um problema. Variáveis de dados Variável é uma representação simbólica para elementos pertencentes a um determinado conjunto. As variáveis são armazenadas na memória do microcontrolador e podem assumir qualquer valor dentro do conjunto de valores possíveis. De fato, as variáveis ficam localizadas na memória do equipamento, não em qualquer tipo de memória, mas na chamada memória RAM. Isto significa que num microcontrolador, boa parte da memória é ocupada por variáveis, definidas pelo programa em execução. As variáveis são classificadas segundo o tipo de dado que será armazenado e podem ser: numéricas, caractere, alfanuméricas e lógicas. Variáveis e tipos de dados A linguagem C disponibiliza ao programador uma gama de tipos de dados. A implementação C da CCS possibilita o uso de quase todos os tipos de dados disponíveis em C padrão ANSI.

8 Veja os tipos de dados básicos disponíveis: Tipo Tamanho em bits Intervalo Descrição char 8 0 a 255 Caractere int 8 0 a 255 Inteiro float E-38 a 3.4E+38 Ponto flutuante void 0 nenhum valor vazio Modificadores de tipo Além dos tipos de dados vistos, podemos utilizar comandos especiais da linguagem C para modificar os tipos básicos, de forma a obter outros tipos de dados. Esses comandos especiais são chamados de modificadores de tipo e são os seguintes: signed, unsigned, short e long. O modificador signed pode ser utilizado para modificar um tipo base de dados de forma que ele possa representar tanto números positivos quanto negativos. Note que devido ao fato de utilizar um bit para representação do sinal, a magnitude absoluta da representação do tipo modificado será metade da magnitude do tipo não modificado. Assim, um tipo de dados signed int pode representar valores de -128 a +127 em vez de 0 a 255. O modificador unsigned define um tipo de dado sem sinal, o que é o padrão do compilador da CCS. Note que o padrão ANSI especifica que os tipos padrão de dados da linguagem C é signed. Já o modificador short é utilizado para definir uma variável de tamanho menor que o do tipo modificado, ou seja, uma versão reduzida do tipo especificado. Assim, se especificarmos uma variável como sendo do tipo short int, ela será uma versão reduzida de int, o que no caso do compilador CCS cria uma variável de apenas 1 bit de tamanho (o que é chamado de flag ou sinalizador). Finalmente, temos o modificador long, utilizado para ampliar a magnitude da representação do tipo especificado. Desta forma, um tipo de dado long int terá um tamanho de 16 bits, ou seja, irá ocupar duas posições de memória RAM do PIC e terá magnitude de 0 a Outros tipos de dados específicos do compilador CCS C int1: especifica valores de 1 bit (equivalente ao short int padrão); boolean: especifica valores booleanos de bit (equivalente ao short int e int1); int8: especifica valores de 8 bits; byte: especifica valores de 8 bits; int16: especifica valores de 16 bits; int32: especifica valores de 32 bits. A seguir, temos uma tabela com todos os tipos de dados disponíveis por padrão no compilador CCS:

9 Operadores A linguagem C possui uma gama de operadores, sendo possivelmente uma das linguagens com maior numero de operadores disponível atualmente. Esta característica e um dos pontos positivos da linguagem, já que C agrega aos operadores comumente encontrados nas linguagens de alto nível, os operadores encontrados frequentemente em linguagens de baixo nível como o Assembly. Podemos classificar os operadores da linguagem C em sete categorias principais: atribuição, aritméticos, relacionais, lógicos, lógicos bit a bit, de memoria e outros. Atribuição A primeira categoria de operadores e também a mais utilizada. Em C, o operador de atribuição "=" e utilizado para atribuir um determinado valor a uma variável. Um exemplo de atribuição: x = 10; y = x; Podemos verificar no programa anterior duas operações de atribuição: na primeira foi atribuído o valor 10 a variável "x", na segunda, foi atribuído o valor de "x" (que e 10) a variável "y". Conclui-se então que ao final do programa, "y" será igual a 10. Repare que a atribuição e sempre avaliada da direita para a esquerda é não e possível realizar uma atribuição no sentido inverso.

10 Aritméticos São utilizados para determinar ao compilador que efetue determinada operação matemática em relação a um ou mais dados: Tabela de operadores Operador Ação + Adição - Subtração * Multiplicação / Divisão % Resto de divisão inteira ++ Incremento -- Decremento Os operadores de adição, subtração, multiplicação e divisão dispensam comentários. O operador % e utilizado para retornar o resto de uma operação de divisão inteira. Vejamos um exemplo: 5 / 2 = 2,5 em uma divisão real, ou 5 / 2 = 2, em uma divisão inteira, sendo o resto igual a 1. Assim, o resultado de 5 / 2 é 2 e o resultado de 5%2 e igual a 1. Os operadores de incremento e decremento são utilizados para somar 1 (incremento) ou subtrair 1 (decremento) de uma variável. A forma geral para utilização destes dois últimos operadores é: variavel++; ou variavel--; Ou ainda por meio de uma atribuição: variavel_1 = variavel_2 ++; ou variavel_1 = variavel_2 --; Observe que em ambos os casos, a atribuição ocorre da seguinte forma: o valor da variável "variavel_2" e armazenado em variável_1 e apos isso o conteúdo de "variave_2" é incrementado ou decrementado. No entanto, em C e também possível escrever: variavel_1 = ++ variavel_2; ou variavel_1 = -- variavel_2; Nestes casos, a operação de Incremento/decremento é realizada antes da atribuição propriamente dita.

11 Vejamos um exemplo: int x, y, z; x = 0; y = x ++; z = ++ x; Neste caso, após a execução dos três comandos, o valor da variável x será igual a 2, o valor da variável y será igual a 0 e o valor da variável z será igual a 2. Observação importante: Não e possível utilizar os operadores de incremento ou decremento com variáveis ou tipos de dados complexos, tais como os tipos ponto flutuante. Note que ha uma diferença clara entre escrever "y = x + 1" e "y = ++x": Ambas produzirão o mesmo resultado em y, no entanto, no primeiro caso, somente a variável "y", alvo da atribuição, é alterada. Já no segundo caso, tanto "y", como "x" são alteradas! Relacionais São utilizados em testes condicionais para determinar a relação existente entre os dados: Operador Ação > Maior que >= Maior ou igual a < Menor que <= Menor ou igual a == Igual a!= Diferente de Tabela de operadores relacionais Não ha muito que falar sobre estes operadores, já que o seu funcionamento e idêntico ao que todos estudamos na disciplina de matemática e que utilizamos no nosso dia-a-dia. Lógicos Booleanos Os operadores lógicos ou booleanos são utilizados para realizar conjunções, disjunções ou negações entre elementos em um teste condicional. Os operadores 1ogicos somente podem resultar em um dos valores: verdadeiro ou falso. Operador Ação && AND (E) OR (OU)! NOT (NAO) Tabela de operadores lógicos

12 Os operadores relacionais são elementos de suma importância na construção de testes condicionais. Com esses operadores podemos relacionar diversas condições diferentes em um mesmo teste logico. Vejamos um exemplo: int x, y; x = 10; if (x > 5 && x < 20) y = x; Como podemos verificar a variável "y" somente será igual ao valor da variável "x" se o valor de "x" for maior que 5 e "x" for menor que 20. O que nos leva a concluir que ao final da execução do programa "y" será igual a 10. Lógicos Bit a Bit Os operadores 1ogicos bit a bit são utilizados para realizar operações logicas entre elementos ou variáveis. No entanto, ao contrario dos operadores lógicos simples, os operadores lógicos bit a bit podem resultar em um valor da mesma magnitude dos elementos operados. Outros Operadores Operador Ação & AND (E) OR (OU) ^ XOR (OU exclusivo) ~ NOT (complemento de um) >> Deslocamento a direita << Deslocamento a esquerda Tabela: Operadores lógicos bit-a-bit Além dos operadores anteriormente citados, podemos encontrar ainda outros operadores não tão conhecidos em C: Operador Ação? Operador ternário condicional, Separador de expressões. Separador de estruturas -> Ponteiro de elemento de estrutura (tipo) Operador de Modelagem de dado sizeof Retorna o tamanho da variável Tabela: Outros operadores

13 Exemplos: int liga_led(void) output_high (pin_a0); // ativação do pino 0 da porta A int desliga_led(void) output_low (pin_a0); // deslisa o pino 0 da porta A main() while (true) (input (pin_b0) == 1)? liga_led() : desliga led(); Associação de operadores Para facilitar a vida do programador, a linguagem C inclui ainda outra característica que é a abreviação de operadores em atribuições e funciona da seguinte forma: Forma reduzida x += y x -= y x *= y Forma expandida x = x + y x = x - y x = x * y Ordem Operador Maior ( ) [ ] ->! ~ (tipo) * & sizeof * / % + - << >> <<= >>= ==!= & ^ &&? = += -= *= /= Menor,

14 Declarações de controle Comando if De maneira geral, o comando if (ou "se" em português) e utilizado para executar um comando ou bloco de comandos no caso de uma determinada condição ser avaliada como verdadeira. Opcionalmente, e também possível executar outro comando ou bloco de comandos no caso da condição seja avaliada como falsa. A forma geral do comando if é: if (condição) comandoa; else comandob; Outra forma: if (condição) comandoa1; comandoa2;... else comandob1; comandob2;... Exemplo de código: #include <p16f877.h> #use delay(clock= ) #fuses INTRC, NOWDT, PUT, NOMCLR, NOLVP, NOBROWNOUT int x; main() while (true) x = input_a(); output_b (0); if (x==0) output_high (pin_b0); else if (x==1) output_high (pin_b1); else if (x==2) output_high (pin_b2); else if (x==4) output_high (pin_b3); else output_high (pin_b4);

15 Comando Switch Em alguns casos, como na comparação de uma determinada variável a diversos valores diferentes, o comando if pode tornar-se um pouco confuso ou pouco eficiente. A declaração switch permite a realização de comparações sucessivas como a anterior, de uma forma muito mais elegante, clara e eficiente. Vejamos então o formato geral da declaração switch: switch (variável) case constante1: comandoa;... break; case constante2: comandob;... break; default: // a diretiva default pode ou não estar presente comandoz;... Exemplo de código: #include <16f877.h> #use delay(clock= ) #fuses HS, NOWDT, PUT, NOBROWNOUT, NOLVP main() while (true) output port_b(0); switch (input_a()) case 0: output_high (pin_b0); break; case 1: output_high (pin_b1); break; case 2: output_high (pin_b2); break; case 3: output_high (pin_b3);

16 break; default: output_high (pin_b4); Laço For O laço for é uma das mais comuns estruturas de repetição, sendo a versão c considerada uma das mais poderosas e flexíveis dentre todas as linguagens de programação. O laço for é dado por: for (inicialização; condição; incremento) comando; ou, for (inicialização; condição; incremento) //bloco de comandos comando1; comando2;... Cada uma das três seções do comando for possui uma função distinta, conforme se segue: Inicialização: esta seção conterá uma expressão válida utilizada malmente para inicialização da variável de controle do laço for Condição: esta seção pode conter a condição a ser avaliada Para decidir pela continuidade ou não do laço de repetição. Enquanto a condição for avaliada como verdadeira, o laço for permanecera em execução. Incremento: esta seção pode conter uma ou mais declarações para incremento da variável de controle do laço. Exemplo de código: #include <16F628.h> #fuses INTRC_IO, NOWDT, PUT, NOBROWNOUT, NOMCLR, NOLVP #use delay(clock= ) #use rs232(baud=19200,parity=n,xmit=pin_b2,rcv=pin_ B1,bits=8) main() int conta; for (conta=0; conta<=10; conta++) printf ( %u\r\n, conta);

17 Laço While Outro tipo de laço disponível na linguagem é o comando while e que possui a seguinte forma geral: while (condição) comando; ou ainda: while (condição) comandol; comando2; Break e Continue no Comando While Também e possível utilizar as clausulas break e continue com o comando while e for. Elas possuem a mesma função para os comandos while e for. Vejamos um exemplo do funcionamento de break e continue com o comando while: Exemplo de código #include <16F628.h> #use delay(clock= ) #fuses HS,NOWDT,PUT,NOBROWNOUT,NOMCLR,NOLVP #use rs232(baud=19200,parity=n,xmit=pin_b2,rcv=pin_b1) main() port_b_pull-ups (true); int x=0; // habilita pull-ups internos // declara a variável x como inteira de 8 bits //e a inicializa com 0 while (x<30) // enquanto x for menor que 30 // se o pino RB3 for igual a 0 sai do 1aço if (!input(pin_b3)) break; x++; if (!(x%2)) continue; // se o resto da divisão de x por 2 for 0 // então termina o ciclo atual Printf ( %u\n\r, x); // imprime o valor da variável x

18 Laço Do-While O último tipo de estrutura de repetição disponível na linguagem C é o comando do (em português "faca"). O comando do e utilizado juntamente com o comando while para criar uma estrutura de repetição com funcionamento ligeiramente diferente do while e for tradicionais. De fato, a diferença entre a estrutura while tradicional e a estrutura do-while é que esta ultima realiza a avaliação da condição de teste no final de cada ciclo de iteração do laço de repetição, ao contrario do que já estudamos sobre o while, o qual realiza o teste no inicio de cada ciclo. A forma geral da estrutura Do-While é: do comando while (condição); ou, do comandoa; comandob;... while (condição); Constantes binárias, hexadecimais e octais Função Printf Valor Base numérica 99 Decimal 099 Octal 0x99 Hexadecimal 0b Binário Formatos aceitos de números pelo compilador PICC-CCS A função prinff e utilizada para possibilitar a saída de dados na linguagem C. A saída de dados e direcionada para o dispositivo padrão de saída, que nos computadores é normalmente o monitor de vídeo. No caso dos PICs, o dispositivo de saída eventualmente disponível é a saída serial. Assim, a função printf é uma excelente forma de transmitir dados serialmente do PIC para outro dispositivo externo, como, por exemplo, um terminal de vídeo ou um microcomputador. O formato geral da função printf e: printf ( argumento(s) );

19 Estes argumentos utilizam o código da barra invertida que se segue: Código Caractere YYY Constante Octal yyy \xyyy Constante hexadecimal yyy \0 Nulo (null) \a Campainha (BEL) \b Retrocesso (backspace) \t Tabulação horizontal \n Linha nova (line feed) \v Tabulação vertical \f Avanço de formulário \r Retorno de carro (Return) \ Aspas \ Apóstrofo \\ Barra invertida \ Configuração do PIC No início da programação do PIC devemos configurar o PIC para começar a programar as tarefas do PIC, essas configurações dependem de PIC para PIC e as principais se seguem. Diretivas Fuses de configuração Fuses são diretivas para configuração inicial de diversos parâmetros de um PIC, essas configurações variam de PIC para PIC e devem ser consultadas no Datasheet de cada PIC para correta configuração, também temos a descrição da configuração dos Fuses na referência de linguagem do compilador PICC em inglês. LP XT HS RC NOWDT WDT NOPUT PUT PROTECT PROTECT_5% PROTECT_50% NOPROTECT NOBROWNOUT BROWNOUT LVP #FUSES para o PIC16F877 Oscilador de baixa potencia < 200 khz Cristal oscilador <= 4mhz Oscilador de Alta Velocidade (> 4mhz) Resistor/Capacitor Oscilador com CLKOUT (saída de clock) Watch Dog Timer desabilitado Watch Dog Timer habilitado Power Up Timer desabilitado Power Up Timer habilitado Código protegido de leitura Protejer 5% da ROM Protejer 50% da ROM Código não protegido de leitura Brownout reset desabilitado Reset quando brownout detectado Low Voltage Programming on B3(PIC16) or B5(PIC18) Programação em baixa voltagem

20 NOLVP CPD NOCPD WRT NOWRT DEBUG NODEBUG Desabilita Low Voltage Programming, B3(PIC16) ou B5(PIC18) usado para I/O Código protegido da EEPROM de dados Proteção da EEPROM desabilitada Proteção de escrita da memória de programa Proteção de escrita da memória de programa desabilitada Debug mode para uso com ICD Debug mode para uso com ICD desabilitado LP XT HS EC_IO INTRC_IO RC INTRC RC_IO WDT NOWDT PUT NOPUT NOMCLR MCLR BROWNOUT NOBROWNOUT LVP NOLVP CPD NOCPD PROTECT NOPROTECT Fuses para o PIC16F628A Oscilador de baixa potencia < 200 khz Cristal oscilador <= 4mhz Oscilador de Alta Velocidade (> 4mhz) Clock externo Oscilador Interno RC, sem CLKOUT (RA6 I/O) Oscilador Resistor/Capacitor com CLKOUT Oscilador Interno RC Oscilador Resistor/Capacitor RA6 I/O Watch Dog Timer (Proteção contra travamento) Desabilita Watch Dog Timer Power Up Timer habilitado Power Up Timer desabilitado Master Clear (RA5) usado como entrada digital Master Clear (RA5) usado como Reset do PIC Reset quando brownout detectado Brownout reset desabilitado Low Voltage Programming on B3(PIC16) or B5(PIC18) Programação em baixa voltagem Desabilita Low Voltage Programming, B3(PIC16) ou B5(PIC18) usado para I/O Código protegido da EEPROM de dados Proteção da EEPROM desabilitada Código protegido de leitura Código não protegido de leitura Diretivas #use #use delay Informa ao compilador a velocidade do clock do sistema. Sintaxe: #use delay (clock = valor) Esta diretiva é necessária para a utilização das funções de atraso de tempo (delay_ms ou delay_us) e também para as rotinas de comunicação serial.

21 #use satandard_io Seleciona o modo padrão de entrada e saída. Sintaxe: #use standard_io (porta) Onde: porta pode ser uma porta de saída, exemplo: #use standard_io (B) #use fast_io Seleciona o modo rápido de entrada e saída. Neste modo o compilador não irá inserir nenhuma instrução para controle dos registradores TRIS do dispositivo, produzindo um código mais rápido e eficiente, porém, devemos alterar o registrador TRIS pelo comando set_tris (x) no início do programa. Exemplo: #use fast_io (B) #use fixed_io Seleciona o modo fixo de entrada e saída. Sintaxe: #use fixed_io (porta_outputs = pino, pino,...) No modo fixo o compilador irá inserir código de configuração dos registradores TRIS a cada utilização dos pinos especificados. Note que o registrador TRIS é programado com a configuração selecionada na diretiva e não pelo tipo de função executado. Exemplo: #use fixed_io (B = pin_b0, pin_b1) #use i2c Habilita o uso da biblioteca interna de comunicação I2C. Sintaxe: #use i2c (opções) Exemplo: #use i2c(master,slow,sda=pin_c4,scl=pin_c3)

22 Opção MASTER SLAVE SCL = pino SDA = pino ADDRESS = nn FAST SLOW RESTART_WDT FORCE_HW Descrição Seta o modo mestre Seta o modo escravo Especifica qual o pino de clock I2C Especifica qual o pino de dados I2C Especifica o endereço do dispositivo em modo escravo Utiliza a especificação de alta velocidade I2C Utiliza a especificação de baixa velocidade I2C Reinicia o watchdog enquanto aguarda dados na função I2C_READ Força a utilização do hardware interno (SSP ou MSSP) do PIC #use rs232 Ativa o suporte a comunicação RS232 Sintaxe: #use rs232 (opções) Opções BAUD = valor XMIT = pino RCV = pino RESTART_WDT INVERT PARITY = x BITS = x FLOAT_HIGH ERRORS BRGH10K ENABLE = pino STREAM = identificador Descrição Especifica a velocidade de comunicação serial. Especifica o pino de transmissão de dados. Especifica o pino de recepção de dados. Determina qual a função getc() reset o watchdog enquanto aguarda a chegada de um caractere. Inverte a polaridade dos pinos de TX/RX. Não pode ser utilizada com o hardware interno. Seleciona a paridade (x pode ser: N (sem paridade), E (paridade par) ou O (paridade ímpar)). Seleciona o número de bits de dados (5 a 9 para o modo por software e, 8 e 9 para o modo hardware). A saída não vai a nível lógico 1. Utilizado com saídas em coletor aberto. Solicita ao compilador que armazene os erros de recepção na variável RS232_ERRORS, resetando os flags de erro quando eles ocorrerem. Permite a utilização das velocidades disponíveis com o bit BRGH em 1 em chips que tenham bugs nesta configuração do hardware. Especifica um pino para atuar como saída de habilitação durante uma transmissão. Utilizado no protocolo RS485. Associa a interface RS232 a um identificador de stream de dados. Os streams de dados são utilizados em algumas funções internas do compilador.

23 Funções de entrada e saída Output_low() Coloca o pino especificado em nível lógico 0. Sintaxe: output_low (pino) Exemplo: Output_low (pin_b0); // coloca pin_b0 em nível lógico 0. Output_high() Coloca o pino especificado em nível lógico 1. Sintaxe: output_high (pino) Exemplo: Output_high (pin_c1); // coloca pin_c1 em nível lógico 1. Output_X() Escreve um byte complete emu ma determinada porta do PIC. Sintaxe: output_a (valor) output_b (valor) output_c (valor) output_d (valor) Exemplo: Output_B (0x25); // Escreve o valor 0x25 no port B Output_toggle() Inverte o valor do pino especificado. Sintaxe: output_toggle (pino) Exemplo: Output_toggle (pin_b4); // Inverte o nível lógico do pino pin_b4 Input() Lê o estado lógico de um pino do PIC. Sintaxe: res = input(pino)

24 Onde: res é o estado do pino pino é um pino do PIC Exemplo: shot int x; x = input (pin_a0); // Lê o estado do pino A0 Input_X() Lê um byte complete de uma porta do PIC. Sintaxe: valor = input_a () valor = input_b () valor = input_c () valor = input_d () Onde: valor é uma variável de 8 bits. Exemplo: int x; x = input_b(); // Lê o estado da porta B Set_tris_X() Configura a direção dos pinos de uma porta do PIC. Sintaxe: set_tris_a ( valor ) set_tris_b ( valor ) set_tris_c ( valor ) set_tris_d ( valor ) Onde: valor é uma variável inteira de 8 bits. Note que o uso desta diretiva é desnecessária com as diretiva #use standard_io e #use fixed_io, já que nestes modos de IO o compilador configura automaticamente a direção dos pinos. Exemplo: set_tris_b (0b ); // Configura os pinos B0 a B3 como entradas e B4 a B7 como saídas

25 Exemplos de códigos /* RS232.h * Arquivo de Comunicação Serial RS232 */ #include <16F877A.h> #device adc=8 #FUSES NOWDT //No Watch Dog Timer #FUSES XT //Crystal osc <= 4mhz for PCM/PCH, 3mhz to 10 mhz for PCD #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #use delay(clock= ) #use rs232(baud=19200,parity=n,xmit=pin_c6,rcv=pin_c7,bits=8) // Fim do arquivo RS232.h /* Arquivo RS232.c de Comunicação Serial RS232 */ #include "RS232.h" void main() setup_adc_ports(no_analogs); setup_adc(adc_off); setup_psp(psp_disabled); setup_spi(spi_ss_disabled); setup_timer_0(rtcc_internal RTCC_DIV_1); setup_timer_1(t1_disabled); setup_timer_2(t2_disabled,0,1); setup_comparator(nc_nc_nc_nc); setup_vref(false); char c; printf ("Digite A ou B!\n\r"); while (true) c = getc(); switch (c)

26 case 'a': printf ("Letra A\n\r"); break; case 'b': printf ("Letra B\n\r"); break; default: printf ("comando nao existe...\n\r"); break; // Fim do arquivo /* Display 7 segmentos * Arquivo 7seg.h */ #include <16F877A.h> #device adc=8 // Configuração do ADC #FUSES NOWDT //No Watch Dog Timer #FUSES XT //Crystal osc <= 4mhz for PCM/PCH, 3mhz to 10 mhz for PCD #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected // Configura Clock #use delay(clock= ) // Configura RS232 #use rs232(baud=19200,parity=n,xmit=pin_c6,rcv=pin_c7,bits=5) // Fim do arquivo 7seg.h /* Arquivo 7seg.c * Display de 7 segmentos */ #include "7seg.h" byte const digito[] = 0b , // 0 Define cada segmento 0b , // 1 dos valores mostrados 0b , // 2 no display de LEDs 0b , // 3 0b , // 4 0b , // 5 0b , // 6

27 0b , // 7 0b , // 8 0b ;// 9 void main() // Função principal setup_adc_ports(no_analogs); // Configura analógicos setup_adc(adc_off); // ADC desligado setup_psp(psp_disabled); // PSP desligado setup_spi(spi_ss_disabled); // SPI delsigado setup_timer_0(rtcc_internal RTCC_DIV_1); // Configura Timer 0 setup_timer_1(t1_disabled);// Configura Timer 1 setup_timer_2(t2_disabled,0,1);// Configura Timer 2 while (true) output_b(0); switch (input_a()) // Testa a porta A case 0: output_b (digito[0]); //printf ("%u\n\r", digito[0]); break; case 1: output_b (digito[1]); printf ("%u\n\r", digito[1]); break; case 2: output_b (digito[2]); printf ("%u\n\r", digito[2]); break; case 3: output_b (digito[3]); printf ("%u\n\r", digito[3]); break; case 4: output_b (digito[4]); printf ("%u\n\r", digito[4]); break; case 5: output_b (digito[5]); printf ("%u\n\r", digito[5]); break; case 6: output_b (digito[6]); printf ("%u\n\r", digito[6]); break; case 7: output_b (digito[7]); printf ("%u\n\r", digito[7]);

28 break; case 8: output_b (digito[8]); printf ("%u\n\r", digito[8]); break; case 9: output_b (digito[9]); printf ("%u\n\r", digito[9]); break; case 10: output_b (digito[0]); printf ("%u\n\r", digito[0]); break; // Fim do arquivo 7seg.c /* Arquivo maint0.h * Trabalhando com Timer 0 e interrupção */ #include <16F877A.h> #device adc=8 #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT//No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #use delay(clock= ) // Fim do arquivo maint0.h /* Arquivo maint0.c * Trabalhando com Timer0 e interrupção para pisca de 1 segundo */ #include "maint0.h" #define led pin_b0 #int_timer0 // Tratamento de interrupção void TIMER0_isr(void) static int conta; // reinicia o timer 0 em 131 mais a contagem que já passou set_timer0(131 + get_timer0()); conta++; if (conta == 125) // se já ocorreram 125 interrupções

29 conta = 0; output_toggle (led); // inverte o estado do led void main() setup_adc_ports(no_analogs); setup_adc(adc_off); setup_psp(psp_disabled); setup_spi(spi_ss_disabled); setup_timer_0(rtcc_internal RTCC_DIV_64); setup_timer_1(t1_disabled); setup_timer_2(t2_disabled,0,1); setup_comparator(nc_nc_nc_nc); setup_vref(false); // habilita interrupções enable_interrupts(int_timer0); enable_interrupts(global); set_timer0(131); // inicia o timer 0 em 131 ( ) para // dividir por 125 while (true); // espera interrupção // Fim do arquivo maint0.c // Arquivo ADC.h #include <16F877A.h> #device adc=10 // ADC em 10bits #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT//No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #use delay(clock= ) #use rs232(baud=19200,parity=n,xmit=pin_c6,rcv=pin_c7,bits=5) // Fim do arquivo ADC.h // Arquivo ADC.C // Conversão Analógico Digital #include "adc.h" #include "mod_lcd.c" // Biblioteca do LCD deve estar junto do arquivo principal

30 void main() long int valor; // variavel de 16 bits int32 val32; // variavel de 32 bits setup_adc_ports(an0_an1_an3); // Configura ADC para 3 canais setup_adc(adc_clock_internal);// ADC clock interno setup_psp(psp_disabled); setup_spi(spi_ss_disabled); setup_timer_0(rtcc_internal RTCC_DIV_1); setup_timer_1(t1_disabled); setup_timer_2(t2_disabled,0,1); setup_comparator(nc_nc_nc_nc); setup_vref(false); lcd_ini(); // inicializa o LCD set_adc_channel(0); // seleciona o canal 0 do ADC while (true) lcd_escreve ('\f'); // apaga o display // O escalonamento é realizado da seguinte forma: // resultado = (5000 * valor lido) / 1023 // Para facilitar os cálculos, somamos um ao // valor lido: // resultado = (5000 * (valor + 1)) / 1024 // simplificando: // resultado = ((valor + 1) * 4) + ((valor + 1) * 113) / 128 // Repare que é necessário converter a segunda parte da // equação para 32 bits para que o compilador efetue o // cálculo corretamente valor = read_adc(); // efetua a conversão A/D // Se o valor é > 0, soma 1 ao valor lido if (valor) valor += 1; val32 = valor * 4 + ((int32)valor * 113) / 128; // imprime o valor da tensão no display // 5000 = 5,000 Volts ou 5000 milivolts printf (lcd_escreve,"tensao = %lu mv", val32); // se a tecla enter for pressionada if (kbhit()) if (getc() == 13) // imprime os resultados na serial printf ("Tensao = %lu milivolts\r\n",val32); printf ("Valor = %lu\r\n",valor); delay_ms (250); // aguarda 250 ms // Fim do arquivo ADC.c

31 // Arquivo LCD.h // Tratamento de LCD alfanumérico #include <16F877A.h> #device adc=8 #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT//No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #use delay(clock= ) #use rs232(baud=19200,parity=n,xmit=pin_c6,rcv=pin_c7,bits=5) //Fim do arquivo LCD.h // Arquivo LCD.c // Tratamento de LCD // arquivo mod_lcd.c deve estar no mesmo diretório do arquivo principal #include "LCD.h" #include "mod_lcd.c" void main() setup_adc_ports(no_analogs); setup_adc(adc_off); setup_psp(psp_disabled); setup_spi(spi_ss_disabled); setup_timer_0(rtcc_internal RTCC_DIV_1); setup_timer_1(t1_disabled); setup_timer_2(t2_disabled,0,1); setup_comparator(nc_nc_nc_nc); setup_vref(false); lcd_ini(); // Inicializa o LCD lcd_escreve ('\f'); // limpa o display // Função lcd_escreve //lcd_escreve ("Curso de PIC"); // Imprime menssagem no LCD printf (lcd_escreve, "Curso de PIC"); int conta = 0; // Variavel de contagem

32 while (true) lcd_pos_xy (1, 2); // Pasiciona cursor no LCD printf (lcd_escreve, "Conta: %3u.", conta); if (conta!= 100) conta++; else conta = 0; delay_ms (100); /* Funções importantes da biblioteca mod_lcd lcd_ini() // inicializa LCD lcd_pos_xy( byte x, byte y) // posição de texto x, y lcd_escreve( char c) // função de escrita no LCD */ // Fim do arquivo LCD.c Configuração de novos projetos no ambiente PICC-CCS Assistente de novos projetos

33 Inicialmente o assistente pede para salvarmos o projeto. Dica: como o compilador gera muitos arquivos é interessante que guardemos cada projeto novo em uma pasta separada, assim certificamos que cada arquivo (.hex) seja facilmente encontrado para gravação. Pasta destino Nome do Projeto Botão Salvar Em seguida, encontramos as telas de configuração do Projeto que vamos desenvolver, seguem diversas telas de configuração de cada periférico do PIC.

34 Guias de configuração Nome do Projeto Selecione o PIC Frequência de funcionamento do PIC Configuração dos Fuses Programa exemplo No MPLab temos algumas configurações: Assistente de Projeto

35 Bem-vindo! Qual PIC? Selecione o PIC Foi encontrado? Compilador Nome do Projeto Salvar na pasta? Buscar compilador Se já existir um arquivo adicione ao projeto, senão, devemos criar um novo. Detalhes do novo projeto Selecione o Programador, no caso MPLab ICD2

36 Barra de ferramentas do gravador Botão compilar Arquivo fonte, no caso em linguagem C Caixa de comunicação do gravador mostrando que está pronto para próxima operação! Dentro do ambiente MPLab, o programador já grava no PIC o arquivo.hex, se for utilizado outro gravador externo, devemos carregar o arquivo.hex para ser gravado, este arquivo está junto com os arquivos gerados na criação do projeto, por isso a necessidade de gravarmos cada projeto em uma pasta separada. Utilizando o Proteus para simular nossos projetos Abrimos o Proteus (ISIS) e inserimos os componentes: Para inserir os componentes

37 Selecione o componente, clicando duas vezes com o botão esquerdo. Insira os componentes e faça as ligações, o hardware depende do software!

38 Arquivo fonte do PIC Frequência do PIC Configuração do Terminal Serial Virtual Tudo configurado, vamos simular! Altere os elementos como se fosse real Clique para simular

39 Se o componente sumiu, clique para vê-lo novamente. Glossário de termos relacionados a microcontroladores PIC PORT : Agrupamento de pinos. Ex : PORT A : Pinos RA0 a RA5. PORT B : Pinos RB0 a RB7. PWM : Modulação por largura de pulso. Permite simular uma saída analógica através de pulsos digitais rápidos e de tamanho regulável. ADC : Conversor digital / analógico. ICSP : In-Circuit Serial Programming (Programação Serial In-Circuit) Recurso de programação serial embutida, permitindo que um gravador seja construído com custo relativamente baixo. RAM : Memória de acesso aleatório, volátil e de alta velocidade de acesso. ROM : Memória de programa, gravada quando se transfere o programa para o microcontrolador. EEPROM : Memória fixa que pode ser gravada e apagada em tempo de execução. SERIAL : Dispositivo de comunicação onde um bit é enviado de cada vez. I2C : Padrão de comunicação serial desenvolvido pela PHILIPS. SPI : Serial Peripheral Interface Interface periférica serial : Padrão de comunicação serial que usa 4 fios.

40 Bibliografia e referências: PEREIRA, Fábio, PIC Programação em C, Editora Érica, 3ª Ed. PEREIRA, Fábio, Microcontroladores PIC Técnicas Avançadas, Editora Érica, 6ª Ed.

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

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

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

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

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

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

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

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

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada. Editor de Ladder para VS7 Versão Teste O editor de ladder é um software de programação que permite que o VS7 e o µsmart sejam programados em linguagem de contatos. Esse editor está contido na pasta Público

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

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

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO 28 CAPÍTULO 5 INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO Interfaces para periféricos de armazenamento: Periféricos de armazenamento,

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

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

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

Prática 8: Comunicação SPI. 8.1 Introdução e objetivos. 8.2 Princípios básicos do protocolo SPI

Prática 8: Comunicação SPI. 8.1 Introdução e objetivos. 8.2 Princípios básicos do protocolo SPI Prática 8: 8.1 Introdução e objetivos Comunicação SPI O protocolo SPI (serial peripheral interface) é um método de comunicação utilizado para interconectar dispositivos ou chips de tal forma que estes

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

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

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

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

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1 Conteúdo Página Operações Lógicas Binárias: AND, OR...2 Operações Lógicas Binárias: OR Exclusivo (XOR)...3 Contatos Normalmente Abertos e Normalmente Fechados. Sensores e Símbolos... 4 Exercício...5 Resultado

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

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

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

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

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

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Aula 08: UCP Características dos elementos internos da UCP: registradores, unidade de controle, decodificador de instruções, relógio do sistema. Funções do processador: controle

Leia mais

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa 1: /****************************************************************************** 2: * Objetivo: Este projeto visa monitorar uma tensão de um sensor e mostrar * 3: * e após a conversão necessária da escala

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

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

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

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

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

Fabio Bento fbento@ifes.edu.br

Fabio Bento fbento@ifes.edu.br Fabio Bento fbento@ifes.edu.br Eletrônica Digital Sistemas de Numeração e Códigos 1. Conversões de Binário para Decimal 2. Conversões de Decimal para Binário 3. Sistema de Numeração Hexadecimal 4. Código

Leia mais

Informática I. Aula 4. http://www.ic.uff.br/~bianca/informatica1/ Aula 4-11/09/2006 1

Informática I. Aula 4. http://www.ic.uff.br/~bianca/informatica1/ Aula 4-11/09/2006 1 Informática I Aula 4 http://www.ic.uff.br/~bianca/informatica1/ Aula 4-11/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

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

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

Tecnologia da Informação. Prof Odilon Zappe Jr

Tecnologia da Informação. Prof Odilon Zappe Jr Tecnologia da Informação Prof Odilon Zappe Jr Conceitos básicos de informática O que é informática? Informática pode ser considerada como significando informação automática, ou seja, a utilização de métodos

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

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo. Circuito de gravação (AVR programmer) Introdução Nossa proposta, nesta parte do trabalho, é apresentar um circuito para gravação ISP (In-System- Programming) para microcontroladores AVR. Este circuito,

Leia mais

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída SEL-0415 Introdução à Organização de Computadores Dispositivos de Entrada e Saída Aula 9 Prof. Dr. Marcelo Andrade da Costa Vieira ENTRADA e SAÍDA (E/S) (I/O - Input/Output) n Inserção dos dados (programa)

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

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

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

Estrutura interna de um microcontrolador

Estrutura interna de um microcontrolador Estrutura interna de um microcontrolador Um microcontrolador é composto por um conjunto de periféricos interligados a uma unidade de processamento e todo este conjunto confere a este componente uma versatilidade

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

Memórias Prof. Galvez Gonçalves

Memórias Prof. Galvez Gonçalves Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais

MEMÓRIA. A memória do computador pode ser dividida em duas categorias:

MEMÓRIA. A memória do computador pode ser dividida em duas categorias: Aula 11 Arquitetura de Computadores - 20/10/2008 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber MEMÓRIA Memória é um termo genérico usado para designar as partes do computador

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Processadores. Prof. Alexandre Beletti Ferreira

Processadores. Prof. Alexandre Beletti Ferreira Processadores Prof. Alexandre Beletti Ferreira Introdução O processador é um circuito integrado de controle das funções de cálculos e tomadas de decisão de um computador. Também é chamado de cérebro do

Leia mais

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega ARDUINO O que é Arduino Arduino foi criado na Itália por Máximo Banzi com o objetivo de fomentar a computação física, cujo conceito é aumentar as formas de interação física entre nós e os computadores.

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos Trabalho compilado da Internet Prof. Claudio Passos Sistemas Numéricos A Informação e sua Representação O computador, sendo um equipamento eletrônico, armazena e movimenta as informações internamente sob

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

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1 Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;

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

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1 Entrada e Saída Prof. Leonardo Barreto Campos 1 Sumário Introdução; Dispositivos Externos; E/S Programada; E/S Dirigida por Interrupção; Acesso Direto à Memória; Bibliografia. Prof. Leonardo Barreto Campos

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

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

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

Quadro de consulta (solicitação do mestre)

Quadro de consulta (solicitação do mestre) Introdução ao protocolo MODBUS padrão RTU O Protocolo MODBUS foi criado no final dos anos 70 para comunicação entre controladores da MODICON. Por ser um dos primeiros protocolos com especificação aberta

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

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

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados 1. Objetivos Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em

Leia mais

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem

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

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1 Introdução à Organização e Arquitetura de Computadores Prof. Leonardo Barreto Campos 1 Sumário Introdução; Evolução dos Computadores; Considerações da Arquitetura de von Neumann; Execução de uma instrução

Leia mais

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos. Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Programação WEB I Estruturas de controle e repetição

Programação WEB I Estruturas de controle e repetição Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Aula 2 Modelo Simplificado de Computador

Aula 2 Modelo Simplificado de Computador Aula 2 Modelo Simplificado de Computador Um computador pode ser esquematizado de maneira bastante simplificada da seguinte forma: Modelo Simplificado de Computador: Memória Dispositivo de Entrada Processador

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

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

Robótica com Arduino

Robótica com Arduino Robótica com Arduino Nesta apresentação veremos conceitos sobre contadores, estrutura de condição if, e trabalharemos com a comunicação Serial entre o Arduino e o Computador. Professor: Paulo Marcos Trentin

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

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

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 2.1 CONCEITO DE BIT O computador só pode identificar a informação através de sua elementar e restrita capacidade de distinguir entre dois estados: 0

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

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

Laboratório - Uso da calculadora do Windows com endereços de rede

Laboratório - Uso da calculadora do Windows com endereços de rede Laboratório - Uso da calculadora do Windows com endereços de rede Objetivos Parte 1: Acesso à Calculadora do Windows Parte 2: Converter entre os sistemas numéricos Parte 3: Converter endereços IPv4 de

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais