Pic16f84a

Solo disponible en BuenasTareas
  • Páginas : 8 (1924 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de marzo de 2010
Leer documento completo
Vista previa del texto
INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA INDUSTRIAL. ESPECIALIDAD ELECTRÓNICA BOLETÍN 1. CURSO 2003/04

1.

Se colocan tres interruptores en las líneas RA0, RA1 y RA2 de la puerta A de un PIC16F84. Y se colocan cuatro diodos led en las líneas RB0, RB1, RB2 y RB3 del puerto B. Mediante los interruptores se programa un número binario de 3 bits. Desarrollar un programa en ensamblador quelea el número binario introducido, le sume 5 y represente en los leds el valor binario resultante. Un led apagado representa un 0 y encendido un 1.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 LIST RADIX PUERTAA EQU P=16F84 HEX 0X05 ;Comando que indica el PIC usado ;Los valores se representaran en hexadecimal ;La etiqueta "PUERTAA" queda identificadacon ;la direccion 0x05, que si corresponde con el ;banco 0 es el valor de PUERTAA y si es del ;banco 1 con el de TRISA. ;Equivalencia de la etiqueta PUERTAB ;Estado corresponde con el valor 0x03. ;Identifica W con el valor 0. ;Comando que indica al Ensamblador la ;direccion de la memoria donde se ;situara la instrucion siguiente ;Pone a 1 el bit 5 de ESTADO para direccionar ;la pagina 1 de lamemoria de datos. ;W TRISA ;W TRISB (Las lineas de PB salidas) ;Pone a 0 el bit 5 de ESTADO pasando a ;acceder al banco 0. ;W CONTA CONTA se carga en W W se carga en el registro de datos PB W W Explora Z y si vale 1 se produce "brinco" Si Z = 0 se vuelve a bucle1

bucle2

; si Z = 1 se produce un bucle infinito

4.

Se tiene un PIC16F84 trabajando con un reloj de 1MHz y tiene un ledconectado en la línea RB7. Se pide el programa ensamblador que haga parpadear al led con un frecuencia de 8,2 ms.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 LIST RADIX PUERTAA OPTION ESTADO TMR EQU EQU EQU EQU ORG bsf movlw movwf movlw movwf bcf clrf parpa bsf call bcf call goto clrf btfss goto return END P=16F84 HEX 0x06 0x01 0x03 0x01 0 ESTADO,5 b’11010110’OPTION 0x00 PUERTAB ESTADO,5 PUERTAB PUERTAB,7 retardo PUERTAB,7 retardo parpa TMR0 TMR0,4 explora ; Inicio del programa en direccion 0 ; Banco 1 ; Valor a cargar en OPTION ; La Puerta B salida ; Banco 0 ; Las lineas de salida de PB a 0 ; Enciende el led RB7 = 1 ; Llamada a subrutina de RETARDO ; Apaga el led, RB7 = 0

retardo explora

; ; ; ; ;

TMR0 = 0 y empieza su incremento TMR0 = 1?No ha llegado TMR0 a 16d Ha llegado TMR0 al valor 16d y retorna al programa principal

5.

Se tiene un PIC16F84 con un oscilador interno controlado por un cristal de cuarzo de 4 MHz. Las líneas RA0 y RA1 están conectadas a dos interruptores A y B respectivamente. Las líneas RB0 y RB1 están conectadas a dos leds A’ y B’. Existe además otro led conectado a RB7. Se pide elaborar un programa quemantenga por un lado parpadeando al led conectado a RB7 con un periodo de 1 segundo, y por otro lado que refleje en los leds A’ y B’ el estado de los interruptores A y B.
01 02 03 04 05 06 07 LIST RADIX W F TMR_OPT ESTADO EQU EQU EQU EQU P=16F84 HEX 0 1 0x01 0x03

; TMRO en banco 0 OPTION en banco 1

08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3839 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

PUERTAA PUERTAB INTCON CONTA

EQU EQU EQU EQU ORG goto ORG goto ORG

0x05 0x06 0x0B 0x10 0 inicio 4 Inter. 5 ESTADO,5 PUERTAB b'00000011' PUERTAA b'00000111' TMR_OPT ESTADO,5 b'10100000' INTCON 0x10 CONTA 0x0c TMR_OPT PUERTAA,0 ra0_1 PUERTAB,0 ra1x PUERTAB,0 PUERTAA,1 ra1_1 PUERTAB,1 bucle2 PUERTAB,1 bucle CONTA,1 seguir 0x10CONTA PUERTAB,7 rb7_1 PUERTAB,7 seguir PUERTAB,7 b'10100000' INTCON 0x0c TMR_OPT

; PA en banco 0 TRISA en banco 1 ; PB en banco 0 TRISB en banco 1 ; Contador auxiliar ; Vector de Reset ; Vector de Interrupcion ; Salta a comienzo de rutina de interrupcion ; Seleccion del banco 1 ; Configura PUERTA B como salida ; Configura RA0, RA1 como entradas

inicio

bucle

bsf clrf movlw movwf movlw...
tracking img