PROGRAMACIÓN EN ASSEMBLER

Anuncio
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.
Descargar