Descrição
Considerando esses fatores, esta atividade pretende avaliar sua capacidade de interpretar um sistema digital responsável por contar peças que passam por um processo de pintura, contando com um botão que incrementa e outro que decrementa um contador implementado em assembly.
O programa:
; programa para gerar um sinal pwm com frequencia de saída PWM
;de 1,25KHZ UTILIZANDO OSCILADOR INTERNO.
;a) Quando RA0 estiver em 1, o duty cycle é de 25%.
;b) Quando RA1 estiver em 1, o dutycycle é de 50%.
;c) Quando RA2 estiver em 1, o duty cycle é de 75%.
;d) Quando RA3 estiver em 1, o dutycycle é de 100%.
; O VENTILADOR DO KIT P04 SERÁ ACIONADO PELO PINO RC1 (PINO 16)
;QUE É A SAÍDA DO MÓDULO CCP2 QUANDO EM PWM
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * CONFIGURAÇÕES PARA GRAVAÇÃO *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; CONFIG FOSC = XT_XT, FCMEN = OFF, IESO = OFF, PWRT = ON, BOR = ON, BORV = 0
CONFIG FOSC = INTOSCIO_EC, FCMEN = OFF, IESO = OFF, PWRT = ON, BOR = ON, BORV = 0
CONFIG WDT = OFF, WDTPS = 128, MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF
;CONFIG CCP2MX = PORTC, STVREN = OFF,
CONFIG LVP = OFF, DEBUG = OFF, XINST = OFF
CONFIG CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF, CPB = OFF, CPD = OFF
CONFIG WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF, WRTB = OFF
CONFIG WRTC = OFF, WRTD = OFF, EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF
CONFIG EBTR3 = OFF, EBTRB = OFF
#INCLUDE <P18F4550.INC> ; MICROCONTROLADOR UTILIZADO
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * DEFINIÇÃO DAS VARIÁVEIS *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * DEFINIÇÃO DAS VARIÁVEIS *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CBLOCK 0X0000 ; BANK 0 –> 0X00..0X5F –> ACCESS BANK
ENDC
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * ENTRADAS *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; AS ENTRADAS DEVEM SER ASSOCIADAS A NOMES PARA FACILITAR A PROGRAMAÇÃO E
; FUTURAS ALTERAÇÕES DO HARDWARE.
#DEFINE BT_1 PORTA,0
#DEFINE BT_2 PORTA,1
#DEFINE BT_3 PORTA,2
#DEFINE BT_4 PORTA,3
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * SAÍDAS *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; AS SAÍDAS DEVEM SER ASSOCIADAS A NOMES PARA FACILITAR A PROGRAMAÇÃO E
; FUTURAS ALTERAÇÕES DO HARDWARE.
; * VETOR DE RESET DO MICROCONTROLADOR *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; POSIÇÃO INICIAL PARA EXECUÇÃO DO PROGRAMA
ORG 0X00 ; ENDEREÇO DO VETOR DE RESET
GOTO CONFIGURACAO ; PULA PARA CONFIG DEVIDO A REGIÃO
; DESTINADA AS ROTINAS SEGUINTES
;*********************************************************************************
;ENDEREÇOS DE TRATAMENTO DE INTERRUPÇÕES
ORG 0X0008 ;ENDEREÇO DE TRATAMENTO DE INTERRUPÇÕES
RETFIE
ORG 0X0018
RETFIE
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * CONFIGURAÇÕES INICIAIS DE HARDWARE E SOFTWARE *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; NESTA ROTINA SÃO INICIALIZADAS AS PORTAS DE I/O DO MICROCONTROLADOR E AS
; CONFIGURAÇÕES DOS REGISTRADORES ESPECIAIS (SFR). A ROTINA INICIALIZA A
; MÁQUINA E AGUARDA O ESTOURO DO WDT.
CONFIGURACAO
MOVLW B’11111111′
MOVWF TRISA ; CONFIGURA I/O DO PORTA
MOVLW B’00000000′
MOVWF TRISB ; CONFIGURA I/O DO PORTB
MOVLW B’11111001′
MOVWF TRISC ; PINO RC2 E RC1 COMO SAIDA
MOVLW B’11110000′
MOVWF TRISD ; CONFIGURA I/O DO PORTD
MOVLW B’00001111′
MOVWF TRISE ; CONFIGURA I/O DO PORTE
MOVLW .99
MOVWF PR2 ;PARA FREQUÊNCIA DE 2,5KHZ CO OSCILADOR INTERNO
MOVLW B’00000000′ ; CONFIGURA INTERRUPÇÕES
MOVWF INTCON ; HABILITA CHAVE GERAL DAS INTERRUPÇÕES E PERIFERICOS E TMR0
MOVLW B’00001111′ ; CONFIGURA CONVERSOR A/D
MOVWF ADCON1 ; CONFIGURA PORTA, PORTB E PORTE COMO I/O DIGITAL
MOVLW B’00110010′
MOVWF OSCCON
; MOVLW B’11001111′
;MOVWF OSCTUNE
;********************************************************************************
;ROTINA PARA LIMPAR OS REGISTRADORES DE ENTRADAS E SAIDAS.
LIMPA_REGS
CLRF PORTA
CLRF PORTB
CLRF PORTC
CLRF PORTD
CLRF PORTE
CLRF LATA
CLRF LATB
CLRF LATC
CLRF LATD
CLRF LATE
;*****************************************************************************
;PROGRAMA PRINCIPAL
CLRF CCP2CON
MAIN
CALL DC_25
CALL DC_50
CALL DC_75
CALL DC_100
GOTO MAIN
DC_25
BTFSS BT_1
RETURN
BSF T2CON,2
MOVLW .25 ;PARA DC DE 25%
MOVWF CCPR2L
MOVLW B’00001100′ ;SAIDA SIMPLES (P1A)<7:6>,00 PARTE BAIXA DA RESOLUÇAO<5:4>
MOVWF CCP2CON ;P1A E P1B ATIVOS ALTOS <3:0>
TESTE_LIB_1
BTFSC BT_1
GOTO TESTE_LIB_1
CLRF CCP2CON ;DESLIA MÓDULO CCP
BCF T2CON,2
RETURN
DC_50
BTFSS BT_2
RETURN
BSF T2CON,2
MOVLW .50 ;PARA DC DE 50%
MOVWF CCPR2L
MOVLW B’00001100′ ;SAIDA SIMPLES (P1A)<7:6>,00 PARTE BAIXA DA RESOLUÇAO<5:4>
MOVWF CCP2CON ;P1A E P1B ATIVOS ALTOS <3:0>
TESTE_LIB_2
BTFSC BT_2
GOTO TESTE_LIB_2
CLRF CCP2CON ;DESLIGA MÓDULO CCP
BCF T2CON,2
RETURN
DC_75
BTFSS BT_3
RETURN
BSF T2CON,2
MOVLW .75 ;PARA DC DE 75%
MOVWF CCPR2L
MOVLW B’00001100′ ;SAIDA SIMPLES (P1A)<7:6>,00 PARTE BAIXA DA RESOLUÇAO<5:4>
MOVWF CCP2CON ;P1A E P1B ATIVOS ALTOS <3:0>
TESTE_LIB_3
BTFSC BT_3
GOTO TESTE_LIB_3
CLRF CCP2CON ;DESLIGA MÓDULO CCP
BCF T2CON,2
RETURN
DC_100
BTFSS BT_4
RETURN
BSF T2CON,2
MOVLW .100 ;PARA DC DE 100%
MOVWF CCPR2L
MOVLW B’00001100′ ;SAIDA SIMPLES (P1A)<7:6>,00 PARTE BAIXA DA RESOLUÇAO<5:4>
MOVWF CCP2CON ;P1A E P1B ATIVOS ALTOS <3:0>
TESTE_LIB_4
BTFSC BT_4
GOTO TESTE_LIB_4
CLRF CCP2CON ;DESLIGA MÓDULO CCP
BCF T2CON,2
RETURN
reew4
END ; FIM DO PROGRAMA


Avaliações
Não há avaliações ainda.