;
;
;
;
;
;
;
;
;
;
;
;
*************************************************************
Programa Display.asm
Contamos hasta 0x5f.
El valor del contador se visualizará en 8 diodos LED conectados al puerto B
a partir de la patilla 1, sin gestión de punto decimal
Preparado para PIC16F84
Velocidad del reloj: 4 MHz
Ciclo de instrucción: 1 MHz = 1 microsegundo
Interrupciones: A través de PB.0, para detener y recomenzar la cuenta.
Perro guardián: Desactivado
Tipo de Reloj: XT
Protección del código: Desactivado
; *************************************************************
LIST P = 16F84
;Indicamos el modelo de PIC a utilizar
; Definición de registros
portb
EQU
0x06
TRISB
estado
pc
intcon
opcion
EQU
EQU
EQU
EQU
EQU
0X06
0X03
0x02
0x0B
0x01
;Hemos conectado el teclado al puerto B
;La dirección 0x06 corresponde al registro PORTB (puerto B)
;
en el banco1
;
y TRISB en banco 1
; La dirección del registro de estado es la 0x03
; Contador de Programa, dirección de memoria actual de programa
; Registro gestionador de interrupciones
; Registro OPTION. Recordar que está en el banco 1.
; Definición de bits
banco
Z
int
intdeg
alto.
intf
inte
GIE
EQU
EQU
EQU
EQU
0X05
0X02
0x00
0x06
;
;
;
;
Bit del registro de estado correspondiente al banco de datos
Bit indicador de que el registro W está a cero
Bit de interrupción externa, es el 0 en el puerto B.
Bit 6 de OPTION, que indica si la interrupción PB0 es por nivel
EQU
EQU
EQU
0x01
0x04
0x07
; Bit 1 de INTCON, flag de interrupción por PB0.
; Bit 4 de INTCON, habilitador de interrupción por PB0.
; Bit 7 de INTCON, habilitador de interrupciones.
; Definición de constantes
w
f
EQU
EQU
0
1
; Destino de operación = w
; Destino de operación = registro
; Definición de variables
contador
digito
EQU
EQU
0X0C ; Contador
0X0D ; Para almacenar el dígito
; Comienzo del programa.
ORG 0X00
GOTO inicio
ORG 0x04
; Cubrimos el vector de reset
; Saltamos a la primera dirección tras el vector de interrupción
; Vector de interrupción
GOTO RSI
104