PROGRAMACIÓN EN ASSEMBLER
1. Abrir MPLAB
2. Crear un nuevo proyecto: Project _ Project Wizard
•
Siguiente
Device “16F628A”
•
Siguiente
Active Toolsuite “Microchip MPASM Toolsuite”
•
Siguiente
Create New Project File “C:\pic\exp10”
•
Siguiente
Siguiente _ Finalizar
3. Conectar el ICD2 al PIC BOARD
4. Configurar los interruptores del PICBOARD en modo grabación (Figura 2)
5. Habilitar el programador: Programmer Select Programmer MPLAB ICD 2
6. Añadir un nuevo archivo en ensamblador:
• Project Add New Files To Project… “GS_HGV_01.asm”
LIST P=16F628A
#include <P16F628A.INC>
reg1 EQU 0x31
reg2 EQU 0x32
ciclos EQU 0x30
;-------------- Vector de Reset ----------------ORG 0x00
GOTO inicio
;----------Rutina de interrupción (ISR)---------ORG 0x04
BTFSS INTCON,1 ; salta si la interrup. es por RB0
GOTO tmr ; sino, es por TMR0 y ahí lo atiende
BCF INTCON,1 ; limpia bandera INTF
RETFIE ; retorno de interrupción
BCF INTCON,2 ; limpia bandera de T0IF
RETFIE ; retorno de interrupción
tmr
inicio
BSF STATUS,RP0
MOVLW 0xFF ; carga w con 1111 1111
MOVWF TRISA ; PORTA es entradas
MOVLW 0x01 ; carga w con 0000 0001
MOVWF TRISB ; RB0=entrada, el resto salida
MOVLW 0X47 ; carga w con 0100 0111
MOVWF OPTION_REG ; RB0=flanco ascendente, prescaler=256
BCF STATUS,RP0
LOOP
MOVLW 0xA
MOVFW ciclos
BSF PORTB,7
CALL rutina
BCF
PORTB,7
CALL rutina
DECFSZ ciclos
GOTO LOOP
btfsc PORTB,0
GOTO loop2
loop2
rutina
MOVLW 0x40 ; Aquí se cargan los registros
MOVWF reg1 ; carga reg1 con 250
dos
MOVWF reg2 ; y reg2 con 250
DECFSZ reg2,1 ; decrementa y salta si reg2=0
GOTO uno
DECFSZ reg1,1 ; decrementa y salta si reg1=0
GOTO dos ; irá a cargar reg2 nuevamente
RETURN ; regreso de sr1
uno
END
7. Compilar el programa: Presionar F10
8. Grabar el programa en el PIC : Programmer _ Program
9. Desconectar el ICD 2 del la PIC BOARD
10. configurar los interruptores en modo de funcionamiento normal (Figura 1)
Actividades:
1. Modificar el programa para que la salida del circuito sean RB4 y RB5 en
modo alternado.
2. Modificar el programa para que los tiempos asociados al mismo sean más
extensos.
3. Modificar el programa para que el ciclo se repina 20 veces.