Você está na página 1de 5

Instituto de Cincias Exatas e Tecnologia

Engenharia Eltrica
Prova Sub de Microcontroladores

Prof.: Kenya A. Alves


Nome:

Semestre:
Turma:

Data: 21/11/2012

Perodo: Noturno

RA:

Ass.:

Observaes:
a) A interpretao das questes faz parte da prova.
b) Prova sem consulta e individual.
c) Mostre os passos para a obteno dos resultados.

Instruo

Operaes

com Registradores

Argumentos

Descrio

d) Durao: 90 min.
e) Respostas caneta.
f) permitido o uso de calculadora.

ADDWF

f,d

Soma W e F, guardando o resultado em d.

ANDWF

f,d

Lgica "E"entre W e f, guardando o resultado em d.

CLRF

COMF

f,d

Limpa f.
Calcula o complemento de f, guardando o resultado em d.

DECF

f,d

Decrementa f, guardando o resultado em d.

DECFSZ

f,d

Decrementa f, guardando o resultado em d,

INCF

f,d

Incrementa f, guardando o resultado em d.

INCFSZ

f,d

Incrementa f, guardando o resultado em d,

IORWF

f,d

Lgica "OU" entre W e f, guardando o resultado em d.

MOVF

f,d

Move f para d(copia ).

e pula a prxima linha se o resultado for zero.

e pula a prxima linha se o resultado for zero.

MOVWF

f
Operaes

Instruo

Argumentos

Move W para f (copia ).


com Literais
Descrio

ADDLW

Soma k com W, guardando o resultado em W.

ANDLW

Lgica "E "entre k e W, guardando o resultado em W.

IORLW

Lgica "OU" entre k e W, guardando o resultado em W.

MOVLW

Move k para W.

Operaes
Instruo

Argumentos

com bits
Descrio

BCF

f,b

Impe 0(zero) ao bit b do registrador f.

BSF

f,b

Impe 1(um) ao bit b do registrador f.

BTSFC

f,b

Testa o bit b do registrador, e pula a prxima linha se ele for 0 (zero ).

BTFSS

f,b

Testa o bit b do registrador, e pula a prxima linha se ele for 1 (um ).


Controles

Instruo

Argumentos

CLRW

Limpa W.

NOP
CALL

Gasta um ciclo de mquina sem fazer nada.


R

CLRWDT
GOTO
RETURN

Descrio

Executa a rotina R.
Limpa o registrador WDT para no acontecer o reset.

Desvia para o ponto R, mudando o PC.


Retorna de uma rotina, sem afetar W.

Responda os exerccios segundo sua prpria interpretao:


Questo 1 (2,0 pts) Qual a funo do programa descrito abaixo.

a)
LIST P=16F84A
INCLUDE P16F84A.INC
BSF
STATUS, RP0;
CLRF
TRISA
BCF
STATUS, RP0;
END
_______________________________________________________________
b)
LIST P=16F84A
INCLUDE P16F84A.INC
BSF
STATUS, RP0
MOVLW
B11111
MOVWF
TRISA
BCF
STATUS, RP0
END
_______________________________________________________________
c)
LIST P=16F84A
INCLUDE P16F84A.INC
BSF
STATUS, RP0
MOVLW
B11110000
MOVWF
TRISB
BCF
STATUS, RP0
END
_______________________________________________________________
d) LIST P=16F84A
INCLUDE P16F84A.INC
CLRF
PORTA
BSF
STATUS, RP0
MOVLW
B00011
MOVWF
TRISA
BCF
STATUS, RP0
END
_______________________________________________________________
Questo 2 (1,5 ptos): Calcule o tempo necessrio para executar a sub-rotina de tempo
abaixo, escrito para o microcontrolador PIC16F84.
Assuma o tempo de 1,0 s o tempo de cada ciclo e 2,0 s o tempo para o comando GOTO.

a)
DELAY
MOVLW 250
MOVWF DELAYREG
CONTA1
DECFSZ DELAYREG
NOP
GOTO CONTA1
RETURN

_____________________________________________________________
_____________________________________________________________
b)
TEMPO1
MOVLW
MOVWF
TEMPO2
NOP
NOP
DECFSZ
GOTO
RETURN
END

100
TEMPO

TEMPO1
TEMPO2

_____________________________________________________________
______________________________________________
c)
DELAY
MOVLW 200
MOVWF CONTA1
LOOP1
MOVLW 250
MOVWF CONTA2
LOOP 2
DECFSZ CONTA2
NOP
GOTO LOOP2
DECFSZ CONTA1
GOTO LOOP1
RETURN

_____________________________________________________________
_____________________________________________________________
______________________________________________
Questo 3 (3,5 ptos): No diagrama tem-se a montagem do PROTEUS para o display de 7 segmentos
usando o PIC16F84A.

a)

A localizao de cada pino (sada) da PORTB para um dos leds no display de 7 segmentos esto
descrita abaixo

LED A RB1
LED B RB2
LED C RB3
LED D RB4
LED E RB5
LED F RB6
LED G RB7
b) Observe o programa abaixo e responda as questes seguintes.
LIST P=PIC16F84A
INCLUDE <P16F84A.INC>
RADIX DEC
__CONFIG _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_ON
X
EQU 0CH
TEMPO
EQU 0DH
MS
EQU 0EH
BSF
STATUS,RP0
MOVLW
B'00000001'
MOVWF
TRISB
BCF
STATUS,RP0
CLRF
PORTB
INICIO
BTFSC
CALL
CALL

PORTB,0
CONTA1
CONTA2

CONTA1
MOVLW
MOVWF
CALL
MOVLW
MOVWF
CALL

B'0110011'
PORTB
MS1000
B'1011011'
PORTB
MS1000

GOTO INICIO
CONTA2
MOVLW
MOVWF
CALL
MOVLW
MOVWF
CALL
GOTO INICIO
MS1000
MOVLW
MOVWF
MS100
MOVLW
MOVWF

B'1110110'
PORTB
MS1000
B'0110000'
PORTB
MS1000
10
MS
100
TEMPO

MS1
MOVLW
MOVWF
MS2
NOP
DECFSZ
GOTO MS2

249
X
X

DECFSZ
TEMPO
GOTO MS1
DECFSZ
MS
GOTO MS100
RETURN
END
b.1) De acordo com os pinos que voc relacionou na letra (a), determine o que aparece no display se o
boto na entrada RB0 = 1 ( boto pressionado) antes e depois do comando CALL. No se esquea de
analisar o comando BTFSC.

b.2) De acordo com os pinos que voc relacionou na letra (a), determine o que aparece no display se o
boto na entrada RB0 = 0 ( boto no pressionado) antes e depois do comando CALL. No se esquea de
analisar o comando BTFSC.

b.3) Determine o tempo de atraso da subrotina MS1000.

Questo 4 (3,0 ptos): Escreva uma rotina de programa onde os nmeros 8 e 9 apaream no display
da questo 3 aps um intervalo de 1,0 segundo.