Está en la página 1de 13

T E C N O L G I C O

INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO PBLICO

FRANCISCO DE PAULA GONZALES VIGIL TACNA

ESPECIALIDAD:

ELECTRONICA INDUSTRIAL

UNIDAD DIDACTICA:

MICROCONTROLADORES I

SEMESTRE:

2017 -I

INFORME DE LABORATORIO N01

ASSEMBLER LENGUAJE DE PROGRAMACION

DOCENTE: David J. Quispe Ascencio

ALUMNO:

Fecha de Presentacin: Hora de presentacin:

NOTA:
PROGRAMA N 01
Parpadeo de 02 leds
list p=16F628A
#INCLUDE <P16F628A.INC>
STATUS EQU 0X03
PORTB EQU 0X06
TRISB EQU 0X86
ORG 0X000
bsf STATUS,5;
bcf TRISB,0;
bcf TRISB,2
bcf STATUS,5;
bsf PORTB,0;
bcf PORTB,0;
bsf PORTB,2;
bcf PORTB,2;
goto $-4
END

Ejercicio 1.
Disear la placa impresa, colocar conectores tanto para las entradas como salidas para que se
puedan conectar los respectivos leds. (Aplicacin prctica, alerta de antena area).

PROGRAMA N 02
Leer el estado de los 5 interruptores E0-E4 conectados a RA0-RA4 y reflejar el nivel
lgico de los mismos sobre los leds S0-S4 conectados en RB0-RB4

List p=16F84A
include <P16F84A.INC>
org 0x00; Vector de Reset
goto Inicio
org 0x05; Salva el vector de interrupcin
Inicio
clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0 ;Selecciona banco 1 de la memoria de datos
clrf TRISB ;Puerta B se configura como salida
movlw b'00011111'
movwf TRISA ;Puerta A se configura como entrada
bcf STATUS,RP0 ;Selecciona banco 0 de la memoria de datos

bucle
movf PORTA,W ;Leer las entradas RA0-RA4
movwf PORTB ;Reflejar en las salidas
goto bucle ;Bucle sin fin

end ;Fin del programa fuente

Ejercicio.
A partir de la placa diseada en el ejercicio1, conectar entradas y salidas como se muestra en
el diagrama anterior. (aplicacin prctica activar 01 motor, 01 foco, 01 led.
Modificar el programa para que funcione con el PIC16F628A

PROGRAMA N03
Control de salida a travs de un pulsador

__CONFIG _CP_OFF& _WDT_OFF&_PWRTE_ON&_XT_OSC


list p=16f628a
include <p16f628a.inc>
status equ 0x03
porta equ 0x05
portb equ 0x06
org 0x00
bsf status,5
movlw 0xff
movwf porta
movlw 0x00
movwf portb
bcf status,5
movf porta,2
subwf 1
movwf portb
goto $-3
end

Ejercicio.
Conectar en la placa del ejercicio1 (En lugar del Pulsador, conectar un sensor LDR y activar un
parlante).
PROGRAMA N04
led que rotan en ambos sentidos
LIST P=16F84a
RADIX HEX
;etiquetas del programa
W EQU 0x00
F EQU 0x01
PUERTAA EQU 05H
PORTB EQU 06H
TRISA EQU 85H
TRISB EQU 86H
STATUS EQU 03H
RP0 EQU 05H
C EQU 00H
CONTADOR1 EQU 0CH
CONTADOR2 EQU 0DH
;programa principal
ORG 00H
goto INICIO
ORG 05H
INICIO bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0
clrf PORTB
clrf CONTADOR1
clrf CONTADOR2
ROTACION bsf PORTB,0
bcf STATUS,C
ROTA_IZQ call PAUSA
rlf PORTB,F
btfss PORTB,7
goto ROTA_IZQ
bcf STATUS,C
ROTA_DCHA call PAUSA
rrf PORTB,F
btfss PORTB,0
goto ROTA_DCHA
goto ROTACION
PAUSA clrf CONTADOR1
clrf CONTADOR2
BUCLE decfsz CONTADOR1,F
GOTO BUCLE
DECFSZ CONTADOR2,F
GOTO BUCLE
RETURN
END
Ejercicio.
En la placa diseado en el ejercicio1, los componentes mostrados en la figura anteriormente
conectar los 08 leds de salida, con este circuito ingeniarse un juego para nios.
Modificar el programa para que funcione con el PIC 16F628A
PROGRAMA N05
Temporizador
__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
list P=16F84A
INCLUDE<P16F84A.INC>
CBLOCK 0X0C
ENDC
#DEFINE LED PORTB,0
;ZONA DE CODIGOS
ORG 0
inicio
bsf STATUS,RP0
bcf LED
bcf STATUS,RP0
principal
bsf LED
call Retardo_200ms
call Retardo_200ms
bcf LED
call Retardo_200ms
call Retardo_100ms
goto principal
;subrutina de retardo
CBLOCK
R_ContA
R_ContB
ENDC
Retardo_200ms
movlw d'200'
goto Retardos_ms
Retardo_100ms
movlw d'100'
goto Retardos_ms
Retardo_1ms
movlw d'1'
;retardos
Retardos_ms
movwf R_ContB
R1ms_BucleExterno
movlw d'249'
movwf R_ContA
R1ms_BucleInterno
nop
decfsz R_ContA,F
goto R1ms_BucleInterno
decfsz R_ContB,F
goto R1ms_BucleExterno
return
END

Ejercicio.
Modificar el programa para variar la oscilacin del LED (Temporizador), conectar mediante un
rel a un foco de 220 voltios.
Modificar el programa para que funcione con el PIC 16f628A

PROGRAMA N06
Contador Binario
LIST P=16F628A
#INCLUDE <P16F628A.INC>
VAR EQU 0X20
CONTA EQU 0X21
CONTA2 EQU 0X22
ORG 0X000
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
CLRF CONTA2
;TERMINA CABECERA
MOVFW CONTA2;
CALL TABLA
MOVWF PORTB;
INCF CONTA2,1
CALL DELAY_X
GOTO $-5
DELAY_X
CLRF CONTA
BTFSS CONTA,7
GOTO $+2
RETURN
DELAY_XX
CLRF VAR
BTFSS VAR,7
GOTO $+2
RETURN
INCF VAR,1
NOP
NOP
GOTO $-6
TABLA
ADDWF PCL,1
RETLW b'00111111';0
RETLW b'00000110';1
RETLW b'01011011';2
RETLW b'11001111';3
RETLW b'11100110';4
RETLW b'11101101';5
RETLW b'11111101';6
RETLW b'00000111';7
RETLW b'11111111';8
RETLW b'11100111';9
CLRF CONTA2
RETLW b'00111111'
End
Ejercicio.
Conectar a la placa diseada el display mostrado.
PROGRAMA N07
;Programa de regulacin de velocidad de un motor de corriente continua mediante la
modulacin ;de anchura de pulso(PWM). Por la lnea de salida se genera una onda cuadrada
de frecuencia ;constante s 100Hz(periodo de 10 ms) y ciclo de trabajo variable desde 0% a
100%, dependiendo ;del valor de la entrada del Puerto A. Es decir, el tiempo en alto varia entre
0 ms (0%) y 10 ;ms (100%).
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0x0C
Ciclos_ON
Ciclos_OFF
GuardaEntrada
Var
ENDC
MaximaEntrada EQU .10
;ZONA DE CODIGOS
ORG 0
Inicio:
bsf STATUS,RP0
movlw b'00001111' ;RA3:RA0 como entradas.
movwf TRISA
clrf TRISB ;Las lineas del Puerto B se configuran como salidas.
bcf STATUS,RP0
Principal
movf PORTA,W ;Lee el puerto de entrada.
andlw b'00001111'
movwf GuardaEntrada ;Guarda el valor.
btfsc STATUS,Z ;Si RA3:RA0=0 el motor se detiene
goto DC_CeroPorCiento
sublw MaximaEntrada ;(W)=10-(PORTA)
btfsc STATUS,Z
goto DC_100PorCiento
btfss STATUS,C ;C=1?,(w)positivo?,(PORTA)<=10?.
goto DC_CeroPorCiento ;Ha resultado(PORTA>10).
movwf Ciclos_OFF ;10-(PORTA)-->(Ciclos_OFF).
movf GuardaEntrada,W
movwf Ciclos_ON
Motor_ON
movlw b'10000000' ;Habilita los drivers y un sentido de giro.
movwf PORTB
call Retardo_1ms
decfsz Ciclos_ON,F ;Si(Ciclos_ON)=0 salta a Motor_OFF.
goto Motor_ON ;+2
Motor_OFF
clrf PORTB ;Inhabilita los drivers. Motor parado.
call Retardo_1ms
decfsz Ciclos_OFF,F ;Si(Ciclos_OFF)=0 salta a Principal.
goto Motor_OFF ;+1
goto Fin
DC_CeroPorCiento
clrf PORTB ;Inhabilita los drivers. Motor Parado.
goto Fin
DC_100PorCiento
movlw b'10000000' ;Habilita los drivers y un sentido de giro
movwf PORTB
Fin:
goto Principal
INCLUDE <RETARDO.INC>
END

Ejercicio.
Disear la placa y comprobar el funcionamiento del motor.(Al motor conectar una llanta de
juguete y comprobar su funcionamiento).
En la siguiente figura, es importante los jumpers, deben unirse en la cara de componentes.
CONFIG _CP_OFF& _WDT_OFF&_PWRTE_ON&_XT_OSC
list p=16F84A
include<P16F84A.INC>

CBLOCK 0x0c
ENDC
#DEFINE Display PORTB
org 0
BSF STATUS,RP0
CLRF Display
BCF STATUS,RP0
INICIO
MOVLW B'11111001'
MOVWF Display
call Retardo_200ms
goto INICIO

include<Retardos.inc>
END

También podría gustarte