Ir ao conteúdo
  • Cadastre-se

Display 7 segmentos com pic16f628a


TudoComLeds

Posts recomendados

Sei que é pouco correcto mas não resisti :D

"numa bela manha de domingo..."


;#**************************************************************************************#
;# _ELECTROPUBLITEC_ #
;# -------------------------------------------------------------------------------------#
;# RELOGIO MULTIPLEXADO COM DISPLAY DE 7 SEGMENTOS E 16F628A #
;# #
;# Programado por LEOPUENA aos 29.01.2012 NUMA BELA MANHA DE DOMINGO PARA O CDH #
;# -------------------------------------------------------------------------------------#
;# #
;#**************************************************************************************#


LIST P=16F628A ;INFORMA AO COMPILADOR O TIPO DE PIC USADO
RADIX DEC ;TODO NÚMERO NAO ESPECIFICADO SERA DECIMAL
#INCLUDE<P16F628A.INC> ; INCLUI A BIBLIOTECA PADRÃO DO PIC USADA
__CONFIG _BOREN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _INTOSC_OSC_NOCLKOUT


;*********************CRIAÇÃO DE VARIAVEIS***************************
Digital equ b'00000110' ; *
CBLOCK 20H ; *
ATRASO ; *
SEG1 ; *
SEG2 ; *
MIN1 ; *
MIN2 ; *
HOR1 ; *
HOR2 ; *
CODIGO ; *
ENDC ; *
;********************************************************************




;------------------------ MACRO PARA MUDANÇA DE BANCO ----------------------------------
BANCO0 MACRO
BCF STATUS,RP0
BCF STATUS,RP1
ENDM
BANCO1 MACRO
BSF STATUS,RP0
BCF STATUS,RP1
ENDM
BANCO2 MACRO
BCF STATUS,RP0
BSF STATUS,RP1
ENDM
BANCO3 MACRO
BSF STATUS,RP0
BSF STATUS,RP1
ENDM

;------------------------------------------------------------------------------------
ORG 0H
GOTO INICIO ; VAI PARA O INICIO DO PROGRAMA
;------------------------------------------------------------------------------------
ORG 4H
RETFIE ; AS INTERRUPÇOES NÃO SERÃO UTILIZADAS
;------------------------------------------------------------------------------------

INICIO
BANCO0
CLRF PORTA
CLRF PORTB

MOVLW 7
MOVWF CMCON ; DEFINIMOS TODOS OS PINOS DO PORTA COMO DIGITAIS.

BANCO1
BSF PCON,3 ; OSCILADOR A 4MHZ
MOVLW 0X80
MOVWF TRISB ; TODOS OS PINOS DO PORT B SERÃ SAIDA
MOVLW 0X10
MOVWF TRISA ; TODOS OS PINOS DO PORT A SERÃ SAIDA
movlw b'10000111'
movwf option_reg

BANCO0
CLRF INTCON
;---------------------------------------------------------------------------
CLRF PORTA
CLRF PORTB
CLRF HOR1
CLRF HOR2
CLRF MIN1
CLRF MIN2
CLRF SEG1
CLRF SEG2
;#######################################
MAIN

CALL DISPLAY
BTFSS PORTA,4
CALL AJ_MIN
BTFSS PORTB,7
CALL AJ_HOR

CALL PAUSA

INCF SEG1,F
MOVF SEG1,W
XORLW D'9'
BTFSS STATUS,Z
GOTO MAIN
CALL PAUSA

CLRF SEG1
INCF SEG2,F
MOVF SEG2,W
XORLW D'6'
BTFSS STATUS,Z
GOTO MAIN


CLRF SEG2
INCF MIN1,F
MOVF MIN1,W
XORLW D'9'
BTFSS STATUS,Z
GOTO MAIN

CLRF MIN1
INCF MIN2,F
MOVF MIN2,W
XORLW D'6'
BTFSS STATUS,Z
GOTO MAIN

CLRF MIN2
MOVF HOR1,W
XORLW D'3'
BTFSC STATUS,Z
GOTO AJ

INCF HOR1
MOVF HOR1,W
XORLW D'9'
BTFSS STATUS,Z
GOTO MAIN
CLRF HOR1
GOTO MAIN

CLRF HOR1
INCF HOR2
MOVF HOR2,W
XORLW D'2'
BTFSS STATUS,Z
GOTO MAIN
CLRF HOR2

AJ MOVF HOR2,W
XORLW D'2'
BTFSS STATUS,Z
GOTO $+4
CLRF HOR1
CLRF HOR2
GOTO MAIN
INCF HOR1
GOTO MAIN


;********************************************************************
AJ_MIN

CALL DISPLAY
BTFSS PORTA,4
GOTO $-2
CALL DELAY

MOVF MIN1,W
XORLW D'9'
BTFSC STATUS,Z
GOTO $+3
INCF MIN1,F
RETURN

CLRF MIN1
MOVF MIN2,W
XORLW D'5'
BTFSC STATUS,Z
GOTO $+3
INCF MIN2,F
RETURN
CLRF MIN2
RETURN

;********************************************************************
AJ_HOR

CALL DISPLAY
BTFSS PORTB,7
GOTO $-2
CALL DELAY

MOVF HOR1,W
XORLW D'3'
BTFSC STATUS,Z
GOTO AJ2

MOVF HOR1,W
XORLW D'9'
BTFSC STATUS,Z
GOTO $+3
INCF HOR1
RETURN

CLRF HOR1
MOVF HOR2,W
XORLW D'2'
BTFSC STATUS,Z
GOTO $+3
INCF HOR2
RETURN
CLRF HOR2
RETURN

AJ2 MOVF HOR2,W
XORLW D'2'
BTFSS STATUS,Z
GOTO $+4
CLRF HOR2
CLRF HOR1
RETURN
INCF HOR1
RETURN
;«««««««««««««««««««««««««««««««««««««««««««««««««««
DISPLAY

BCF PORTA,1
BCF PORTA,2
BCF PORTA,3
BCF PORTA,7
BCF PORTA,6
MOVF HOR2,W
CALL TABELA
MOVWF PORTB
BSF PORTA,0
CALL DELAY

BCF PORTA,0
BCF PORTA,2
BCF PORTA,3
BCF PORTA,7
BCF PORTA,6
MOVF HOR1,W
CALL TABELA
MOVWF PORTB
BSF PORTA,1
CALL DELAY

BCF PORTA,1
BCF PORTA,0
BCF PORTA,3
BCF PORTA,7
BCF PORTA,6
MOVF MIN2,W
CALL TABELA
MOVWF PORTB
BSF PORTA,2
CALL DELAY

BCF PORTA,1
BCF PORTA,2
BCF PORTA,0
BCF PORTA,7
BCF PORTA,6
MOVF MIN1,W
CALL TABELA
MOVWF PORTB
BSF PORTA,3
CALL DELAY


BCF PORTA,1
BCF PORTA,2
BCF PORTA,0
BCF PORTA,3
BCF PORTA,6
MOVF SEG2,W
CALL TABELA
MOVWF PORTB
BSF PORTA,7
CALL DELAY


BCF PORTA,1
BCF PORTA,2
BCF PORTA,0
BCF PORTA,3
BCF PORTA,7
MOVF SEG1,W
CALL TABELA
MOVWF PORTB
BSF PORTA,6
CALL DELAY

BCF PORTA,6

RETURN

;«««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
;«««««««««««««««««««««««««««««««««««««««»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

Tabela
addwf PCL,f
zero
retlw b'00111111'
Um
retlw b'00000110'
dois
retlw b'01011011'
trez
retlw b'01001111'
quatro
retlw b'01100110'
cinco
retlw b'01101101'
seis
retlw b'01111101'
sete
retlw b'00000111'
oito
retlw b'01111111'
nove
retlw b'01100111'
dez
retlw b'01110111'
onze
retlw b'01111100'
doze
retlw b'00111001'
treze
retlw b'00111110'
catorze
retlw b'01111001'
quinze
retlw b'01110001'


;##########################ROTINAS DE PAUSAS############################
;---------------------------------------------------------------------------
PAUSA

MOVLW D'10'
MOVWF ATRASO


PAUSA_1

CALL DISPLAY
DECFSZ ATRASO
GOTO PAUSA_1
RETURN



;---------------------------------------------------------------------------
;---------------------------------DELAY de 10ms-----------------------------
DELAY

movlw d'217'
movwf Tmr0
bcf intcon,T0if
btfss intcon,t0if
goto $-1
return

DELAY1

movlw d'240'
movwf Tmr0
bcf intcon,T0if
btfss intcon,t0if
goto $-1
return




END ;FIM DA COMPILACAO
 

Existem 1001 formas de fazer isso, essa é a que me surgiu nessa manha. Com muitos bugs ainda mas já dá pra ver a ideia.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!