Codigobassembler contafor
Páginas: 3 (531 palabras)
Publicado: 3 de noviembre de 2015
; sistemas embebidos I
list p=16F84A
#include P16F84A.inc
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;Declaración de variables
Unidad equ 0x0C ; Guardamos conteounidad
Contador1 equ 0x0F ; Registro utilizado en demora.-
Contador2 equ 0x1c ; Registro utilizado en demora.-
Contador equ 0x1f ; Control para reseteo de Display.-
Nv equ0x2c ; contador
Retardo equ 0x2f
U equ 2 ; control display
org 0x00 ; Aquí comienza el micro.-
goto Inicio ; Salto a inicio de miprograma.-
org 0x05 ; Origen del código de tabla.-
BCD7SEG ; retlw b'gfedcba' tabla de display
Addwf PCL,1 ; Se incrementa el contador del programa.
DT 0x6F, 0xFF, 0x07, 0x7D, 0x6D,0x66, 0x4F, 0x5B, 0x06, 0x3F
;anterior es la dirección donde se asginan los valores del 7seg, otra forma de hacer tablas
;**** Programa principal ****
Inicio
bsf STATUS,RP0 ; Pasamos de Banco 0 aBanco 1.-
clrf TRISA ; PORTA como salida
clrf TRISB ; PORTB como salida.-
bcf STATUS,RP0 ; Paso del Banco 1 al Banco 0
clrf PORTA ; Desactivo todos los Displays
clrf Unidad ; empiezo de 9Bucle.
Clrf contador
Movf contador,0
Inicio_2
Call BCD7SEG
Movwf portb
Call retardo
incf Unidad,1 ; Incremeto Unidad.
movlwd'10' ; Si es 10 reseteo el conteo
subwf Unidad,0 ;
btfss STATUS,Z ;
Goto display
clrf Unidad ; Si, reseteo.-
;**** Demora ****
Retardo
Movlw .4
Movwf nv
Demora_250msmovlw .250 ;
movwf Contador1 ; Iniciamos contador1.-
Repeticion1
movlw .249 ;
movwf Contador2 ; Iniciamos contador2
Repeticion2
Nop
decfsz Contador2,1 ;Decrementa Contador2 y si es 0 sale.-
goto Repeticion2 ; Si no es 0 repetimos ciclo.-
decfsz Contador1,1 ; Decrementa Contador1.-
goto Repeticion1 ; Si no es cero repetimos ciclo.-...
Leer documento completo
Regístrate para leer el documento completo.