1. O documento apresenta um estudo sobre programação em linguagem Assembly para microcontroladores AVR usando o Atmel Studio. São mostrados algoritmos e programas em Assembly para realizar operações matemáticas básicas como soma, decremento e comparações.
2. São apresentadas instruções Assembly como LDI, ADD, DEC, BRNE e outras. Também são explicados conceitos como flags, registradores e pilha.
3. São fornecidos exemplos de código Assembly com passo a passo de simulação para verificar o funcionamento dos algoritmos propostos.
O documento descreve as famílias de processadores Intel 8008 e 8080. Detalha as especificações técnicas como número de transistores, largura de barramento de dados, instruções suportadas, aplicações e diagrama de blocos. Também fornece referências sobre a história e especificações desses processadores pioneiros.
O documento descreve a estrutura e aplicações dos microcontroladores PIC, com foco no PIC16F84. Ele explica que os microcontroladores PIC possuem memória de programa, memória de dados, ULA e portas I/O, e que o PIC16F84 tem 13 portas I/O, memória FLASH de 1k e RAM de 90 bytes. Por fim, discute aspectos como osciladores, organização de memória e timers.
O documento descreve a representação de números decimais em binário usando codificação BCD (Binary Coded Decimal). A BCD representa cada algarismo decimal separadamente usando 4 bits por dígito para preservar precisão. Dois dígitos BCD podem ser armazenados em um byte de forma compactada. A aritmética BCD funciona da mesma forma que a decimal.
O documento discute o endereçamento IP, explicando que cada dispositivo de rede precisa de um endereço IP único para identificação e comunicação. O endereço IP é composto por 32 bits divididos em quatro octetos e serve para identificar tanto o dispositivo quanto a rede à qual pertence. O documento também explica conceitos como máscaras de sub-rede, endereços de broadcast e loopback.
O documento apresenta as estruturas de repetição em programação: Para..faca, Enquanto..faca e Repita..ate. Explica a sintaxe e o funcionamento de cada uma, com exemplos. Apresenta também exercícios para fixar o conteúdo e conclui destacando a importância das repetições para criar códigos menores e mais confiáveis.
Vantagens e desvantagens em topologias de redesMarco Martins
O documento descreve as principais topologias de rede, incluindo barramento, anel, estrela, malha e árvore. Cada topologia tem vantagens e desvantagens, como custo, facilidade de instalação, isolamento de problemas, impacto de falhas e escalabilidade. A topologia estrela permite localização mais fácil de problemas, mas uma falha no concentrador para a rede inteira. A topologia malha oferece maior redundância, mas é mais cara de instalar.
El documento describe el proceso de elaboración de programas para microprocesadores. Explica que el programa se almacena en la memoria y está compuesto de instrucciones con códigos de operación y operandos. Luego presenta un ejemplo de algoritmo para sumar dos números y almacenar el resultado, y las distintas etapas de su conversión a instrucciones mnemónicas, códigos de máquina y archivo hexadecimal para programar una memoria ROM.
O documento discute programação estruturada, diagramas de blocos e algoritmos. Ele introduz os conceitos de aplicabilidade da programação estruturada, problemas, diagramas de blocos e seus símbolos. Exemplos de diagramas de blocos para calcular média escolar são apresentados.
O documento descreve as famílias de processadores Intel 8008 e 8080. Detalha as especificações técnicas como número de transistores, largura de barramento de dados, instruções suportadas, aplicações e diagrama de blocos. Também fornece referências sobre a história e especificações desses processadores pioneiros.
O documento descreve a estrutura e aplicações dos microcontroladores PIC, com foco no PIC16F84. Ele explica que os microcontroladores PIC possuem memória de programa, memória de dados, ULA e portas I/O, e que o PIC16F84 tem 13 portas I/O, memória FLASH de 1k e RAM de 90 bytes. Por fim, discute aspectos como osciladores, organização de memória e timers.
O documento descreve a representação de números decimais em binário usando codificação BCD (Binary Coded Decimal). A BCD representa cada algarismo decimal separadamente usando 4 bits por dígito para preservar precisão. Dois dígitos BCD podem ser armazenados em um byte de forma compactada. A aritmética BCD funciona da mesma forma que a decimal.
O documento discute o endereçamento IP, explicando que cada dispositivo de rede precisa de um endereço IP único para identificação e comunicação. O endereço IP é composto por 32 bits divididos em quatro octetos e serve para identificar tanto o dispositivo quanto a rede à qual pertence. O documento também explica conceitos como máscaras de sub-rede, endereços de broadcast e loopback.
O documento apresenta as estruturas de repetição em programação: Para..faca, Enquanto..faca e Repita..ate. Explica a sintaxe e o funcionamento de cada uma, com exemplos. Apresenta também exercícios para fixar o conteúdo e conclui destacando a importância das repetições para criar códigos menores e mais confiáveis.
Vantagens e desvantagens em topologias de redesMarco Martins
O documento descreve as principais topologias de rede, incluindo barramento, anel, estrela, malha e árvore. Cada topologia tem vantagens e desvantagens, como custo, facilidade de instalação, isolamento de problemas, impacto de falhas e escalabilidade. A topologia estrela permite localização mais fácil de problemas, mas uma falha no concentrador para a rede inteira. A topologia malha oferece maior redundância, mas é mais cara de instalar.
El documento describe el proceso de elaboración de programas para microprocesadores. Explica que el programa se almacena en la memoria y está compuesto de instrucciones con códigos de operación y operandos. Luego presenta un ejemplo de algoritmo para sumar dos números y almacenar el resultado, y las distintas etapas de su conversión a instrucciones mnemónicas, códigos de máquina y archivo hexadecimal para programar una memoria ROM.
O documento discute programação estruturada, diagramas de blocos e algoritmos. Ele introduz os conceitos de aplicabilidade da programação estruturada, problemas, diagramas de blocos e seus símbolos. Exemplos de diagramas de blocos para calcular média escolar são apresentados.
Introdução à computação - Aula Prática 4 - Redes de Computadores (Cabeamento ...Leinylson Fontinele
O documento descreve uma aula prática sobre cabeadamento de redes de computadores, ensinando os 8 passos para construir um cabo de rede, incluindo escolher o padrão, liberar os fios, alinhar e cortar, encaixar nos conectores, verificar a crimpagem e testar o cabo. Materiais como cabo par trançado, conectores RJ-45 e alicate de crimpagem são necessários.
O documento fornece uma introdução sobre a linguagem de montagem Assembly. Em 3 frases:
A linguagem Assembly é uma linguagem de programação de baixo nível utilizada para programar diretamente a unidade central de processamento. Ela é compilada em um programa objeto pelo assembler e permite maior controle sobre as funções do computador através do uso de registradores, instruções mnemônicas e flags de estado. A linguagem depende do hardware e não é portável entre arquiteturas de processadores diferentes.
The 8085 microprocessor is an 8-bit CPU with 40 pins that can address up to 64KB of memory and operate at speeds up to 3MHz. It has various internal registers like the accumulator, flag register, instruction register and program counter. It uses an ALU to perform arithmetic and logical operations. The 8085 has an 8-bit data bus and 16-bit address bus to interface with external memory and I/O devices. It uses control signals like ALE, RD, WR and I/O/M to control data transfers. The pinout includes power, clock, interrupt pins and reset signals.
Este documento proporciona una descripción detallada del conjunto de instrucciones del microprocesador 8085. Se dividen las instrucciones en varias categorías como instrucciones de un registro, de transferencia de datos, entre registro/memoria y acumulador, etc. Cada instrucción se describe indicando sus bits afectados, formato y un ejemplo de su uso. El objetivo es servir como referencia de las instrucciones soportadas por el 8085.
Los microcontroladores PIC son circuitos integrados programables capaces de ejecutar órdenes grabadas en su memoria. Están compuestos de bloques funcionales que cumplen tareas específicas e incluyen unidades centrales de procesamiento, memoria y periféricos de entrada/salida. Derivados del PIC1650 originalmente desarrollado por General Instruments, los PIC son microcontroladores RISC fabricados por Microchip Technology Inc.
Este documento apresenta funções pré-definidas em Pascal para aritmética, aleatoriedade e conversão de tipos. Também explica variáveis globais, que podem ser usadas em todo o programa, e variáveis locais, limitadas a um subprograma. O objetivo da aula é ensinar quando declarar variáveis como globais ou locais.
O documento descreve as características e funcionamento de redes sem fio, incluindo sua história, tipos (WLAN, WMAN, WWAN), equipamentos necessários, métodos de ligação e vantagens e desvantagens.
O documento descreve os principais componentes de um computador pessoal, incluindo a caixa, fonte de alimentação, motherboard, memória, CPU, discos rígidos, placas de expansão, placa gráfica, portas de entrada e saída e cabos. Detalha cada um destes componentes, explicando sua função, tipos e evolução.
Este documento fornece respostas a perguntas sobre problemas com computadores e suas soluções. Ele discute como problemas podem ser divididos em cinco categorias e identifica componentes como a motherboard e fonte de alimentação que podem impedir o computador de ligar. Ele também cobre como resetar a BIOS ao esquecer a senha e causas comuns de falta de imagem na tela.
El documento presenta un programa para controlar puertos paralelos de entrada y salida en un microcontrolador PIC16F877. El programa realiza diferentes acciones como encender y apagar LEDs, realizar corrimientos binarios hacia la derecha y izquierda, y alternar el encendido y apagado de los LEDs, dependiendo del valor del puerto de entrada. El programa define rutinas y variables para realizar comparaciones y retardos entre las acciones.
The document discusses assembly language programming concepts including shift, rotate, flag control, compare, and jump instructions. It provides examples and problems to explain the usage and effects of various instructions. Key points include:
- Shift instructions move bits within a register or memory location based on a count. Common instructions are SHR, SAR, SHL, ROL, ROR.
- Flag control instructions modify status flags. Common ones are LAHF, SAHF, CLC, STC.
- Compare instruction CMP performs subtraction without affecting operands and updates flags.
- Jump instructions conditionally transfer control based on status flag values like JO, JB, JE, JL.
Pro
O documento apresenta 33 exercícios de algoritmos para serem resolvidos, variando em complexidade, desde operações matemáticas simples até cálculos com múltiplos parâmetros. Os exercícios abordam tópicos como entrada e saída de dados, condicionais, laços de repetição e funções.
O documento descreve o que é um chipset, suas principais funções e como é dividido em duas partes - ponte norte e ponte sul. O chipset controla a comunicação entre os principais componentes do computador como CPU, memória e periféricos.
Este documento apresenta o programa da disciplina de Sistemas Digitais e Arquitectura de Computadores para o curso de Técnico de Gestão de Equipamentos Informáticos. O programa estrutura-se em dez módulos com 406 horas de formação e visa desenvolver competências relacionadas com sistemas digitais, programação e arquitetura de computadores para gestão de equipamentos. A avaliação privilegia o trabalho prático e a observação direta das competências adquiridas ao longo do curso.
O documento discute o cascateamento de hubs e switches, comparando seus modos de funcionamento. Explica que switches operam na camada 2 do modelo OSI, comutando quadros de forma isolada entre origem e destino, enquanto hubs apenas repetem quadros para todas as portas. Também descreve os processos de aprendizagem e criação de tabelas de endereçamento dos switches.
O documento fornece uma introdução sobre a plataforma Arduino, descrevendo sua criação em 2005 por Maximo Banzi com o objetivo de criar ferramentas eletrônicas acessíveis. Detalha os principais componentes de hardware do Arduino, incluindo o microcontrolador, portas digitais e analógicas e memórias. Apresenta diferentes modelos de Arduino e explica conceitos como programação, portas e a ferramenta de desenvolvimento Arduino.
The document discusses memory reference instructions in a processor. It explains that bits 12-14 in the instruction register determine the memory reference instruction type, which can be AND to AC, ADD to AC, LDA, STA, BUN, BSA, or ISZ. It then describes the operation of each instruction type, including which decoder line is activated and the timing signals used to access memory and update registers.
O documento apresenta o modelo de Von Neumann, descrevendo suas principais características como a divisão em três sistemas de hardware (UCP, memória principal e entrada/saída), a capacidade de executar instruções sequencialmente e o gargalo de Von Neumann. Também explica o ciclo de execução das instruções nestas máquinas.
O documento explica o processo de inicialização de um sistema operacional, desde a ligação do computador até a tela de login. Descreve as etapas realizadas pelo BIOS e pelo kernel, incluindo a verificação dos componentes, carregamento da memória RAM, leitura do disco rígido para inicializar o sistema operacional e carregar os processos essenciais para o funcionamento.
Microprogrammed control units use microprograms stored in control memory to generate control signals for executing machine instructions. A microprogram consists of a sequence of microinstructions, each containing a control word and sequencing word. The control unit implements instruction mapping, sequencing, branching, and subroutines using the microprogram stored in its writable control memory.
Este documento descreve as instruções do microprocessador 8085. Está dividido em grupos funcionais: Transferência de dados, Aritméticos, Lógicos, Ramificação e Controle de Pilha/E/S. Cada grupo lista as instruções correspondentes e sua função. O documento também explica a convenção de nomenclatura das instruções e detalha o processo de montagem.
Este documento fornece um resumo de instruções e arquitetura MIPS de 32 bits. Ele inclui:
1) Os tipos de instruções MIPS e seus campos;
2) Os registradores e seus usos;
3) Os principais modos de endereçamento e instruções;
4) Exemplos passo-a-passo de conversão entre linguagem de alto nível e assembly.
Introdução à computação - Aula Prática 4 - Redes de Computadores (Cabeamento ...Leinylson Fontinele
O documento descreve uma aula prática sobre cabeadamento de redes de computadores, ensinando os 8 passos para construir um cabo de rede, incluindo escolher o padrão, liberar os fios, alinhar e cortar, encaixar nos conectores, verificar a crimpagem e testar o cabo. Materiais como cabo par trançado, conectores RJ-45 e alicate de crimpagem são necessários.
O documento fornece uma introdução sobre a linguagem de montagem Assembly. Em 3 frases:
A linguagem Assembly é uma linguagem de programação de baixo nível utilizada para programar diretamente a unidade central de processamento. Ela é compilada em um programa objeto pelo assembler e permite maior controle sobre as funções do computador através do uso de registradores, instruções mnemônicas e flags de estado. A linguagem depende do hardware e não é portável entre arquiteturas de processadores diferentes.
The 8085 microprocessor is an 8-bit CPU with 40 pins that can address up to 64KB of memory and operate at speeds up to 3MHz. It has various internal registers like the accumulator, flag register, instruction register and program counter. It uses an ALU to perform arithmetic and logical operations. The 8085 has an 8-bit data bus and 16-bit address bus to interface with external memory and I/O devices. It uses control signals like ALE, RD, WR and I/O/M to control data transfers. The pinout includes power, clock, interrupt pins and reset signals.
Este documento proporciona una descripción detallada del conjunto de instrucciones del microprocesador 8085. Se dividen las instrucciones en varias categorías como instrucciones de un registro, de transferencia de datos, entre registro/memoria y acumulador, etc. Cada instrucción se describe indicando sus bits afectados, formato y un ejemplo de su uso. El objetivo es servir como referencia de las instrucciones soportadas por el 8085.
Los microcontroladores PIC son circuitos integrados programables capaces de ejecutar órdenes grabadas en su memoria. Están compuestos de bloques funcionales que cumplen tareas específicas e incluyen unidades centrales de procesamiento, memoria y periféricos de entrada/salida. Derivados del PIC1650 originalmente desarrollado por General Instruments, los PIC son microcontroladores RISC fabricados por Microchip Technology Inc.
Este documento apresenta funções pré-definidas em Pascal para aritmética, aleatoriedade e conversão de tipos. Também explica variáveis globais, que podem ser usadas em todo o programa, e variáveis locais, limitadas a um subprograma. O objetivo da aula é ensinar quando declarar variáveis como globais ou locais.
O documento descreve as características e funcionamento de redes sem fio, incluindo sua história, tipos (WLAN, WMAN, WWAN), equipamentos necessários, métodos de ligação e vantagens e desvantagens.
O documento descreve os principais componentes de um computador pessoal, incluindo a caixa, fonte de alimentação, motherboard, memória, CPU, discos rígidos, placas de expansão, placa gráfica, portas de entrada e saída e cabos. Detalha cada um destes componentes, explicando sua função, tipos e evolução.
Este documento fornece respostas a perguntas sobre problemas com computadores e suas soluções. Ele discute como problemas podem ser divididos em cinco categorias e identifica componentes como a motherboard e fonte de alimentação que podem impedir o computador de ligar. Ele também cobre como resetar a BIOS ao esquecer a senha e causas comuns de falta de imagem na tela.
El documento presenta un programa para controlar puertos paralelos de entrada y salida en un microcontrolador PIC16F877. El programa realiza diferentes acciones como encender y apagar LEDs, realizar corrimientos binarios hacia la derecha y izquierda, y alternar el encendido y apagado de los LEDs, dependiendo del valor del puerto de entrada. El programa define rutinas y variables para realizar comparaciones y retardos entre las acciones.
The document discusses assembly language programming concepts including shift, rotate, flag control, compare, and jump instructions. It provides examples and problems to explain the usage and effects of various instructions. Key points include:
- Shift instructions move bits within a register or memory location based on a count. Common instructions are SHR, SAR, SHL, ROL, ROR.
- Flag control instructions modify status flags. Common ones are LAHF, SAHF, CLC, STC.
- Compare instruction CMP performs subtraction without affecting operands and updates flags.
- Jump instructions conditionally transfer control based on status flag values like JO, JB, JE, JL.
Pro
O documento apresenta 33 exercícios de algoritmos para serem resolvidos, variando em complexidade, desde operações matemáticas simples até cálculos com múltiplos parâmetros. Os exercícios abordam tópicos como entrada e saída de dados, condicionais, laços de repetição e funções.
O documento descreve o que é um chipset, suas principais funções e como é dividido em duas partes - ponte norte e ponte sul. O chipset controla a comunicação entre os principais componentes do computador como CPU, memória e periféricos.
Este documento apresenta o programa da disciplina de Sistemas Digitais e Arquitectura de Computadores para o curso de Técnico de Gestão de Equipamentos Informáticos. O programa estrutura-se em dez módulos com 406 horas de formação e visa desenvolver competências relacionadas com sistemas digitais, programação e arquitetura de computadores para gestão de equipamentos. A avaliação privilegia o trabalho prático e a observação direta das competências adquiridas ao longo do curso.
O documento discute o cascateamento de hubs e switches, comparando seus modos de funcionamento. Explica que switches operam na camada 2 do modelo OSI, comutando quadros de forma isolada entre origem e destino, enquanto hubs apenas repetem quadros para todas as portas. Também descreve os processos de aprendizagem e criação de tabelas de endereçamento dos switches.
O documento fornece uma introdução sobre a plataforma Arduino, descrevendo sua criação em 2005 por Maximo Banzi com o objetivo de criar ferramentas eletrônicas acessíveis. Detalha os principais componentes de hardware do Arduino, incluindo o microcontrolador, portas digitais e analógicas e memórias. Apresenta diferentes modelos de Arduino e explica conceitos como programação, portas e a ferramenta de desenvolvimento Arduino.
The document discusses memory reference instructions in a processor. It explains that bits 12-14 in the instruction register determine the memory reference instruction type, which can be AND to AC, ADD to AC, LDA, STA, BUN, BSA, or ISZ. It then describes the operation of each instruction type, including which decoder line is activated and the timing signals used to access memory and update registers.
O documento apresenta o modelo de Von Neumann, descrevendo suas principais características como a divisão em três sistemas de hardware (UCP, memória principal e entrada/saída), a capacidade de executar instruções sequencialmente e o gargalo de Von Neumann. Também explica o ciclo de execução das instruções nestas máquinas.
O documento explica o processo de inicialização de um sistema operacional, desde a ligação do computador até a tela de login. Descreve as etapas realizadas pelo BIOS e pelo kernel, incluindo a verificação dos componentes, carregamento da memória RAM, leitura do disco rígido para inicializar o sistema operacional e carregar os processos essenciais para o funcionamento.
Microprogrammed control units use microprograms stored in control memory to generate control signals for executing machine instructions. A microprogram consists of a sequence of microinstructions, each containing a control word and sequencing word. The control unit implements instruction mapping, sequencing, branching, and subroutines using the microprogram stored in its writable control memory.
Este documento descreve as instruções do microprocessador 8085. Está dividido em grupos funcionais: Transferência de dados, Aritméticos, Lógicos, Ramificação e Controle de Pilha/E/S. Cada grupo lista as instruções correspondentes e sua função. O documento também explica a convenção de nomenclatura das instruções e detalha o processo de montagem.
Este documento fornece um resumo de instruções e arquitetura MIPS de 32 bits. Ele inclui:
1) Os tipos de instruções MIPS e seus campos;
2) Os registradores e seus usos;
3) Os principais modos de endereçamento e instruções;
4) Exemplos passo-a-passo de conversão entre linguagem de alto nível e assembly.
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORESwillian324163
Este documento descreve a arquitetura e organização do computador SAP1, definindo cada um de seus componentes e módulos, como a unidade de controle, memória RAM, registradores e unidades lógicas. Também exemplifica programas simples em linguagem de máquina, mostrando como instruções em assembly são traduzidas para códigos binários.
O documento discute microcontroladores PIC e programação em linguagem C. Apresenta tópicos como estrutura interna dos microcontroladores PIC, declaração de variáveis, operadores, configuração de periféricos como ADCs e PWM, uso de interrupções e memória EEPROM. Inclui também exemplos de código C para controlar dispositivos com PIC.
O documento discute microcontroladores PIC e programação em linguagem C. Apresenta tópicos como estrutura interna dos microcontroladores PIC, declaração de variáveis, operadores, entrada e saída digital, conversor AD, interrupções e uso da memória EEPROM.
Este documento descreve um trabalho laboratorial sobre o jogo Pong desenvolvido em Assembly para o processador P3. Contém fluxograma do jogo, código Assembly comentado e conclusões sobre o que foi aprendido com o projeto, como programação em Assembly e uso de periféricos do P3.
Este documento apresenta um resumo do capítulo 3 sobre linguagens de programação de PLCs. O capítulo descreve linguagens como ladder diagram, instruction list e structured text e inclui exemplos de programação usando contatos, bobinas e temporizadores em ladder diagram.
ALGORITMO "Soma de dois números"
VAR
num1, num2, resultado: INTEIRO
INICIO
ESCREVA("Digite o primeiro número: ")
LEIA(num1)
ESCREVA("Digite o segundo número: ")
LEIA(num2)
resultado <- num1 + num2
ESCREVA("A soma é: ",resultado)
FIMALGORITMO
ALGORITMO "Média de notas"
VAR
n1, n2, n3, n4, media: DECIMAL
INICIO
ESCREVA("Digite a primeira nota: ")
LEIA(n1
O documento apresenta um exemplo de programa em assembly para o simulador 8085. Ele define variáveis, inicializa dados na memória e realiza um laço para armazenar um valor em vários endereços de memória consecutivos utilizando instruções como MVI, LXI, MOV, INX e DCR.
Este documento resume a família de microcontroladores PIC18xx da Microchip. Descreve as características principais como a arquitetura de 8 bits, diagrama de pinos do PIC18F2550, programação por ICSP ou programadores externos, configuração dos osciladores e memória incluindo registos especiais. Apresenta também exemplos de programação em assembly e C para escrever na memória e controlar saídas.
2ª SATEC - SENAI - Arduino + CLP + Maquina de estadosHamilton Sena
O documento apresenta um padrão de desenvolvimento para prototipagem rápida de sistemas de controle utilizando a plataforma Arduino. O autor descreve o processo de desenvolvimento de firmware, incluindo mapeamento de entradas e saídas, maquina de estados, tabela de transições e conversão para linguagem de programação. Como exemplo, é apresentado o desenvolvimento de um controlador lógico para um semáforo de duas avenidas.
Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o robusto o suficiente para realizar automação que requeira PWM, comparação, USART; 16 I/O; e uma série de outras vantagens.
O documento descreve as principais características do microprocessador 8085, incluindo sua arquitetura de blocos com unidades como controle de entrada/saída, temporização e controle, lógica aritmética e registradores como programa, acumulador, flags e pares de registradores.
O documento descreve o desenvolvimento de um sistema embarcado utilizando o processador LEON3 em kits de desenvolvimento Altera. O processador LEON3 é compatível com a arquitetura SPARC V8 e foi configurado, simulado e sintetizado nos kits. Códigos em C foram desenvolvidos para acionar periféricos e o kernel Linux SnapGear foi compilado e executado no processador.
O documento descreve microcontroladores, especificamente o PIC, seu funcionamento interno, programação e processo de gravação. O PIC é um microcontrolador produzido pela Microchip que contém um processador, memória e pinos de entrada/saída, permitindo controlar sistemas digitais através da programação.
O documento descreve a interface do microcontrolador 8051 com um display LCD e um conversor analógico-digital ADC0804. Detalha os pinos e funções do LCD e ADC0804, além de fornecer códigos de exemplo para enviar comandos e dados ao LCD e iniciar a conversão analógica-digital no ADC0804.
Este documento apresenta exemplos de programas em assembly para PIC16F877 utilizando as diretivas e instruções básicas. Os programas demonstram operações como definição de constantes, posicionamento inicial, escrita em SRAM, operações aritméticas e lógicas.
Neste webinar serão abordadas topologias e aplicações nas quais o uso de FPGA é vantajoso em relação ao uso de processadores. Serão apresentadas comparações de designs equivalentes em FPGA e em software, apontando os cenários em que o uso de cada uma das tecnologias tem melhor performance.
Curso para Introdução a placa Microchip Curiosity e ferramentas de programação. São apresentados os primeiros passo para uso do MPLAB X e MCC e exemplos usando os periféricos do PIC16F1619.
Semelhante a Pbl assembly avr como atmega328 p - rev.1 (20)
Estruturas de Madeiras: Dimensionamento e formas de classificaçãocaduelaia
Apresentação completa sobre origem da madeira até os critérios de dimensionamento de acordo com as normas de mercado. Nesse material tem as formas e regras de dimensionamento
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...Consultoria Acadêmica
Os termos "sustentabilidade" e "desenvolvimento sustentável" só ganharam repercussão mundial com a realização da Conferência das Nações Unidas sobre o Meio Ambiente e o Desenvolvimento (CNUMAD), conhecida como Rio 92. O encontro reuniu 179 representantes de países e estabeleceu de vez a pauta ambiental no cenário mundial. Outra mudança de paradigma foi a responsabilidade que os países desenvolvidos têm para um planeta mais sustentável, como planos de redução da emissão de poluentes e investimento de recursos para que os países pobres degradem menos. Atualmente, os termos
"sustentabilidade" e "desenvolvimento sustentável" fazem parte da agenda e do compromisso de todos os países e organizações que pensam no futuro e estão preocupados com a preservação da vida dos seres vivos.
Elaborado pelo professor, 2023.
Diante do contexto apresentado, assinale a alternativa correta sobre a definição de desenvolvimento sustentável:
ALTERNATIVAS
Desenvolvimento sustentável é o desenvolvimento que não esgota os recursos para o futuro.
Desenvolvimento sustantável é o desenvolvimento que supre as necessidades momentâneas das pessoas.
Desenvolvimento sustentável é o desenvolvimento incapaz de garantir o atendimento das necessidades da geração futura.
Desenvolvimento sustentável é um modelo de desenvolvimento econômico, social e político que esteja contraposto ao meio ambiente.
Desenvolvimento sustentável é o desenvolvimento capaz de suprir as necessidades da geração anterior, comprometendo a capacidade de atender às necessidades das futuras gerações.
Entre em contato conosco
54 99956-3050
Introdução ao GNSS Sistema Global de PosicionamentoGeraldoGouveia2
Este arquivo descreve sobre o GNSS - Globas NavigationSatellite System falando sobre os sistemas de satélites globais e explicando suas características
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...Consultoria Acadêmica
“O processo de inovação envolve a geração de ideias para desenvolver projetos que podem ser testados e implementados na empresa, nesse sentido, uma empresa pode escolher entre inovação aberta ou inovação fechada” (Carvalho, 2024, p.17).
CARVALHO, Maria Fernanda Francelin. Estudo contemporâneo e transversal: indústria e transformação digital. Florianópolis, SC: Arqué, 2024.
Com base no exposto e nos conteúdos estudados na disciplina, analise as afirmativas a seguir:
I - A inovação aberta envolve a colaboração com outras empresas ou parceiros externos para impulsionar ainovação.
II – A inovação aberta é o modelo tradicional, em que a empresa conduz todo o processo internamente,desde pesquisa e desenvolvimento até a comercialização do produto.
III – A inovação fechada é realizada inteiramente com recursos internos da empresa, garantindo o sigilo dasinformações e conhecimento exclusivo para uso interno.
IV – O processo que envolve a colaboração com profissionais de outras empresas, reunindo diversasperspectivas e conhecimentos, trata-se de inovação fechada.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
I e III, apenas.
I, III e IV, apenas.
II, III e IV, apenas.
I, II, III e IV.
Entre em contato conosco
54 99956-3050
Um protocolo de comunicação é um conjunto de regras formais que descrevem como transmitir ou trocar dados, especialmente através de uma rede. Um protocolo de comunicação padronizado é aquele que foi codificado como padrão. Exemplos deles incluem WiFi, o protocolo da Internet e o protocolo de transferência de hipertexto (HTTP).
Sobre protocolos de comunicação, é correto afirmar que:
ALTERNATIVAS
Pacote é um termo genérico para referenciar uma sequência de dados binários com tamanho limitado usado como unidade de transmissão.
O número de dispositivos em um barramento não é determinado pelo protocolo.
Um sistema aberto é o que está preparado para se comunicar apenas com outro sistema fechado, usando regras padronizadas que regem o formato, o conteúdo e o significado das mensagens recebidas.
A confiabilidade em sistemas distribuídos não está relacionada às falhas de comunicação ou pela capacidade dos aplicativos em se recuperar quando tais falhas acontecem.
Os mecanismos da Internet não foram adaptados para suportar mobilidade.
Entre em contato conosco
54 99956-3050
O presente trabalho consiste em realizar um estudo de caso de um transportador horizontal contínuo com correia plana utilizado em uma empresa do ramo alimentício, a generalização é feita em reserva do setor, condições técnicas e culturais da organização
Os nanomateriais são materiais com dimensões na escala nanométrica, apresentando propriedades únicas devido ao seu tamanho reduzido. Eles são amplamente explorados em áreas como eletrônica, medicina e energia, promovendo avanços tecnológicos e aplicações inovadoras.
Sobre os nanomateriais, analise as afirmativas a seguir:
-6
I. Os nanomateriais são aqueles que estão na escala manométrica, ou seja, 10 do metro.
II. O Fumo negro é um exemplo de nanomaterial.
III. Os nanotubos de carbono e o grafeno são exemplos de nanomateriais, e possuem apenas carbono emsua composição.
IV. O fulereno é um exemplo de nanomaterial que possuí carbono e silício em sua composição.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
I, II e III, apenas.
I, II e IV, apenas.
II, III e IV, apenas.
I, II, III e IV.
Entre em contato conosco
54 99956-3050
AE03 - MATERIAIS DA CONSTRUÇÃO MECÂNICA UNICESUMAR 52/2024
Pbl assembly avr como atmega328 p - rev.1
1. “Problem Based Learning – PBL” / Aprendizado Baseado em Problemas
Assembly AVR com Atmega328P / Arduino UNO
- Para realizar esse estudo você deverá consultar as referências listadas no final deste
documento;
- Use o software Atmel Studio para inserção dos exemplos e programas em Linguagem Assembly
bem como, para simulação.
1. Programa que soma dois números
Um possível algoritmo para somar dois números é apresentado abaixo:
Algoritmo 1
1 Obtenha a primeira parcela
2 Obtenha segunda parcela
3 Some as duas parcelas
4 Guarde o resultado
5 Fim do programa
O objetivo central desse algoritmo é a SOMA e a Instrução Assembly AVR que realiza tal
operação é “ADD – Add without Carry” cuja operação realizada é: Rd ← Rd + Rr.
1.a. Quais podem ser os registradores Rd e Rr?
1.b. Formate a instrução ADD para que some os conteúdos dos registradores R16 e R17. Onde
é armazenado o resultado?
ADD ____, ____ ; ____ ←____+____
Sabemos como a instrução ADD opera, mas, não sabemos que valores ou conteúdos os
registradores Rd e Rr tinham. A instrução “LDI – Load Immediate” faz a carga de um registrador
com uma constante: Rd ← k. Seu formato é: LDI RD,k.
1.c. No caso da instrução LDI quais registradores podem assumir o papel de Rd?
1.d. Qual é a faixa de valores para a constante K?
1.e. Complete o programa Assembly AVR para que some os conteúdos dos registradores R16 e
R17 e armazene uma cópia do resultado em R18, para tal use a instrução “MOV – Copy Register”
cuja operação é: Rd ← Rr.
2. 1.f. Abra o Atmel Studio, crie um projeto Assembly para o Microcontrolador Atmega328P e simule
passo a passo Programa 1. Verifique o conteúdo dos registradores à medida em que a simulação
avança.
Programa 1
L LABEL INSTR. OPERANDOS COMENTÁRIOS
1 LDI R16,253 ; R16 = 253 R16 ← 253
2 ; R17 = 1 R17 ← 1
3 R17 ← R17+R16
4 R18 ← R17
5 FIM: RJMP FIM
3. 2. Programa que decrementa o conteúdo de um registrador
Algoritmo 2
1 Carregue R16 com o valor 4
2 Decremente o conteúdo de R16
3 Decremente o conteúdo de R16
4 Decremente o conteúdo de R16
5 Decremente o conteúdo de R16
6 Decremente o conteúdo de R16
7 Fim do programa
O ponto principal do Algoritmo 2 é a instrução de Decremento – “DEC – Decrement” que na
linguagem Assembly AVR tem o mnemônico: DEC Rd e realiza a operação: Rd ← Rd -1
2.a. Escreva em Assembly o programa o programa descrito no Algoritmo 2
2.b. Qual será o valor do conteúdo do registrador R16 ao final da execução de cada linha, 1, 2,
3, ...,6?
Os Microcontroladores AVR, assim como todos os demais microprocessadores e
Microcontroladores, tem circuitos associados à ALU cuja finalidade é a de monitorar ou sinalizar
certos acontecimentos – os “Flags” -. O “Zero Flag” (Z) ou “Sinalizador de Zero” é ligado quando
uma operação na ALU resultou em Zero ou desligado, caso contrário; O “Carry Flag” (C) ou
“Sinalizador de Carry/Transporte” é alterado quando ocorre um transporte do bit 7 fazendo o
papel de um “suposto bit 8”. Nos Microcontroladores AVR os “Flags” estão contidos em um
registrador especial denominado “Status Register”.
2.c. Consulte a seção 7.3 da do Data Sheet Atmega328P [4] e esquematize os oitos bits do
“Status Register”
2.d. Abra o Atmel Studio, crie um projeto Assembly para o Microcontrolador Atmega328P e
simule passo a passo Programa 2. Verifique o conteúdo do R16 bem como do “Zero Flag” (Z) à
medida em que a simulação avança. Observe que (Z) muda para a cor vermelha quando é ligado.
Programa 2
L LABEL INSTR. OPERANDOS COMENTÁRIOS
1 R16 ← 4
2 R16 ← R16-1
3
4
5
6
7 FIM: RJMP FIM
4. 3. Fazer a soma R16 = R16 + R17 o número de vezes definido em R18
Abaixo são mostrados o Algoritmo e o Fluxograma 3. Em um Fluxograma as Setas indicam a
direção do Fluxo; as Elipses definem os pontos terminais (início e fim); os Retângulos definem
as ações realizadas durante a execução do programa; e o Losango representa uma tomada de
decisão. Nesse algoritmo, compara-se o valor do registrador R18 com a constante 0 (zero). Como
resultado da comparação pode-se obter uma resposta “Sim” caso seja verdadeira (V) a avaliação
da expressão ou “Não” caso seja falsa (F).
Algoritmo 3 Fluxograma 3
1 R16 ← 5
2 R17 ← 7
3 R18 ← 4
4 R16 ← R16 + R17
5 R18 ← R18 -1
6 Se R18 <> 0 : Salte para 4
6.1 Senão: continue
7 Fim
Nos Microcontroladores AVR existem instruções para se tomar decisões em função do “Zero
Flag” (Z), do “Carry Flag” (C) ou por outros. Particularmente, a instrução “BRNE – Branch if Not
Equal” : BRNE k realiza a operação:
IF (Z = 0) : PC ← PC + 1 + k , else PC ← PC + 1
Onde: PC + 1: é o endereço da próxima instrução;
k: é o endereço (relativo) para o salto.
A instrução BRNE k, pode ser interpretada da seguinte forma: - “Se o “Zero Flag” estiver
desligado (Z=0, indicando que uma operação na ALU não resultou em zero) salte, isto é, some
“k” a PC+1. Como “k” pode ser positivo ou negativo o novo valor de PC poderá ser maior ou
menor do que era; caso contrário, isto é, Z=1 não salte, execute a próxima instrução”.
3.a. Escreva em Assembly AVR o programa referente ao Algoritmo e Fluxograma 3.
5. 3.b. Consulte a AVR Assembler User Guide a respeito das “Directives” / Pseudo Instruções
presentes nas linhas 1 a 5.
3.c. Abra o Atmel Studio, crie um projeto Assembly para o Microcontrolador Atmega328P e simule
passo a passo Programa 3. Verifique o conteúdo do R18 bem como do “Zero Flag” (Z) à medida
em que a simulação avança. Observe que (Z) muda para a cor vermelha quando é ligado.
Programa 3
L LABEL INSTR. OPERANDOS COMENTÁRIOS
1 .EQU PARC_1=5
2 .EQU PARC_2=7
3 .EQU NVEZES=4
4 .CSEG
5 .ORG 0
6 R16 ← PARC_1
7 R17 ← PARC_2
8 R18 ← NVEZES
9 REPITA: R16 ← R16+R17
10 R18 ← R18 - 1
11 Se Z=0: Salte par REPITA
12 FIM: RJMP FIM
6. 4. Somar dois números de 16 bits
Primeiramente será exposta a técnica para se somar dois números/parcelas de dezesseis bits.
Cada parcela requer dois registradores de 8 bits; A primeira parcela ou PAR_1 ocupará os
registradores R25 e R24, a segunda parcela usará os registradores R27 e R6 e o resultado será
armazenado nos registradores R29 e R28.
PAR_1
HIGH(PAR_1) LOW(PAR_1)
R25 R24
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PAR_2
HIGH(PAR_2) LOW(PAR_2)
R27 R26
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RES
HIGH(RES) LOW(RES)
R29 R28
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Algoritmo 4
1 Obtenha LOW(PAR_1)
2 Obtenha LOW(PAR_2)
3 Some LOW(PAR_1) a LOW(PAR_2)
4 Guarde o resultado em LOW(RES)
5 Obtenha HIGH(PAR_1)
6 Obtenha HIGH(PAR_2)
7 Some HIGH(PAR_1) a HIGH(PAR_2) com (C) Carry
8 Guarde o resultado em HIGH(RES)
9 Fim do Programa
Observe a linha 7 do algoritmo 4, ela deverá fazer uso de uma instrução de adição que leva em
conta o “Carry” (C) (Transporte; vai um ou vai zero) da soma anterior. Isso pode parecer estranho
mas, segue o mesmo princípio que usamos nas somas de números decimais quando se
considera o transporte (vai um, dois, três, ..., nove) de uma coluna à esquerda para a próxima à
direita (digamos das centenas para os milhares). Essa instrução é: “ADC – Add with Carry” ;
realiza a operação: Rd <- Rd + Rr + C e tem o formato: ADC Rd,Rr
8. 5. O “Stack” ou Pilha
5.a. No data Sheet do Atmega328P, seção 7.5 há uma breve explicação sobre o “Stack” ou Pilha.
Se preciso for, use o “google translate” para lê-la. A Pilha é implementada em uma área de
memória RAM interna. O nome pilha refere-se à analogia que se faz com pilhas de objetos
(caixas, livros, etc.) na qual o último item inserido ocupa sempre o Topo da Pilha e o item a ser
retirado da pilha é sempre o do Topo. Pede-se:- Liste as instruções que usam o a Pilha.
5.b As operações elementares realizadas na Pilha são: Empilhar ou inserir dados na pilha (“data
is pushed onto the Stack”); e Desempilhar ou retirar dados da pilha (“data is popped from the
Stack”) Consulte no data Sheet do Conjunto de Instruções as instruções das seções 90 e 89.
Instrução para Empilhar Instrução para Desempilhar
Instrução: Instrução:
Insere dado no Topo da Pilha [SP] ← rd Atualiza o Topo da Pilha SP ← SP+1
Atualiza o Topo da Pilha SP ← SP-1 Retira dado do Topo da Pilha rd ← [SP]
5.c (RESOLVIDO) O registrado SP (“Stack Pointer” ou Apontador/Ponteiro da Pilha) deve ser
carregado com um endereço de memória RAM (normalmente usa-se RAMEND, que significa o
último endereço da memória RAM). Suponha que SP = 0x08FF; R16 = 0x01; R17=0x24;
R18=0xA9. O prefixo “0x” especifica base 16 ou hexadecimal. Esquematize a Pilha ao final da
execução das instruções: PUSH R16, PUSH R17, PUSH R18.
0x08FB ?? 0x08FB ?? 0x08FB ?? SP→ 0x08FB ??
0x08FC ?? 0x08FC ?? SP→ 0x08FC ?? 0x08FC A9
0x08FD ?? SP→ 0x08FD ?? 0x08FD 24 0x08FD 24
SP→ 0x08FF ?? 0x08FF 01 0x08FF 01 0x08FF 01
5.e. Nas seções 91 e 92 são apresentadas as instruções RCALL e RET. A primeira é usada para
Chamar uma Sub-rotina e a segunda para retornar dela. A instrução RCALL empilha o endereço
de retorno (o endereço da próxima instrução) e realiza o equivalente a um Salto/Jump para o
endereço da Sub-rotina. A instrução RET faz o inverso, desempilha o endereço de retorno e faz
um Salto/Jump para tal endereço. Esquematize a pilha (de forma semelhante à do item 5.d) para
demonstrar o que acontece quando o trecho de programa abaixo e executado. Considere
SP=0x08FF; R16 = 0x42
Programa 5
ENDEREÇO LABEL INSTRUÇÃO OPERANDOS COMENTÁRIO
0005 LOOP: PUSH R16
0006 RCALL FUNC_1 ; (1)
0008 POP R16
RJMP LOOP
0123 FUNC_1: NOP
0124 RCALL FUNC_2 ; (2)
0126 RET
0137 FUNC_2: NOP
0138 RET
9. 0x08F9 ?? 0x08F9 0x08F9 0x08F9
0x08FA ?? 0x08FA 0x08FA 0x08FA
0x08FB ?? 0x08FB 0x08FB 0x08FB
0x08FC ?? 0x08FC 0x08FC 0x08FC
0x08FD ?? 0x08FD 0x08FD 0x08FD
SP→ 0x08FF ?? 0x08FF 0x08FF 0x08FF
Vazia PUSH R16 RCALL(1) RCALL (2)
0x08F9 0x08F9 0x08F9 0x08F9
0x08FA 0x08FA 0x08FA 0x08FA
0x08FB 0x08FB 0x08FB 0x08FB
0x08FC 0x08FC 0x08FC 0x08FC
0x08FD 0x08FD 0x08FD 0x08FD
0x08FF 0x08FF 0x08FF 0x08FF
RET RET POP R16 RET
5.e. Visualize a dinâmica das chamadas e retornos de Sub Rotinas simulando o seguinte trecho
de programa no Atmel Studio. Para isso deverá ser criado um projeto Assembler; a simulação
deverá ser feita usando o comando “Step Into”.
Programa 5
L LABEL INSTR. OPERANDOS COMENTÁRIOS
1 .CSEG ; Segmento de Programa
2
3 LDI R16,LOW(RAMEND) ; Inicializa “Stack Pointer” / Apontador de Pilha
4 OUT SPL,R16
5 LDI R16,HIGH(RAMEND) ; para o último endereço da RAM interna
6 OUT SPH,R16
7 LOOP: LDI R16,3 ; Ajusta parâmetro para SUBR1
8 RCALL SUBR1 ; Chama Sub Rotina 1: SUBR1
9 LDI R16,2 ; Ajusta parâmetro para SUBR1
10 RCALL SUBR1 ; Chama Sub Rotina 1: SUBR1
11 RJMP LOOP ; Voltar ao início do programa
12
13 SUBR1: NOP ; Sub Rotina 1
14 REPEAT: PUSH R16 ; Salva R16 na Pilha
15 RCALL SUBR2 ; Chama Sub Rotina 2: SUBR2
16 POP R16 ; Restaura R16 da Pilha
17 DEC R16 ; Decrementa R16
18 BRNE REPEAT ; Repita enquanto R16 for diferente de zero
19 RET ; Retorna ao endereço da Instrução da linha 7/9
20
21 SUBR2: NOP ; Sub Rotina 2
22 ADD R16,R16 ; Altera R16
23 RET ; Retorna ao endereço da Instrução da linha 14
10. 6. Temporização ou “Delay” por Software
Cada Instrução AVR Assembly requer uma quantidade de Ciclos de Clock (oscilador de onda
quadrada usado para sincronizar as operações dos circuitos digitais) para ser buscada
decodificada e executada.
No Sistema Alvo (Arduino UNO) a frequência do Clock é de 16 MHz (16x106
Hz):
fosc = 16 MHz
6.a. Consulte o documento – “Atmel AVR 8-bit Instruction Set” e tome nota de quantos Ciclos
(Cycles ou Cy) cada uma das instruções listadas abaixo requer. Algumas tem seus Ciclos
variáveis em função de ocorrer ou não um desvio condicional; outras apresentam notas que
podem modificar a contagem desses Ciclos. NOP, LDI, DEC, MOV, ADD, RJMP, RCALL, RET,
BRNE, BRE, SBI, CBI, SBIS, SBIC.
A unidade básica de temporização é o Cy :
𝐶𝑦 =
1
𝑓𝑜𝑠𝑐
O “delay” (d) é conseguido repetindo-se um Cy por n vezes:
𝑑 = 𝑛 . 𝐶 𝑦
6.b. Quantos Cy são necessários para se temporizar 1 ms (0,001 s ou 1x10-3
s)? Um registrador
tem 8 bits: 28
=256.
No Programa e Fluxograma 6, é apresentada uma técnica para aumentar o número de Ciclos
sem que para isso seja necessário aumentar a quantidade de instruções. Nas linhas 14 a 17,
está um trecho de programa que realiza uma temporização em função do valor de “N”. O valor
de “N” é definido na linha 1 pela diretiva ou Pseudo Instrução .EQU. Na seção de comentários
das linhas 14 a 17 está a correlação entre cada linha deste trecho com os blocos do Fluxograma
5. O cálculo de tempo gasto pela sub-rotina “Delay” é feito da seguinte forma:
Delay = 1.Cy + (N . Cy) + [(N-1). 2.Cy] + (1.Cy) + 4. Cy
Delay = 1.Cy + N.Cy + 2.N.Cy – 2.Cy + 1.Cy + 4.Cy
Delay = 4.Cy + 3.N.Cy
Delay = (4+3.N).Cy
Delay = (4+3.N).1/fosc
11. Fluxograma 6
Forma usada para Sub-rotinas
6.c. Qual a faixa de valores para “N”? O que acontece na sub-rotina “Delay” se N=0?
6.d. Para N=255 e fosc = 16 MHz, quanto tempo gasta a sub-rotina “Delay”?
6.e. Crie um projeto Assembly no Atmel Studio para o Microcontrolador Atmega328P, digite o
Programa 5.. Faça a simulação usando a opção “Step Into” e “Step Over”
6.f. Qual é o número inteiro para “N” que gera uma frequência de oscilação no pino PD7 de
aproximadamente 15 KHz?
Programa 6
L LABEL INSTR. OPERANDOS COMENTÁRIOS
1 .EQU N=4
2 .CSEG ; Segmento de Programa
3 LDI R16,LOW(RAMEND) ; Inicializa “Stack Pointer” / Apontador de Pilha
4 OUT SPL,R16
5 LDI R16,HIGH(RAMEND) ; para o último endereço da RAM interna
6 OUT SPH,R16
7 SBI DDRD,7 ; PD7: SAÍDA
8 LOOP: CBI PORTD,7 ; PD7 = ‘1’
9 RCALL Delay ; Temporiza
10 SBI PORD,7 ; PD7 = ‘0’
11 RCALL Delay ; Temporiza
12 RJMP LOOP ; REPETIR
13
14 Delay: LDI R16, N ; 1: 1Cy
15 DLY_1: DEC R16 ; 2: 1Cy
16 BRNE DLY_1 ; 3: 2Cy (Saltar) / 4: 1Cy (Seguir adiante)
17 RET ; 5: 4Cy
12. 7. Ler Push-button e ativar LED
Para se acionar um LED, deve-se inserir um Resistor limitador de corrente em serie com o
mesmo. A menos que se adquiram os LEDs a partir de um código de fabricante, mediante
catálogos, fica difícil apenas pela observação saber suas características elétricas: VLED e ILED.
Analisando a malha de um LED, pela 2ª. Lei de Kirchhoff, temos que : “ O somatório da elevações
de potencial é igual ao somatório da quedas de pontencial ao longo de uma malha”. Para Vcc =
5V , VLED = 2 V e ILED = 10 mA, calcule R.
𝑉𝑐𝑐 = 𝑅 . 𝐼𝐿𝐸𝐷 + 𝑉𝐿𝐸𝐷
7.a. Calcule ILED para o resistor recebido para ILED= 10mA .
7.b. Qual será ILED para R = 470 Ω ?
Será usado o sistema de desenvolvimento denominado Arduíno Uno o qual, tem por
Microntrolador principal o ATmega328P, Figura 7.1a. Esse Microcontrolador do fabricante Atmel
é um dos muitos implementados sob a arquitetura AVR. Os pinos do Microcontrolador podem
ser acessados pelos conectores da placa do Arduíno UNO , Figura 7.1b.
(a)
(b)
Figura 7.1: (a) Microcontrolador; (b) Arduino Uno
O ATmega328P contém três portas digitais de entrada e saída programáveis: PORTB (PB0-
PB5), PORTC (PC0-PC5) e PORTD (PD0-PD7).
A estrutura funcional de cada bit de uma porta pode ser vista na Figura 7.2. A direção de cada
Pino é regida por três Registradores de função especial: DDR (Data Direction Register) , PORT
e PIN. O Registrador DDR define a direção: ‘1’ para Saída / ‘0’ para Entrada Digital; O Registrador
PORT é usado para se “escrever”/ ”gravar” no pino ou para ativar o Resistor de Pull-Up interno
(R) se esse pino for entrada; O Registrador PIN serve para se “ler” o “status” ou nível lógico do
pino de uma dada porta.
13. Figura 7.2: Estrutura de Pino de Porta
Os pinos das Portas podem ter suas direções definidas individualmente ou em conjunto.
7.c. As instruções SBI A,b e CBI A,b servem respectivamente para Ligar / “Set” e Deligar / “Clear”
um bit “b” no Registrador designado pelo campo “A”. Consulte essas instruções no Data Sheet
do Conjunto de Instruções
7.d. Monte o circuito da Figura 7.3b
7.d. Configure o Atmel Stdudio para que possa gravar no Arduino. Para isso foi escrito um tutorial
(está no portal) chamado “Tutorial – Gravar Arduino com Atmel Studio 7.pdf”. É muito importante
ajustar a porta serial corretamente.
7.f. Crie um projeto Assembly no Atmel Studio;copie o Programa 7; realize a montagem/ “Build”;
Carregue/Grave esse programa no Arduino (Tools -> Gravar Arduino) programa em Assembly
monitore o push-button e acenda/apage o LED conferme for pressionado/despressionado. O pino
PD7 será programado para operar com saída e o pino PB0 como entrada.
Figura 7.3 (a) Representação da montagem (b) Circuito feito no Fritzing
14. Programa 7
L LABEL INSTR. OPERANDOS COMENTÁRIOS
1 SBI DDRD, PD7 ; PD7 CONFIG. SAÍDA :DDRD.7 = 1
2 CBI DDRB, PB0 ; PB0 CONFIG. ENTRADA
3 SBI PORTB,PB0 ; LIGA RESISTOR PULL-UP
4 ChkButton: SBIC PINB,PB0 ; LE PINO DE ENTRADA: SKIP/PULE SE PB0 = 0
5 RJMP DESLLED ; PB0 = 1, SALTE PARA DESLIGAR
6 LIGALED: SBI PORTD,PD7 ; LIGUE O LED
7 RJMP ChkButton ; VOLTA A VERIFICAR O BOTÃO
8 DESLLED: CBI PORTD,PD7 ; DESLIGUE O LED
15. 8. Acionamento de Display de 7 Segmentos
Display de 7 Segmentos
Esses displays poder ter seus LEDs internos conectados na configuração Ânodo-comum ou
Cátodo-Comum. A Figura 1 exemplifica o Display de 7 Segmentos do tipo Ânodo-
comum.Lembre-se que um LED é um Diodo Emissor de Luz (Light Emitting Diode) e como tal,
tem polaridade. No Display Cátodo-comum ao terminal (8) ou (3) deve ser ligado o Gnd (negativo)
pois todos os seus Cátodos estão ligados nesse ponto comum.
Figura 8:1 (a) Circuito interno (b) Aspecto de um Display de 7 Segmentos Ânodo Comum
8.1 Monte o circuito da Figura 8.2. Certifique-se de que o display seja anodo comum, caso
contrário terminal (3) deverá ser ligado ao GND. Os pinos de 7 a 1 do conector do Arduino
correspondem à porta D (PORTD) , veja Figura 7.1b.
8.2 Quais pinos da PORTD acionam quais segmentos dos Display?
8.3 Faça o Fluxograma da Sub-rotina D500ms.
8.4 Equacione em função do valor carregado em R16 e do valor carregado ao par de
registradores R25 R24; considerando-se Fosc= 16 MHz quanto tempo a Sub-rotina
D500ms leva para ser executada.
16. Programa 8.1
;
; Disp7SegAsm.asm
;
; Created: 06/10/2016 08:16:47
; Author : Manoel
;
;; Conectores ARDUINO UNO
;; 7 6 5 4 3 2 1 0
;; Segmentos do Display 7 Segmentos
;; a b c d e f g -
;; Pinos do PORTD
;; 7 6 5 4 3 2 1
;; Iniciliza Stack Pointer
LDI R16,HIGH(RAMEND) ; Obtem parte alta do último endereço da RAM
OUT SPH,R16 ; Carrega na parte alta de Stack Pointer
LDI R16,LOW(RAMEND) ; Obtem parte baixa do último endereço da RAM
OUT SPL,R16 ; Carrega na parte baixa de Stack Pointer
;; Programa PORTD para atuar como porta de Saída
LDI R16,0b11111111 ; ajusta todos os bits em nível lógico 1
OUT DDRD,R16 ; Programa todos os bits de PORTD como saída
REPITA:
LDI R16,0b11111100 ; abcdefg-
COM R16 ; para display Anodo-comum: R16 <-- /R16
OUT PORTD,R16
RCALL D1000mS ; Chama Sub rotina para temporizar 1000 ms ( 1s )
LDI R16,0b01100000 ; abcdefg-
COM R16 ; para display Anodo-comum: R16 <-- /R16
OUT PORTD,R16
RCALL D1000mS ; Chama Sub rotina para temporizar 1000 ms ( 1s )
RJMP REPITA
;;
;; Sub rotina para temporizar 1000 ms
;;
D1000mS:
RCALL D500ms ; Chama Sub rotina para temporizar 500 ms ( 0,5 s)
RCALL D500ms ; Chama Sub rotina para temporizar 500 ms ( 0,5 s)
RET
;;
;; Sub rotina para temporizar 500 ms
;;
D500ms:
LDI R16,50 ; Número de vezes a executar o Loop Externo (LOOPE)
LOOPE: LDI R24,LOW(25535) ; Número de Vezes a executar o Loop Interno (LOOPI)
LDI R25,HIGH(25535) ; R25 = 0x63 , R24 = 0xBF
LOOPI: ADIW R24,1 ; Soma 1 unidade ao par R25,R24
BRNE LOOPI ; Se Z=0, salte
DEC R16 ; caso contrário, decremente R16
BRNE LOOPE ; salte se R16 nao chegou ao valor zero
RET
8.5 Estude o Programa 8.2. Nele as Sub-rotinas D1000ms e D500ms são as mesmas do
Programa 8.1 mas, foram omitidas por questões de espaço no texto. Faça o
Fluxograma do trecho compreendido entre INICIO e RJMP INICIO
8.6 Estude a Sub-rotina “bin7seg”. Esquematize com a instrução “LPM” faz a leitura de
uma constante armazena e memória de programa. O que isso tem a ver com uma
técnica chamada “Lookup Table” ou Consulta a Tabela?
17. Programa 8.2
;
; Disp7SegCntAsm.asm
;
; Created: 06/10/2016 08:58:39
; Author : Manoel
;
;; Conectores ARDUINO UNO
;; 7 6 5 4 3 2 1 0
;; Segmentos do Display 7 Segmentos
;; a b c d e f g -
;; Pinos do PORTD
;; 7 6 5 4 3 2 1
;; Iniciliza Stack Pointer
LDI R16,HIGH(RAMEND) ; Obtem parte alta do último endereço da RAM
OUT SPH,R16 ; Carrega na parte alta de Stack Pointer
LDI R16,LOW(RAMEND) ; Obtem parte baixa do último endereço da RAM
OUT SPL,R16 ; Carrega na parte baixa de Stack Pointer
;; Programa PORTD para atuar como porta de Saída
LDI R16,0b11111111 ; Ajusta todos os bits em nível lógico 1
OUT DDRD,R16 ; Programa todos os bits de PORTD como saída
;; Programa Principal
INICIO:
LDI R16,0 ; Inicializa Contador
REPITA:
RCALL bin7Seg ; Converte contagem para 7 Segmentos
COM R17 ; Para display Anodo-comum: R17 <-- /R17
OUT PORTD,R17 ; Envie código de 7 Segmentos ao Display
RCALL D1000ms ; Temporize 1000 ms
INC R16 ; Avance a contagem
CPI R16,16 ; Compare a contagem com o valor dezesseis
BRNE REPITA ; Se R16 <> 16, Salte para REPITA
RJMP INICIO ; Caso contrário conte novamente
;;
;; Sub rotina para conversao de binário para 7 segmentos
;; obs.: Lógica Positiva ('1' acende ; '0' apaga)
;; bits 7 6 5 4 3 2 1 0
;; seg a b c d e f g -
;; O Registrador Z na realidade é o nome que se dá ao par de Registradores R30, R31
;; quando operam como um apontador (endereçador) ou ponteiro para a memória
;;
;; Entrada: R16 = numero binário de 0000 a 1111
;; Saída: R17 = código em 7 segmentos
;;
bin7Seg:
LDI ZH,HIGH(bint7SegTable << 1); Obtém parte alta do ender. da tabela
LDI ZL,LOW(bint7SegTable << 1) ; Obtém parte baixa do ender. da tabela
ANDI R16,0b00001111 ; Mascara (zera) o nibble alto
ADD ZL,R16 ; Soma índice à parte baixa do ender. da Tab.
CLR R0 ; R0 = 0
ADC ZH,R0 ; ZH = ZH + 0 + (C) . O Carry é da soma anterior
LPM R17,Z ; Le o código da Tab. e o armazena em R17
RET
.CSEG
bint7SegTable: .DB 0b10000000, 0b01000000, 0b00100000, 0b00010000, 0b00001000,
0b00000100, 0b00000010, 0b11000000, 0b01100000, 0b00110000, 0b00011000,
0b00001100,0b00000010, 0b10100000, 0b01010000, 0b00101000
18. Referências
Ref. Materiais e Links Relacionados aos Microcontroladores AVR
1 Atmel AVR 8-bit Instruction Set http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf
2 Complete Instruction Set Sumary http://www.avr-
tutorials.com/sites/default/files/Instruction%20Set%20Summary.pdf
3 AVR Assembler User Guide http://www.atmel.com/webdoc/index.html
4 ATMEL 8-BIT
MICROCONTROLLER WITH
4/8/16/32KBYTES IN-SYSTEM
PROGRAMMABLE FLASH
DATASHEET
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-
ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
5 Beginners Introduction to the
Assembly Language of
ATMEL-AVR-Microprocessors
http://www.avr-asm-download.de/beginner_en.pdf
6 AVR Tutorials- The Best AVR
Microcontroller Tutorials on the Web
http://www.avr-tutorials.com/assembly/avr-assembler-directives
7 Avrfreaks: Forum sobre
Microcontroladores AVR
http://www.avrfreaks.net/
8 AVR WebRing: Forum AVR http://hub.computersninternet.org/hub/avr
9 Practical AVR Microcontrollers
Games, Gadgets, and Home
Automation with the Microcontroller
Used in the Arduino
http://dl.hajiahmadi.ir/microcomputers/Practical%20AVR%20Microcontrollers.pdf
10 Arduino Cheat Sheet https://br.pinterest.com/pin/362610207473172163/