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.