Você está na página 1de 3

NOME: DANIEL ALVES BEZERRA MATRÍCULA: 201804006394

RESPOSTA QUESTÃO 1:
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* EX6 – CONTROLE DE NÍVEL DE UMA CAIXA D’ÁGUA E CISTENA
*
;* DESBRAVANDO O PIC *
;* *
;* PROF. PAULO SILVEIRA DATA: 07/10/2021 *
;* DISCIPLINA: SISTEMAS A MICROCONTROLADORES *
;* *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* DESCRIÇÃO DO ARQUIVO *
;*-------------------------------------------------------------------------------------------------------------------------------------------------*
;* *
;* *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* ARQUIVOS DE DEFINIÇÕES *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

#INCLUDE <P16F628A.INC> ;ARQUIVO PADRÃO MICROCHIP PARA 16F628A


__CONFIG _BOREN_ON & _CP_OFF & _PWRTE_ON & _WDT_ON & _LVP_OFF & _MCLRE_OFF & _XT_OSC

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* PAGINAÇÃO DE MEMÓRIA *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

;DEFINIÇÃO DE COMANDOS DE USUÁRIO PARA ALTERAÇÃO DA PÁGINA DE MEMÓRIA

#DEFINE BANK0 BCF STATUS,RP0 ;SETA BANK 0 DE MEMÓRIA


#DEFINE BANK1 BSF STATUS,RP0 ;SETA BANK 1 DE MAMÓRIA

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* VARIÁVEIS *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

; DEFINIÇÃO DOS NOMES E ENDEREÇOS DE TODAS AS VARIÁVEIS UTILIZADAS


; PELO SISTEMA

CBLOCK 0x20 ;ENDEREÇO INICIAL DA MEMÓRIA DE


;USUÁRIO

W_TEMP ;REGISTRADORES TEMPORÁRIOS PARA


STATUS_TEMP ;INTERRUPÇÕES
;ESTAS VARIÁVEIS NEM SERÃO UTI-
;LIZADAS
ENDC ;FIM DO BLOCO DE MEMÓRIA

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* FLAGS INTERNOS *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; DEFINIÇÃO DE TODOS OS FLAGS UTILIZADOS PELO SISTEMA

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* CONSTANTES *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; DEFINIÇÃO DE TODAS AS CONSTANTES UTILIZADAS PELO SISTEMA

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* ENTRADAS *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO ENTRADA


; RECOMENDAMOS TAMBÉM COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)

#DEFINE BT_VM PORTA,1 ;PORTA DO BOTÃO DO LED VERMELHO

#DEFINE BT_MT PORTA,2 ;PORTA DO BOTÃO DO MOTOR


#DEFINE BT_CLR PORTA,3 ;PORTA DO BOTÃO DESLIGA

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* SAÍDAS *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

; DEFINIÇÃO DE TODOS OS PINOS QUE SERÃO UTILIZADOS COMO SAÍDA


; RECOMENDAMOS TAMBÉM COMENTAR O SIGNIFICADO DE SEUS ESTADOS (0 E 1)

#DEFINE LED_VM PORTB,4 ;PORTA DO LED VERMELHO

#DEFINE MT_DC PORTB,5 ;PORTA DO MOTOR

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* VETOR DE RESET *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

ORG 0x00 ;ENDEREÇO INICIAL DE PROCESSAMENTO


GOTO INICIO

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* INÍCIO DA INTERRUPÇÃO *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

; AS INTERRUPÇÕES NÃO SERÃO UTILIZADAS, POR ISSO PODEMOS SUBSTITUIR


; TODO O SISTEMA EXISTENTE NO ARQUIVO MODELO PELO APRESENTADO ABAIXO
; ESTE SISTEMA NÃO É OBRIGATÓRIO, MAS PODE EVITAR PROBLEMAS FUTUROS

ORG 0x04 ;ENDEREÇO INICIAL DA INTERRUPÇÃO


RETFIE ;RETORNA DA INTERRUPÇÃO

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* INICIO DO PROGRAMA *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

INICIO
BANK0 ;ALTERA PARA O BANCO 0
MOVLW B'00000111'
MOVWF CMCON ;DEFINE O MODO DE OPERAÇÃO DO COMPARADOR ANALÓGICO

CLRF PORTA ;LIMPA O PORTA


CLRF PORTB ;LIMPA O PORTB

BANK1 ;ALTERA PARA O BANCO 1


MOVLW B'00001110'
MOVWF TRISA ;DEFINE RA1, RA2, RA3 COMO ENTRADAS E DEMAIS
;COMO SAÍDAS
MOVLW B'00000000'
MOVWF TRISB ;DEFINE TODO O PORTB COMO SAÍDA
MOVLW B'10000000'
MOVWF OPTION_REG ;PRESCALER 1:2 NO TMR0
;PULL-UPS DESABILITADOS
;AS DEMAIS CONFG. SÃO IRRELEVANTES
MOVLW B'00000000'
MOVWF INTCON ;TODAS AS INTERRUPÇÕES DESLIGADAS
BANK0 ;RETORNA PARA O BANCO 0

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* INICIALIZAÇÃO DAS VARIÁVEIS *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* ROTINA PRINCIPAL *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MAIN

SCAN_BOTAO_LED_VM
BTFSC BT_VM
GOTO SCAN_BOTÃO_MOTOR
GOTO LIGAR_LED_VM

SCAN_BOTÃO_MOTOR
BTFSC BT_MT
GOTO SCAN_BOTAO_CLEAR
GOTO ACIONAR_MOTOR

SCAN_BOTAO_CLEAR
BTFSC BT_CLR
GOTO SCAN_BOTAO_LED_VM
GOTO DESLIGAR_LED_E_MOTOR

LIGAR_LED_VM
BSF LED_VM
GOTO MAIN

ACIONAR_MOTOR
BSF MT_DC
GOTO MAIN

DESLIGAR_LED_E_MOTOR
BCF LED_VM
BCF MT_DC
GOTO MAIN

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* FIM DO PROGRAMA *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

END ;OBRIGATÓRIO

RESPOSTAS QUESTÃO 2:

Diagrama 5.

Primeiramente, nas configurações do programa o MCLRE está off, portando não existira botão para essa função. Segundo,
nas configurações do programa é pedido XT_OSC, portando terá de ter um cristal de frequência no diagrama. Terceiro, é
pedido que as entradas e saídas sigam respectivamente a seguinte forma: RA1 = BT_VM, RA2=MT, RA3=BT_CLR,
RB4=LED_VM, RB5=MT_DC. Quarto, é pedido que as entradas acionem em nível lógico baixo, necessitando portando
de Resistores de Pull Up. A única alternativa que obedece a todas essas características é o DIAGRAMA 5.

Você também pode gostar