O Microprocessador
Por: Juliana2017 • 4/9/2018 • 2.583 Palavras (11 Páginas) • 291 Visualizações
...
at_tmp2 EQU 0x22
ORG 0x00
GOTO INICIALIZA ;desvia para inicializa
ORG 0x04
RETFIE ;não haverá interrupção
INICIALIZA
BANKSEL TRISB ;seleciona o banco 1
MOVLW B'00000001' ;coloca apenas o bit RB0 como saida
MOVWF TRISB
BANKSEL PORTB ;seleciona o banco0
MAIN
BCF LED1 ;apaga o led
MOVLW 5 ;carrega o acumulador com 5
CALL atraso ;desvia para a rotina atraso
BSF LED1 ;acende o led
MOVLW 5 ;carrega o acumulador com 5
CALL atraso ;desvia para a rotina atraso
GOTO MAIN ;retorna para MAIN
atraso ;rotina de atraso
BTFSC PORTB,0 ; se o bit RB0 estiver setado muda a frequencia
movlw 1 ;carregando o acumulador com um valor para atraso
movwf at_x ;de 0,2s, caso contrário o atraso permanece em 1s.
movlw 0xff
at1: movwf at_tmp1
at2: movwf at_tmp2
at3: decfsz at_tmp2
goto at3
decfsz at_tmp1
goto at2
decfsz at_x
goto at1
return ;retorna para onde a subrotina foi chamada
END
---------------------------------------------------------------
Prática 02
MICROCONTROLADORES (PIC16F628A) FERRAMENTAS DE DESENVOLVIMENTO
---------------------------------------------------------------
- Com base no datasheet do PIC16F628A, explique com suas palavras a utilidade dos cinco seguintes registradores utilizados em LISTAGEM 1: (i) INTCON, (ii) PORTB, (iii) TRISB, (iv) OPTION_REG e (v) PLC.
(i)INTCON: registrador de configuração e identificação das interrupções de Timer0, interrupção externa e interrupção por mudança de estado. Além de possuir a chave geral de todas as interrupções e a chave geral para as interrupções de periféricos.
(ii)PORTB: registrador que pode ser acessado como entrada ou saída do microcontrolador dependendo da configuração do TRISB.
(iii)TRISB: registrador de configuração dos pinos de PORTB, configurando-os como entrada (1) ou saída (0).
(iv)OPTION_REG: registrador responsável pela configuração de uma série de opções do microcontrolador como as configurações de prescaler e do Timer 0.
(v)PLC: registrador contador de programa,ou seja, sempre contém o endereço da memória de programa que será executada em seguida, possui 13 bits de largura os quais podem ser lidos ou gravados com exceção da parte alta (bits 8-12) que vem do registrador PCLATH.
- Com base no datasheet do PIC16F628A, explique de forma clara e detalhada: (i) como é configurada a interrupção do TIMER 0 e (ii) como a configuração desta interrupção está sendo feita no código da LISTAGEM 1.
- Para configurar a interrupção do TMR0 deve-se depois de configurado este deve-se setar o bit TOIE de INTCON.
- Nas linhas abaixo é configurada a interrupção, sendo o bit em negrito o responsável por esta.
MOVLW B'10100000'
MOVWF INTCON
- Apresente, e explique brevemente o funcionamento, os códigos gerados no item 2 do roteiro (inclusão de botão de seleção da frequência, exibição de palavras em 3 Displays de 7 segmentos).
- Inclusão do botão de seleção da frequência.
List P=16F628
Include P16F628.inc
__CONFIG _BODEN_OFF & _WDT_OFF & _CP_OFF & _PWRTE_OFF & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
TEMPO EQU 0x20
DESLOCAMENTO EQU 0x21 ;declaração de variáveis
DIGITO EQU 0x22
#DEFINE BOTAO PORTA,2
ORG 0x0000
GOTO INICIO
ORG 0x0004
BCF INTCON, T0IF ;limpa a flag de Timer 0
DECFSZ TEMPO, F ;decrementa a variavel TEMPO e testa se é
;zero, se for zero salta a próxima linha
RETFIE ;se o resultado da decrementação for diferente de 0
;retorna da interrupção
BTFSS BOTAO
GOTO FRQ_1
GOTO FRQ_2
ZERA:
MOVLW .0
MOVWF DIGITO
RETURN
INICIO:
BANKSEL TRISB ;seleciona o banco 1
CLRF TRISB ;seleciona os bits de PORTB
MOVLW B'00000100' ;seleciona o bit 2 de PORTA como entrada
MOVWF TRISA
MOVLW B'10000111'
...