Teclado Matricial Assembler
;******************************************************************
;Programa que decodifica las teclas de un teclado matricial 4x4 y
;despliega en undisplay de 7 segmentos el numero hexadecimal co;rrespondiente a la tecla pulsada, utilizando un microcontrolador
;pic 16f628a
;Fecha: 13.06.07
Autor: Jorge A. Bojorquez
;http://micropic.wordpress.com;******************************************************************
list
include
__config
p=16f628a
p16f628a.inc
0x3F18
cblock
NUM
TECLA
endc
b'11011000'
b'00000000'
b'00010000'b'00001110'
b'00011001'
b'00010010'
b'00000010'
b'00000110'
b'11011001'
b'01000100'
b'01010000'
b'01000001'
b'00001000'
b'10000000'
b'00000011'
b'10000110'
0x00
INICIO
org
movlw
movwfbsf
movlw
movwf
clrf
bcf
0x05
0x07
CMCON
STATUS,RP0
0xF0
TRISB
TRISA
OPTION_REG,NOT_RBPU
bcf
STATUS,RP0
;
;
;
;
;
;
;
;
;
movlw
movwf
INICIO
equ
equ
equequ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
org
goto
NUM.7
NUM.8
NUM.9
LET.F
NUM.4
NUM.5
NUM.6
LET.E
NUM.1
NUM.2
NUM.3
LET.d
LET.A
NUM.0
LET.b
LET.C
0x20NUM.0
PORTA
; Iniciar Puerto A para que
; despliegue un "0"
TECLADO
PORTA
PRINCIPAL
; Llamar a rutina de teclado
; Desplegar numero en puerto A
; Ejecucuon ciclica del programaPRINCIPAL
call
movwf
goto
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
7
8
9
F
4
5
6
E
1
2
3
D
A
0
B
C
Deshabilitar comparadores
analogicos
Cambio a banco 1
Nibble alto delpuerto B como
entrada y bajo como salida
Puerto A como salida
Resistencias de pull-up
habilitadas
Cambio a banco 0
;**************************************************
;** Rutina que escanea unteclado matricial 4x4 **
;** recorriendo un 0 por cada una de sus filas y **
;** leyendo el estado de cada columna, si la co- **
;** lumna se encuentra con un estado logico alto **
;** no se...
Regístrate para leer el documento completo.