Upload
andreseabra
View
5
Download
0
Embed Size (px)
DESCRIPTION
Entradas e saidas de PORTS IO
Citation preview
Ports I0, Display 7 segmentos Lino Figueiredo ISEP
Sistemas Digitais 2 Licenciatura Engenharia Electrotcnica e de Computadores Ano Lectivo 2013-2014
Ports IO
O Atmega 128 possui 53 pinos de IO distribudos por 7 Ports 6 Ports com 8 pinos cada (PortA PortF) 1 Port com 5 pinos (PortG)
Todos os pinos so bidireccionais com possibilidade de activao de pull-Ups individuais.
Todos os pinos tem a funo IO digital, sendo a maior parte dos pinos multiplexados com funes alternativas: Pinos analgicos (ADx), transmisso/recepo
de dados (TX/RX), PWM, etc.
2 Lino Figueiredo
Para cada um dos 7 Ports de IO existem 3 registos DDRx - Configurao do Portx PORTX escrita Portx e activao/desativao resistencias de Pull-Up PINX leitura Portx
Registos Port IO
3 Lino Figueiredo
Arquitectura pino IO
4 Lino Figueiredo
Registos pino IO
1. Registo de direco de dados do Port de IO (DDRx). Para cada um dos bits do Port, a escrita de um 0 neste registo programa o porto com entrada de dados. A escrita de um 1 programa o bit do Port como sada de dados.
2. Registo de sada de dados do Port de IO (PORTx). Se o bit do port estiver programado como sada de dados, a escrita de um 0 ou um 1 neste registo faz com que esse valor aparea no pino de sada (5). Se o bit estiver programado como entrada de dados, a escrita de um 0 desactiva o Pull-Up interno, a escrita de um 1 activa o Pull-Up interno.
3. Registo de entrada de dados do Porto de IO (PINx). Se o bit do Port estiver programado como entrada, os valores presentes no pino exterior (5) podem ser lidos para o registo PINx.
4. Resistncia de pull-up interna. No caso do bit do port estar programado como entrada de dados, podemos optar por inserir esta resistncia de Pull-Up caso o dispositivo exterior no consiga definir o valor lgico 1.
5. Pino exterior para entrada / sada de dados.
5 Lino Figueiredo
Resistncia de Pull-Up I
A funo bsica de uma resistncia de Pull-Up para garantir que uma dada entrada nunca fica no ar, ou seja, possui um valor bem definido.
A resitncia de Pull-Up define uma dada linha com o estado lgico 1
6 Lino Figueiredo
Se nada for ligado ao pino 1, o valor da entrada considerado flutuante
Qualquer rudo elctrico pode comutar a sada
Resistncia de Pull-Up II
Adio de uma resistncia de Pull-Up Serve para limitar a corrente. Quando o interruptor S1 est aberto (OFF), o
pino 1 est ligado a Vcc atravs da resistncia.
Quando o interruptor S1 est fechado (ON), o pino 1 tem uma ligao directa GND o que define o seu nvel lgico a zero.
Ir fluir atravs de R1 uma corrente desde VCC at GND.
R1 ir limitar a quantidade de corrente que pode fluir para uma quantidade muito pequena.
7 Lino Figueiredo
Pull-Up interno ATmega128
Todos os pinos de cada Port do Atmega128 tm resistncia de pull-up interna.
A activao da resistncia de Pull-Up feita individualmente para cada pino. A activao da resistncia de Pull-Up interna s vlida para os pinos
configurados como entradas.
A activao das resistncias de envolve a configurao de 2 registos de IO 1. Configurar os pinos como entrada no registo DDRx
2. Activar os Pull-Up internos no registo PORTx
O bit PUD do registo SFIOR desactiva todos os Pull-up internos de todos os Ports do Atmega 128
8 Lino Figueiredo
Configurao pino IO
Quadro resumo configurao dos pinos
9 Lino Figueiredo
Exemplos prticos I
Programar o PortA como entrada de dados, activando os pull-ups internos
Programar o PortC como sada de dados e inicializ-lo com o valor 8 (0b00001000)
10 Lino Figueiredo
Exemplos prticos II
Programar os 6 bits menos significativos do PortA como entrada de dados e os 2 bits mais significativos como sada de dados. Desactivar os Pull-Ups internos das entradas e inicializar os bits de sada com 11
11 Lino Figueiredo
Nota: Os pinos que no so utilizados devem ser configurados como entradas com as resistncias de Pull-Up activadas
ATmega128 Placa IO
12 Lino Figueiredo
Entradas - Interruptores P0
Sadas - Leds P1
Display 7 Segmentos P2
Placa IO - Entradas
6 entradas com Pull-Ups
13 Lino Figueiredo
Placa IO - Sadas
8 Sadas de Leds
14 Lino Figueiredo
Display 7 Segmentos
O display de sete segmentos um invlucro com sete leds com formato de segmento, posicionados de modo a possibilitar a formao de nmeros decimais e algumas letras utilizadas no cdigo hexadecimal
15 Lino Figueiredo
Tipos de Displays Display nodo comum - os terminais nodo de todos os segmentos esto
interligados internamente (terminal comum ligado em Vcc)
Display ctodo comum - os terminais ctodo de todos os segmentos esto interligados internamente (terminal comum ligado em GND)
16 Lino Figueiredo
Desenhar os Nmeros
Interface com microcontrolador
17 Lino Figueiredo
Multiplexagem Displays
18 Lino Figueiredo
Em cada instante apenas um display est ligado (frequncia > 50Hz)
Placo IO - 4 displays 7 segmentos
19 Lino Figueiredo
Placa IO Tabela de segmentos
Para acender um segmento deve ser colocado no respectivo pino o valor lgico 0, para apagar um segmento deve ser colocado o valor lgico 1
Para seleccionar o display da direita os valores dos pinos de controlo do multiplexer (P0.6 e P0.7) devem ser 11.
20 Lino Figueiredo
Bibliografia
Microcontroladores - Joo Paulo Baptista, ISEP Electrnica Geral - Guilherme Amaral, ISEP
21 Lino Figueiredo
Ports I0, Display 7 segmentosPorts IORegistos Port IOArquitectura pino IORegistos pino IOResistncia de Pull-Up I Resistncia de Pull-Up IIPull-Up interno ATmega128Configurao pino IOExemplos prticos IExemplos prticos IIATmega128 Placa IOPlaca IO - EntradasPlaca IO - SadasDisplay 7 SegmentosTipos de DisplaysDesenhar os NmerosMultiplexagem DisplaysPlaco IO - 4 displays 7 segmentosPlaca IO Tabela de segmentosBibliografia