Calculadora

Solo disponible en BuenasTareas
  • Páginas : 28 (6919 palabras )
  • Descarga(s) : 4
  • Publicado : 8 de junio de 2010
Leer documento completo
Vista previa del texto
;****************************************************************************
;* -CALCULADORA- *
;* ÍÍÍÍÍÍÍÍÍÍÍ *
;* PROGRAMA PARA EL PIC16F84 REALIZADO POR: *
;* *
;*HORACIO JOSÉ JÁVEGA GUALDA *
;* *
;* FRANCISCO JAVIER MOLINA SÁNCHEZ *
;* *
;* MIGUEL SIMARRO LÓPEZ *
;**
;****************************************************************************
list p=16c84
list c=132
include

estado equ 3
fsr equ 4
indf equ 0
ra equ 5
rb equ 6
ac equ 0
z equ 2
w equ 0
f equ 1

dato equ 0x20 ;registroutilizado para introducir los datos

regest equ 0x0f ;registro donde guardamos los signos de los operandos,
;el del resultado y tambien las operaciones a realizar

; 7 6 5 4 3 2 1 0
; ÚÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄ¿
; ³SOP1 ³SOP2 ³SRES ³ ³RESTA³SUMA ³MULT ³ DIV ³
;ÀÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÙ
;

presul equ 0x16 ;³
sresul equ 0x17 ;³ÄÄ>registros para el resultado
tresul equ 0x18 ;³

cont1 equ 0x1c ;³
cont2 equ 0x1d ;³ÄÄ>contadores auxiliares
cont3 equ 0x1e ;³
cont4 equ 0x22 ;³
cont5 equ 0x2b ;³
cont6 equ 0x2c ;³

pbyte1 equ 0x10 ;³
sbyte1 equ 0x11 ;³ÄÄ>primer operando
tbyte1 equ 0x12 ;³

pbyte2 equ 0x13 ;³
sbyte2 equ 0x14;³ÄÄ>segundo operando
tbyte2 equ 0x15 ;³

rac equ 0x1f ;³
err equ 0x1a ;³
rr1 equ 0x2d ;³
clr equ 0x21 ;³
diez equ 0x1b ;³ÄÄ>registros auxiliares
r1 equ 0x0c ;³
r2 equ 0x0d ;³
r3 equ 0x0e ;³

d1 equ 0x23 ;³
d2 equ 0x24 ;³
d3 equ 0x25 ;³
d4 equ 0x26 ;³ÄÄ>registros donde se guarda el resultado ya preparado
d5equ 0x27 ;³ para ser visualivado
d6 equ 0x28 ;³
d7 equ 0x29 ;³
d8 equ 0x2a ;³

org 0
goto inicio
org 4
goto inter
org 5
inicio call lcd1
call lcd_ini ;inicializa el lcd, con una linea y cursor off
call inicial ;configura los puertos
callb_todo
;call b_lcd ;borra el lcd
movlw '0'
call lcd_datos ;escribe en el lcd el contenido del acumulador
movlw 2
movwf rr1

bsf estado,5 ;selecciona el banco uno
movlw 0x47
movwf option_reg ;configura las interrupciones
movlw 0xf0
movwf trisb;puerto b salida, entrada
movlw 0x01
movwf trisa ;puerto b salida, entrada
bcf estado,5 ;selecciona el banco cero
movlw 0xa8
movwf intcon ;habilita las interrupciones

movlw 0x52 ;³
movwf cont5 ;³contador de tres minutos con ayuda del
movlw 0x08;³prescaler
movwf cont6 ;³

bucle1 goto bucle1 ;programa principal espera las interupciones

inter btfsc intcon,0 ;mira si se ha pulsado una tecla
goto m_tecla ;salta a reconocer la tecla pulsada
btfsc intcon,2 ;mira si se ha desbordado el TMR0
goto dormir...
tracking img