Você está na página 1de 19

CARACTERSTICAS DO MODELO PIC18F4520

Microcontrolador de 40 pinos, o que possibilita a montagem de um hardware complexo e capaz de interagir


com diversos recursos e funes ao mesmo tempo;
75 instrues
36 portas configurveis como entrada ou sada;
20 interrupes disponveis;
2
Memria de programao E PROM FLASH;
Memria de programa com 32 kbytes, com capacidade de escrita e leitura pelo prprio cdigo interno;
2
Memria E PROM (no voltil) interna com 256 bytes;
Memria RAM com 1536 bytes;
Quatro timers (1x8 bits e 3x16 bits);
2
Comunicaes seriais: SPI, I C e USART;
Conversores analgicos de 10 bis (13x) e comparadores analgicos (2x);
Dois mdulos CCP: Capture, Compare e PWM;
Programao in-circuit (alta e baixa tenso);
Power-on Reset (POR) interno;
Brown-out Reset (BOR) interno;

A grande vantagem da famlia PIC que todos os modelos possuem um set de instrues bem parecido, assim como
mantm muitas semelhanas entre suas caractersticas bsicas. Desta maneira, ao conhecermos e estudarmos o
PIC18F4520, famliarizarno-nos com todos os rncrocontroladores da Microchip, o que torna a migrao para outros
modelos muito mais simples. Os recursos estudados encontram-se disponveis em diversos outros modelos.
PINAGEM

CICLOS DE INSTRUO

*os endereos so alocados em nmeros pares, logo deve-se tomar cuidado com as instrues
goto $-x.

INSTRUES UTILIZANDO REGISTRADORES (BYTES)


Muitas vezes necessrio alterar mais de um bit de um registrados, e isso pode ser feito com
instrues que fazem leitura, escrita e manipulao de dados de todos os bits simultaneamente, a
tabela 3 mostra esses tipos de instrues.
Tabela 1

Mnemonico,operando
ADDWF f,d,a
ADDWFC f,d,a
ANDWF f,d,a
CLRF f,d,a
COMF f,d,a
CPFSEQ f,a
CPFSGT f,a
CPFSLT f,a
DECF f,d,a
DECFSZ f,d,a
DECFSNZ

f,d,a

INCF f,d,a
INCFSZ f,d,a
INCFSNZ
IORWF

f,d,a
f,d,a

MOVF
f,d,a
MOVFF fs,fd
MOVLW
k
MOVWF
f,a
MULWF
f,a
NEGF f,a
RLCF f,d,a
RLNCF
RRCF

f,d,a
f,d,a

RRNCF f,d,a
SET F f,a
SUBFW f,d,a
SUBFWB f,d,a
SUBWFB f,d,a
SWAPF f,d,a
TSTFSZ f,a
XORWF f,d,a

Descrio

Ciclos

Status afetado

Adiciona W em F, guarda o resultado em d


Adiciona W em F COM Carry, guarda o
resultado em d
Faz lgica and entre W e F e guarda o
resultado em d
Limpa F (coloca zero em todos os bits de F)
Inverte todos os bits de F e guard o
resultado em d
Compara F com W e pula uma linha se F =
W
Compara F com W e pula uma linha se F for
maior que W
Compara F com W e pula uma linha se F for
menor que W
Decrementa F e guarda o resultado em d
Decrementa F e pule uma linha se o
resultado for zero e guarda o resultado em d
Decrementa F e pule uma linha se o
resultado no for zero e guarda o resultado
em d
incrementa F e guarda o resultado em d
Incrementa F e pule uma linha se o resultado
for zero e guarda o resultado em d
Incrementa F e pule uma linha se o resultado
no for zero e guarda o resultado em d
Faz a lgica OR entre W e F e guarda o
resultado em d
Move o valor de F para o destino d, aceita
como destino somente W ou F(ele mesmo)
Move o valor de F(source) para F(destino)

C,DC,Z,OV,N

C,DC,Z,OV,N

Z,N

Z,N

1 ou 3

nenhum

1 ou 3

nenhum

1 ou 3

nenhum

C, DC, Z, OV, N

1 ou 3

nenhum

1 ou 3

nenhum

C, DC, Z, OV, N

1 ou 3

nenhum

1 ou 3

nenhum

Z,N

Z,N

nenhum

Move o literal K para w

nenhum

Move o valor de W para F


Multiplica o valor de W com F e o resultado
guardado nos registradores PRODH:PRODL
Nega (inverte) todos os bits do registrador F
Rotaciona os bits do registrador F para
esquerda com carry
Rotaciona os bits do registrador F para
esquerda sem carry
Rotaciona os bits do registrador F para
direita sem carry
Rotaciona os bits do registrador F para
direita com carry
Coloca todos os bits de F em um
Subtrai W de Fe guarda o resultado em d (W
ou F)
Subtrai F de W e guarda o resultado em d
(W ou F) COM BORROW (bit de
emprstimo)
Subtrai W de F e guarda o resultado em d
(W ou F) COM BORROW (bit de
emprstimo)
Inverte os nibbles do registrador f e guarda o
resultado em d (w ou f)
Testa F e pule uma linha se o resultado Fo
zero
Faz a lgica XOR entre W e F a guarda o
resultado em d (w ou f)

nenhum

nenhum

C, DC, Z, OV, N

C, Z, N

Z,N

C, Z, N

Z,N

nenhum

C, DC, Z, OV, N

C, DC, Z, OV, N

C, DC, Z, OV, N

nenhum

1 ou 3

nenhum

Z,N

INSTRUES UTILIZANDO BITS


Mnemnico,operando Descrio

Ciclos

BCF
BSF

1
1

Status
afetado
nenhum
nenhum

1 ou 3*

nenhum

1 ou 3*

nenhum

nenhum

BTFSC
BTFSS
BTG

f,b,a
f,b,a
f,b,a
f,b,a
f,b,a

Limpa (coloca 0) no bit b do registrador f


Seta (coloca 1) no bit b do registrador f
Testa o bit b do registrador f, pula uma linha
de instruo se o resultado for zero
Testa o bit b do registrador f, pula uma linha
de instruo se o resultado for um
Inverte o nvel lgico do bit b do registrador f

TIPOS DE OSCILADORES PARA O MICROCONTROLADOR PIC18F1220


Os osciladores em um sistema digital so como organizadores da sequncia de realizao das
tarefas, so eles que ditam o momento exato da realizao da instruo, o modelo 18F1220
possui osciladores externos e internos que podem ser configurados de acordo com a
necessidade, preciso necessria ao projeto e economia de pinos.
OSCILADORES INTERNOS: nesse modelo existem dois osciladores internos do tipo RC, um de
31khz e outro que pode ser configurado nos valores 125khz, 250khz, 500khz, 1Mhz, 2Mhz,
4Mhz, e 8Mhz por meio dos bits <6:4> do registrador OSCCON a preciso dos osciladores
internos podem variar de 1% 5%.
OSCILADORES EXTERNOS em algumas aplicaes necessria a utilizao de osciladores
externos devido a caractersticas de projetos e preciso da aplicao, dessa forma pode-se optar
por alguns tipos que sero apresentados, devendo o desenvolvedor ficar atento pois nesses
casos utiliza-se 1 ou 2 pinos para a conexo com o oscilador.

OSCILADOR RC: Este tipo de oscilador utiliza um resistor e um capacitor trabalhando como
carga e descarga como base de tempo, dessa forma acoplado ao pino OSC1 (RA7), onda o
fabricante recomenda que o s valores de R e C sejam 3K R EXT 100KHZ e o capacitor seja
CEXT>20pF. Para o oscilador RC existem duas configuraes, so elas:
1) RC OSCILLATOR MODE: nessa configurao o pino OSC2 (RA6) fornece a frequncia de
oscilao/4 conforma mostra a figura 3

Figura 1

2) RCIO OSCILLATOR MODE: nessa configurao, o pino OSC2 (RA6) pode ser utilizado
como entrada e sada digital conforme figura 4.

Figura 2

RESSOADOR CERMICO: mais preciso que o oscilador do tipo RC, nesse tipo de
ressoador obrigatoriamente utiliza-se dois pinos do microcontrolador (OSC1 e OSC2) para
a conexo com o resssoador conforme figura 5:

Figura 3

Os valores dos capacitores utilizados para osciladores com ressoador de cermico segue
na tabela a baixo na figura 6.

Figura 4

CRISTAL OSCILADOR: o mais preciso dos osciladores, este tipo de componentes


trabalha sob o efeito piezoeltrico que da grande estabilidade de oscilao, tambm deve
ser ligado aos pinos (OSC1 e OSC2) conforme figura 5, e a tabela da figura 7 apresenta os
valores para os capacitores:

Figura 5

OSCILADOR EC e ECIO: Nessa configurao o microcontrolador recebe o sinal de clock


de um outro circuito eletrnico externo, que pode vir de outra parte do circuito que
compe o sistema, a definio dos dois tipos est na tabela - 1
O oscilador a ser utilizado pode ser configurado da algumas maneiras diferentes, e pode
ser configurado pelo software MPLAB na linha include conforme figura 8.

PORT, TRIS E LATCH


Inicialmente ser descrito esses trs registradores que as vezes so confundidos na
programao, e de primordial importncia a diferenciao entre eles.
OS PORTS so a ligao direta com o meio externo, ou seja, quando configurados com entrada,
por eles que os sinais chegam at a unidade de processamento, e quando configurados como
sada, por eles tambm que o sinal j processado aciona o perifrico externo, tal como led,
motor de passo, display entre outros. Os bits dos ports esto ligados diretamente aos pinos do
microcontrolador.

PORTA
porta,7
I/O
pino 13

porta,6
I/O
pino 14

porta,5
I/O
pino 7

porta,4
I/O
pino 6

porta,3
I/O
pino 5

porta,2
I/O
pino 4

porta,1
I/O
pino 3

porta,0
I/O
pino 2

portb,2
I/O
pino 35

portb,1
I/O
pino 34

portb,0
I/O
pino 33

portc,2
I/O
pino 17

portc,1
I/O
pino 16

portc,0
I/O
pino 15

portd,2
I/O
pino 21

portd,1
I/O
pino 20

portd,0
I/O
pino 19

PORTB
portb,7
I/O
pino 40

portb,6
I/O
pino 39

portb,5
I/O
pino 38

portb,4
I/O
pino 37

portb,3
I/O
pino 36

PORTC
portc,7
I/O
pino 26

portc,6
I/O
pino 25

portc,5
I/O
pino 24

portc,4
I/O
pino 23

portc,3
I/O
pino 18

PORTD
portd,7
I/O
pino 30

portd,6
I/O
pino 29

portd,5
I/O
pino 28

portd,4
I/O
Pino 27

portd,3
I/O
pino 22

PORTE
porte,3
I
pino 1

porte,2
I/O
pino 10

porte,1
I/O
pino 9

porte,0
I/O
pino 8

OS LATCHES so memrias utilizadas para as operaes de escrita, essas memrias podem


armazenar os dados enviados para sada mesmo que os pinos estejam configurados como
entradas, dessa forma quando forem configurados com sadas assumem os valores dos latches.
Por meio da figura verificado que o processo de leitura feito direto no pino e o processo de
escrita passa por um latch.

OS TRISX So os registradores que determinam se os pinos dos ports so entradas ou sadas,


para essas configuraes temos:
TRIS X,b = 0
TRIS X,b = 1

PINO CONFIGURADO COMO SADA


PINO CONFIGURADO COMO ENTRADA

Para simplificao, o processo de leitura deve ser efetuado nos PORTs, e o processo de
escrita nos LATs.

Exerccios para o microcontrolador 18f4520


1) Crie um projeto novo chamado liga led_2 e desenvolva um programa em assembly para o
microcontrolador PIC18F4520 para que quando o sistema for ligado, o PORTD apresente o
nmero 12 em no sistema binrio.
2) Crie um projeto novo chamado BT_LED e desenvolva um programa em assembly para o
microcontrolador PIC18F4520 para que quando o sistema for ligado, e o bit 1 do PORTC
estiver em 1 ligue o bit 1 do PORTB, quando o bit1 do PORTA estiver em zero, desligue
o bit1 do PORTB.
3) Crie um projeto novo chamado DOIS_BTS_DOIS_LEDS e desenvolva um programa em
assembly para o microcontrolador PIC18F4520 para que quando o sistema for ligado, e o
bit 1 do PORTA estiver em 1 ligue o bit 1 do PORTB, se o bit2 do PORTA estiver em
1 ligue o bit 2 do PORTB, quando o bit1 do PORTA estiver em zero, desligue o bit1
do PORTB, e quando o bit2 do PORTA estiver em zero, desligue o bit2 do PORTB.
O primeiro boto a ser pressionado tem a precedncia, ou seja, enquanto um estiver
pressionado o outro poder ser pressionado que no ocasionar nenhum efeito.
4) Crie um projeto novo chamado DECOD_2BITS e desenvolva um programa em assembly
para o microcontrolador PIC18F4520 para que quando o sistema for ligado, a combinao
binria das entradas RA0 e RA1 seja apresentada na sada (PORTB <3:0>) conforme
tabela a seguir.
RA0 RA1
SADAS
PORTB,0
LIGADO,
DEMAIS
PINOS DESLIGADOS
0
0
PORTB,1 LIGADO, DEMAIS PINOS DESLIGADOS
0
1
PORTB,2 LIGADO, DEMAIS PINOS DESLIGADOS
1
0
PORTB,3 LIGADO, DEMAIS PINOS DESLIGADOS
1
1
5) Desenvolver em linguagem assembly, um programa de controle de carga de acordo com
as orientaes a seguir:
Pressionando o boto M, o carro desloca-se para a direita at atingir o fim de curso
B, quando ento inicia o carregamento atravs da vlvula at atingir o peso determinado pelo sensor p. Neste caso, a vlvula deve ser fechada e o carro deve
retornar para a posio inicial. Esta detectada pelo fim de curso a. O movimento
para a direta realizado pelo motor M1 e para a esquerda pelo motor M2. Para que
o ciclo reinicie um pulso dever ser dado no boto M novamente.
M= RA0 (ATIVO ALTO) boto liga
FCB= RA 1 (ATIVO ALTO) fim de curso b.
FCA= RA3 (ATIVO ALTO) fim de curso a.
VLVULA = RB0 = vlvula de carregamento.
SP = RA4 (ATIVO ALTO) sensor de peso.
M1= RD1 motor que move para direita.
M2= RD2 motor que move para esquerda.

INTERRUPES LINHA PIC18


O PIC 18F4520 possui 20 fontes de interrupes que podem ser configuradas de duas formas
diferentes.
Esta linha de microcontroladores possui dois endereos de tratamento de interrupes, um
de baixa prioridade (0x0018) e outro da alta prioridade (0x0008), dessa forma o programador
pode escolher uma hierarquia das fontes de interrupes no momento de trat-las, pois, caso
duas interrupes aconteam ao mesmo tempo, a de maior prioridade ser tratada primeiro.
Durante o tratamento de uma interrupo de baixa prioridade, caso acontea uma de alta
prioridade em conjunto, o microcontrolador interrompe a de baixa prioridade, passa a tratar a e da
prioridade maior e depois volta ao tratamento da que estava realizando inicialmente.
O programador tem a opo de escolher ativar ou no o sistema de prioridades
(RCON,IPEN), caso no seja ativado, todas as interrupes vo para o endereo de maior
prioridade (0x0008). Os registradores envolvidos no processo de utilizao de interrupes so:

INTCON
INTCON2
INTCON3
RCON
PIE1
PIE2
PIR1
PIR2
IPR1
IPR2

Interrupes externas por borda (RB0, RB1 e RB2)


A linha 18F possui trs entradas que podem ser configuradas para interrupes por
bordas, que podem ser de subida ou descida configuradas no registrador INTCON2<6:4>. Destas
trs, apenas a RB0 no possui configurao de prioridade, logo a interrupo desta entrada
quando acontecer e estiver habilitada desviar o programa para o endereo de alta prioridade.
Quando resetado ou iniciado o microcontrolador vem com sistema de prioridades
desabilitado, assim, o programador quando necessitar dever habilitar no seu programa.
Quando uma interrupo acontece, estando habilitada ou no, um flag de sinalizao
referente interrupo detectada ser setado, e caso a interrupo esteja habilitada, o programa
ser desviado para tratamento da mesma.
Antes de sair da interrupo este flag dever ser apagado por software, e caso isso no
acontea o programa sai da interrupo, encontra o flag ainda em 1 e retorna novamente para o
endereo de interrupo, deixando o programa travado nessa condio.
Muitas vezes dentro das rotinas de interrupo, necessrio modificar os valores de
determinados registradores tais como WREG, STATUS, e qualquer outro que o programa exija
modificao, dessa forma para que os registradores modificados retornem da interrupo com os
valores que tinham no momento da ocorrncia da interrupo, deve-se criar duas rotinas dentro
dos endereos de interrupes, uma para guardar os valores dos registradores em registradores
temporrios no incio do tratamento de interrupes e outra para resgatar os valores
armazenados para os registradores de origem antes da sada da interrupo.

Uma modificao no sistema de interrupes da linha 18F em relao 16F, que quando
no estiver utilizando o sistema de prioridade nas interrupes, ou seja, somente o sistema da
alta prioridade, os registradores BSR, STATUS e WREG so salvos e resgatados
automaticamente sem a necessidade de rotinas para este fim, basta que ao final da interrupo a
instruo de retorno seja da seguinte forma.
*cuidado: quando estiver tratando com dois nveis de prioridade de interrupes, caso a
rotina de tratamento de interrupes de alta prioridade tenha mais que dez linhas, o que muitas
vezes acontece, no dever ser escrita o endereo da interrupo de baixa prioridade em
seguida, pois o compilador mostrar o erro de que o endereo 0x0018 est sobrescrito, assim
deve-se criar as rotinas de tratamento de interrupes em endereos diferentes.
retfie fast ;no utilizar este recurso quando estiver habilitado o sistema de prioridade
Exerccio:
1) Desenvolver um programa em linguagem assembly para o microcontrolador
PIC18F4520 que liga um led em RD0, sempre que houver uma borda de subida no
boto RB0, e quando for liberado o boto o led dever apagar. (utilizar o sistema de
prioridades desabilitado)
2) Desenvolver um programa em linguagem assembly para o microcontrolador
PIC18F4520 que liga os leds: LED(RD0), LED1(RD1) e LED2(RD2) sempre que houver
uma borda de subida nos botes BT(RB0), BT1(RB1) e BT2(RB2) respectivamente.
(habilitar o sistema de prioridades e configurar somente RB2 para baixa prioridade.
3) Implementar um programa de controle de um semforo de um cruzamento de duas ruas
(A e B) que funcione com ciclo total de 20 segundos, onde o ciclo de cada rua de 10
segundos, divididos em 10 segundos para o vermelho, 7 segundos para o verde e dois
segundos para o amarelo.
Quando o equipamento for ligado as lmpadas amarelas dos dois semforos devero
piscar por 5 vezes em intervalos de 1 segundo e depois ir para o ciclo com semforo A no
verde. Segue abaixo os pinos do microcontrolador PIC-18F4520 a que sero utilizados.

Caso durante o funcionamento do sistema, o boto de pedestre (RB0 com interrupo


externa) seja pressionado, o sistema dever terminar o ciclo completo, manter os dois
semforos em vermelho e acionar o semforo para pedestres com 7 segundos em
verde, depois o vermelho pedestre dever piscar por trs vezes em intervalos de 1
segundo e assim voltar ao funcionamento normal com o semforo de pedestre em
vermelho.

Verde semforo A ---------------------RD3


Amarelo semforo A ------------------RD2
Vermelho semforo A ----------------RD1
Verde semforo B----------------------RB7
Amarelo semforo B ------------------RB6
Vermelho semforo B ----------------RB5
Verde semforo pedestre ------------RC2
Vermelho semforo pedestre -------RC3

4) Desenvolver o programa para um torno cnc que faz dois trabalhos em uma pea. Uma
ferramenta FURA a pea e a outra LIMPA o furo, sendo que a mesma far o processo em 2
segundos para furar e 2 para limpar.
Quando for dado um pulso negativo na tecla start, o torno dever entrar em funcionamento
furando a pea.
Caso a porta do torno seja aberta o mesmo dever interromper o seu funcionamento e sinalizar
atravs de uma lmpada (RD0) que a porta est aberta.
O torno s dever voltar a funcionar aps ser fechada a porta e pressionado a tecla start
novamente, devendo voltar do mesmo lugar de onde parou antes da porta ser aberta.
Dicas: para o monitoramento da porta dever utilizar interrupo externa em RB0.
DADOS:
Bt start -------------------RA0 (ativo baixo)
Porta----------------------RB0 (ativo alto)
Ferramenta Fura-------RD2
Ferramenta Limpa-RD1

Interrupes externas por mudana de estado (RB4,


RB5, RB6 e RB7)
Este tipo de interrupo tambm provocado por um evento externo, mas se difere das
interrupes por borda devido a ser detectada por mudana de estado, assim uma transio tanto
de nvel baixo para alto como de nvel alto para baixo provoca desvio no programa. A deteco da
interrupo percebida das entradas RB4, RB5, RB6 e RB7, simultaneamente, ou seja, qualquer
uma delas que estiver configurada como entrada poder receber o evento externo e caso o
programador no necessite de todas as entradas, pode configurar as no utilizadas dentre estas
citadas como sadas.
*obs: Para que o evento desta interrupo pare de ocorrer, ou seja, para que o
programa saia da interrupo, o bit da porta que gerou a interrupo tem que ser
lido para atualizao entre o valor da porta e do latch referente ao pino, caso
contrrio o flag que sinaliza a interrupo no limpo mesmo com o a instruo
bcf.

5) Elaborar um programa em assembly para o microcontrolador PIC8F4520 que far a


deteco de interrupo por mudana de estado no pino RB4, e sempre que este
mudar de estado far com que o led ligado ao PORTD,0 inverta seu estado, ou seja, se
estiver aceso deve apagar e vice-versa.
Desabilite o sistema de prioridades e utiliza retfie fast para salvar e resgatar os
registradores WREG e STATUS.

Interrupo por Temporizadores internos (TMR0)


O TIMER0 um registrador interno que pode ser configurado com 8 ou 16 bits, como a
arquitetura deste microcontrolador de 8 bits, quando configurado o timer0 para 16 bits na
verdade o programador estar configurando dois registradores de 8 bits (TMR0L e TMR0H). Este
temporizador pode ser incrementado por duas fontes de clock configurada no registrador
T0CON<5>, que pode ser uma fonte de clock externa (RA4) ou o oscilador principal.
A interrupo neste temporizador ocorre sempre que o mesmo estoura, estourar significa
chegar ao valor mximo de contagem em que a partir do prximo ciclo de mquina ele
necessitaria de mais um bit para representar a contagem, logo os bits disponveis vo todos para
zero. Caso configurado em 8 bits o flag de estouro vai para 1 quando TMR0 ou TMR0L passar
de 255 para 0, no entanto se estiver configurado como 16 bits quando TMR0H passar de 255
para 0.
Considerando TMR0L como byte da parte inferior e TMR0H como byte da parte superior
pode-se gerar um estouro quando o valor de contagem passar de 65.535 para zero (valor mximo
para um registrador de 16bits).

O TIMER0 pode ser incrementado a cada ciclo de mquina ou tambm pode ter o
incremento atrasado por meio de um prescaler, dessa forma de acordo com os bits <2:1:0> do
T0CON, pode se escolher aps quantos ciclos de maqui o TMR0 ser incrementado.
Ex: caso a opo escolhida seja T0CON<2:1:0> como 010 , o timer sofrer um incremento
a cada 4 ciclos de mquina, assim, ao invs de estourar com 255 ciclos ir estourar com (4x255)
que igual a 1020 ciclos de mquina.

Quando ocorre o evento do estouro, o flag de interrupo de TMR0 setado (intcon,2)


independente de a interrupo estar habilitada ou no, caso esteja habilitada a interrupo, o
programa ser desviado para um dos endereos de tratamento de interrupo de acordo com a
prioridade (caso tenha sido configurada), caso o sistema de prioridade no esteja habilitado, o
programa desviar para o endereo de alta prioridade.
6) Desenvolver um programa para fazer um led ligar e desligar em intervalos de 500ms,
ou seja 500ms ligado e desligado pelo mesmo tempo por meio de interrupo por
TIMER0.
7) Na fabricao de eletrodomsticos so utilizados vrios modelos de
microcontroladores, o que facilita bastante a melhoria funcional, diminuio de tamanho
e custos dos projetos, sendo assim, desenvolva um programa em assembly para um
forno microondas com microcontrolador PIC18F4520 conforme a descrio seguinte:

Utilize interrupes em RB0 para tratamento da rotina de porta aberta.


Quando ligado o forno, o valor zero dever ser mostrado no display de 7 segmentos.
Por meio das teclas INC (RA4 ATIVO ALTO) e DEC(RA3 ATIVO ALTO) podero ser
feitos os ajustes do tempo de cozimento com no mximo 9 segundos.
Depois de ajustado o tempo a tecla START (RA2 0 ATIVO ALTO) dever ser pressionada
para iniciar o cozimento.
Se durante o cozimento a porta do microondas for aberta, dever interromper a contagem,
mostrar a letra A no display e somente voltar a decrementar do ultimo valor mostrado se
a porta for fechada e pressionado start novamente.
Ao final do cozimento, um led (RC0) dever piscar por 3 vezes em intervalos de 1 segundo
indicando que o alimento est pronto e o microondas dever voltar a posio de repouso.
O display de sete segmentos dever ser conectado ao PORTD com com os segmentos de
a at f ligados aos pinos RD0 RD6 respectivamente.
8) Desenvolver o programa do exerccio 5, mas agora com dois displays de sete
segmentos multiplexados, dessa forma pode-se escolher temporizaes de at 99
segundos, o hardware ser o mesmo, mas com a diferena de que os displays sero
ligados ao mesmo barramento de dados (PORTD) e os pinos RE0 (unidade) e
RE1(dezena) faro o acionamento dos transistores dos catdos dos displays.

Interrupo por Temporizadores internos (TMR2)


O timer 2 um contador de 8 bits relacionado apenas com o clock interno, este possui
duas caractersticas que podem ser ajustadas do ponto de vista de atraso do estouro.
Prescaler: ajusta quantos clock de mquina so necessrios para que ocorra um
incremento do tmr2, e pode ser configurado pelos bits T2CKPS1 e T2CKPS0 do resgistrador
T2CON.

Postscaler: ajusta quantas vezes o tmr2 dever estourar para gerar uma interrupo, e
pode ser configurado pelos bits TOUTPS3:TOUTPS0 do registrador T2CON.
Outra diferena entre o TMR2 com os outros temporizadores que o mesmo estoura
quando TMR2=PR2, ou seja no estoura quando chega no valor mximo (256), estoura quando
chegar ao valor carregado no registrador PR2.
O TMR2 zerado sempre que houver um reset.
9) Desenvolver um programa que faz a converso de um nmero carregado em w para o
equivalente em um display de sete segmentos, ou seja, no programa principal wreg
ser carregado e a interrupo em TMR2 far a converso e apresentar no display em
intervalos de 1ms de acordo com o hardware a seguir.

10) Desenvolver parte de um relgio de 4 digitos do tipo MM:SS que apresenta os valores
dos segundo e minutos em 4 displays de sete segmentos, sendo que a atualizao dos
displays ser executada por TMR2 e o tempo de incremento (a cada 1 segundo) ser
realizado por TMR0.
DADOS: barramento do display PORTD (de d1 d7)
Catdos dos displays
Q1=RC0, Q2=RC1, Q3=RC2, e Q4= RC3

11) Desenvolver um relgio de 6 digitos do tipo HH:MM:SS que apresenta os valores das
horas (0 - 12) dos segundos e minutos em um display de LCD do tipo 16x2.
A primeira linha dever apresentar a mensagem RELOGIO DIGITAL
A segunda linha dever apresentar os valores do relgio.
O tempo de incremento (a cada 1 segundo) ser realizado por TMR0.
A atualizao do Display ser feita tambm por TMR0
DADOS: barramento do display PORTD (de D0 D7)
O pino ENABLE dever ser ligado ao PORTE,0
O pino RS dever ser ligado ao PORTE,1

Você também pode gostar