ensino tÉcnico notas de aulas sistemas digitais ...marcoscosta.eti.br/arquivos/notas de aulas...

27
ENSINO TÉCNICO Notas de aulas Sistemas Digitais Microprocessados 1 Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa Competências, Habilidades e Bases Tecnológicas da disciplina de Sistemas Digitais Microprocessados. Observações a considerar: 1-) Comunicação de alunos com alunos e professores: Um e-mail para a sala é de grande valia para divulgação de material, notícias e etc. Criação de grupo nas redes sociais também é interessante. 2-) Uso de celulares: Para o bom andamento das aulas, recomendo que utilizem os celulares em vibracall, para não atrapalhar o andamento da aula. 3-) Material das aulas: A disciplina trabalha com NOTAS DE AULA que são disponibilizadas ao final de cada aula, as mesmas estarão no site: www.marcoscosta.eti.br, link ALUNO ETEC, onde será pedido um usuário e senha para acesso ao conteúdo, neste caso será: USUARIO: 3_TEN_EMBU SENHA: 3ten2015_2 4-) E-mail da disciplina: A disciplina terá um e-mail de envio das atividades, dúvidas e assim por diante, assim sendo todas as atividades deverão ser enviadas para tal e-mail, se forem enviadas atividades de tal disciplina para e-mail não mencionado, a atividade será desconsiderada. O e-mail desta disciplina é: [email protected]

Upload: hoangbao

Post on 03-Dec-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 1

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

Competências, Habilidades e Bases Tecnológicas da disciplina de Sistemas Digitais Microprocessados.

Observações a considerar: 1-) Comunicação de alunos com alunos e professores:

Um e-mail para a sala é de grande valia para divulgação de material, notícias e etc.

Criação de grupo nas redes sociais também é interessante. 2-) Uso de celulares:

Para o bom andamento das aulas, recomendo que utilizem os celulares em vibracall, para não atrapalhar o andamento da aula. 3-) Material das aulas:

A disciplina trabalha com NOTAS DE AULA que são disponibilizadas ao final de cada aula, as mesmas estarão no site: www.marcoscosta.eti.br, link ALUNO ETEC, onde será pedido um usuário e senha para acesso ao conteúdo, neste caso será:

USUARIO: 3_TEN_EMBU SENHA: 3ten2015_2

4-) E-mail da disciplina:

A disciplina terá um e-mail de envio das atividades, dúvidas e assim por diante, assim sendo todas as atividades deverão ser enviadas para tal e-mail, se forem enviadas atividades de tal disciplina para e-mail não mencionado, a atividade será desconsiderada.

O e-mail desta disciplina é: [email protected]

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 2

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

5-) Prazos de trabalhos e atividades:

Toda atividade solicitada terá uma data limite de entrega, de forma alguma tal data será postergada ou seja, se não for entregue até a data limite a mesma receberá menção I, isso tanto para atividades entregues de forma impressa ou enviadas ao e-mail da disciplina. 6-) Qualidade do material de atividades:

Impressas ou manuscritas: Muita atenção na qualidade do que será entregue, atividades sem grampear, faltando nome e número de componentes, rasgadas, amassadas, com rebarba de folha de caderno e etc. serão desconsiderados por mim.

Digitais: Ao enviarem atividades para o e-mail da disciplina, SEMPRE no assunto deverá ter o nome da atividade que está sendo enviada, e no corpo do e-mail deverá ter o(s) nome(s) do(s) integrante(s) da atividade, sem estar desta forma a atividade será DESCONSIDERADA.

7-) Menções e critérios de avaliação:

Na ETEC os senhores serão avaliados por MENÇÃO, onde temos: - MB - Muito Bom;

- B - Bom; - R - Regular; - I - Insatisfatório.

Cada trimestres teremos as seguintes formas de avaliação: - 1 avaliação teórica; - 1 avaliação prática (a partir do 2º trimestre, e as turmas do 2º módulo em diante);

- Seminários; - Trabalhos teóricos e/ou práticos; - Assiduidade; - Outras que se fizerem necessário.

Caso o aluno tenha alguma menção I em algum dos trimestres será aplicada uma recuperação, que poderá ser em forma de trabalho prático ou teórico. 1. MICROPROCESSADORES 1.1. HISTÓRICO

Embora as primeiras gerações de computadores tivessem obtido grande sucesso nas décadas de 50 e 60, apresentavam alguns inconvenientes: o tamanho e a velocidade. Um impacto tecnológico viria a reduzir as dimensões dos computadores ao mesmo tempo em que os tornariam mais rápidos: o surgimento dos microprocessadores.

Um microprocessador é um circuito integrado (“chip”) capaz de executar instruções, tendo com sua principal parte a Unidade Central de Processamento (CPU). Com o avanço tecnológico na área da microeletrônica, outras características vêm sendo incorporadas ao longo das últimas décadas aos microprocessadores, como unidades de gerenciamento de memória, memória cache, coprocessador numérico, etc, tornando-os cada vez mais complexos.

A origem dos microprocessadores data de 1971, quando a Intel Corporation lançou no mercado o microprocessador 4004, denominado originalmente como “calculadora em um único chip”, podendo ser considerado como o primeiro processador de propósito geral. Possuía em torno de 3.000 transistores e logo surgiram aplicações para ele. A partir desta nova tecnologia surgiriam as calculadoras mais modernas, os computadores pessoais (PC), as “workstations”, e atualmente os microprocessadores vêm derrubando a última fronteira na área dos computadores: os “mainframes”. 1.2. O QUE É UM MICROPROCESSADOR

O microprocessador é um dispositivo lógico programável em um único chip de silício, concebido sob a tecnologia VLSI (circuito integrado em alta escala). Ele age sob o controle de um programa armazenado em memória, executando operações aritméticas, lógica booleana,

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 3

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

tomada de decisão, além de entrada e saída, permitindo a comunicação com outros dispositivos periféricos.

1.3. O MICROCOMPUTADOR PESSOAL (PC) E AS “WORKSTATIONS”

O microcomputador pessoal surgiu a partir da evolução dos microprocessadores, correspondendo a um sistema computacional completo, constituído pelo microprocessador, memória primária de armazenamento de dados e programas, memória secundária de armazenamento (disco magnético rígido e flexível, ótico, fita magnética), dispositivos convencionais de entrada (teclado, mouse) e saída (monitor, impressora, caixas de som).

Uma workstation apresenta como principais características, além das citadas para um microcomputador, a alta capacidade de processamento de operações matemáticas em ponto flutuante, a alta resolução gráfica e a maior capacidade de armazenamento. 1.4. APLICAÇÕES DE MICROPROCESSADORES

No nosso dia-a-dia nos deparamos com inúmeras aplicações de microprocessadores, sendo que na maioria das vezes de forma despercebida.

Pode-se citar, apenas a título de exemplo: o relógio digital/despertador, calculadoras, alarmes antifurto de residências e automóveis, o controle de injeção de combustível em automóveis, os eletrodomésticos como micro-ondas e máquinas de lavar-louças, videocassetes, etc. Também não podemos deixar de mencionar os microcomputadores, hoje presentes não só no ambiente de trabalho (escritórios e linhas de produção), mas também em muitas residências.

1.5. EVOLUÇÃO DOS MICROPROCESSADORES

Existem diversos fabricantes de microprocessadores que foram surgindo desde o lançamento pioneiro da Intel, como a Motorola, a Zilog e a Texas Instruments, entre outros.

A Intel, após o lançamento do microprocessador 4004, concebeu outros microprocessadores, e alguns deles foram utilizados na implementação dos primeiros PCs, tornando-se referência de mercado. Os principais microprocessadores lançados no mercado pela Intel são:

• 4004 (1971): primeiro microprocessador de 4 bits, contendo 45 instruções e 4 Kbytes de capacidade de endereçamento de memória. Foi utilizado em aplicações simples, como calculadoras, os primeiros vídeo games e pequenos sistemas de controle.

• 8008 (1972): primeiro microprocessador de 8 bits, possui capacidade de endereçamento de memória e 16 Kbytes. Utilizado em aplicações mais complexas que o anterior, onde a manipulação de caracteres de 8 bits era importante, como caixas registradoras. Logo tornou-se obsoleto pela sua limitação de endereçamento de memória.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 4

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

• 8080 (1973): primeiro dos microprocessadores modernos de 8 bits. A partir dele outros fabricantes começaram a lançar seus microprocessadores de 4 e 8 bits, alavancando um grande avanço tecnológico nesta área. Ele é capaz de endereçar 64 Kbytes de memória, possui mais instruções do que o anterior e ainda utiliza um clock cerca de 10 vezes mais rápido que o 8008. Além disso, possui a vantagem de ser compatível com a família TTL, facilitando o seu interfaceamento com outros componentes.

• 8085 (1976): este processador pode ser considerado a nova versão do 8080 Além de mais rápido, possuindo algumas características extras, como a incorporação do gerador de clock e circuitos internos para a geração de sinais de controle, diminuindo o número de componentes adicionais necessários para a construção de um sistema.

• 8086 (1978): primeiro processador de 16 bits, incorporando instruções de multiplicação e divisão, e com velocidade 3 vezes maior que o 8085. Endereça 1 Mbytes de memória, o que permitiu a concepção dos primeiro microcomputadores da linha PC, e posteriormente os XT, ancestrais dos microcomputadores atuais, que na época até os substituíam em algumas aplicações. Possui ainda um número maior de registradores, possibilitando a agilização de operações entre registradores, sem o envolvimento da memória exterior.

• 80186 (1982): evolução do 8086, sendo compatível em nível de software com o seu antecessor. Possui recursos adicionais, como gerador de clock interno, controlador de interrupção programável, temporizadores, unidade programável de ADM (acesso direto à memória) e unidade de seleção de dispositivos de memória e E/S.

• 80286 (1983): versão avançada do 8086, ainda em 16 bits, tendo sido projetado para permitir aplicações de multiusuários e multitarefas. Pode endereçar até 16 Mbytes de memória física e 1 Gbytes de memória virtual gerenciada por uma unidade de gerenciamento de memória

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 5

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

localizada no próprio processador. É capaz de executar instruções em menos ciclos de clock que o 8086, e foi utilizado pelos microcomputadores PC-AT.

• 80386 (1985): versão em 32 do 8086, suportando multitarefa e gerenciamento de memória virtual com ou sem paginação, proteção de software e capacidade de endereçamento de 4 Gbytes de memória física, e 64 Tbytes de memória virtual. Pode chavear entre o modo real e modo protegido de memória via software, sem necessidade de reinicialização. Disponível em duas versões, muito utilizadas nos PCs que sucederam o PC AT:

386DX: versão com via de dados externa de 32 bits.

386SX: versão com via de dados externa de 16 bits.

• 80486 (1989): versão aprimorada do 80386, incorporando o coprocessador numérico 387 e 8 Kbytes de memória cache. Apresenta uma melhor performance em relação ao 80386, tendo sido concebido sob o conceito das arquiteturas RISC. Disponível nas versões: • 486SX: versão sem o coprocessador numérico 80387. • 486DX: versão com o coprocessador numérico 80387. • 486DX2: versão com clock interno duplicada (2 x 20, 25 ou 33 Mhz). • 486DX4: versão com clock interno triplicada (3 x 25 ou 33 Mhz), e 16 Kbytes de memória cache.

• Pentium (1993): contém o equivalente a dois 80486, sendo que o trabalho a ser realizado é dividido automaticamente entre os dois processadores, visando mantê-los ocupados a maior parte do tempo. Possui duas unidades de processamento de números inteiros implementados na forma de pipeline de cinco estágios, que permitem o paralelismo de algumas operações, e duas unidades de memória cache de 8 Kbytes cada para dados e instruções.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 6

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

• Pentium MMX(1996): possui arquitetura semelhante à do Pentium, com a incorporação de instruções destinadas ao processamento de imagem. A partir desse processador foram previstas diferentes tensões de alimentação do núcleo e de interação com o meio externo que são respectivamente 2.8V e 3.3V.

• Pentium II(1997): possui arquitetura baseada no processador Pentium Pro, com cache de nível 1 de 32 Kbytes que opera na mesma frequência do processador, e a incorporação de instruções do MMX. O cache de nível 2, com 512 Kbytes, opera na frequência do bus externo. A frequência de operação está entre (66 – 100Mhz) x (3– 5).

• Pentium III (1999): é um microprocessador de sexta geração fabricado pela Intel, tendo a mesma arquitetura do Pentium Pro e concorria com o Athlon da AMD. As primeiras versões eram muito parecidas com o Pentium I,I mas com instruções SSE. Igualmente com o que aconteceu com Pentium II, existia uma versão Celeron "low-end" e um Xeon com a mesma arquitetura. Foi substituído pelo Pentium 4 que teve a missão de aumentar a frequência do processador mas depois serviu de base para a arquitetura Core.

• Pentium IV (2000): O Pentium 4 foi lançado em novembro de 2000, trazendo uma arquitetura completamente redesenhada, baseada na ideia do uso de um longo pipeline (buscar processar a próxima instrução antes da anterior terminar) para permitir que o processador fosse capaz de atingir frequências de clock elevadas.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 7

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

• Dual Core (2000): O Pentium 4 foi lançado em novembro de 2000, trazendo uma arquitetura completamente redesenhada, baseada na ideia do uso de um longo pipeline(buscar processar a próxima instrução antes da anterior terminar) para permitir que o processador fosse capaz de atingir frequências de clock elevadas. 2. Microcontroladores 2.1 Introdução

Atualmente um grande numero de microcontroladores, integrados em diversos equipamentos, exercem um papel importante no dia a dia das pessoas. Despertar ao som de um CD Player programável, tomar café da manha preparado por um micro-ondas digital, e ir ao trabalho de carro, cuja injeção de combustível e microcontrolada, são apenas alguns exemplos.

O mercado de microcontroladores apresenta-se em franca expansão, ampliando seu alcance principalmente em aplicações residenciais, industriais, automotivas e de telecomunicações. Segundo dados da National Semiconductor (1997), uma residência típica americana possui 35 produtos baseados em microcontrolador. Estima-se que, em 2010, em media uma pessoa interagira com 250 dispositivos com microcontroladores diariamente.

Em um passado recente, o alto custo dos dispositivos eletrônicos limitou o uso dos microcontroladores apenas aos produtos domésticos considerados de alta tecnologia (televisão, vídeo e som). Porem, com a constante queda nos preços dos circuitos integrados, os microcontroladores passaram a ser utilizados em produtos menos sofisticados do ponto de vista da tecnologia, como maquinas de lavar, micro-ondas, fogões e refrigeradores. Assim, a introdução do microcontrolador nestes produtos cria uma diferenciação e permite a inclusão de melhorias de segurança e de funcionalidade. Alguns mercados chegaram ao ponto de tornar obrigatório o uso de microcontroladores em determinados tipos de equipamentos, impondo um pré-requisito tecnológico. Muitos produtos que temos disponíveis hoje em dia, simplesmente não existiriam, ou não teriam as mesmas funcionalidades sem um microcontrolador. E o caso, por exemplo, de vários instrumentos biomédicos, instrumentos de navegação por satélites, detectores de radar, equipamentos de áudio e vídeo, eletrodomésticos, entre outros.

Entretanto, o alcance dos microcontroladores vai alem de oferecer algumas facilidades. Uma aplicação crucial, onde os microcontroladores são utilizados, e na redução de consumo de recursos naturais. Existem sistemas de aquecimento modernos que captam a luz solar e, de acordo com a demanda dos usuários, controlam a temperatura de forma a minimizar perdas. Um outro exemplo, de maior impacto, e o uso de microcontroladores na redução do consumo de energia em motores elétricos, que são responsáveis pelo consumo de, aproximadamente, 50% de toda eletricidade produzida no planeta. Portanto, o alcance dessa tecnologia tem influencia muito mais importante em nossas vidas, do que se possa imaginar.

O universo de aplicações dos microcontroladores, como já mencionado, esta em grande expansão, sendo que a maior parcela dessas aplicações e em sistemas embarcados. A expressão “sistema embarcado” (do inglês embedded system) se refere ao fato do microcontrolador ser inserido nas aplicações (produtos) e usado de forma exclusiva por elas. Como a complexidade desses sistemas cresce vertiginosamente, o software tem sido fundamental para oferecer as respostas as necessidades desse mercado. Tanto e, que o software para microcontroladores representa uma fatia considerável do mercado de software mundial. Segundo Edward Yourdon (consultor na área de computação, pioneiro nas metodologias de engenharia do software e programação estruturada) a proliferação dos sistemas embarcados, juntamente com o advento da Microsoft, são os responsáveis pela retomada do crescimento da indústria de software nos Estados Unidos da America. 2.2. Definição de Microcontrolador

Um microcontrolador e um sistema computacional completo, no qual estão incluídos uma CPU (Central Processor Unit), memória de dados e programa, um sistema de clock, portas de I/O (Input/Output), além de outros possíveis periféricos, tais como, módulos de temporização e conversores A/D entre outros, integrados em um mesmo componente. As partes integrantes de qualquer computador, e que também estão presentes, em menor escala, nos microcontroladores são:

● Unidade Central de Processamento (CPU) ● Sistema de clock para dar sequencia as atividades da CPU ● Memória para armazenamento de instruções e para manipulação de dados ● Entradas para interiorizar na CPU informações do mundo externo ● Saídas para exteriorizar informações processadas pela CPU para o mundo externo ● Programa (firmware) para definir um objetivo ao sistema.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 8

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

3. Aplicações dos Microcontroladores

4. Os Microcontroladores na atualidade:

As principais áreas de atuação são: • Área Automobilística • Automação • Segurança • Controle de Tráfego • Médica • Entretenimento • Robótica

5. Exemplo prático de utilização de um microcontrolador

Podemos citar de início o controle remoto de uma TV

Outro exemplo corriqueiro é o despertador

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 9

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

Outro exemplo é a parte de segurança

Casa Inteligente

Taxímetro

Indústrias

6. Diferenças entre Microcontrolador e Microprocessador

Tanto os Microcontroladores como os Microprocessadores possuem uma ULA (unidade lógica e aritmética)

A ULA de um processador convencional de fato é muito mais poderosa se comparada a uma ULA de um microcontrolador.

A ULA do microcontrolador é menos poderosa, porém em uma única pastilha já temos todos os recursos para o funcionamento do mesmo.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 10

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

7. Área de atuação do Microcontrolador e do Microprocessador

Os microprocessadores são utilizados em aplicações onde são requeridos cálculos matemáticos complexos e com muita velocidade

Já os microcontroladores são utilizados de forma dedicada, por exemplo em eletrodomésticos, onde a velocidade de processamento não é tão alta.

8. Introdução à Lógica de Programação 8.1 Lógica

A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequencia lógica para o desenvolvimento. Então o que é lógica?

Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

8.2 Sequencia Lógica

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 11

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

Estes pensamentos, podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa.

Sequencia Lógica são passos executados até atingir um objetivo ou solução de um problema.

8.3 Instruções

Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar.

Convém ressaltar que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica. Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc.

É evidente que essas instruções tem que ser executadas em uma ordem adequada – não se pode descascar as batatas depois de fritá-las. Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correta.

Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar.

8.4 Algoritmo

Um algoritmo é formalmente uma sequencia finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequencia de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas.

Como exemplos de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos, como um videocassete, que explicam passo-a-passo como, por exemplo, gravar um evento. Até mesmo as coisas mais simples, podem ser descritas por sequencias lógicas.

Por exemplo:

“Chupar uma bala”. 1) Pegar a bala; 2) Retirar o papel; 3) Chupar a bala; 4) Jogar o papel no lixo; “Somar dois números quaisquer”. 1) Escreva o primeiro número no retângulo A 2) Escreva o segundo número no retângulo B 3) Some o número do retângulo A com número do retângulo B e coloque o resultado no

retângulo C

+ =

Retângulo A Retângulo B Resultado

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 12

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

8.5 Programas

Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Java, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Notem que dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos da vida real. 8.6 Faça as atividades abaixo e entreguem na próxima aula dia 06/08/2015. 1) Crie uma sequencia lógica para tomar banho;

2) Faça um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número;

3) Descreva a sequencia lógica para trocar um pneu de um carro;

4) Faça um algoritmo para trocar uma lâmpada. 9. Desenvolvendo Algoritmos 9.1 Pseudocódigo

Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Java, estaremos gerando código em Java. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

9.2 Regras para construção do Algoritmo

Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas: Usar somente um verbo por frase; Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com

informática; Usar frases curtas e simples; Ser objetivo; Procurar usar palavras que não tenham sentido dúbio (duplo). 9.3 Fases

No capítulo anterior vimos que ALGORITMO é uma seqüência lógica de instruções que podem ser executadas. É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo, como por exemplo:

Como fazer arroz doce ou então calcular o saldo financeiro de um estoque, entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais.

Onde temos:

ENTRADA

PROCESSAMENTO

SAÍDA

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 13

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

Entrada: São os dados de entrada do algoritmo. Processamento: São os procedimentos utilizados para chegar ao resultado final. Saída: São os dados já processados. Analogia com o homem:

9.4 Exemplo de Algoritmo

Imagine o seguinte problema: Calcular a média final dos alunos da 8ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4.

Onde:

Média Final = P1 + P2 + P3 + P4 4

Para montar o algoritmo proposto, faremos três perguntas:

a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4

b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi-los por 4 c) Quais serão os dados de saída? R: O dado de saída será a média final

Algoritmo

Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão

9.5 Teste de Mesa

Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não. Veja o exemplo: Utilize a tabela abaixo: Nota da Prova 1 Nota da Prova 2 Nota da Prova 3 Nota da Prova 4 9.6 Exercícios

P1 P2 P3 P4 Processamento Média

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 14

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

1) Identifique os dados de entrada, processamento e saída no algoritmo abaixo:

- Receba código da peça - Receba valor da peça - Receba Quantidade de peças - Calcule o valor total da peça (Quantidade * Valor da peça) - Mostre o código da peça e seu valor total

2) Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que ESTOQUE_MÉDIO = (QUANTIDADE_MÍNIMA + QUANTIDADE_MÁXIMA) / 2

10. Constantes, Variáveis e Tipos de Dados

Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado.

Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos podem ser por exemplo: inteiros, reais, lógicos, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores.

10.1 Constantes

Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal.

Exemplo de constantes:

N1 + N2 + N3 3 Constante 10.2 Variáveis

Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Exemplos de variáveis:

Variável Conteúdo da Variável Variáveis 10.3 Tipos de Variáveis

As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas, caracteres, alfanuméricas ou lógicas.

10.3.1 Numéricas

TOTAL = Produto * Quantidade

NOME = “JOSE”

IDADE = 30

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 15

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

Específicas para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as Reais são para o armazenamento de números que possuam casas decimais.

10.3.2 Caracteres Específicas para armazenamento de conjunto de caracteres que não

contenham números (literais). Ex: nomes. 10.3.3 Alfanuméricas

Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas.

10.4.4 Lógicas

Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso.

11. Introdução ao Arduino

O Arduino faz parte do conceito de hardware e software livre e está aberto para uso e

contribuição de toda sociedade. O conceito Arduino surgiu na Itália, em 2005, com o objetivo de criar um dispositivo que fosse utilizado em projetos/protótipos construídos de uma forma menos dispendiosa do que outros sistemas disponíveis no mercado.

Ele pode ser usado para desenvolver artefatos interativos stand-alone ou conectados ao computador, utilizando diversos aplicativos, tais como: Adobe Flash, Processing, Max/MSP, Pure Data ou SuperCollider.

O Arduino foi projetado com a finalidade de ser de fácil entendimento, de fácil programação e de fácil aplicação, além de ser multiplataforma, podendo ser configurado em ambientes Linux, Mac OS e Windows. Além disso, um grande diferencial deste dispositivo é ser mantido por uma comunidade que trabalha na filosofia open-source, desenvolvendo e divulgando gratuitamente seus projetos.

O equipamento é uma plataforma de computação física: são sistemas digitais ligados a sensores e atuadores, que permitem construir sistemas que percebam a realidade e respondem com ações físicas. Ele é baseado em uma placa microcontrolada, com acessos de Entrada/Saída (I/O), sobre a qual foram desenvolvidas bibliotecas com funções que simplificam a sua programação, por meio de uma sintaxe similar _a das linguagens C e C++.

O Arduino utiliza o microcontrolador Atmega. Um microcontrolador (também denominado MCU) é um computador em um chip, que contém um microprocessador, memória e periféricos de entrada/saída. Ele pode ser embarcado no interior de algum outro dispositivo, que, neste caso, é o Arduino, para que possa controlar suas funções ou ações.

Em resumo, o Arduino _e um kit de desenvolvimento, que pode ser visto como uma unidade de processamento capaz de mensurar variáveis do ambiente externo, transformadas em um sinal elétrico correspondente, através de sensores ligados aos seus terminais de entrada. De posse da informação, ele pode processa-la computacionalmente. Por fim, ele pode ainda atuar no controle ou no acionamento de algum outro elemento eletroeletrônico conectado ao terminal de saída. A Figura abaixo apresenta um diagrama de blocos de uma cadeia de processamento utilizando o Arduino.

Uma vez que o Arduino _e baseado em um microcontrolador e, portanto, é programável,

torna-se possível criar diversas aplicações diferentes com uma certa facilidade. Além disso, o

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 16

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

próprio equipamento pode ser reutilizado, através de uma nova programação. Por sua vez, a sua programação é simplificada pela existência de diversas funções que controlam o dispositivo, com uma sintaxe similar a de linguagens de programação comumente utilizadas (C e C++). 12. Arduino em Windows 12.1 Placa Arduino e um cabo USB AB

12.2 - Download do software do Arduino Faça download da última versão do software do Arduino(http://multilogica-

shop.com/Download). Ao terminar, descompacte o arquivo e mantenha a estrutura de pastas e sub-pastas. Se quiser guarde esta pasta no drive C: do seu computador. Dentro desta pasta existe um arquivo chamado arduino.exe que é o ponto de entrada do programa do Arduino, a IDE (Integrated Development Environment). 12.3 - Conectando o Arduino

O Arduino Uno isolado usa a energia do computador através da conexão USB, não sendo necessária energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB. O LED verde de energia (PWR) deve acender. 12.4 - Instalando os drivers

Drivers para Arduino Uno ou Arduino Mega 2560 com Windows 7, Vista ou XP:

Conecte a placa ao computador e aguarde o Windows iniciar o processo de instalação do driver. Depois de alguns momentos o processo vai falhar. Clique em concluir e dispense a ajuda do assistente.

Clique no Menu Principal e abra o Painel de Controle.

Dentro do Painel de Controle, navegue até Sistema e Segurança. Na sequência clique em Sistema, selecione Hardware e depois clique em Gerenciador de Dispositivos.

Procure por Portas (COM & LPT), onde você deve ver uma opção Arduino UNO (COMxx).

Clique com o botão da direita em Arduino UNO (COMxx) e escolha a opção Atualizar Driver.

Depois escolha a opção Instalar de uma lista ou local específico (Avançado), e clique em avançar.

Finalmente navegue e escolha o driver arduino.inf localizado na pasta Drivers do software do Arduino que você baixou.

O Windows vai finalizar a instalação do driver a partir deste ponto. 12.5 - Abrindo o programa Arduino

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 17

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

Clique duas vezes na aplicação do Arduino, o arquivo arduino.exe. Caso o programa carregue com o idioma que não é da sua preferência você pode alterar na sessão de preferências do programa.

12.6 - Exemplo Piscar

Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 18

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

12.7 - Selecione sua placa

Você deve selecionar qual a sua placa Arduino: Ferramentas > Placa > Arduino Uno.

12.8 - Selecione a porta

Selecione agora a porta serial que conectará o Arduino: Ferramentas > Porta Serial.

Você deve selecionar a mesma porta que utilizou para confirgurar o sistema no passo 4. 12.9 - Carregue o programa

Agora simplesmente clique no botão Carregar da janela do programa. Espere alguns

segundos. Você deve ver os LEDs RX e TX da placa piscarem. Se o processo foi executado normalmente você verá uma mensagem de “Transferência concluída”.

Depois de alguns segundos você verá o LED do pin 13 piscar em laranja. Neste caso, parabéns! Seu Arduino está pronto e instalado.

Se você tiver problemas na instalação pode acessar a página oficial do Arduino (http://arduino.cc/en/Guide/Troubleshooting) com algumas soluções.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 19

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 20

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

13. Software Arduino

Para executar o programa entramos na pasta do Arduino guardada no computador e procuramos o ícone. Clique duas vezes para abrir o programa.

O programa do Arduino também é conhecido como IDE Arduino (Integrated Development Environment) pois além do entorno de programação consiste também em um editor de código, um compilador e um depurador.

Espaço de trabalho:

13.1 Sketches

Softwares escritos usando Arduino são chamados de Sketches. Estes Sketches são escritos no editor de texto da IDE do Arduino e são salvos com a extensão de arquivo .ino. Este editor tem características de cortar/colar e para buscar/substituir texto. A área de mensagem dá feedback ao salvar e exportar arquivos e também exibe informações de erros ao compilar Sketches. O canto direito inferior da janela exibe a placa atual e a porta serial. Os botões da barra de ferramentas permitem que você verifique, carregue, crie, abra e salve Sketches ou abra o monitor serial.

Nota: Nas versões do IDE antes de 1.0 os Sketches são salvos com a extensão .pde. É possível abrir esses arquivos com a versão 1.0, mas você será solicitado a salvar o Sketch com a extensão .ino.

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 21

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

13.2 Biblioteca Arduino

O ambiente Arduino pode ser estendido através da utilização de bibliotecas, assim como a maioria das plataformas de programação. Bibliotecas fornecem funcionalidades extras para uso em sketches. Por exemplo, para trabalhar com hardware ou manipulação de dados.

Algumas bibliotecas já vêm instaladas com a IDE Arduino, mas você também pode fazer download ou criar a sua própria.

Para usar uma biblioteca em um sketch, selecione em sua IDE Arduino: Sketch> Importar Biblioteca. Dentro da programação você inclui as funcionalidades de uma biblioteca já existente a

partir do comando: #include <LiquidCrystal.h>

14. Programando o Arduino

Arduino se programa em uma linguagem de alto nível semelhante a C/C++ e geralmente tem os seguintes componentes para elaborar o algoritmo:

- Estruturas (veremos a seguir) - Variáveis (veremos a seguir) - Operadores booleanos, de comparação e aritméticos (no decorrer do curso) - Estrutura de controle (no decorrer do curso) - Funções digitais e analógicas (no decorrer do curso) Para mais detalhes visite a Referência da linguagem de programação Arduino

(http://multilogica-shop.com/Referencia), em português. Veja a referência extendida

(http://arduino.cc/en/Reference/HomePage?from=Reference.Extended) para características mais avançadas da linguagem Arduino e a página das bibliotecas (http://arduino.cc/en/Reference/Libraries) para interação com tipos específicos de hardware, no site oficial do Arduino. 14.1 Estruturas

São duas funções principais que deve ter todo programa em Arduino. A função setup() é chamada quando um programa começa a rodar. Use esta função para

inicializar as sua variáveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta função será executada apenas uma vez após a placa Arduino ser ligada ou ressetada.

setup(){

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 22

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

}

Após criar uma função setup() que declara os valores iniciais, a função loop() faz

exatamente o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de código), permitindo ao seu programa fazer mudanças e responder. Use esta função para controlar ativamente a placa Arduino.

loop(){ }

14.2 Variáveis

Variáveis são expressões que você pode usar em programas para armazenar valores como a leitura de um sensor em um pino analógico. Aqui destacamos algumas:

- Variáveis Booleanas Variáveis boolenas, assim chamadas em homenagem a George Boole, podem ter

apenas dois valores: verdadeiro (true) e falso (false). boolean running = false;

- Int Inteiro é o principal tipo de dado para armazenamento numérico capaz de guardar

números de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor mínimo de -2^15 e valor máximo de (2^15) -1).

int ledPin = 13;

- Char Um tipo de dado que ocupa 1 byte de memória e armazena o valor de um caractere

ASCII. Caracteres literais são escritos entre aspas. char myChar = „A‟;

14.3 Botão

O botão é um componente que conecta dois pontos do circuito quando está pressionado. Neste exemplo quando o botão está pressionado o LED se acende.

14.3.1 O que vou aprender?

- Cabear um circuito - Condicional if/else - Estado de um botão - Ler uma entrada digital e escrever uma saída digital

14.3.2 Conhecimentos prévios 14.3.2.1 Função digitalRead()

Lê o valor de um pino digital especificado, HIGH ou LOW. Sintaxe: digitalRead(pin) buttonState = digitalRead(9); // Leitura do estado de um botão no pino 9.

14.3.2.3 Condicional If else (Se e Senão) 14.3.2.3.1 Condicional If else

If, que é usado juntamente com um operador de comparação, verifica quando uma condição é satisfeita, como por exemplo um input acima de um determinado valor. O formato para uma verificação if é:

if (algumaVariavel > 50) {

// faça alguma coisa } else{ // faça outra coisa }

O programa checa se algumaVariavel (colocar acentos em nomes de variáveis não é

uma boa ideia) é maior que 50. Se for, o programa realiza uma ação específica. Colocado de

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 23

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

outra maneira, se a sentença que está dentro dos parêntesis é verdadeira o código que está dentro das chaves roda; caso contrário o programa salta este bloco de código, e vai para o else, que é a negação do IF, realizando outra tarefa.

A sentença que está sendo verificada necessita o uso de pelo menos um dos operadores

de comparação: x == y (x é igual a y) x != y (x é não igual a y) x < y (x é menor que y) x > y (x é maior que y) x <= y (x é menor ou igual a y) x >= y (x é maior ou igual a y)

15.3.3 Serial.print

Exibe dados seriais sendo enviados da placa Arduino para o computador. Para enviar dados para a placa, digite o texto e clique no botão "enviar" ou pressione enter.

A comunicação entre a placa Arduino e seu computador pode acontecer em várias velocidades padrão pré-definidas. Para que isso ocorra é importante que seja definida a mesma velocidade tanto na Sketch quanto no Monitor Serial.

Na Sketch esta escolha é feita através da função Serial.begin. E no Monitor Serial através do menu drop down do canto inferior direito.

15.3.4 Material necessário

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 24

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

15.3.5 Diagrama

15.3.6 Código Fonte

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 25

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

14.4 SOM NO ARDUINO Agora nós iremos ver como emitir sons com o arduino.

14.4.1 O QUE VOU APRENDER - O que é um Buzzer; - Função tone(). - O que é uma Protoboard 14.4.2 O QUE É UM BUZZER

O buzzer é um transdutor ou espécie de alto-falante que já possui um oscilador interno para produzir sons (semelhantes ao de uma sirene). Os transdutores são dispositivos de alta impedância, fabricados com um material à base de uma cerâmica, denominada titanato de bário. Eles são muito sensíveis podendo ser usados como fones ou pequenos alto-falantes em sistemas de aviso ou alarmes.

14.4.3 FUNÇÃO tone()

A função tone() possui 2 sintaxes: tone(pino, frequência) e tone(pino, frequência, duração), onde pino referencia qual é o pino que irá gerar a frequência (ligado ao positivo do buzzer), a frequência é definida em hertz e a duração (opcional) é em milissegundos. Caso opte pela sintaxe sem duração é necessário usar a função noTone(pino) para parar a frequência enviada pelo pino definido

Exemplo: tone(pino, frequencia, duração) onde a frequencia do tom é setada em hertz, e a duração, em milisegundos.

14.4.4 O QUE É UMA PROTOBOARD

É uma placa reutilizável usada para construir protótipos de circuitos eletrônicos sem solda.

Uma protoboard é feita por blocos de plástico perfurados e várias lâminas finas de uma liga metálica de cobre, estanho e fósforo.

Protoboard

Conexões abertas

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 26

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

14.4.4 MATERIAL NECESSÁRIO

1 Arduino Uno 1 Buzzer 1 Cabo USB AB

Jumpers 1 Protoboard

14.4.5 DIAGRAMA

15.2.6 CÓDIGO FONTE

ENSINO TÉCNICO Notas de aulas – Sistemas Digitais Microprocessados 27

Sistemas Digitais Microprocessados Profº Marcos Costa de Sousa

14.4.7 Exercício: De acordo com os exercícios anteriores, monte um esquema que contenha um buzzer e que o som seja emitido somente se o botão for pressionado. Realizem a atividade para corrigirmos em aula, me chamem ao terminar.