Comparto el codigo de practica en ensablador, si ya se hizo en el foro disculpen, sera de ayuda a los que empiezan como yo.
Se que ensamblador no se usa como C o c++ pero me resulto un desafio.
Lo subo em txt porque se entiende un poco mejor,
Se que ensamblador no se usa como C o c++ pero me resulto un desafio.
Lo subo em txt porque se entiende un poco mejor,
Código:
;PROGRAMA: contador decimal en display de 7 segmentos.
;AUTOR...: DAMIAN RODRIGUEZ
;FECHA...: Diciembre 2016
;COMENTARIO: 7 segemntos control, funciona
;-------------------------------------------------
LIST P =16F84A
RADIX HEX ;SE UTILIZA EL SISTEMA HEXADECIMAL
;-------------------------------------------------------
status equ 03h ;definicion de registros
ptoa equ 05h
ptob equ 06h
conta equ 0ch ;00001100 binario
loops equ 0dh ;00001101 xb
loops2 equ 0X0e ;00001110
trisa equ 0X85
trisb equ 0X86
veces equ 0X14
z equ 02h ;bandera de cero de registro de estdo
;-------------------------------------------------------
reset org 0
goto inicio ;inicio
org 5
inicio bsf status,5 ;se ubica en el segundo banco de Ram
movlw 0Xf0 ;11110000
movwf trisa ;se programa el puerto a como salidas
movlw 0Xff ;se carga el registro w con 11111111b
movwf trisb ;se programa pto b como entradas
bcf status,5 ;se ubica en el primer banco de Ram
clrf conta ;inicio contador
movf conta,w
ciclo movwf ptoa
movlw 0X0a
movwf veces
call retardo
pulsa btfsc ptob,0 ;pregunta si pulsador oprimido
goto pulsa ;si ni lo esta sigue testeando
call retardo
btfsc ptob,0
goto pulsa
incf conta ;si se confirma pulsador incrementa contador
movf conta,w ;carga w con el conteo
subwf veces,1
btfsc status,z
goto inicio ;error resuelto verifica bien si llega a diez
goto ciclo
;-------------------------------------------------------
retardo ; subrutina de ratardo de 100ms
movlw 64h ;01100100 b 100 decimal
movwf loops
top2 movlw 6eh ;01101110 b 110 de
movwf loops2
top nop
nop
nop
nop
nop
decfsz loops2
goto top
decfsz loops
goto top2
retlw 0
;-------------------------------------------------------
end
Adjuntos
Última edición por un moderador: