Sei sulla pagina 1di 6

;EJEMPLO DE PROGRAMA

;Realizamos en un editor el siguiente listado de programa que llamaremos

;EJ1.ASM

; -------------------------------------------------------

; --------------------------------------------------------

LIST P=16F628A; Modelo de PIC

; list p=16f628A ; list directive to define processor

#include <p16F628A.inc> ; processor specific variable definitions

__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_OFF &
_WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT ;configuramos (oscilador, tipo
etc.)

RADIX HEX

reg1 EQU 0X20

reg2 EQU 0X21

reg3 EQU 0X22

org 0x0000 ;org coloca el programa en el origen, 0x0000 para el


16F628,

;Por aquí es por donde empieza el programa a


ejecutarse

movlw 0x07

movwf CMCON ;Deshabilito los comparadores

bsf STATUS, RP0 ;Selecciono el Bank 1 para poder acceder a


TRISB

movlw b'00000000' ;Configuro todo el PortB para que sea de salida

movwf TRISB

movlw b'00000000'

movwf TRISA
bcf STATUS, RP0 ;Selecciono de nuevo el Bank 0

Loop

movlw b'00000001' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'00000011' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'00000111' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'00001111' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'00011111' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'00111111' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'01111111' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'11111111' ;Pongo a '1' el primer bit del PortB

movwf PORTA

call Delay ;Llamo a la rutina que espera ...

movlw b'00000001' ;Pongo a '1' el primer bit del PortB

movwf PORTB
call Delay ;Llamo a la rutina que espera ...

movlw b'00000011' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'00000111' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'00001111' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'00011111' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'00111111' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'01111111' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'11111111' ;Pongo a '1' el primer bit del PortB

movwf PORTB

call Delay ;Llamo a la rutina que espera ...

movlw b'01111111' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00111111' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .


movlw b'00011111' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00001111' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000111' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000011' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000001' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000000' ;Pongo a '0' el primer bit del PortB

movwf PORTB

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'01111111' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00111111' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00011111' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00001111' ;Pongo a '0' el primer bit del PortB

movwf PORTA
call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000111' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000011' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000001' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

movlw b'00000000' ;Pongo a '0' el primer bit del PortB

movwf PORTA

call Delay ;Llamo de nuevo a la rutina que espera .

goto Loop ;Salto al comienzo y así hasta el infinito

Delay movlw 0x20 ;Espero 250 ms (Para un reloj de 4 MHz)

movwf reg1

tres movlw 0x10

movwf reg2

dos movlw 0x05

movwf reg3

uno decfsz reg3,f

goto uno

decfsz reg2,f

goto dos

decfsz reg1,f

goto tres

return
end

Potrebbero piacerti anche