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