Documente Academic
Documente Profesional
Documente Cultură
Engenharia Eltrica
Prova Sub de Microcontroladores
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
ANDWF
f,d
CLRF
COMF
f,d
Limpa f.
Calcula o complemento de f, guardando o resultado em d.
DECF
f,d
DECFSZ
f,d
INCF
f,d
INCFSZ
f,d
IORWF
f,d
MOVF
f,d
MOVWF
f
Operaes
Instruo
Argumentos
ADDLW
ANDLW
IORLW
MOVLW
Move k para W.
Operaes
Instruo
Argumentos
com bits
Descrio
BCF
f,b
BSF
f,b
BTSFC
f,b
BTFSS
f,b
Instruo
Argumentos
CLRW
Limpa W.
NOP
CALL
CLRWDT
GOTO
RETURN
Descrio
Executa a rotina R.
Limpa o registrador WDT para no acontecer o reset.
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.
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.