Algoritmo
Enviado por alejandromartz • 3 de Diciembre de 2013 • 1.186 Palabras (5 Páginas) • 314 Visitas
Lectura de un teclado matricial
;Este programa lee un teclado matricial de 4x3 y muestra el dígito oprimido en el display de 7 segmentos.
; ******** DEFINICION DE REGISTROS UTILIZADOS
pcl equ 02h
status equ 03
ptoa equ 05
ptob equ 06
ptoc equ 07
ptod equ 08
ptoe equ 09
trisa equ 85h
trisb equ 86h
trisc equ 87h
trisd equ 88h
trise equ 89h
adcon1 equ 9fh
;Definicion de bits utilizados
z equ 2
c equ 0
w equ 0
tecla equ 3ch
loops equ 3dh ;utilizado en retardos (milisegundos)
loops2 equ 3eh ;utilizado en retardos
rota equ 3fh ;registro que se rota para enviar ceros a las filas
filas equ 40h ;contiene el numero de la fila a probar
; ************ Configuracion para el simulador Proteus
list p=16f877
_CP_ALL EQU H'0FCF'
_CP_HALF EQU H'1FDF'
_CP_UPPER_256 EQU H'2FEF'
_CP_OFF EQU H'3FFF'
_DEBUG_ON EQU H'37FF'
_DEBUG_OFF EQU H'3FFF'
_WRT_ENABLE_ON EQU H'3FFF'
_WRT_ENABLE_OFF EQU H'3DFF'
_CPD_ON EQU H'3EFF'
_CPD_OFF EQU H'3FFF'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LP_OSC EQU H'3FFC'
_XT_OSC EQU H'3FFD'
_HS_OSC EQU H'3FFE'
_RC_OSC EQU H'3FFF'
__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON
; ***** INICIA PROGRAMA
org 0 ;el vector de reset es la direcci¢n 00
goto inicio ;se salta al inicio del programa
retarms movwf loops ;retardo de milisegundos cargado desde afuera
otro2 movlw d'110'
movwf loops2
otro nop
nop
nop
nop
nop
nop
decfsz loops2,1
goto otro
decfsz loops,1
goto otro2
return
; **** Programa principal
inicio bsf status,5 ;se ubica en el segundo banco de RAM
movlw b'11110000' ;se programan puertos según circuitos
...