Escolar Documentos
Profissional Documentos
Cultura Documentos
;
;
;
;
;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
CDIGO FONTE P/ DATAPOLL PIC-2377
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Projeto: Teclado e Display 7 Segmentos
Aluno: Matheus Milani de Assuno
Data: 07/04/2016
;
;
;
;
;
* * * * * * * * * * * * * *
*
* * * * * * * * * * * * * *
Ao pressionar as teclas 0 a
correspondente a tecla deve
;
;
;
;
;
;
;
;
;
;
;
* * * * * * * * * * * * * * * * * * * * * * * *
*
CONFIGURAO DOS JUMPERS
* * * * * * * * * * * * * * * * * * * * * * * *
Habilitar o dip switch CH3,1-4 (posio ON para
Habilitar todos os dips de CH4 (posio ON para
Habilitar o dip CH5,1-4 (posio ON para cima);
Habilitar o dip CH6,1-4 (posio ON para cima);
Desabilitar as demais chaves DIP;
Manter o jumper J3 na posio B e J4 na posio
L1
RC0; L2
RC1; C1
RB0; C2
RB1...
RE0 habilita o display 7 segmentos.
* * * * * *
DESCRIO
* * * * * *
F (borda de
ser escrito
; * * * * * * * * * * * * * * * * * * * *
; *
CONFIGURAES
; * * * * * * * * * * * * * * * * * * * *
__CONFIG _WDT_OFF & _XT_OSC & _LVP_OFF &
;_CP_OFF
;_WRT_OFF
;
;_DEBUG_ON
;_CPD_OFF
;_LVP_OFF
;_WDT_OFF
;_BODEN_OFF
;_PWRTE_ON
;_XT_OSC
* * * * * * * * * * * * * * * * * *
GERAL
*
* * * * * * * * * * * * * * * * * *
descida do I/O), o valor
no display 7 segmentos.
* * * * * * * * * * * * * *
DE PLACA
*
* * * * * * * * * * * * * *
cima);
cima);
A;
* * * * * * * * * * * * * * * * * *
PARA GRAVAO
*
* * * * * * * * * * * * * * * * * *
_DEBUG_ON & _BODEN_OFF
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;*
ARQUIVOS DE DEFINIES
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
#INCLUDE <P16F877.INC>
;ARQUIVO PADRO MICROCHIP PARA 16F877
; * *
; *
; * *
T1
VEZES
; * *
; *
; * *
* * * * * * * * * * * * * * * *
DEFINIO
* * * * * * * * * * * * * * * *
EQU
.250
EQU
D'30'
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
DAS CONSTANTES
*
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
MACROS
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
DEFINIO DAS VARIVEIS
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
CBLOCK 0X20
UAU
OX. 1 ms
TEMPO_XMS
FLAG
EST LIGADO
LINHA
COLUNA
CASA
ENDC
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
DEFINIO DOS BANCOS DA RAM
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
BANK0 MACRO
;SELECIONA BANK0 DE MEMRIA.
bcf STATUS,RP1
bcf
STATUS,RP0
ENDM
;FIM DA MACRO BANK0.
BANK1
MACRO
ENDM
; * * *
; *
; * * *
#DEFINE
#DEFINE
#DEFINE
#DEFINE
#DEFINE
#DEFINE
#DEFINE
#DEFINE
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FLAG
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FLAG0 FLAG, 0
FLAG1 FLAG, 1
FLAG2 FLAG, 2
FLAG3 FLAG, 3
FLAG4 FLAG, 4
FLAG5 FLAG, 5
FLAG6 FLAG, 6
FLAG7 FLAG, 7
; * * *
; *
; * * *
#DEFINE
#DEFINE
#DEFINE
#DEFINE
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ENTRADAS
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
COL0
PORTB, 0
COL1
PORTB, 1
COL2
PORTB, 2
COL3
PORTB, 3
; * * *
; *
; * * *
#DEFINE
#DEFINE
#DEFINE
#DEFINE
#DEFINE
; * * *
; *
; * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
SADAS
* * * * * * * * * * * * * * * * * * * * * * * * *
LIN0
PORTC, 0
LIN1
PORTC, 1
LIN2
PORTC, 2
LIN3
PORTC, 3
LIN4
PORTC, 4
* * * * * * * * * * * * * * * * * * * * * * * * *
VETOR DE RESET DO MICROCONTROLADOR
* * * * * * * * * * * * * * * * * * * * * * * * *
ORG
0x00
;ENDEREO INICIAL
goto
Inicio
* * * * * * * * * *
*
* * * * * * * * * *
* * * * * * * * * *
*
* * * * * * * * * *
DE PROCESSAMENTO.
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
VETOR DE INTERRUPO DO MICROCONTROLADOR
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ORG
0x04
Interrupcao:
retfie
;
;
;
;
;
;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
CONFIGURAES INICIAIS DE HARDWARE E SOFTWARE
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Nesta rotina so inicializadas as portas de I/O do microcontrolador, os
perifricos que sero usados e as configuraes dos registradores
especiais (SFR).
Inicio:
BANK1
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
BANK0
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
EL COLUNA
MOVLW
MOVWF
EL LINHA
MOVLW
MOVWF
EL CASA
B'00000000'
TRISC
B'11111111'
TRISB
B'00000000'
TRISD
H'FF'
PORTD
B'11111110'
PORTC
H'00'
FLAG
H'00'
COLUNA
H'00'
LINHA
H'00'
CASA
;* * * * * * * * * * *
;*
;* * * * * * * * * * *
; LIMPA DE TODA A RAM
movlw 0x20
movwf FSR
PARA
* * * * * * * * * * * * * * * * * * * * * * *
INICIALIZAO DA RAM
*
* * * * * * * * * * * * * * * * * * * * * * *
DO BANC0 0, INDO DE 0X20 A 0X7F.
; APONTA O ENDEREAMENTO INDIRETO
; A PRIMEIRA POSIO DA RAM.
LIMPA_RAM
clrf
incf
movf
xorlw
btfss
goto
INDF
FSR,F
FSR,W
0x80
STATUS,Z
LIMPA_RAM
MA.
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
ROTINA PRINCIPAL
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MAIN
; * * * * * *INICIALIZA OS VALORES DAS CONSTANTES
MOVLW T1
; INCICIALIZA TODO INICIO DE COD
IGO AS VARIAVEIS
MOVWF TEMPO_XMS
; TEMPO_XMS E A VARIAVEL UAU
MOVLW VEZES
MOVWF UAU
; * * * * * *ALTERNA OS VALORES DE LINHA
BSF STATUS, 0
RLF
PORTC, 1
INCF
LINHA, 1
BTFSS LIN4
CALL
VALOR_INICIAL
; * * * * * *TESTA PARA VER SE ALGUMA COLUNA FOI PRESSIONADA
BTFSC COL0
GOTO $ + 7
CALL ENROLAAO
BTFSC COL0
GOTO $ + 4
BSF FLAG0
MOVLW D'0'
GOTO FIM
BTFSC
COL1
GOTO $ + 7
CALL ENROLAAO
BTFSC COL1
GOTO $ + 4
BSF FLAG0
MOVLW D'1'
GOTO FIM
BTFSC
COL2
GOTO $ + 7
CALL ENROLAAO
BTFSC COL2
GOTO $ + 4
BSF FLAG0
MOVLW D'2'
GOTO FIM
BTFSC
COL3
GOTO $ + 7
CALL ENROLAAO
BTFSC COL3
GOTO $ + 4
BSF FLAG0
MOVLW D'3'
GOTO FIM
FIM:
;
;
MOVLW
MOVWF
BSF
D'3'
COLUNA
FLAG0
BTFSS
FLAG0
GOTO
MAIN
NOP
NOP PARA DAR 10 CICLOS DE MAQUINA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ TEMPO_XMS,F
GOTO
AUX
DECFSZ UAU,F
GOTO
ENROLAAO
MOVLW VEZES
MOVWF UAU
RETURN
; REPETE-SE 10x
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; *
VALOR INICIAL DA LINHA
*
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
VALOR_INICIAL
MOVLW B'11111110'
MOVWF PORTC
MOVLW H'00'
MOVWF LINHA
RETURN
;
;
;
;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
FIM DO PROGRAMA
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
END
; FIM DO PROGRAMA;
*
*
*
*