Sistemas Microprocessados baseados no PIC16F877A
|
|
|
- Ana Beatriz Lancastre Araújo
- 10 Há anos
- Visualizações:
Transcrição
1 Sistemas Microprocessados baseados no PIC16F877A 20 de outubro de 2014
2
3 Sumário 1 Introdução 1 2 Revisão de Linguagem C 3 3 Ambiente de Desenvolvimento MPLAB X Instalação Compilador XC Ambiente MPLAB X IDE Criando um Novo Projeto Portas de Entrada e Saída Introdução Configuração e Manipulação das Portas Codificação do Primeiro Programa Características Elétricas dos Pinos de E/S Classificação dos Pinos de E/S Faixas de Tensão Schmitt Trigger Resistores de pull-up internos Saídas CMOS em dreno aberto Displays de 7 Segmentos Circuitos com displays Interface com o PIC16F877A Sistema de Interrupções Interrupções Tratamento de Eventos sem Interrupções Tratamento de Eventos com Interrupções Atividade Principal Evento Desvio iii
4 5.3.4 Identificação Tratamento Retorno Interrupção Externa Interrupção por mudança de estado Contadores e Temporizadores Parâmetros dos Timers Origem do Sinal de Clock Estouro (overflow) do Timer Número de Eventos de Contagem e Recarga Prescaler Tempo da Volta e Tempo Total Timer Projeto 1: Cronômetro com LCD Timer Timer Exemplo PWM Conversão Analógico-Digital Configuração Exemplo: Voltímetro Digital Comunicação Serial (USART) 51 9 Interfaces SPI e I 2 C Serial Peripheral Interface Inter-Integrated Circuit Módulo CCP Modo Captura Modo Comparação Modo PWM A Placa de Desenvolvimento 57 B Tabela de Símbolos em Displays de 7 Segmentos 59
5 Lista de Tabelas 4.1 Características Elétricas dos Pinos de E/S do PIC16F877A Níveis de Tensão TTL e CMOS Códigos para exibição de dígitos em displays de 7 segmentos Flags de Interrupção Configurações de prescaler para o Timer v
6
7 Lista de Figuras 4.1 Entradas e saídas digitais Uso de teclas e LEDs nos pinos de E/S Schmitt Trigger Pino com Resistor de Pull-Up interno Alternativas para a conexão de teclas Configuração em barramento com pinos dreno aberto (mostrando apenas saídas) Display de 7 segmentos Configurações e pinagem de displays de 7 segmentos Lógicas de Ativação Interface com um único display de 7 segmentos Interface com displays de 7 segmentos por meio de registradores de deslocamento Interface com displays de 7 segmentos multiplexados no tempo Desvio e retorno causados por uma interrupção Polling (alternativa às interrupções) Analogia para o sistema de interrupções Sistema microprocessado baseado em interrupções Desvios provocados por uma interrupção Circuito referente ao programa Comportamento do timer (analogia) Arquitetura do Projeto Cronômetro vii
8
9 Capítulo 1 Introdução
10 CAPÍTULO 1. INTRODUÇÃO 2
11 Capítulo 2 Revisão de Linguagem C
12 CAPÍTULO 2. LINGUAGEM C 4
13 Capítulo 3 Ambiente de Desenvolvimento MPLAB X 3.1 Instalação Compilador XC8 1. Obtenha o instalador do MPLAB XC8 a partir do endereço: A tela 1 é apresentada ao iniciar a instalação. Utilize os botões Back e Next para navegar pelas telas do wizard. 2. Leia e aceite o termo de compromisso para proceder com a instalação. 3. Na próxima tela do wizard, selecione a opção Install compiler.
14 3.1. INSTALAÇÃO CAPÍTULO 3. MPLAB X 4. Na tela Installation type, deixe a opção Configure MPLAB XC8 C Compiler as a network client desmarcada. 5. O Setup irá solicitar o diretório de instalação. Mantenha o padrão e prossiga para a próxima etapa. 6. Na próxima tela, deixe as duas primeiras opções marcadas. Elas são: Apply settings to all users of this machine e Add xc8 to the PATH environment variable 6
15 CAPÍTULO 3. MPLAB X 3.1. INSTALAÇÃO 7. O instalador solicitará confirmação para prosseguir. 8. Aguarde o final da instalação. 9. Uma vez instalado, prossiga para selecionar a versão gratuita do XC8. Esta versão é suficiente para os propósitos do nosso curso. 7
16 3.1. INSTALAÇÃO CAPÍTULO 3. MPLAB X 10. Clique em Finish para encerrar o instalador. O compilador é uma aplicação em linha de comando, e seu instalador não criará um ícone lançador Ambiente MPLAB X IDE 1. Obtenha o instalador do MPLAB XC8 a partir do endereço: A tela 1 é apresentada ao iniciar a instalação. Utilize os botões Back e Next para navegar pelas telas do wizard. 2. Leia e aceite o termo de compromisso para proceder com a instalação. 3. O Setup irá solicitar o diretório de instalação. Mantenha o padrão e prossiga para a próxima etapa. 8
17 CAPÍTULO 3. MPLAB X 3.1. INSTALAÇÃO 4. O instalador solicitará confirmação para prosseguir. 5. O instalador iniciará a cópia dos arquivos. 6. Durante a instalação, pode ser necessário responder a um diálogo de confirmação de instalação de drivers não assinados. Se o download foi feito pelo link deste tutorial, clique em Instalar esse software de driver mesmo assim. 9
18 3.2. CRIANDO UM NOVO PROJETO CAPÍTULO 3. MPLAB X 7. Desmarque a opção referente aos compiladores XC e encerre o instalador. 3.2 Criando um Novo Projeto Uma vez que o compilador XC8 e o ambiente MPLAB X foram instalados com sucesso, siga os seguintes passos para a criação de um novo projeto. 1. Abra o MPLAB X IDE (atenção para não confundí-lo com o MPLAB IPE). 2. Crie um projeto novo File New Project.... O diálogo abaixo deverá ser exibido. Selecione Standalone Project, da categoria Microchip Embedded. 10
19 CAPÍTULO 3. MPLAB X 3.2. CRIANDO UM NOVO PROJETO 3. Selecione o dispositivo PIC16F877A. 4. Selecione o simulador por software: Simulator. 11
20 3.2. CRIANDO UM NOVO PROJETO CAPÍTULO 3. MPLAB X 5. Selecione o compilador MPLAB XC Forneça um nome para o projeto. No nosso exemplo ele se chamará projetoteste. Atenção para o diretório onde o mesmo será salvo. Não é recomendado o uso de pastas com caracteres acentuados ou espaços. Certifique-se de que a opção Set as Main Project esteja marcada. 12
21 CAPÍTULO 3. MPLAB X 3.2. CRIANDO UM NOVO PROJETO 7. Após a criação do projeto, sua estrutura de arquivos será apresentada na barra lateral Project. Caso esta barra não esteja visível, ative-a pela opção: Window Projects ( Ctrl + 1 ). Assim como para as outras janelas e visões desse ambiente, pode-se posicionar a janela de projeto nos cantos da tela clicando na sua barra de títulos e arrastando para o local desejado. Recomenda-se que a janela de projeto fique localizada na barra lateral esquerda. Se o nome do projeto não estiver em negrito, clique com o botão direito no mesmo e ative a opção Set as Main Project. 8. Clique com o botão direito em Source Files e então selecione a opção New C Source File... 13
22 3.2. CRIANDO UM NOVO PROJETO CAPÍTULO 3. MPLAB X 9. Dê um nome ao arquivo que será criado. No nosso exemplo, ele se chamará main.c. 10. Entre com o seguinte conteúdo: 14
23 CAPÍTULO 3. MPLAB X 3.2. CRIANDO UM NOVO PROJETO 11. Clique na botão Build da barra de ferramentas, representado por um martelo. 12. Caso o programa digitado não contenha erros, a barra inferior terá um conteúdo semelhante ao da figura abaixo. Caso as etapas previamente descritas tenham sido executadas com sucesso, o código de máquina, representado por um arquivo em hexadecimal, será disponibilizado na pasta <pasta do projeto> dist default production. Esse arquivo será usado para tanto para as simulações como para a gravação do PIC16F877A. 15
24 3.2. CRIANDO UM NOVO PROJETO CAPÍTULO 3. MPLAB X 16
25 Capítulo 4 Portas de Entrada e Saída 4.1 Introdução Dentre os periféricos do PIC16F877A, pode-se dizer que os pinos de entrada e saída estão entre os mais usados. Por meio deles, sinais digitais externos podem ser lidos e gerados pelo programa gravado no microcontrolador. Tarefas como a leitura de uma tecla digital ou da saída de um circuito lógico e a exibição de um dado símbolo em um display de 7 segmentos são facilmente realizáveis dispondo dos mecanismos de configuração e manipulação desses pinos. Antes de analisarmos especificamente o caso do PIC16F877A, no entanto, considere o circuito integrado 7408, que contém quatro portas lógicas AND padrão TTL (Figura 4.1a). Alguns dos seus pinos, como por exemplo os pinos 1 e 2, são destinados à entrada de dados digitais. Para o uso típico de uma porta AND, espera-se que um elemento externo se encarregue de impor os estados lógicos alto ou baixo nesses pinos. Outros pinos do CI, como o pino 3, oferecem saídas digitais. Normalmente os circuitos externos à porta AND devem monitorar o estado da saída e reagir apropriadamente. Finalmente, a saída de um circuito pode ser usada como entrada de outro, desde que os limites nas especificações das folhas de dados sejam respeitados 1. Após a análise do componente 7408, fica claro que não é esperado que o projetista usuário deste circuito integrado ligue, por exemplo, uma fonte de sinal digital no pino 3. O caso dos microcontroladores PIC da Microchip é um pouco diferente: os pinos não são definidos como entradas ou saídas no momento de fabricação do CI. Todos os pinos de E/S do PIC16F877A podem servir como entradas ou saídas, mediante configuração (Figura 4.1b). O microcontrolador pode substituir um circuito combinacional qualquer caso seu programa defina o estado das saídas somente em função de entradas. Para esta aplicação, o programa inicialmente configuraria a direção de todos os pinos de E/S envolvidos e então entraria em um laço infinito onde o estado das entradas é constantemente avaliado e os estado das saídas imposto segundo a lógica a ser atingida. Vale ressaltar, no entanto, que o tempo de resposta de uma solução como esta normalmente é pior do que o de um circuito dedicado. Enquanto um circuito lógico responde a um estímulo em poucos nanossegundos, uma única instrução no PIC16F877A com um cristal oscilador de 20MHz leva 200 ns! Ainda assim, diversas aplicações não necessitam de respostas tão rápidas. A fisiologia da visão humana é tal que não percebemos diferença se um display de 7 segmentos for atualizado após 20 ns ou 20 µs. 1 O parâmetro fan out se refere à quantidade de entradas digitais que uma dada saída pode alimentar sem que seu nível lógico seja comprometido.
26 4.2. CONFIGURAÇÃO E MANIPULAÇÃO DAS PORTAS CAPÍTULO 4. PORTAS E/S (a) 7408 (b) PIC16F877A Figura 4.1: Entradas e saídas digitais A configuração e o uso das portas de entrada e saída, tanto para emular circuitos combinacionais como para outras aplicações, será explorada ao longo desse capítulo. 4.2 Configuração e Manipulação das Portas Os pinos de entrada e saída são agrupados em PORTAS. A cada porta são associados dois registradores: 1. um registrador com o prefixo PORT, contendo o estado dos pinos e 2. um registrador com o prefixo TRIS, contendo a configuração da direção dos pinos (entrada ou saída). A partir do registrador PORTB, pode-se manipular o estado das saídas digitais e observar o estado das entradas digitais da porta B. Já o registrador TRISB destina-se à definição da direção de cada pino da porta B, seguindo a seguinte convenção (também válida para os outros registradores TRIS): 1 = entrada digital ( 1 lembra o I de Input) e 0 = saída digital ( 0 lembra o O de Output) Codificação do Primeiro Programa O exemplo ilustrado pela Figura 4.2 e pelo Programa?? configura os 4 primeiros pinos da porta B como entradas (teclas digitais) e os 4 últimos como saídas (LEDs). Em seguida, um laço de repetição infinito atrela o estado de cada LED (aceso ou apagado) ao estado da tecla associada. O código sugerido, bem como características pertinentes do PIC e do compilador utilizado, são explicados com mais detalhes nos tópicos a seguir. 18
27 CAPÍTULO 4. PORTAS E/S 4.2. CONFIGURAÇÃO E MANIPULAÇÃO DAS PORTAS Exemplo 4.1 Aplicação básica envolvendo pinos de E/S Figura 4.2: Uso de teclas e LEDs nos pinos de E/S 1 # include <xc. h> 2 3 void main ( ) { 4 TRISB = 0 x0f ; 5 OPTION_REGbits. nrbpu = 0 ; 6 while ( 1 ) { 7 PORTBbits. RB4 = PORTBbits. RB0 ; 8 PORTBbits. RB5 = PORTBbits. RB1 ; 9 PORTBbits. RB6 = PORTBbits. RB2 ; 10 PORTBbits. RB7 = PORTBbits. RB3 ; 11 } 12 } Arquivo de Cabeçalho A inclusão do arquivo de cabeçalho xc.h traz como símbolos de escopo global todos os registradores do PIC16F877A. Diretivas do pré-processador do XC8 presentes nesse arquivo identificam o microcontrolador utilizado e incluem automaticamente o arquivo cabeçalho apropriado, no nosso caso o pic16f877a.h. Assim sendo, para todos os projetos a inclusão do xc.h é suficiente para acesso aos registradores e algumas funções de base. Da mesma forma que em vários outros pré-processadores para linguagem C, arquivos de cabeçalho delimitados por < > são buscados nos diretórios definidos na variável de compilação Include Path. Já os arquivos de cabeçalhos delimitados por são buscados usando: caminho absoluto, como em #include "C:/Users/Nome/Documents/Proj1/joystick.h" caminho relativo, como em #include "lcd.h", #include "../ lcd.h" e #include "header/lcd.h". Para os caminhos relativos, temos, no primeiro caso, a inclusão de um arquivo na pasta raiz do projeto. No segundo caso, o arquivo será buscado na pasta que está um nível acima da pasta do projeto. Finalmente, no terceiro caso, o cabeçalho será buscado dentro da pasta header, a qual se encontra na raiz do projeto. Ponto de Entrada: Função main() O padrão para a linguagem C especifica duas assinaturas para ambientes dotados de sistemas operacionais: int main(void) e int main(int argc, char argv []). Entretanto, no que concerne os sistemas embarcados, a assinatura da função principal fica a critério da implementação. Como não vamos instalar um sistema operacional no PIC16F877A, usaremos neste livro apenas a assinatura void main(). 19
28 4.2. CONFIGURAÇÃO E MANIPULAÇÃO DAS PORTAS CAPÍTULO 4. PORTAS E/S Manipulação dos Registradores O exemplo apresentado manipula o conteúdo dos registradores TRISB, PORTB e OPTION_REG. Para armazenar um byte completo em qualquer registrador do PIC, basta recorrer ao operador atribuição padrão da linguagem C, como em REGISTRADOR = 0xAB. Nos registradores para os quais faz sentido a manipulação individual de bits, o XC8 provê estruturas e uniões acessíveis simplesmente pelo sufixo bits. Com isso, pode-se ler ou atribuir o valor de um dado bit, como em REGISTRADORbits.NOMEBIT = 1. O recurso autocompletar da IDE auxilia na identificação do nome do bit. Os bits de controle ativados com lógica negativa (habilitados com nível lógico 0) terão o nome prefixado por n, como o caso do bit nrbpu. Haverá também a definição de REGISTRADORbits_t, o qual representa apenas o tipo estrutura, e não será usado nos projetos desenvolvidos. Detalhes sobre a definição de qualquer símbolo podem ser obtidos com Ctrl + sobre o mesmo. Configuração da Direção dos Pinos de E/S A linha 4 é responsável pela configuração da direção dos pinos da porta B. O literal 0x0F é equivalente ao literal 0b ou ainda 15. Os 4 bits mais significativos da porta são configurados como saídas (0) e os 4 bits menos significativos como entradas (1). Não se deve confundir a configuração da direção do pino (0 ou 1 em algum bit do registrador TRIS) com o estado lógico do pino (0 ou 1 em algum bit do registrador PORT associado). Resistores de Pull-Up O PORTB conta com resistores internos de pull-up para todas as entradas digitais. Esse recurso simplifica a conexão de teclas ao sistema, fazendo com que teclas não pressionadas resultem automaticamente em nível lógico alto nos pinos de entrada associados. O pull-up interno vem desativado por padrão, mas pode ser habilitado por meio do bit de configuração RBPU do registrador OPTION_REG. Isto foi feito na linha 5 do programa. Devido ao pull-up das teclas, os LEDs foram conectados de modo a acender com nível lógico baixo. Desta forma, os LEDs acenderão quando as teclas correspondentes forem pressionadas. Estado dos Pinos de E/S A linha 7 é funcionalmente equivalente a: if (PORTBbits.RB0)PORTBbits.RB4 = 1; else PORTBbits.RB4 = 0;. No entanto, a manipulação feita pelo exemplo é levemente mais eficiente, por envolver atribuição direta no lugar de desvios condicionais. Por estar no lado direito do operador atribuição, o bit PORTBbits.RB0 será lido. Analogamente, por estar no lado esquerdo da atribuição, o bit PORTBbits.RB4 será manipulado. Buscando melhorar ainda mais a eficiência do código gerado (não otimizado pela versão gratuita do XC8), poderíamos ainda substituir as quatro atribuições por uma única: PORTB = PORTB << 4. À esquerda do operador atribuição, temos o registrador onde o resultado da expressão à direita será armazenado. Entretanto, manipular o registrador PORTB afetará apenas os 4 bits mais significativos, por terem sido os únicos configurados como saídas digitais previamente. À esquerda do operador atribuição, dispôs-se do operador deslocamento à esquerda < <, para 20
29 CAPÍTULO 4. PORTAS E/S 4.3. CARACTERÍSTICAS ELÉTRICAS DOS PINOS DE E/S reposicionar os 4 bits configurados como entradas no nibble mais significativo da palavra resultado. Importante Quando se trata de sistemas embarcados, limites de memória e otimização de código ganham um papel especial e, por vezes, vital, para o sucesso do projeto. Conforme visto pela Figura 4.1b, nem todas as portas possuem 8 pinos associados. No entanto, como todos os registradores estão em uma memória organizada em bytes, nada impede a atribuição do literal 0xA7 (0b ) ao registrador PORTE. Os 5 bits mais significativos serão ignorados, já que a porta E conta apenas com 3 pinos de entrada e saída. Funções Multiplexadas Finalmente, é importante ressaltar que o uso de outros periféricos compromete um ou mais pinos de E/S. Por exemplo, o canal 0 do conversor A/D, quando habilitado, não permite o uso do pino 2 como porta de entrada e saída. Para facilitar o entendimento desses conflitos no uso dos periféricos, a cada pino são atribuídos vários nomes. O pino referente ao bit menos significativo da porta A (RA0), também recebe o nome de AN0, simbolizando o canal 0 do conversor A/D. Não se pode usar as 2 funções simultaneamente. Cabe ao projetista configurar adequadamente todos os periféricos envolvidos na aplicação. Normalmente, as portas digitais são ativadas e os outros periféricos desativados por padrão. No entanto, o conversor A/D representa uma importante exceção: todos os canais analógicos estão ativos após o RESET, comprometendo o PORTA e o PORTE por completo. Além dos resistores internos de pull-up da porta B, outras especificidades serão das portas de E/S serão brevemente descritas na próxima seção. Uma visão mais detalhada pode ser obtida no Capítulo 4 I/O Ports do Datasheet. 4.3 Características Elétricas dos Pinos de E/S Nesta seção abordaremos os níveis de tensão dos pinos de entrada e saída digital do PIC16F877A. Maiores detalhes e outros parâmetros elétricos e térmicos podem ser obtidos no Capítulo 17 Electrical Characteristics do Datasheet Classificação dos Pinos de E/S O PIC16F877A trabalha simultaneamente com as tecnologias TTL, CMOS e Schmitt Trigger. As saídas digitais são todas CMOS, enquanto as entradas são TTL ou Schmitt Trigger. A Tabela 4.1 classifica os pinos de E/S do PIC16F877A quanto ao padrão digital utilizado e características especiais (resistores internos de pull-up, saídas em dreno aberto). A porta B possui as seguintes particularidades: o pino RB0 se torna uma entrada Schmitt Trigger quando usado como pino para interrupção externa (Capítulo 5); 21
30 4.3. CARACTERÍSTICAS ELÉTRICAS DOS PINOS DE E/S CAPÍTULO 4. PORTAS E/S Tabela 4.1: Características Elétricas dos Pinos de E/S do PIC16F877A Pino Entrada Saída RA0... RA3 TTL CMOS RA4 Schmitt Trigger CMOS (Dreno Aberto) RA5 TTL CMOS RB0 TTL (Pull-Up programável) / Schmitt Trigger CMOS RB1... RB5 TTL (Pull-Up programável) CMOS RB6 e RB7 TTL (Pull-Up programável) / Schmitt Trigger CMOS RC0... RC7 Schmitt Trigger CMOS RD0... RD7 TTL / Schmitt Trigger CMOS RE0... RE3 TTL / Schmitt Trigger CMOS os pinos RB6 e RB7 são entradas Schmitt Trigger durante a gravação ou depuração in-circuit; quando o recurso Low Voltage Programming estiver habilitado (padrão de fábrica), o pino RB3 não poderá ser usado como pino de E/S. Já as portas D e E são dotadas de entradas TTL quando a porta paralela escrava estiver habilitada. Alguns bits de TRISE são utilizadas para configurar a porta paralela, desabilitada por padrão Faixas de Tensão A Tabela 4.2 contém os tensões referentes aos níveis lógicos baixo e alto, para as tecnologias TTL e CMOS. Tabela 4.2: Níveis de Tensão TTL e CMOS Nível Lógico Baixo Nível Lógico Alto Alimentação Entrada TTL 0 v LOW 0.8V 2V v HIGH V DD 4.5V V DD 5.5V Schmitt Trigger 2 0 v LOW 0.2 V DD 0.8 V DD v HIGH V DD 4.0V V DD 5.5V Saída CMOS 0 v LOW 0.6V v HIGH V DD 0.7V V DD = 4.5V Schmitt Trigger A região indefinida de entradas TTL, 0.8V < v < 2V, possui um limiar de tensão, v T HRESHOLD, abaixo do qual o sinal valerá 0 e acima do qual o sinal valerá 1. Com isso, sinais com transições lentas e que venham a oscilar em torno de v T HRESHOLD podem comprometer a lógica da aplicação. Para tratar melhor sinais ruidosos e prevenir chaveamentos indesejáveis, comuns em chaves mecânicas, as entradas Schmitt Trigger contam com histerese (Figura 4.3). Nesse caso temos dois limiares: um para transição positiva (v ) e outro para transição negativa (v!). 22
31 CAPÍTULO 4. PORTAS E/S 4.3. CARACTERÍSTICAS ELÉTRICAS DOS PINOS DE E/S (a) Símbolo (b) Histerese Figura 4.3: Schmitt Trigger Resistores de pull-up internos Os resistores internos de pull-up, vistos em 4.2.1, podem ser entendidos analisando a Figura 4.4, que fornece uma visão simplificada de um pino de entrada da porta B quando o recurso está habilitado. Observa-se que, quando o pino está em aberto, a tensão que chega à CPU é V DD, o que significa nível lógico alto. Quando o pino é conectado ao potencial zero, por exemplo por meio de uma tecla tal como na Figura 4.2, haverá uma queda de tensão no resistor de pull-up, o que acarretará em nível lógico 0 na CPU. Um dos benefícios de pinos com pull-up interno é a redução Figura 4.4: Pino com Resistor de Pull-Up interno das conexões necessárias para a conexão de teclas (Figura 4.5). Os resistores de pull-up da família de médio porte de microcontroladores PIC são ditos fracos. Isso significa que eles possuem valores de resistência altos. Com isso, o circuito responsável pela geração do sinal digital no pino não precisa drenar um valor elevado de corrente Saídas CMOS em dreno aberto O pino RA4 possui saída em dreno aberto, conforme ilustrado na Figura??. Isso faz com que o pino seja capaz de drenar corrente, quando em nível lógico baixo, mas tenha alta impedância para nível lógico alto, exigindo um resistor externo de pull-up. Dentre as principais consequências desta configuração, destacamos: 23
32 4.3. CARACTERÍSTICAS ELÉTRICAS DOS PINOS DE E/S CAPÍTULO 4. PORTAS E/S (a) Chaves SPDT (b) Pull-up externo (c) Pull-up interno Figura 4.5: Alternativas para a conexão de teclas a possibilidade de interfacear outras famílias lógicas, desde que a tensão entre RA4 e V SS seja inferior a 8.5V (parâmetro obtido do Datasheet, no Capítulo 17); a ligação como uma via de dados de um barramento qualquer nó pode impor nível lógico baixo mas o nível lógico alto somente é atingido quando nenhum deles tenta impor 0 na via (Figura 4.7). Figura 4.7: Configuração em barramento com pinos dreno aberto (mostrando apenas saídas) 24
33 CAPÍTULO 4. PORTAS E/S 4.4. DISPLAYS DE 7 SEGMENTOS 4.4 Displays de 7 Segmentos Os displays de 7 segmentos são dispositivos simples de exibição, compostos geralmente por diodos emissores de luz (LED) ou outros elementos luminosos que são dispostos de forma a permitir a representação de numerais indo-arábicos e algumas letras. Com a chegada dos displays de cristal líquido (LCD), os displays de 7 segmentos vêm se tornando obsoletos. No entanto, para fins acadêmicos, eles ainda constituem uma boa ferramenta para Figura 4.8: Display de 7 segmentos o treinamento de técnicas elementares de programação e uso de pinos de E/S. Por ser usado em diversos aparelhos eletrônicos das últimas décadas, trata-se de um dispositivo bem familiar. É fácil reconhecê-lo se olharmos sua representação na figura 4.8, que mostra uma convenção de nomenclatura para os 7 segmentos (a... g) e o ponto decimal (h) Circuitos com displays Os LEDs em displays de 7 segmentos são conectados seja na configuração anodo comum (figura 4.9a), seja na configuração catodo comum (figura 4.9b). Em ambas configurações, a pinagem é aquela mostrada na figura 4.9c. As duas configurações possuem lógicas de ativação distintas, conforme mostra a figura Considerando que na configuração anodo comum, este seja ligado a V CC, os LEDs acenderão com nível lógico baixo (que corresponde a uma tensão entre 0V e 0,8V). Já na configuração catodo comum, se o catodo está conectado ao terra, os LEDs acenderão com nível lógico alto (que corresponde a uma tensão entre 2V e 5V). Além disso, deve-se limitar a corrente de cada ramo, e por isso não podemos conectar os terminais de um LED entre V CC e GND. O uso de apenas uma resistência adicionada no terminal comum não é recomendado. Ao invés disso, uma boa solução consiste em conectar uma resistência em série com cada segmento, formando então ramos independentes limitados apenas pela capacidade da fonte de tensão. Se essas resistências forem do tipo trimpot, pode-se compensar a diferença de luminosidade dos LEDs com a calibração de cada segmento segundo uma referência visual. (a) Configuração anodo comum (b) Configuração catodo comum (c) Pinagem Figura 4.9: Configurações e pinagem de displays de 7 segmentos 25
34 4.4. DISPLAYS DE 7 SEGMENTOS CAPÍTULO 4. PORTAS E/S (a) Anodo Comum (b) Catodo comum Figura 4.10: Lógicas de Ativação A princípio, as resistências são dimensionadas para que cada ramo forneça ao LED sua corrente típica de operação, que normalmente é de aproximadamente 20mA. Para maiores detalhes sobre a queda de tensão nos LEDs e a corrente típica, consulte a folha de dados do fabricante Interface com o PIC16F877A Os pinos de E/S do microcontrolador farão o papel das chaves da figura A tabela 4.3 fornece a representação padrão de displays de 7 segmentos para os dígitos de 0 a 9 e letras de A a F, deixando o ponto decimal h apagado. Um contador em hexadecimal que mostra o valor atual da contagem num display de 7 segmentos (circuito da Figura 4.11) pode ser implementado com o código??. Neste programa exemplo, todos os pinos da porta D são configurados como saídas digitais (linha 13). O sistema então entra num laço infinito onde, graças ao cálculo do resto da divisão (operador %), uma variável i fica eternamente limitada entre 0 e 15. A ação a ser executada em cada iteração do laço consiste em exibir o símbolo correspondente a i no display de 7 segmentos e então pausar a execução por 1 segundo. A função delay_ms depende da definição da constante _XTAL_FREQ, que corresponde à frequência do cristal em Hz. O compilador XC8 precisa saber a frequência de operação para computar apropriadamente o número de ciclos de máquina despendidos na temporização por espera ocupada, ou seja, sem o uso de periféricos especiais de temporização. A decodificação para 7 segmentos é feita simplesmente por um vetor, cujo índice representa a palavra de entrada (BCD) e o conteúdo representa a palavra de saída (7 segmentos). Este mesmo recurso pode ser usado para incluir tabelas verdade de outros circuitos combinacionais. 26
35 CAPÍTULO 4. PORTAS E/S 4.4. DISPLAYS DE 7 SEGMENTOS Exemplo 4.2 Interface com display de 7 segmentos Figura 4.11: Interface com um único display de 7 segmentos 1 # define _XTAL_FREQ # include <xc. h> 3 4 char d i s p 7 s e g _ d i g i t o s [ ] = { 5 0 x3f, 0 x06, 0x5B, 0 x4f, 6 0 x66, 0x6D, 0x7D, 0 x07, 7 0 x7f, 0 x6f, 0 x77, 0x7C, 8 0 x39, 0x5E, 0 x79, 0 x71 9 } ; void main ( ) { 12 char i ; 13 TRISD = 0 ; 14 for ( i = 0 ; i < 1 6 ; i = ( i + 1 ) % 1 6 ) { 15 PORTD = d i s p 7 s e g _ d i g i t o s [ i ] ; 16 delay_ms ( ) ; 17 } 18 } Tabela 4.3: Códigos para exibição de dígitos em displays de 7 segmentos Símbolo Segmentos Anodo Comum Catodo Comum a b c d e f g h MSb=a MSb=h MSb=a MSb=h 0x03 0xC0 0xFC 0x3F 0x9F 0xF9 0x60 0x06 0x25 0xA4 0xDA 0x5B 0x0D 0xB0 0xF2 0x4F 0x99 0x99 0x66 0x66 0x49 0x92 0xB6 0x6D 0x41 0x82 0xBE 0x7D 0x1F 0xF8 0xE0 0x07 0x01 0x80 0xFE 0x7F 0x09 0x9F 0xF6 0x6F 0x11 0x88 0xEE 0x77 0xC1 0x83 0x3E 0x7C 0x63 0x36 0x9C 0x39 0x85 0xA1 0x7A 0x5E 0x61 0x86 0x9E 0x79 0x71 0x8E 0x8E 0x71 27
36 4.4. DISPLAYS DE 7 SEGMENTOS CAPÍTULO 4. PORTAS E/S O uso de 8 pinos de E/S exclusivos para a interface com um único display de 7 segmentos é um exagero aceitável para um primeiro exemplo de programação. No entanto, duas implementações alternativas se apresentam como possíveis soluções ao problema: 1. transmissão serial e conversores série-paralelo, conforme exibido na Figura 4.12; 2. multiplexação dos displays no tempo (Figura 4.13). Figura 4.12: Interface com displays de 7 segmentos por meio de registradores de deslocamento Figura 4.13: Interface com displays de 7 segmentos multiplexados no tempo 28
37 Capítulo 5 Sistema de Interrupções Sistemas eletrônicos microprocessados muito frequentemente são projetados para reagir a certos eventos, internos ou externos, que representam a alteração no estado de algum periférico. Dentre as fontes de evento disponíveis no PIC16F877A, podemos citar: a mudança do estado de um ou mais pinos de E/S digital; a recepção de uma palavra de dados por alguma interface de comunicação; o término de uma conversão analógico-digital; o estouro de uma contagem de tempo; a alteração do valor de saída do comparador analógico e término de uma operação de escrita na memória EEPROM. Neste capítulo estudaremos a implementação do PIC16F877A para o valioso mecanismo das interrupções, bem como o caso específico de eventos provenientes de 2 periféricos. Nos capítulos posteriores, outros periféricos serão analisados, juntamente com as informações necessárias para usar o sistema de interrupções com os eventos provocados por eles. Além de detalhar esse recurso, uma solução alternativa será avaliada, revelando quais limitações podem ser contornadas por projetos com interrupções. 5.1 Interrupções Um sistema de interrupções engloba recursos de hardware e software necessários para prover organização no atendimento dos eventos. Desde que devidamente habilitada por meio de registradores de configuração, uma interrupção de hardware é capaz de desviar automaticamente o fluxo de execução do programa para uma região de memória específica. Considerando o uso do compilador XC8, esta região se referente a uma única função em linguagem C com o modificador interrupt. Em outras palavras, a interrupção implica no software poder ser notificado da ocorrência de alterações nos estados dos seus periféricos. Nos programas estudados até então, vimos que a única função chamada automaticamente é a função main(), que corresponde ao ponto de entrada da execução e, portanto, é avaliada logo após o RESET da máquina. Caso existam interrupções habilitadas, um loop infinito introduzido na função main(), por exemplo pela expressão while(1){}, pode parar temporariamente de ser executado em razão da necessidade do tratamento de eventos. Outra característica chave desse recurso é que, uma vez que o evento foi devidamente tratado, o fluxo de execução retorna ao ponto onde estava imediatamente antes da interrupção. Se
38 5.1. EVENTOS SEM INTERRUPÇÕES CAPÍTULO 5. INTERRUPÇÕES o desvio ocorreu durante a execução de uma iteração de um laço infinito vazio, o sistema voltará ao loop aguardando uma nova interrupção. Uma analogia a este tipo de estrutura é o caso de um atendente de loja, completamente desocupado, aguardando um cliente, cujo atendimento representa o tratamento da interrupção. Se o tratamento não for demasiadamente longo (poucas instruções no corpo da função), o sistema pode executar tarefas longas e/ou periódicas dentro do loop infinito, como os processos de varredura de teclado matricial e de atualização de displays de 7 segmentos multiplexados no tempo, apresentados no Capítulo 4. Seguindo a analogia anterior, teríamos agora um modelo no qual o atendente pode realizar outras atividades nos momentos ociosos da loja, ser interrompido para atender um cliente e, em seguida, retomar tais atividades normalmente. A figura 5.1 ilustra essa nova estrutura. Figura 5.1: Desvio e retorno causados por uma interrupção Antes de aprofundarmos no estudo das interrupções, no entanto, vamos verificar como tratar eventos sem usar esse mecanismo. Tal análise ilustrará quais são as dificuldades no tratamento de eventos quando não se usa um sistema de interrupções. 5.2 Tratamento de Eventos sem Interrupções Os eventos mencionados previamente ocorrem independentemente da existência e da ativação de um sistema de interrupções e podem até ser tratados de outras maneiras. Um método simples é monitorar ativamente o estado da máquina, aguardando por mudanças, técnica mais conhecida como polling. Como exemplo, uma forma de esperar por nível lógico 0 no pino RB0 e reagir escrevendo 1 no pino RD7 é apresentada na figura 5.2a. Se o programa não necessitar realizar nenhuma atividade enquanto aguarda a condição RB0 = 1, a solução se mostra eficaz e apropriada. No entanto, vamos considerar o caso de um sistema que não pode se dar ao luxo de permanecer ocioso. Ele deve realizar um algoritmo de varredura de um teclado matricial 8x8, exibir informações num display LCD e realizar um cálculo complexo, continuamente. Um laço infinito estará presente, e cada iteração desse laço efetuará uma única execução dessas tarefas, despendendo 200 ms no total. Nesse caso, o evento RB0 = 1 será monitorado numa taxa potencialmente insatisfatória (figura 5.2b). Uma possível solução seria testar a condição mais de uma vez. Poderíamos realizar, por exemplo, 3 testes, um após cada etapa da atividade principal. Isso melhoraria a taxa de monitoramento mas tornaria o programa maior, mais complexo e mais susceptível a falhas. Se múltiplos eventos devem ser monitorados (figura 5.2c), o problema se torna ainda desafiador. Portanto, a técnica polling é de aplicação limitada a casos onde o programa não deve realizar nenhuma atividade enquanto aguarda por eventos e poucas fontes de eventos devem ser monitoradas. 30
39 CAPÍTULO 5. INTERRUPÇÕES 5.2. EVENTOS SEM INTERRUPÇÕES (a) Espera ocupada por evento único (b) Tarefas concomitantes à espera por evento (c) Múltiplos eventos Figura 5.2: Polling (alternativa às interrupções) 31
40 5.2. TRATAMENTO COM INTERRUPÇÕES CAPÍTULO 5. INTERRUPÇÕES 5.3 Tratamento de Eventos com Interrupções Aplicações que desfrutam das interrupções possuem geralmente uma estrutura comum: o programa começa configurando os diversos periféricos e suas interrupções e em seguida entra num laço infinito esperando por interrupções. Chamaremos as ações executadas dentro do laço de atividade principal. Convém lembrar, entretanto, que o laço infinito não precisa realizar tarefas. De fato, muitas aplicações que veremos apenas respondem a interrupções, sem realizar nenhuma outra tarefa. Para melhor entendermos as etapas de uma interrupção, vamos considerar a analogia apresentada na figura Atividade Principal 4 QUEM É? Origem 2 Evento 5 bla... bla Tratamento 3 Desvio 6 Retorno Figura 5.3: Analogia para o sistema de interrupções Atividade Principal Na etapa ❶, temos uma pessoa assistindo à TV. Para chegar a esse ponto, foi necessário ligar o aparelho, ajustar o volume e escolher o canal. Da mesma forma, um programa de um sistema microprocessado baseado no PIC16F877A entra na atividade principal após a etapa de configuração dos periféricos e das interrupções Evento Em algum momento da execução do programa principal, teremos a ocorrência de algum evento, relacionado à mudança do estado de algum periférico. A etapa ❷ representa tal evento com uma analogia a uma ligação telefônica. Vale lembrar que não existe nada que impeça uma pessoa de tentar ligar para o número da linha telefônica associada a esse aparelho, ainda que o mesmo desconectado. Voltando para o PIC16F877A, dizemos que os eventos simplesmente ocorrem. 32
41 CAPÍTULO 5. INTERRUPÇÕES 5.3. TRATAMENTO COM INTERRUPÇÕES Desvio Caso um sistema de interrupções esteja devidamente configurado, o evento provocará um desvio. Voltando para a analogia da figura 5.3, na etapa ❸, vamos considerar três condições para que o desvio ocorra: 1. o morador da residência deve ser assinante de uma linha telefônica; 2. o aparelho telefônico deve estar numa sala acessível (se o telefone se encontrar numa sala trancada não poderemos desviar para atendê-lo) e 3. o aparelho telefônico deve estar conectado à linha telefônica. No PIC16F877A também temos três níveis de ativação de interrupções, os quais chamamos de chaves ou máscaras. Contamos com a chave global, sem a qual nenhum evento pode provocar desvios. Vamos entendê-la como sendo o elemento que corresponde à assinatura da linha telefônica. Além disso, existem chaves individuais para cada periférico que pode disparar eventos. As chaves individuais desempenham o mesmo papel que os cabo de comunicação presente em cada aparelho da residência. Basta considerarmos vários ramais telefônicos na residência, cada um associado a um periférico do microcontrolador. No entanto, no caso do PIC16F877A o desvio sempre direciona o fluxo de execução para a mesma região: a função especificado com o modificador interrupt. Isso justifica a etapa de identificação, apresentada na seção posterior. Finalmente, os periféricos por vezes são organizados em grupos, o que equivale ao caso da sala acessível. Vamos supor, nesse caso, que os grupos de periféricos são as salas e em cada sala temos vários ramais. Ao longo deste capítulo e dos próximos vamos explorar mais detalhadamente essa questão das chaves de interrupção. Um evento pode sensibilizar o sistema de interrupções de modo a provocar um desvio. Isso pode remeter o leitor a um questionamento relevante: o que ocorre se um evento ocorrer exatamente no meio da execução de uma instrução? Ainda que o evento possa ocorer a qualquer momento, o sistema de interrupções opera segundo os ciclos de máquina. Nesse caso, a instrução em execução é devidamente finalizada e a interrupção agendada para o próximo ciclo de máquina Identificação Quando múltiplas fontes de evento são configuradas no sistema de interrupções, faz-se necessário, na ocorrência de uma interrupção, identificar exatamente qual evento a provocou. Em alguns microcontroladores, cada evento desvia o fluxo de execução para uma região específica da memória de programa, referente ao tratamento daquele periférico particular. Para esses sistemas, dizemos que a o sistema de interrupções é vetorado. Isso significa que não cabe ao software descobrir qual periférico disparou a interrupção. O PIC16F877A, no entanto, dispõe de um sistema de interrupções não vetorado, no qual todos eventos levam o contador de programa ao mesmo endereço (precisamente a posição 0x04 da memória). Portanto, após o desvio provocado pela interrupção, o software da aplicação deve descobrir qual periférico está associado com a mesma. Esse processo de identificação será detalhado nesta seção. Quando um periférico apresenta uma mudança relevante de estado, um bit especial denominado flag de interrupção é levado automaticamente para nível alto indicando a situação. Vale ressaltar que este comportamento está relacionado à ocorrência do evento e não necessariamente da interrupção. Isso significa que até mesmo a técnica de monitoramento descrita na 33
42 5.3. TRATAMENTO COM INTERRUPÇÕES CAPÍTULO 5. INTERRUPÇÕES Tabela 5.1: Flags de Interrupção Registrador Bit Descrição INTCON RBIF Mudança de estado nos pinos RB<4:7> INTCON INTF Transição no pino RB0/INT INTCON TMR0IF Estouro de contagem do Timer 0 PIR1 TMR1IF Estouro de contagem do Timer 1 PIR1 TMR2IF Estouro de contagem do Timer 2 PIR1 CCP1IF Flag do módulo Capture/Compare/PWM 1 PIR1 SSPIF Atividades das interfaces SPI e I 2 C PIR1 TXIF Início de uma transmissão serial USART PIR1 RCIF Recepção pela porta USART concluída PIR1 ADIF Final de uma conversão A/D PIR1 PSPIF Leitura/escrita na porta paralela concluída PIR2 CCP2IF Flag do módulo Capture/Compare/PWM 2 PIR2 BCLIF Colisão no barramento SPI ou I 2 C PIR2 EEIF Escrita na EEPROM PIR2 CMIF Mudança na entrada do comparador seção 5.2 pode usufruir dos flags de interrupção, consultando periodicamente seus estados para detectar a ocorrência de um evento. O uso de interrupções facilita o tratamento de eventos, limitando a consulta aos estados dos periféricos apenas na certeza de ocorrência de um evento. O processo de identificação se assemelha às verificações efetuadas no fluxograma da figura 5.2c, exceto que estas não são executadas dentro de um laço de repetição, e sim após algum desvio provocado por alguma interrupção. O conjunto de flags é avaliado uma única vez por interrupção. A tabela 5.1 enumera os flags do PIC16F877A. Os diferentes periféricos e as interrupções a eles associadas serão detalhados nas seções 5.4 e 5.5, bem como nos capítulos posteriores. Se apenas um tipo de evento foi configurado, essa etapa pode ser seguramente ignorada, pois já se sabe no momento do tratamento da interrupção qual periférico responsável pela mesma. No caso de dois periféricos, a verificação do flag de um deles é suficiente para fins de identificação. Isso decorre do fato de que as interrupções são mutuamente exclusivas: para apenas dois periféricos X e Y com interrupções habilitadas, ao identificar que o evento não vem de X, concluímos que Y é o responsável pelo desvio Tratamento Após ter-se identificado a origem da interrupção, deve-se reagir ao evento com a lógica da aplicação. Imaginemos um sistema destinado ao enchimento de caixas de parafusos, ilustrado na figura 5.4. Cada caixa comporta 100 unidades. A queda de um objeto representa uma barreira no fluxo de luz do par LED Fototransistor, gerando uma borda de subida no sistema. 34
43 CAPÍTULO 5. INTERRUPÇÕES 5.3. TRATAMENTO COM INTERRUPÇÕES Figura 5.4: Sistema microprocessado baseado em interrupções Portanto, o sistema deve contar 100 bordas de subida e, em seguida, desligar o lançador de pregos, deslocar a esteira para o alinhamento de uma nova caixa, reiniciar a contagem e religar o lançador. Se cada borda de descida provoca uma interrupção, o tratamento é similar ao apresentado no algoritmo 5.1. O sistema de interrupções do PIC16F877A exige, para a maioria dos periféricos, que o flag de identificação seja zerado dentro da rotina de serviço à interrupção. Esse fato, aliado ao que vimos previamente a respeito dos flags, nos remete a três características básicas dos mesmos: 1. os flags indicam a ocorrência de um evento, ainda que o mesmo não provoque um desvio (interrupção); 2. os flags são usados para identificar qual periférico originou a interrupção e Algoritmo 5.1 Tratamento de interrupção para um sistema fictício OBS: Variável global np araf usos inicializada com 0 1: procedimento Tratamento 2: np arafusos np arafusos + 1 3: se np arafusos 100 então 4: desligarlançador() 5: deslocaresteira() 6: np arafusos 0 7: ligarlançador() 8: fim se 9: fim procedimento 35
44 5.4. INTERRUPÇÃO EXTERNA CAPÍTULO 5. INTERRUPÇÕES 3. um evento associado a uma dada interrupção deve ter seu flag zerado durante o tratamento desta Retorno Uma visão mais detalhada dessa etapa se faz possível se considerarmos as manipulações efetuadas no contador de programa (PC), a palavra que aponta para a próxima instrução a ser executada 1. Na ocorrência de uma interrupção, faz-se uma cópia (backup) do conteúdo do contador de programa. Em seguida a palavra 0x4 é escrita nesse registrador, o que desvia o programa para este endereço. As instruções presentes nessa região de memória são executadas até que uma instrução especial (RETFIE) devolva ao contador de programa seu valor original. Esse processo é ilustrado na figura 5.5. Figura 5.5: Desvios provocados por uma interrupção 5.4 Interrupção Externa A interrupção externa decorre de uma transição no pino RB0/INT. Ainda que outros eventos, como a recepção de uma palavra pela porta serial, possam ser considerados externos, o termo interrupção externa se restringe ao caso do pino RB0/INT. O bit INTEDG do registrador OPTION_REG configura qual mudança deve ser observada: OPTION_REGbits.INTEDG = 1; = evento acontece em bordas de subida OPTION_REGbits.INTEDG = 0; = evento acontece em bordas de descida Quando uma transição válida é detectada, o flag INTF do registrador INTCON vai para 1 indicando sua ocorrência. Caso as chaves global (GIE) e individual (INTE) estejam ativas, 1 Na família PIC 16, o contador de programa se subdivide em 2 registradores, PCLATH e PCL, contendo respectivamente a parte alta (mais significativa) e a parte baixa (menos significativa) da palavra PC. 36
45 CAPÍTULO 5. INTERRUPÇÕES 5.4. INTERRUPÇÃO EXTERNA o evento provocará interrupção. Ambas as chaves se encontram no registrador INTCON. O serviço de interrupção deve zerar o flag INTF, para evitar interrupções recursivas 2. O programa 5.1 usa a interrupção externa para inverter o sentido de rotação do contador em anel produzido na porta D (Figura 5.6). Diodos LED são ligados nesses pinos para representar visualmente a saída do contador. O valor inicial 1 é atribuído ao registrador PORTD na função main(). A função rotateleds(), por meio dos operadores Shift Left (< <) e Shift Right (> >), desloca a posição do bit que está em nível lógico alto, mudando assim o LED aceso. No entanto, um deslocamento à esquerda aplicado à palavra 0b ou um deslocamento à direita aplicado à palavra 0b resultam em 0 (rotação sem carry). As linhas 15, 16, 20 e 21 corrigem este comportamento, indesejável no contador em anel. A rotação com carry está disponível no dialeto Assembly do PIC. Figura 5.6: Circuito referente ao programa 5.1 Listagem 5.1: Uso da Interrupção Externa (pino RB0/INT) 1 # define _XTAL_FREQ # include <xc. h> 3 # include < s t d b o o l. h> 4 5 b o o l r e v e r s o = f a l s e ; 6 7 void i n t e r r u p t i s r ( ) { 8 INTCONbits. INTF = 0 ; 9 r e v e r s o =! r e v e r s o ; 10 } void r o t a t e L E D s ( ) { 13 PORTD = r e v e r s o? PORTD >> 1 : PORTD << 1 ; 14 i f (! PORTD ) 15 PORTD = r e v e r s o? 0 x80 : 1 ; 16 } void main ( ) { 19 TRISD = 0 ; 20 PORTD = 1 ; 21 OPTION_REGbits. nrbpu = 0 ; 22 OPTION_REGbits. INTEDG = 0 ; 23 INTCONbits. INTE = 1 ; 24 INTCONbits. GIE = 1 ; 25 while ( 1 ) { 26 delay_ms ( ) ; 27 r o t a t e L E D s ( ) ; 28 } 29 } 2 Caso o flag não seja zerado, assim que a máquina finalizar o serviço de tratamento de interrupções, uma nova interrupção será provocada pelo mesmo evento que havia sido tratado. Esse processo de falsos alarmes se repetirá em um laço infinito. 37
46 5.5. INTERRUPÇÃO POR MUDANÇA DE ESTADO CAPÍTULO 5. INTERRUPÇÕES 5.5 Interrupção por mudança de estado de PORTB Qualquer transição em qualquer um dos pinos RB4, RB5, RB6 e RB7, exceto os que forem configurados como saídas, constitui um evento o qual chamaremos de Mudança de Estado do PORTB. Este evento provoca interrupções mediante o estado ativo das chaves global (INTCONbits.GIE) e individual (INTCONbits.RBIE). Nenhum bit de configuração adicional se faz necessário para o uso desta fonte de interrupções. 38
47 Capítulo 6 Contadores e Temporizadores Dentre os periféricos mais importantes em sistemas embarcados, estão os contadores. Eles podem ser usados para contar eventos externos ao microprocessador, produzir sinais para o controle de velocidade de motores, controlar a frequência e a duração na geração de som etc. De um modo simplificado, pode-se considerar um contador como um periférico que possui um registrador cujo valor é alterado a cada estímulo da via de controle Clock, seguindo uma ordem bem definida. A contagem pode ser progressiva ou regressiva e os incrementos ou decrementos efetuados podem ser de uma ou mais unidades. Pode-se, ainda, conceber contadores de sequências arbitrárias, como: {0, 3, 1, 2}. Apesar de todas essas possibilidades, consideraremos aqui apenas contadores com incrementos de 1 unidade. Quando o sinal de Clock contém pulsos uniformemente espaçados no tempo, o contador atua como um temporizador, pois, nesse caso, contar pulsos é uma forma indireta de contar tempo. Independentemente de estarem sendo usados como contadores ou como temporizadores, para os propósitos desse capítulo, podemos nos referir a esses periféricos simplesmente como timers. O PIC16F877A conta com três timers, enumerados de 0 a 2, com diferentes características e opções de configuração. Antes de lidarmos com as particularidades de cada um, entretanto, algumas definições comuns serão apresentadas na próxima seção. 6.1 Parâmetros dos Timers Origem do Sinal de Clock Alguns timers possuem o clock multiplexado. Um bit de configuração permite a escolha entre clock externo ou clock interno. No modo clock externo, a via de clock do contador é conectada a um certo pino do chip, fixado em tempo de fabricação. Esta configuração é usada normalmente quando se deseja realizar a contagem de eventos externos, como por exemplo, no sistema da Figura 5.4. A outra opção, clock interno, fará com que o periférico conte ciclos de máquina. Se o sistema é dotado de um cristal externo de frequência f OSC = 4MHz, tem-se: f P ROC = f OSC = 1MHz 4 1 T C.M. = = 1µs f P ROC 39
48 6.1. PARÂMETROS DOS TIMERS CAPÍTULO 6. TIMERS, em que f P ROC é a frequência de execução das instruções e T C.M. é a duração do ciclo de máquina. Nesse caso, a contagem é alterada a cada microssegundo e o periférico atua como temporizador Estouro (overflow) do Timer Quando o registrador de contagem assume seu valor máximo e, devido ao incremento de 1 unidade, volta para 0, temos um evento chamado estouro. Esses eventos são fontes válidas de interrupção, conforme visto na seção A figura 1 ilustra o estouro em um timer de 8 bits: O 9º bit da soma indica, justamente, o estouro do timer Número de Eventos de Contagem e Recarga O registrador que contém o valor atual da contagem pode ser lido ou escrito. Aqui usaremos a analogia de um carro se movimentando numa pista circular (Figura 6.1). Figura 6.1: (analogia) Comportamento do timer O caso representado se refere a um contador de 8 bits. O último marco da pista é = 255, após o qual haverá o estouro do timer. Portanto, o timer fará, naturalmente, uma contagem de 256 eventos. Observe que, como não se trata de contagem regressiva, para que o timer realize a contagem de 100 eventos, ele deverá começar da posição 156. Após 99 incrementos ele estará na posição 255 e, finalmente, contará um último evento, provocando o estouro. O valor inicial para que o timer efetue um certo número de eventos é chamado de recarga. Para um timer de 8 bits com a contagem de pelo menos um evento de contagem, temos: Para um timer de N bits, teremos: Recarga = 256 EventosContagem Recarga = 2 N EventosContagem Prescaler Imagine o projeto de um relógio digital baseado no PIC16F877A que usa um temporizador de 8 bits. Se o ciclo de máquina for T C.M. = 1µs, cada volta corresponderá a T V OLT A = 256µs. Pode-se utilizar uma recarga de 6, para que reduzir esse número para T V OLT A = 250µs. Ainda assim, seria necessário esperar por 4000 voltas para o evento de 1s. Apesar de factível, existe um recurso que pode simplificar esses casos. O prescaler é um divisor de frequência configurável 40
49 CAPÍTULO 6. TIMERS 6.2. TIMER 0 que reduz a velocidade do temporizador, de forma que cada incremento na contagem precise de mais de um ciclo de máquina (temporizador) ou evento externo (contador de eventos). Por exemplo, se for usado um prescaler 1:16, cada incremento do registrador de contagem demandará 16 ciclos de máquina e, portanto o tempo máximo possível para cada volta será T V OLT A = 256µs 16 = 4096µs Tempo da Volta e Tempo Total Combinando o que foi visto previamente, podemos definir o tempo para a volta e o tempo total: T V OLT A = EventosContagem f P RESCALER T T OT AL = T V OLT A N V OLT AS, em que f P RESCALER é o denominador da razão de prescaler. 6.2 Timer 0 Contagens e Recarga O Timer 0 é um contador/temporizador de 8 bits. O valor atual da contagem pode ser lido ou manipulado por meio do registrador TMR0. Caso se queira voltas de 100 incrementos, deve-se levar esse registrador para o valor 156 no começo de cada volta. Flag de Identificação Na ocorrência de um estouro do timer 0, o bit TMR0IF do registrador INTCON (também acessível pelo símbolo INTCONbits.T0IF), vai automaticamente para 1, indicando o evento. Este bit não volta automaticamente para 0, cabendo ao programador esta ação. Este flag pode ser consultado para saber se houve estouro do timer, mesmo quando o sistema de interrupções estiver desabilitado. Origem do Clock O bit OPTION_REGbits.T0CS permite configurar o periférico para a contagem de ciclos de máquina (T0CS=0) ou de pulsos externos (T0CS=1; pulsos no pino T0CKI). Este pino é também o quinto pino de E/S da porta A: o pino RA4. Se o timer for destinado à contagem de eventos externos, deve-se configurar esse pino como entrada digital. Além disso, o tipo de transição (bordas de subida ou bordas de descida ) a ser monitorada é definido por meio do bit OPTION_REGbits.T0SE, seguindo a definição abaixo: OPTION_REGbits.T0SE = 0; = bordas de subida OPTION_REGbits.T0SE = 1; = bordas de descida P Exemplo 6.1 O código abaixo mostra uma forma de gerar uma onda quadrada em todos os pinos da porta D. A frequência do oscilador externo é f OSC = 4MHz, o que significa que o ciclo de máquina é de 1µs frequência da onda gerada será f = 2, 5kHz. 1 # include <xc. h> 41
50 6.2. TIMER 0 CAPÍTULO 6. TIMERS 2 void main ( ) { 3 TRISD = 0 ; 4 PORTD = 0 ; 5 TMR0 = 5 6 ; 6 OPTION_REGbits. T0CS = 0 ; 7 while ( 1 ) { 8 i f ( INTCONbits. TMR0IF ) { 9 PORTD = ~PORTD ; 10 TMR0 = 5 6 ; 11 INTCONbits. TMR0IF = 0 ; 12 } 13 } 14 } Prescaler O prescaler do Timer 0 é multiplexado com outro periférico, o Watch Dog Timer. O bit PSA do registrador OPTION_REG escolhe em qual periférico o prescaler deverá ser aplicado: OPTION_REGbits.PSA = 0; = prescaler aplicado ao Timer 0 OPTION_REGbits.PSA = 1; = prescaler aplicado ao Watch Dog Timer A razão do prescaler é definida pelos bits PS2, PS1 e PS0 do mesmo registrador OP- TION_REG. O compilador XC8 provê um símbolo chamado PS, de largura 3 bits, que pode ser usado no lugar dos dos três bits previamente citados. A tabela 6.1 mostra as possíveis configurações de prescaler, tanto para o timer 0 (TMR0) como para o Watch Dog Timer (WDT). PS PS2 PS1 PS0 TMR0 WDT :2 1: :4 1: :8 1: :16 1: :32 1: :64 1: :128 1: :256 1:128 Tabela 6.1: Configurações de prescaler para o Timer 0 P Exemplo 6.2 O código abaixo é uma modificação do Exemplo 6.1, com o uso do prescaler, para a geração de uma onda quadrada com f = 60Hz. O tempo para a volta será: T V OLT A = T C.M. EventosContagem f P S = 1µs = 8, 333ms 42
51 CAPÍTULO 6. TIMERS 6.2. TIMER 0 Observe que cada volta representa um semiperíodo da onda gerada. Por isso, se queremos f = 60Hz, o que implica em T = 16, 666ms, devemos preparar o Timer 0 para obter uma base de tempo de 8, 333ms. Nesse exemplo, uma constante RECARGA foi definida de modo que o Timer 0 realize 130 eventos de contagem: RECARGA = = # include <xc. h> 2 # define RECARGA void main ( ) { 4 TRISD = 0 ; 5 PORTD = 0 ; 6 OPTION_REGbits. T0CS = 0 ; 7 OPTION_REGbits. PSA = 0 ; 8 OPTION_REGbits. PS = 5 ; / / PS = 1 : TMR0 = RECARGA ; 10 while ( 1 ) { 11 i f ( INTCONbits. TMR0IF ) { 12 TMR0 = RECARGA ; 13 INTCONbits. TMR0IF = 0 ; 14 PORTD = ~PORTD ; 15 } 16 } 17 } Interrupção O estouro do Timer 0 pode provocar uma interrupção, desde que a máscara individual referente a esse periférico e o sistema de interrupções como um todo estejam habilitados. A máscara individual do Timer 0 é o bit TMR0IE, do registrador INTCON (também acessível pelo símbolo INTCONbits.T0IE). Esse timer não pertence a nenhum grupo de periféricos, portanto não existe nenhuma máscara de grupo associada. Finalmente, o sistema de interrupções deve ser ativado por meio da via GIE, também do registrador INTCON. O flag para identificação, conforme mencionado previamente, é acessado via INTCONbits.TMR0IF, e deve ser zerado pelo programador durante o tratamento da interrupção. Exemplo 6.3 P O código abaixo é apresenta o software de um pequeno pisca-pisca com frequência f = 0, 5Hz, com o uso de interrupções. O sistema conta 125 voltas de 8ms: T V OLT A = T C.M. EventosContagem f P S T V OLT A = 1µs = 8ms T T OT AL = T V OLT A N V OLT AS T T OT AL = 8ms 125 = 1s 43
52 6.3. PROJETO 1: CRONÔMETRO COM LCD CAPÍTULO 6. TIMERS A variável nvoltas é definida no escopo global para preservar seu valor entre as interrupções. Alternativamente, ela poderia ser declarada dentro da função isr () com o modificador static. 1 # include <xc. h> 2 # define RECARGA char n V o l t a s = 0 ; 5 6 void i n t e r r u p t i s r ( ) { 7 INTCONbits. TMR0IF = 0 ; 8 TMR0 = RECARGA ; 9 n V o l t a s ++; 10 i f ( n V o l t a s == ) { 11 n V o l t a s = 0 ; 12 PORTD = ~PORTD ; 13 } 14 } void main ( ) { 17 TRISD = 0 ; 18 PORTD = 0xAA ; 19 OPTION_REGbits. T0CS = 0 ; 20 OPTION_REGbits. PSA = 0 ; 21 OPTION_REGbits. PS = 4 ; / / PS = 1 : TMR0 = RECARGA ; 23 INTCONbits. TMR0IE = 1 ; 24 INTCONbits. GIE = 1 ; 25 while ( 1 ) ; 26 } 6.3 Projeto 1: Cronômetro com LCD Nesta seção desenvolveremos um simples cronômetro com o PIC16F877A. A arquitetura do sistema é mostrada na Figura 6.2. As teclas beneficiam do recurso de pull-up interno da porta B. Além disso, a tecla Start/Pause, crítica no processo, está ligada no pino associado à interrupção externa (RB0/INT), tratada previamente na seção 5.4. O LCD está sendo usado com interface paralela de 8 bits. Figura 6.2: Arquitetura do Projeto Cronômetro 44
53 CAPÍTULO 6. TIMERS 6.3. PROJETO 1: CRONÔMETRO COM LCD Os arquivos de cabeçalho usados são: 1 # include " c o n f i g a. h " / / f r e q u ê n c i a do c r i s t a l e f u s e s 2 # include <xc. h> / / a c e s s o a o s r e g i s t r a d o r e s 3 # include " l c d. h " / / b i b l i o t e c a p r e v i a m e n t e c o n c e b i d a 4 # include < s t d i o. h> / / i n c l u i f u n ç ã o para f o r m a t a ç ã o de s t r i n g s O Timer 0 será configurado para gerar uma base de tempo de 10ms, cuja contagem corresponde ao último dígito impresso no LCD. O sistema possui um ciclo de máquina com T C.M = 1µs. Aplicando um prescaler de 1:64 e contando 156 eventos, teremos: A recarga, nesse caso, será: T V OLT A = 1µs = 9, 984ms Recarga = 256 EventosContagem = = 100 Podemos definí-la como uma constante: 5 # define RECARGA 100 As variáveis globais msegs, segs e mins são definidas no escopo global: 7 char msegs =0, s e g s =0, mins = 0 ; A função main() deve configurar a direção dos pinos de E/S 1, ativar o recurso de pull-up interno, configurar todos os parâmetros do Timer 0 e as máscaras de interrupção. Para facilitar a compreensão, todas as linhas referentes a essas configurações foram comentadas: 29 void main ( ) { 30 char msg [ 1 6 ] ; / / mensagem a ser exibida no LCD 31 OPTION_REGbits. nrbpu = 0 ; / / pull-up interno ativado 32 OPTION_REGbits. T0CS = 0 ; / / contagem de ciclos de máquina 33 OPTION_REGbits. PSA = 0 ; / / prescaler aplicado ao Timer 0 34 OPTION_REGbits. PS = 5 ; / / fator de prescaler 1:64 35 OPTION_REGbits. INTEDG = 1 ; / / bordas de descida para interrupção externa 36 ADCON1 = 1 4 ; / / desativa canais analógicos em RE0 e RE1 37 l c d _ i n i t ( ) ; / / inicializa o LCD 38 INTCONbits. TMR0IE = 0 ; / / cronômetro inicia parado 39 INTCONbits. INTE = 1 ; / / interrupção para a tecla Start/Pause 40 INTCONbits. GIE = 1 ; / / sistema de interrupções ativado 41 TMR0 = RECARGA ; / / preparando para 156 contagens A linha 36 tem o objetivo de permitir que os pinos RE0 e RE1 sejam usados como E/S digital. Normalmente esses pinos estão associados a canais do Conversor A/D, abordado no Capítulo 7. As linhas de 31 a 35 poderiam ser substituídas pela linha OPTION_REG = 0x45; ou então OPTION_REG = 0b ;, mas isso requer que o programador saiba a ordem dos bits no registrador. 1 A biblioteca usada para o LCD já configura apropriadamente a direção dos pinos das portas D e E. Além disso, todos os pinos da porta B vêm configurados inicialmente como entradas digitais. 45
54 6.3. PROJETO 1: CRONÔMETRO COM LCD CAPÍTULO 6. TIMERS OPTION_REG R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) R/W (1) RBPU INTEDG TMR0CS T0SE PSA PS2 PS1 PS0 Uma vez que todos os periféricos foram devidamente configurados, o programa entra na sua atividade principal: um laço de repetição infinito que atualiza a exibição do tempo decorrido e monitora a tecla Reset (a outra tecla é tratada no serviço de interrupção). 42 while ( 1 ) { 43 s p r i n t f ( msg, " %02u :%02 u :%02 u ", mins, segs, msegs ) ; 44 lcd_home ( ) ; 45 l c d _ p r i n t ( msg ) ; 46 / / Reset 47 i f (! PORTBbits. RB1 ) { 48 mins = s e g s = msegs = 0 ; 49 INTCONbits. TMR0IE = 0 ; 50 } 51 } 52 } Qualquer valor diferente de 0 é entendido como verdadeiro, quando usado dentro de uma condição. Se precedermos a condição pelo operador lógico de negação (operador!), teremos justamente o contrário. Quando a tecla Reset é pressionada, o pino RB1 assume nível lógico baixo, tornando a condição da linha 47 verdadeira. Nesse momento, todas as variáveis para contagem de tempo são zeradas e a máscara de interrupção do Timer 0 desativada. Desta vez, temos duas fontes de interrupção: Timer 0 e interrupção externa. Portanto, na rotina de tratamento de interrupção, será necessário diferenciá-las. Após 100 eventos de 10ms, incrementamos a variável referente aos segundos e zeramos a última casa. O comportamento é similar para os segundos e minutos, mas com o limite de 60 ao invés de 100. Na decorrência do comando Start, o Timer 0 deve ser preparado para a contagem de 10ms, por meio da recarga. Ainda que o comando Pause não necessite disso (pois nesse caso basta desativar a máscara do Timer 0), por economia de expressão efetuamos a recarga em qualquer evento de interrupção: estouro do Timer 0, contagem pausada, contagem iniciada/reiniciada. 9 void i n t e r r u p t i s r ( ) { 10 TMR0 = RECARGA ; 11 i f ( INTCONbits. TMR0IF ) { / / interrupção do Timer 0 12 msegs ++; 13 i f ( msegs == 9 9 ) { 14 s e g s ++; 15 msegs = 0 ; 16 } 17 i f ( s e g s == 6 0 ) { 18 mins ++; 19 s e g s = 0 ; 20 } 21 INTCONbits. TMR0IF = 0 ; 22 } 23 e l s e { / / interrupção externa 24 INTCONbits. TMR0IE = ~ INTCONbits. TMR0IE ; / / pausa / reinicia 25 INTCONbits. INTF = 0 ; 46
55 26 } 27 } O projeto completo pode ser obtido em: cefet/timer0_crono.x.zip Timer Timer Exemplo: PWM gerado por software
56 6.6. EXEMPLO PWM CAPÍTULO 6. TIMERS 48
57 Capítulo 7 Conversão Analógico-Digital 7.1 Configuração 7.2 Exemplo: Voltímetro Digital
58 7.2. EXEMPLO: VOLTÍMETRO CAPÍTULO 7. CONVERSÃO A/D 50
59 Capítulo 8 Comunicação Serial (USART)
60 CAPÍTULO 8. SERIAL (USART) 52
61 Capítulo 9 Interfaces SPI e I 2 C 9.1 Serial Peripheral Interface 9.2 Inter-Integrated Circuit
62 9.2. INTER-INTEGRATED CIRCUIT CAPÍTULO 9. SPI E I 2 C 54
63 Capítulo 10 Módulo CCP 10.1 Modo Captura 10.2 Modo Comparação 10.3 Modo PWM
64 10.3. MODO PWM CAPÍTULO 10. MÓDULO CCP 56
65 Apêndice A Placa de Desenvolvimento
66 APÊNDICE A. PLACA DE DESENVOLVIMENTO 58
67 Apêndice B Tabela de Símbolos em Displays de 7 Segmentos
68 APÊNDICE B. DISPLAYS DE 7 SEGMENTOS 60
69 Índice Remissivo C C (Linguagem), 3 CMOS, 21 D Display de 7 Segmentos, 25 Dreno Aberto, 22, 23 E E/S, 17 EEPROM, 29 I I/O, 17 I 2 C, 53 M MPLAB X, 5 P Pull-Up, 23 Pull-up, 22 PWM, 47, 55 S Schmitt Trigger, 22 SPI, 53 T Timer 0, 41 Timer 1, 47 Timer 2, 47 TTL, 21 61
Comunicação Serial com o AVR ATMEGA8
Comunicação Serial com o AVR ATMEGA8 Vitor Amadeu Souza [email protected] Introdução Os microcontroladores AVR vem a cada dia tomando cada vez mais espaço nos novos projetos eletrônicos microcontrolados.
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
WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II [email protected]
1 Comunicação USB com o PIC Vitor Amadeu Souza Parte II [email protected] Continuando com o artigo apresentado na edição passada de comunicação USB com o PIC, continuaremos nesta edição o estudo do
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,
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
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,
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
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,
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
INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 4. INTERLIGAÇÃO DO SISTEMA... 5 5. ALGUNS RECURSOS... 6 6. SERVIDOR BAM...
1 de 30 INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 3.1. ONDE SE DEVE INSTALAR O SERVIDOR BAM?... 4 3.2. ONDE SE DEVE INSTALAR O PROGRAMADOR REMOTO BAM?... 4 3.3. COMO FAZER
1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.
O software de tarifação é uma solução destinada a rateio de custos de insumos em sistemas prediais, tais como shopping centers. O manual do sistema é dividido em dois volumes: 1) MANUAL DO INTEGRADOR Este
Conheça o 4017 (ART062)
1 de 11 20/02/2013 18:14 Conheça o 4017 (ART062) Este artigo não é novo, mas sua atualidade se manterá por muito tempo, o que jusitifica o fato dele ser um dos mais acessados desse site. De fato, o circuito
Monitor de Rede Elétrica Som Maior Pro. Manual do Usuário Versão 3.9f
Monitor de Rede Elétrica Som Maior Pro Manual do Usuário Versão 3.9f 2 ÍNDICE PÁG. 1 APRESENTAÇÃO...03 2 DESCRIÇÃO DO EQUIPAMENTO...04 2.1 ROTINA INICIAL DE AVALIAÇÃO DA REDE ELÉTRICA...04 2.2 TROCA DE
Arquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Programação de Robótica: Modo Circuitos Programados - Avançado -
Programação de Robótica: Modo Circuitos Programados - Avançado - 1 Programação de Robótica: Modo Circuitos Programados - Avançado ATENÇÃO Lembramos que você poderá consultar o Manual de Referência do Software
Sistemas Operacionais. Prof. André Y. Kusumoto [email protected]
Sistemas Operacionais Prof. André Y. Kusumoto [email protected] Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação
Capítulo 12. Projeto 5 Controle de Motores de Passo. 12.1 Circuito e Funcionamento
Capítulo 12 Projeto 5 Controle de Motores de Passo A crescente popularidade dos motores de passo deve-se a sua adaptação à lógica digital. Estes dispositivos são usados em inúmeras aplicações, tais como:
Cadastramento de Computadores. Manual do Usuário
Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES
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
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
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,
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
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
Programa de Atualização de Pontos do Lince GPS
Esse programa atualiza os pontos do software Lince GSP em aparelhos portáteis, como navegadores e celulares. A Robotron mantém um serviço de fornecimento de pontos de controle de velocidade aos aparelhos
SUMÁRIO Acesso ao sistema... 2 Atendente... 3
SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da
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
Guia de consulta rápida
Guia de consulta rápida DigiFlash Smart Trigger 1 2 3 4 5 17 Smart Trigger 6 7 8 9 16 15 14 13 12 11 10 O DigiFlash Smart Trigger é um dispositivo para disparar flashes a partir de um evento externo. Pode
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
Visão Geral sobre o tutorial de Utilização de
Tutorial de Utilização de Impressoras Não Fiscais no NFC-e Visão Geral sobre o tutorial de Utilização de Impressoras Não Fiscais no NFC-e O intuito deste tutorial é descrever com detalhes técnicos como
Anexo III Funcionamento detalhado do Sistema Montador de Autoria
1 Sumário Anexo III Funcionamento detalhado do Sistema Montador de Autoria Anexo III Funcionamento detalhado do Sistema Montador de Autoria... 1 1 Sumário... 1 2 Lista de Figuras... 5 3 A Janela principal...
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
PAINEL DE SENHAS RBSG4JE. Imagem ilustrativa do painel. Operação/Configuração Painel Eletrônico de Senhas / Guichê com jornal de mensagens.
PAINEL DE SENHAS RBSG4JE Imagem ilustrativa do painel Operação/Configuração Painel Eletrônico de Senhas / Guichê com jornal de mensagens. Há basicamente dois modos de operação no Painel de Senhas: - Operação
EA773 - Experimento 5
EA773 - Experimento 5 Wu Shin - Ting DCA - FEEC - Unicamp 19 de Novembro de 2009 O projeto consiste em implementar uma calculadora com memória com uso de barramento de 8 bits. Neste documento são discutidos
Programa de Instalação do Lince GPS
Esse programa instala o software Lince GSP em aparelhos portáteis que tenham GPS, como navegadores e celulares. O software Lince GPS é um programa destinado a alertar sobre a aproximação a pontos previamente
1.3 Conectando a rede de alimentação das válvulas solenóides
1.3 Conectando a rede de alimentação das válvulas solenóides CONTROLE DE FLUSHING AUTOMÁTICO LCF 12 Modo Periódico e Horário www.lubing.com.br (19) 3583-6929 DESCALVADO SP 1. Instalação O equipamento deve
1- Requisitos mínimos. 2- Instalando o Acesso Full. 3- Iniciando o Acesso Full pela primeira vez
Manual Conteúdo 1- Requisitos mínimos... 2 2- Instalando o Acesso Full... 2 3- Iniciando o Acesso Full pela primeira vez... 2 4- Conhecendo a barra de navegação padrão do Acesso Full... 3 5- Cadastrando
MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.
PROGRAMA EMBRAPA DE MELHORAMENTO DE GADO DE CORTE MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. MANUAL DE INSTALAÇÃO: 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS
Procedimento para reinstalação dos aplicativos da mesa multi-toque através da imagem do sistema.
Procedimento para reinstalação dos aplicativos da mesa multi-toque através da imagem do sistema. 1) Materiais a serem utilizados - Para realizar este procedimento deve-se estar de posse dos seguintes itens:
Manual do instalador Box Input Rev. 0.01.000. Figura 01 Apresentação do Box Input.
Pág. 1/10 Apresentação Equipamento para detecção de acionamentos e monitoração de sensores. Comunicação com outros dispositivos por rede CAN. Possui seis entradas digitais optoacopladas com indicação de
Manual Equipamento ST10 Flasher Rev. 1
Maio de 2014 2 Sumário Introdução:... 3 Acessórios utilizados:... 4 Instalação:... 5 Abrindo e Conhecendo o Software:... 10 SET PORT... 11 RELOAD MONITOR... 13 BlankCheck... 14 ERASE FLASH... 14 DUMP...
Manual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI
Manual de Utilização Família MI ÍNDICE 1.0 COMO LIGAR O MÓDULO... pág 03 e 04 2.0 OBJETIVO... pág 05 3.0 COMO CONFIGURAR O MÓDULO MI... pág 06, 07, 08 e 09 4.0 COMO TESTAR A REDE... pág 10 5.0 COMO CONFIGURAR
Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7)
SafeSign Standard 3.0.77 (Para MAC OS 10.7) 2/23 Sumário 1 Introdução... 3 2 Pré-Requisitos Para Instalação... 3 3 Ambientes Homologados... 4 4 Hardware Homologado... 4 5 Instruções de Instalação... 5
Tutorial de Eletrônica Aplicações com 555 v2010.05
Tutorial de Eletrônica Aplicações com 555 v2010.05 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
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
PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos www.decom.ufop.br/alex/ [email protected]
PIC18F4550 Curso Engenharia de Controle e Automação Alex Vidigal Bastos www.decom.ufop.br/alex/ [email protected] 1 Agenda Características do PIC18F4550 Pinagem do PIC18F4550 Pinagem do PIC18F4550 Datasheet
IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Central de Alarme de Oito Zonas
Central de Alarme de Oito Zonas R02 ÍNDICE CARACTERÍSTICAS GERAIS:... 3 CARACTERÍSTICAS TÉCNICAS:... 3 CONHECENDO A CENTRAL:... 4 COMO A CENTRAL FUNCIONA:... 4 COMO APAGAR A MEMÓRIA DA CENTRAL:... 4 COMO
Manual de Instalação. GPRS Universal
Manual de Instalação GPRS Universal INTRODUÇÃO O módulo GPRS Universal Pináculo é um conversor de comunicação que se conecta a qualquer painel de alarme monitorado que utilize o protocolo de comunicação
Cerne Tecnologia e Treinamento
Tecnologia e Treinamento Tutorial para Testes na Placa de I/O Ethernet Kits Didáticos e Gravadores da Cerne Tecnologia A Cerne tecnologia têm uma linha completa de aprendizado para os microcontroladores
Funções de Posicionamento para Controle de Eixos
Funções de Posicionamento para Controle de Eixos Resumo Atualmente muitos Controladores Programáveis (CPs) classificados como de pequeno porte possuem, integrados em um único invólucro, uma densidade significativa
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
Mecanismo de Interrupção
Mecanismo de Interrupção Paralelismo de Operação Num sistema multiprogramado a CPU está sempre apta a compartilhar o seu tempo entre os vários programas e os diferentes dispositivos periféricos que necessitam
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,
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito
Manual Captura S_Line
Sumário 1. Introdução... 2 2. Configuração Inicial... 2 2.1. Requisitos... 2 2.2. Downloads... 2 2.3. Instalação/Abrir... 3 3. Sistema... 4 3.1. Abrir Usuário... 4 3.2. Nova Senha... 4 3.3. Propriedades
INTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES
INTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES Matheus Montanini Breve (PIBIC-Jr), Miguel Angel Chincaro Bernuy (Orientador), e-mail: [email protected] Universidade Tecnológica
Guia de início rápido do Powersuite
2013 Ajuste e cuide do desempenho de seu computador com um aplicativo poderoso e ágil. Baixando e instalando o Powersuite É fácil baixar e instalar o Powersuite geralmente, demora menos de um minuto. Para
Manual de utilização do módulo NSE METH-8RL/Exp
INSTALAÇÃO 1 - Baixe o arquivo Software Configurador Ethernet disponível para download em www.nse.com.br/downloads-manuais e descompacte-o em qualquer pasta de sua preferência. 2 - Conecte a fonte 12Vcc/1A
Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br [email protected]
O programa Mysql acompanha o pacote de instalação padrão e será instalado juntamente com a execução do instalador.
INTRODUÇÃO O Programa pode ser instalado em qualquer equipamento que utilize o sistema operacional Windows 95 ou superior, e seu banco de dados foi desenvolvido em MySQL, sendo necessário sua pré-instalação
Cerne Tecnologia e Treinamento (21) 4063-9798 (11) 4063-1877 E-mail: [email protected] MSN: [email protected] Skipe: cerne-tec
Cerne Tecnologia e Treinamento Tutorial para a USBCOM (21) 4063-9798 (11) 4063-1877 E-mail: [email protected] MSN: [email protected] Skipe: cerne-tec www.cerne-tec.com.br Kits Didáticos e Gravadores
Google Drive. Passos. Configurando o Google Drive
Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.
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:
MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL - 317 RV1
MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL - 317 RV1 SÃO CAETANO DO SUL 06/06/2014 SUMÁRIO Descrição do Produto... 3 Características... 3 Configuração USB... 4 Configuração... 5 Página
Manual do Visualizador NF e KEY BEST
Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................
1. Introdução. 2. Conteúdo da embalagem
1 1. Introdução / 2. Conteúdo da embalagem 1. Introdução O Repetidor WiFi Multilaser é a combinação entre uma conexão com e sem fio. Foi projetado especificamente para pequenas empresas, escritórios e
MANUAL DE UTILIZAÇÃO DO WEBMAIL SBC
MANUAL DE UTILIZAÇÃO DO WEBMAIL SBC SUMÁRIO 1 - Tela de Login...03 2 - Caixa de Entrada...04 3 - Escrever Mensagem...06 4 - Preferências...07 4.1 - Configurações Gerais...07 4.2 - Trocar Senha...07 4.3
LINEAR EQUIPAMENTOS RUA SÃO JORGE, 269 - TELEFONE: 6823-8800 SÃO CAETANO DO SUL - SP - CEP 09530-250
LINEAR EQUIPAMENTOS RUA SÃO JORGE, 269 - TELEFONE: 6823-8800 SÃO CAETANO DO SUL - SP - CEP 09530-250 Recomendações Iniciais SOFTWARE HCS 2005 - VERSÃO 4.2 (Compatível com Guarita Vr4.03 e Vr4.04) Para
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 6-T 2. Máquinas Sequencias Síncronas: Comparação entre
NetBeans. Conhecendo um pouco da IDE
NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica
Manual de operação. BS Ponto Versão 5.1
Manual de operação BS Ponto Versão 5.1 conteúdo 1. Instalação do sistema Instalando o BS Ponto Configurando o BS Ponto 2. Cadastrando usuários Cadastro do usuário Master Alterando a senha Master Cadastro
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...
PIC16F628a. Pinagem do PIC16F628a:
PIC16F628a O PIC16F628a é um microcontrolador fabricado pela Microchip Technology (www.microchip.com), com as seguintes características: - composto de 18 pinos; - possui somente 35 instruções no seu microcódigo;
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
Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br [email protected]
Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara
Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Pulsos Digitais Pulso positivo: executa sua função quando está em nível alto Pulso negativo: executa sua função quando
Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais
Operações de Caixa Versão 2.0 Manual destinado à implantadores, técnicos do suporte e usuários finais Sumário Introdução... 3 Suprimento... 3 Sangria... 4 Abertura de Caixa... 6 Fechamento de Caixa...
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
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
Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21
Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 7ª Experiência Síntese de Circuitos Sequenciais Síncronos 1. Objetivos
Guia Site Empresarial
Guia Site Empresarial Índice 1 - Fazer Fatura... 2 1.1 - Fazer uma nova fatura por valores de crédito... 2 1.2 - Fazer fatura alterando limites dos cartões... 6 1.3 - Fazer fatura repetindo última solicitação
Atenção! Não está autorizada a reprodução deste material. Direitos reservados a Multilaser.
1 INTRODUÇÃO O Multisync é um programa de recuperação de sistema e atualização de dispositivos, utilizado quando aparelho apresenta lentidão, não liga, travado na inicialização, atualização de mapas, entro
Nota de Aula: Utilização da IDE Code::Blocks
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO CAMPUS SÃO LUÍS MONTE CASTELO DEPARTAMENTO ACADÊMICO DE INFORMÁTICA SISTEMAS DE INFORMAÇÃO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO I PROFESSOR:
5 Entrada e Saída de Dados:
5 Entrada e Saída de Dados: 5.1 - Arquitetura de Entrada e Saída: O sistema de entrada e saída de dados é o responsável pela ligação do sistema computacional com o mundo externo. Através de dispositivos
BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia
O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos
CONTROLE DIGITAL DE VOLUME 1.-----------------------------------------------------------------------------
CONTROLE DIGITAL DE VOLUME 1.----------------------------------------------------------------------------- Uma boa gama de aplicações atuais utiliza o controle de volume digital. Não nos referimos apenas
Iniciação à Informática
Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através
COMO USAR DOIS MONITORES NO WINDOWS 8
COMO USAR DOIS MONITORES NO WINDOWS 8 Trabalhar com dois monitores no Windows tem diversas utilidades. Dentre elas podemos destacar a possibilidade de visualizar mais itens ao mesmo tempo, exibir o conteúdo
Dicas para usar melhor o Word 2007
Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2
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
FERRAMENTAS DE COLABORAÇÃO CORPORATIVA
FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Manual de Utilização Google Grupos Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução... 3 Página
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
Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4.
1 Sumário 1. SOBRE O NFGoiana DESKTOP... 3 1.1. Apresentação... 3 1.2. Informações do sistema... 3 1.3. Acessando o NFGoiana Desktop... 3 1.4. Interface do sistema... 4 1.4.1. Janela Principal... 4 1.5.
Manual do Usuário - Plataforma Simulados
Manual do Usuário - Plataforma Simulados Indice 1. Acessando a plataforma 3 2. Realizando seu login 3 3. Alunos 4 3.1. Novo Aluno 4 3.2. Novo upload 4 3.3. Listagem de alunos 5 3.3.1.Editando ou removendo
Procedimentos para Reinstalação do Sisloc
Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...
Manual AGENDA DE BACKUP
Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu
Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01
Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal
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,
