Relatório de experiências da aula prática de eletrônica digital MOTOR DE PASSO
Por: Jùlio Guimarães • 23/6/2015 • Relatório de pesquisa • 2.064 Palavras (9 Páginas) • 544 Visualizações
Instituto federal de Minas Gerais-Campus Ouro Preto
Relatório de experiências da aula prática de eletrônica digital
MOTOR DE PASSO
Júlio Brandão Guimarães
Ouro Preto
Fevereiro/2014
JÚLIO BRANDÃO GUIMARÃES
Relatório de experiências da aula prática de eletrônica digital
MOTOR DE PASSO
Trabalho apresentado ao prof. José Eduardo
da disciplina de Eletrônica digital II,
pelo aluno da D2IAUT3
para obtenção de media no 4º bimestre/2014
Índice
- Introdução................................................................................................. 4
- Resultados e discussões............................................................................. 5
- Programa............................................................................................. 5
- Circuito............................................................................................... 9
2.3 Procedimentos............................................................................ ........ 9
2.4 Explicando o programa...................................................................... 10
2.5 Executando programa......................................................................... 10
3. Conclusão..................................................................................................... 11
4. Referências Bibliográficas............................................................................ 12
- Introdução
Assembly é uma linguagem de programação, que diferentemente de outras, propicia acesso e controle de todo o hardware. Sendo assim, utilizando o PIC16F628A, no decorrer da prática, desenvolveu-se um projeto que simulava um sistema com motor, utilizando o MPLAB IDE para tal execução do programa.
- Resultados e discussões
2.1 Programa
; ==>PROGRAMA MOTOR DE PASSO<==
; --MEIO PASSO--
#INCLUDE
__CONFIG _BODEN_OFF & _CP_OFF & _LVP_OFF & _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
; ==DEFINIÇÃO DOS BANCOS==.
#DEFINE BANK0 BCF STATUS,RP0 ;VAI PARA O BANCO 0 DE MEMÓRIA
#DEFINE BANK1 BSF STATUS,RP0 ;VAI PARA O BANCO 1 DE MEMÓRIA
;==DEFININDO VARIAVEIS==
#DEFINE LIGA PORTA,3
#DEFINE SENT PORTA,2
CBLOCK 0X20
VAR0
VAR1
VAR2
CONTAR
ENDC
;==VETOR DE RESET==
ORG 0X00
GOTO PRINCIPAL
;==VETOR DE INTERRUPÇÕES==
ORG 0X04
RETFIE ;RETORNA PARA PROGRAMA
; ==>INICIO DO PROGRAMA<==
; ==>ROTINAS<==
ATRASO
MOVLW .100 ;VALOR DA CONSTANTE PARA O LOOP MAIS EXTERNO
MOVWF VAR2 ;VARIAVEL DO LOOP MAIS EXTERNO
MOVLW .255 ;VALOR DA CONSTANTE PARA LOOP MAIS INTERNO
MOVWF VAR1 ;VARIAVEL DO LOOP MAIS INTERNO
CLRWDT
DECFSZ VAR1,F
GOTO $-2
DECFSZ VAR2,F
GOTO $-6
CLRWDT
RETURN
TABELA
; TRANSFERE O CONTEUDO DO REG CONTAR PARA O REG WORK(W)
MOVF CONTAR,W
; FAZ OPERAÇÃO DE REG WAND COM O VALOR PARA ISOLAR OS LSB's DO REG CONTAR
ANDLW B'00000111'
; ADICIONA AO CONTEUDO DO CONT DE PROGRAMA(PC), O VALOR REATIVO AOS 3 LBS's DO REG CONTAR
; COM ISSO, ESCOLHE A LINHA QUE CONTEM O VALOR DA TABELA A SER ENVIADO PARA O CORPO DO PROGRAMA
ADDWF PCL,F
; AGORA O CONT DE PROGRAMA (PC) CONTEM O ENDEREÇO DO VALOR DESEJADO DA TABELA
; TABELA PROPRIAMENTE DITA
;CADA UMA DESSAS INSTRUÇÕES DO TRECHO"VALORES"FAZ O RETORNO AO CORPO DO PG
;CARREGANDO O VALOR QUE ESTÁ COMO SEU ARGUMENTO NO REG W
VALORES
RETLW B'00000001' ;PRIMEIRO VALOR PARA CONTROLE DE MEIO PASSO DO MOT DE PASSOS
RETLW B'00000011'
RETLW B'00000010'
RETLW B'00000110'
RETLW B'00000100'
RETLW B'00001100'
RETLW B'00001000'
RETLW B'00001001'
PRINCIPAL
BANK1
MOVLW B'00101100'
MOVWF TRISA
CLRF TRISB
MOVLW B'10000000'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF INTCON
BANK0
MOVLW B'00000111'
MOVWF CMCON
CLRF CONTAR ;LIMPA CONTAR
INICIO
BTFSS LIGA ; TESTA SE BIT É IGUAL A 1
GOTO $-1 ; SE NÃO É IGUAL A 1 VOLTA, SE É PULA PRA PROXIMA INSTRUÇÃO
EXEC
BTFSC SENT ; TESTA SE BIT É IGUAL A 0
GOTO EXEC1 ; SE IGUAL=0 VAI PARA EXEC1
...