4ª Aula - Páginas Pessoais

Propaganda
3ª Aula
Teoria:
- arquitetura de microcontrolador – revisão:
http://paginapessoal.utfpr.edu.br/mdasilva/disciplinas/et77c/et77c/uC_Aula3.pdf
- circuitos de Interfaceamento
Arquivo que pode ser obtido no site:
http://www.esec-emidio-navarroalm.rcts.pt/Clube_Robotica/dearrobot/Circuito%20de%20Interface%20para%20Microcontrola
dores_v2.doc
Aula do Professor Amauri Assef em sua página pessoal
http://paginapessoal.utfpr.edu.br/amauriassef/disciplinas/sistemasmicrocontrolados/apresentacoes
Material Extra sobre circuitos de interface e manual do Proteus:
http://mecatronicadegaragem.blogspot.com.br/2011/02/manual-em-portugues-do-proteusque.html
Prática:
O programa abaixo pode ser utilizado como base para esta quarta aula que trata do
acionamento de LED por meio de subrotinas de atrasos em Assembly:
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
NOME DO PROJETO
*
; VERSÃO: 1.0
DATA: 26/03/2012
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
DESCRIÇÃO DO ARQUIVO
*
;*-----------------------------------------------------------------*
;* ACIONAMENTO DE LED COM SUBROTINA DE ATRASO PARA PIC 16F628A *
;*
*
;*
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
ARQUIVOS DE DEFINIÇÕES
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
#INCLUDE <P16F628A.INC>
;ARQUIVO PADRÃO MICROCHIP PARA 16F628A
__CONFIG _BOREN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF
_INTOSC_OSC_NOCLKOUT
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
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
TEMPO1
TEMPO2
CONTADOR
;NOVAS VARIÁVEIS
ENDC
;FIM DO BLOCO DE MEMÓRIA
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
FLAGS INTERNOS
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; DEFINIÇÃO DE TODOS OS FLAGS UTILIZADOS PELO SISTEMA
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
CONSTANTES
*
&
_LVP_OFF
&
_MCLRE_ON
&
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; 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)
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
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)
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
VETOR DE RESET
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ORG
0x00
;ENDEREÇO INICIAL DE PROCESSAMENTO
GOTO
INICIO
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
ROTINAS E SUBROTINAS
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; CADA ROTINA OU SUBROTINA DEVE POSSUIR A DESCRIÇÃO DE FUNCIONAMENTO
; E UM NOME COERENTE ÀS SUAS FUNÇÕES.
ATRASO_100ms
nop
MOVLW .220
MOVWF TEMPO1
MOVLW .130
MOVWF TEMPO2
DENOVO
DECFSZ TEMPO1,F
GOTO DENOVO
DECFSZ TEMPO2,F
GOTO DENOVO
RETURN
SEQ1
MOVLW .10
MOVWF CONTADOR
LOOP1
BSF PORTB, 5
CALL ATRASO_100ms
BCF PORTB, 5
CALL ATRASO_100ms
DECFSZ CONTADOR, F
GOTO LOOP1
RETURN
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
INICIO DO PROGRAMA
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
INICIO
BANK1
;ALTERA PARA O BANCO 1
MOVLW B'00000000'
MOVWF TRISA
;DEFINE ENTRADAS E SAÍDAS DO PORTA
MOVLW B'00000000'
MOVWF TRISB
;DEFINE ENTRADAS E SAÍDAS DO PORTB
MOVLW B'00000000'
MOVWF OPTION_REG
;DEFINE OPÇÕES DE OPERAÇÃO
MOVLW B'00000000'
MOVWF INTCON
;DEFINE OPÇÕES DE INTERRUPÇÕES
BANK0
;RETORNA PARA O BANCO
MOVLW B'00000111'
MOVWF CMCON
;DEFINE O MODO DE OPERAÇÃO DO COMPARADOR ANALÓGICO
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
INICIALIZAÇÃO DAS VARIÁVEIS
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
ROTINA PRINCIPAL
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MAIN
CALL SEQ1
;GOTO MAIN
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
FIM DO PROGRAMA
*
;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
END
Download