Buscar

Programando um led para ser ligado por um botao no PIC16F628A

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

; 			TITULO - Botão e Led - 
;			Programa: Este programa tem por objetivo ligar um led utilizando um botão
;			push-botton.		
;			Autor: Douglas Sanchez Pap
;			Data: 12/08/14
;			Versao:1.0
Include <P16F628A.INC>
		__CONFIG _BODEN_ON & _CP_ON & _PWRTE_ON & _LVP_OFF & _WDT_OFF & _MCLRE_OFF & _HS_OSC
		
#DEFINE	BANK0		BCF	 STATUS,RP0	;SETA BANK 0 DE MEMORIA
#DEFINE	BANK1		BSF STATUS,RP0	;SETA BANK 1 DE MEMORIA
; Variávies
#DEFINE		Botao			PORTA,1		; Definindo Botao 1 na PORTA1 - RA1
#DEFINE		Led				PORTB,0		; Definindo Led na PORTB0 - RB0
#DEFINE		Antirrepique 	0X20
T_Filtro	EQU	.10						;FILTRO PARA BOTAO
ORG	0X00
GOTO	INICIO
ORG	0X04
RETFIE
; Sub-rotinas de ativação do Led
;Acende_Led
;	bsf			Led
;	return
;Apaga_Led
;	bcf			Led
;	return
;	 INICIO DO PROGRAMA
INICIO	
	BANK1	
	MOVLW		B'00000010'			;DEFINE RA1 COMO ENTRADA OS DEMAIS COMO SAIDA
	MOVWF		TRISA	
	MOVLW		B'00000000'			;DEFINE PORTB TODO COMO SAIDA
	MOVWF		TRISB				
	MOVLW		B'10000111'
	MOVWF		OPTION_REG			;PRESCALER 1:256 NO TMR0
									;PULL-UPS DESABILITADOS
									;AS DEMAIS CONFG. IRRELEVANTES
	MOVLW		B'00000000'
	MOVWF		INTCON				;TODAS INTERRUPCOES DESLIGADAS	
	BANK0
	movlw		B'00000111'			; configura comparador analogico
	movwf		CMCON
; Programa Principal
Main	
	CLRF		PORTA				; Limpa PORTA
	CLRF		PORTB				; Limpa PORTB
	
	
Teste_Botao
	movlw		T_Filtro
	movwf		Antirrepique
Acende								; Rotina de Acendimento do Led
	btfsc		Botao				; Testa Botão, é zero?
	goto		Acende				; Não, continua testando botão
	decfsz		Antirrepique
	bsf			Led					; Sim, liga led
	movlw		T_Filtro
	movwf		Antirrepique
Apaga								; Rotina de Apagamento do Led
	btfsc		Botao				; Testa Botão
	goto		Apaga
	decfsz		Antirrepique
	bcf			Led
	goto		Teste_Botao
	end

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando